Ejemplo n.º 1
0
    void SampleListing::CreateListing()
    {
        StdTitle("Uncertainty Propogation Setup");

        ClearEnumStrs();
        AddEnumStr("Monte Carlo", utMonteCarlo);
        AddEnumStr("FOSM", utFOSM);
        AddEnumStr("PEM", utPEM);

        AddStdEnum("Uncertainty", uncertType);
        AddBoolText("Unspecified correlations", forceCorrelationsToZero, "Force to 0.0", "Random");

        if (IsMonteCarlo())
        {
            AddBoolText("Sampling procedure", samplingIsLHS, "Latin Hyper-Cube", "Monte-Carlo");
            AddStdInt("Number of trials", numberOfTrials);
            AddStdInt("Random number seed", randSeed);

            AddYesNo("User-specified correlations ?", specifyCorrelations);
                }
        else if (IsFOSM())
        {
            AddBoolText("Derivative Span", calcDerivSpan, "Calculated", "User-Specified");
            if (calcDerivSpan)
                AddStdReal("Initial Derivative Span", derivSpan);
            else
                AddStdReal("Specified Derivative Span", derivSpan);
        }

        AddStdInt("# of sampled variables", SampVar::GetnActive());

        SC_SetupErr tempErr;
        SampVarArray currSamp;
        for (int i = 0; i < currSamp.Size(); i++)
            AddStatus(currSamp[i]->GetLongID(), currSamp[i]->SampleSetupOK(tempErr));
    }
Ejemplo n.º 2
0
void DataCaptureListing::ListSuperComponent(const SuperComponent& outSuper)
{
  ClearEnumStrs();
  AddEnumStr("+ Pressure",  SuperComponent::soAddP);
  AddEnumStr("- Pressure",  SuperComponent::soSubP);
  AddEnumStr("+ Delta P",   SuperComponent::soAddDP);
  AddEnumStr("- Delta P",   SuperComponent::soSubDP);

  char tempStr[80];
  CopyString(tempStr, "   ", 80);
  ConcatString(tempStr, outSuper.GetID(), 80);
  ConcatString(tempStr, " operation", 80);
  AddStdEnum(tempStr, outSuper.superOp);

  ClearEnumStrs();
  AddEnumStr("Constant",  SuperComponent::stConstant);
  AddEnumStr("Optimized", SuperComponent::stOptimized);
  AddEnumStr("Sampled", SuperComponent::stSampled);
  AddStdEnum("    Type",  outSuper.superType);

  switch (outSuper.superType)
  {
  case SuperComponent::stConstant : {
    UnitReal temp(outSuper.superRadUnits, outSuper.constantRad);
    AddUnitReal("    Fixed radius", temp);
    break;
  }
  case SuperComponent::stOptimized : {
    AddOptVar("    Optimized radius", outSuper.optRadVal);
    break;
  }
  case SuperComponent::stSampled : {
    AddSampVar("    Sampled radius", outSuper.sampRadVal);
    break;
  }
  case SuperComponent::stVary : {
    AddVaryVar("    Varied radius", outSuper.varyRadVal);
    break;
  }
  }
}
Ejemplo n.º 3
0
void DataCaptureListing::ListDataCapture(const DataCaptureSpec& outDC)
{
  AddConditionalBlank();
  AddStdText("Output ID", outDC.dataDesig);


  ClearEnumStrs();
  AddEnumStr("Pressure", DataCaptureSpec::ctPressure);
  AddEnumStr("Flow Rate", DataCaptureSpec::ctFlow);
  AddEnumStr("Cumulative Production", DataCaptureSpec::ctProduction);
  AddEnumStr("Test Zone Property", DataCaptureSpec::ctTestZone);
  AddEnumStr("Water Table", DataCaptureSpec::ctWaterTable);
  AddStdEnum("  Output type", outDC.captureType);

  ClearEnumStrs();
  switch (outDC.captureType)
  {
  case DataCaptureSpec::ctPressure  : {
    AddEnumStr("Test Zone", DataCaptureSpec::pctTestZone);
    AddEnumStr("Observation Well", DataCaptureSpec::pctRadius);
    AddEnumStr("Superposition", DataCaptureSpec::pctSuperposition);
    AddStdEnum("  Pressure capture type", outDC.pressureCapType);
    switch (outDC.pressureCapType)
    {
    case DataCaptureSpec::pctTestZone : {
      if (control.IsLayered())
      {
        AddStdText("Wellbore zone", outDC.wellboreZoneID);
      }
      break;
    }
    case DataCaptureSpec::pctRadius : {
      if (control.IsHorizontalAnisotropic())
      {
        AddUnitReal("  Observation well X location", outDC.obsXLocation);
        AddUnitReal("  Observation well Y location", outDC.obsYLocation);
        AddStdReal("  Observation well angle (degrees)", Degrees(outDC.GetObsAngle()), SC_DecFormat(3));
      }
      AddUnitReal("  Observation well radius", outDC.radiusData);
      if (control.Is2DRadial())
      {
        AddBoolText("  Vertical position", outDC.zvalueIsRatio, "Actual", "Ratio");
        if (outDC.zvalueIsRatio)
          AddStdReal("  Vertical ratio", outDC.normalizedZ, SC_DecFormat(3));
        else
          AddUnitReal("  Vertical offset", outDC.actualZ);
      }
      break;
    }
    case DataCaptureSpec::pctSuperposition : {
      for (int i = 0; i < outDC.superData.Size(); i++)
        if (outDC.superData.IsValid(i))
          ListSuperComponent(outDC.superData.GetRef(i));
      break;
    }
    }
    break;
  }
  case DataCaptureSpec::ctFlow  : {
    AddEnumStr("Well",        DataCaptureSpec::fctWell);
    AddEnumStr("Formation",     DataCaptureSpec::fctFormation);
    AddEnumStr("Test Zone",     DataCaptureSpec::fctTestZone);
    AddEnumStr("Wellbore Storage",  DataCaptureSpec::fctWellboreStorage);
    AddStdEnum("  Flow rate output type", outDC.flowCapType);
    break;
  }
  case DataCaptureSpec::ctProduction  : {
    AddEnumStr("Well",        DataCaptureSpec::prctWell);
    AddEnumStr("Formation",     DataCaptureSpec::prctFormation);
    AddEnumStr("Test Zone",     DataCaptureSpec::prctTestZone);
    AddStdEnum("  Production output type", outDC.flowCapType);
    break;
  }

  case DataCaptureSpec::ctTestZone : {
    AddEnumStr("Temperature",   DataCaptureSpec::tzctTemperature);
    AddEnumStr("Compressibility",    DataCaptureSpec::tzctCompressibility);
    AddEnumStr("Volume",      DataCaptureSpec::tzctVolume);
    AddStdEnum("  Test zone property output type", outDC.flowCapType);
    break;
  }

  case DataCaptureSpec::ctWaterTable : {
    AddUnitReal("  Water table radius", outDC.radiusData);
    break;
  }
  }

  AddUnitIndex("  Output units", outDC.outputUnits);
}