# sixgill package

## sixgill.abstract_simulation module

class sixgill.abstract_simulation.AbstractSimulation(*model*, *sim_type*)
Bases: `object`

get_state(*simulation_id*)
Returns the state of the simulation

Returns the state from the simulation.

Parameters:
**simulation_id** (*str*) – Required. The id of the simulation returned from start_simulation call.

Returns:
The state of the simulation. sim_status indicates whether the simulation is still running.
messages contains the simulation messages returned by the simulator.

Return type:
SimulationState

Examples

```
    >>> sim_state = model.tasks.networksimulation.get_state(simulation_id)
```

get_messages(*simulation_id*)
Returns the simulation progress message of the simulation

Returns the simulation progress message from the simulation.

Parameters:
**simulation_id** (*str*) – Required. The id of the simulation returned from start_simulation call.

Returns:
**messages** – The simulation messages returned by the simulator.

Return type:
list

Examples

```
    >>> messages = model.tasks.networksimulation.get_messages(simulation_id)
```

get_summary(*simulation_id*)
Returns the warning, info and error messages of the simulation

Returns the warning, info and error messages from the simulation.

Parameters:
**simulation_id** (*str*) – Required. The id of the simulation returned from start_simulation call.

Returns:
**summary** – The keys of the dictionary are “Error”, “Info” and “Warning” and their
values are a list of corresponding messages as shown in Stingray UI

Return type:
dictionary

Examples

```
    >>> messages = model.tasks.networksimulation.get_summary(simulation_id)
```

get_results(*simulation_id*)
Returns the results from the simulation.

Returns the results from the simulation.

Parameters:
**simulation_id** (*str*) – Required. The id of the simulation returned from start_simulation call.

Returns:
The simulation results.

Return type:
dict

Examples

```
    >>> sim_results = model.tasks.networksimulation.get_results(simulation_id)
```

delete_results(*simulation_id*)
Delete a simulation.

Delete a simulation.

Parameters:
**simulation_id** (*str*) – Required. The id of the simulation returned from start_simulation call.

Returns:
Whether the simulation is deleted or not.

Return type:
bool

Examples

```
    >>> model.tasks.networksimulation.delete_results(simulation_id)
```

class sixgill.abstract_simulation.AbstractSingleBranchSimulation(*model*, *sim_type*)
Bases: AbstractSimulation

validate(*producer*, *study: str | None = None*, *validate_model=True*) → List[ValidationIssue]
Validates the task.

Parameters:

- **producer** (*str*) – Required.
The name of the producer for the simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.
- **validate_model** (*Boolean*) – True by default.
If True, it validates the whole model plus the task.


Returns:
a list of ValidationIssue instances.

Return type:
list

Examples

```
    >>> issues = model.tasks.ptprofilesimulation.validate(producer="Well2 - Oil", study = "Study 1")
    >>> for issue in issues:
            print(issue.message)
            print(issue.path)
            print(issue.property_name)
```

delete_sensitivities(*producer*, *study: str | None = None*)
Deletes the sensitivities of a simulation(if any)

Parameters:

- **producer** (*str*) – Required. The name of the producer for the simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Examples

```
    >>> model.tasks.ptprofilesimulation.delete_sensitivities("Well 1", study = "Study 1")
```

class sixgill.abstract_simulation.AbstractNetworkSimulation(*model*, *sim_type*)
Bases: AbstractSimulation

validate(*study: str | None = None*, *validate_model=True*) → List[ValidationIssue]
Validates the task

Parameters:

- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.
- **validate_model** (*Boolean*) – True by default.
If True, it validates the whole model plus the task


Returns:
a list of ValidationIssue instances.

Return type:
list

Examples

```
    >>> issues = model.tasks.networksimulation.validate()
    >>> for issue in issues:
            print(issue.message)
            print(issue.path)
            print(issue.property_name)
```

class sixgill.abstract_simulation.AbstractAdvancedWellSimulation(*model*, *sim_type*)
Bases: AbstractSimulation

validate(*producer*, *study: str | None = None*, *validate_model=True*) → List[ValidationIssue]
Validates the task

Parameters:

- **producer** (*str*) – Required.
The name of the producer for the simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.
- **validate_model** (*Boolean*) – True by default.
If True, it validates the whole model plus the task.


Returns:
a list of ValidationIssue instances.

Return type:
list

Examples

```
    >>> issues = model.tasks.systemperformance.validate(producer="Well2 - Oil", study = "Study 1")
    >>> for issue in issues:
            print(issue.message)
            print(issue.path)
            print(issue.property_name)
```

## sixgill.compositional module

class sixgill.compositional.FluidSettings(*model*)
Bases: `object`

Primary class for operating on fluids

property fluid_type
The current fluid type set for the model

Returns:
One of the fluid mode defined in definitions FluidType class

Return type:
FluidType

property compositional
The compositional fluid settings

class sixgill.compositional.CompositionalFluidSettings(*model*)
Bases: `object`

property pvt_package
The compositional fluid package set for the model

Returns:
One of the fluid flash package type defined in definitions PVTPackage class

Return type:
PVTPackage

property equation_of_state
The compositional fluid equation of state

Returns:
One of the fluid equation of state defined in definitions EquationOfState class

Return type:
EquationOfState

property viscosity_correlation
The compositional fluid viscosity correlation method

Returns:
One of the fluid viscosity correlation method defined in definitions ViscosityCorrelationMethod class

Return type:
ViscosityCorrelationMethod

property volume_shift_correlation
The compositional fluid volume shift correlation method

Returns:
One of the fluid volume shift correlation method defined in definitions VolumeShiftCorrelationMethod class

Return type:
VolumeShiftCorrelation

property critical_property_correlation
The compositional fluid critical property correlation method

Returns:
One of the fluid critical property correlation method defined in definitions CriticalPropertyCorrelationMethod class

Return type:
CriticalPropertyCorrelation

property thermal_coefficient_correlation
The compositional fluid thermal coefficient correlation method

Returns:
One of the fluid thermal coefficient correlation method defined in definitions ThermalCoefficientsCorrelationMethod class

Return type:
ThermalCoefficientsCorrelation

property acf_correlation
The compositional fluid Acf correlation method

Returns:
One of the fluid Acf correlation method defined in definitions AcfCorrelationMethod class

Return type:
ThermalCoefficientsCorrelation

property salinity_model
The compositional fluid sanity model type

Returns:
One of the fluid salinity model type defined in definitions SalinityModel class

Return type:
SalinityModel

select_components(*selected_components: list*) → None
Select the components that will be used by the compositional fluid in the model.

Parameters:
**selected_components** (*list*) – The list of fluid component names based on the fluid flash package.

Return type:
None

unselect_components(*unselected_components: list*)
Unselect the components that are no longer used by the compositional fluid in the model.

Parameters:
**unselected_components** (*list*) – The list of fluid component names based on the fluid flash package.

Returns:
If a component cannot be unselected, a ValueError will be raised to tell the reason.

Return type:
None

add_pseudocomponent(*component_name*, *parameters={}*) → None
Add a user defined fluid component that will be used by the compositional fluid in the model.

Parameters:

- **component_name** (*str*) – The name of the new component.
- **parameters** (*dict*) – Optional. The parameters for the user defined component.


Returns:
If the component cannot be added, a ValueError will be raised to tell the reason.

Return type:
None

delete_pseudocomponent(*component_name*)
Delete a user defined fluid component that is no longer used by the compositional fluid in the model.

Parameters:
**component_name** (*str*) – The name of the user defined component.

Returns:
If the component cannot be deleted, a ValueError will be raised to tell the reason.

Return type:
None

get_composition(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*) → DataFrame
Return fluid composition in the context.

Returns fluid composition in the context. It will fail if no item or
more than one item is found in the context.

Parameters:

- **context** (*str*) – Optional. The context string to look for compositional fluid.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
The fluid composition data frame includes the following columns:
Component, SpecifiedFraction (indexed by Component)

Return type:
pandas.DataFrame

Examples

```
    >>> df = model.fluids.compositional.get_composition(context="C-Fluid")
    >>> dfw = model.fluids.compositional.get_composition(
                      CompositionalFluid="C-Fluid")
```

set_composition(*context: str | None = None*, *value=None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*)
Set data frame to the fluid composition in the context.

Set data frame to the fluid composition in the context. It will fail
if more than one item is found in the context.

Parameters:

- **value** (*DataFrame* *or* *dict*) – Required. The data frame or dict to set to the fluid composition
The fluid composition data frame includes the following columns:
Component, SpecifiedFraction (indexed by Component)
If dict is used, keys are considered as Component and values are
considered as SpecifiedFraction
- **context** (*str*) – Optional. The context string to look for the compositional fluid.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.fluids.compositional.set_composition(context="C-Fluid", value = df)
    >>> model.fluids.compositional.set_composition(CompositionalFluid="C-Fluid",
                        value = df)
```

## sixgill.definitions module

The definitions sub-module maintains the enumerations and static classes
that are available in the Pipesim Python Toolkit.

class sixgill.definitions.Units
Bases: `object`

Available unit of measurement categories

METRIC = 'PIPESIM_METRIC'

SI = 'PIPESIM_SI'

FIELD = 'PIPESIM_FIELD'

class sixgill.definitions.Tasks
Bases: `object`

Available Pipesim simulation tasks

NETWORKSIMULATION = 'NetworkSim'

NETWORKOPTIMIZERSIMULATION = 'NetworkOptSim'

PTPROFILESIMULATION = 'PTProfileSim'

NODALANALYSISOPERATION = 'NodalAnalysisOp'

WELLPERFORMANCECURVESOPERATION = 'WellPerformanceCurvesSim'

SYSTEMANALYSISOPERATION = 'SystemAnalysisOp'

GLDIAGNOSTICSOPERATION = 'GLDiagnosticsOp'

VFPTABLESSOPERATION = 'VfpTablesOp'

SYSTEMPERFORMANCE = 'SystemPerformance'

WELLCALIBRATION = 'WellCalibrationOp'

class sixgill.definitions.Connection
Bases: `object`

SOURCE = 'Source'

DESTINATION = 'Destination'

SOURCEPORT = 'Source Port'

class Separator
Bases: `object`

TOP = 'Top Port'

BOTTOM = 'Bottom Port'

BOOT = 'Boot Port'

class AdvancedWell
Bases: `object`

TOP = 'Top Port'

MIDDLE = 'Middle Port'

BOTTOM = 'Bottom Port'

class sixgill.definitions.SimulationState
Bases: `object`

RUNNING = 'Running'

COMPLETED = 'Completed'

FAILED = 'Failed'

class sixgill.definitions.SimulationOptions
Bases: `object`

PARALLELISM = 'Parallelism'

RESTART = 'Restart'

GENERATEOUTPUTFILE = 'GenerateOutputFile'

class sixgill.definitions.ModelComponents
Bases: `object`

Available model components

BLACKOILFLUID = 'BlackOilFluid'

BOUNDARY = 'Boundary'

CASING = 'Casing'

CHECKVALVE = 'CheckValve'

CHOKE = 'Choke'

COMPLETION = 'Completion'

COMPLETIONCONINGPOINT = 'CompletionConingPoint'

COMPLETIONMODEL = 'CompletionModel'

COMPOSITIONALFLUID = 'CompositionalFluid'

COMPRESSOR = 'Compressor'

ENGINEKEYWORDS = 'EngineKeywords'

ESP = 'ESP'

EXPANDER = 'Expander'

FILEBASEDFLUID = 'FileBasedFluid'

FLOWLINE = 'Flowline'

FLUIDCOMPONENT = 'FluidComponent'

GASLIFTINJECTION = 'GasLiftInjection'

GENERICEQUIPMENT = 'GenericEquipment'

GRAVELPACK = 'GravelPack'

HEATEXCHANGER = 'HeatExchanger'

INJECTOR = 'Injector'

IPRBACKPRESSURE = 'IPRBackPressure'

IPRDARCY = 'IPRDarcy'

IPRTRILINEAR = 'IPRTriLinear'

IPRFETKOVITCH = 'IPRFetkovitch'

IPRFORCHHEIMER = 'IPRForchheimer'

IPRHORIZONTALPI = 'IPRHorizontalPI'

IPRHYDRAULICFRACTURE = 'IPRHydraulicFracture'

IPRJONES = 'IPRJones'

IPRPIMODEL = 'IPRPIModel'

IPRPSSBABUODEH = 'IPRPSSBabuOdeh'

IPRSSJOSHI = 'IPRSSJoshi'

IPRVOGEL = 'IPRVogel'

JUNCTION = 'Junction'

LINER = 'Liner'

MEASUREMENTPOINT = 'MeasurementPoint'

MFLFLUID = 'MFLFluid'

MULTIPLIERADDER = 'MultiplierAdder'

MULTIPHASEBOOSTER = 'MultiphaseBooster'

GENERICBOOSTER = 'GenericBooster'

ONESUBSEABOOSTER = 'OneSubseaBooster'

WETGASCOMPRESSOR = 'WetGasCompressor'

OPEN_HOLE = 'OpenHole'

PACKER = 'Packer'

PCP = 'PCP'

PUMP = 'Pump'

PVTFLUID = 'PVTFluid'

RODPUMP = 'RodPump'

SINGLEPHASESEPARATOR = 'SinglephaseSeparator'

SINK = 'Sink'

SLIDINGSLEEVE = 'SlidingSleeve'

SOURCE = 'Source'

SPOTREPORT = 'SpotReport'

STUDY = 'Study'

SUBSURFACESAFETYVALVE = 'SubsurfaceSafetyValve'

THREEPHASESEPARATOR = 'ThreePhaseSeparator'

TUBING = 'Tubing'

TUBINGPLUG = 'TubingPlug'

TWOPHASESEPARATOR = 'TwoPhaseSeparator'

WATERTEMPVELOCITYSURVEY = 'WaterTempVelocitySurvey'

WELL = 'Well'

NETWORKSIMULATION = 'NetworkSim'

NETWORKOPTIMIZERSIMULATION = 'NetworkOptSim'

PTPROFILESIMULATION = 'PTProfileSim'

NODALANALYSISOPERATION = 'NodalAnalysisOp'

WELLPERFORMANCECURVESOPERATION = 'WellPerformanceCurvesSim'

SYSTEMANALYSISOPERATION = 'SystemAnalysisOp'

GLDIAGNOSTICSOPERATION = 'GLDiagnosticsOp'

VFPTABLESOPERATION = 'VfpTablesOp'

SYSTEMPERFORMANCE = 'SystemPerformance'

WELLCALIBRATION = 'WellCalibrationOp'

GLOBALCATALOG = 'GlobalCatalog'

RISKINDEXLIMITS = 'RiskIndexLimits'

FLOWCORRELATION = 'FlowCorrelation'

HEATTRANSFEROPTIONS = 'HeatTransferOptions'

FLOWCONTROLVALVE = 'FlowControlValve'

class sixgill.definitions.Parameters
Bases: `object`

Available parameters by model component

class Location
Bases: `object`

LATITUDE = 'Latitude'

LONGITUDE = 'Longitude'

NONCLUSTEREDLATITUDE = 'SchematicLatitude'

NONCLUSTEREDLONGITUDE = 'SchematicLongitude'

ELEVATION = 'Elevation'

class SchematicPosition
Bases: `object`

X_COORD = 'X'

Y_COORD = 'Y'

class DownholeLocation
Bases: `object`

TOPMEASUREDDEPTH = 'TopMeasuredDepth'

BOTTOMMEASUREDDEPTH = 'BottomMeasuredDepth'

TUBINGSECTIONTYPE = 'TubingSectionType'

class ModelComponent
Bases: `object`

NAME = 'Name'

ISACTIVE = 'IsActive'

class DownholeComponent
Bases: ModelComponent, DownholeLocation

class SurfaceComponent
Bases: ModelComponent, Location, SchematicPosition

class DownholeOrSurfaceComponent
Bases: ModelComponent, DownholeLocation, Location, SchematicPosition

class AbstractTubingSection
Bases: DownholeComponent

ISFLOWPRESENTINSIDE = 'IsFlowPresentInside'

TOPMEASUREDDEPTH = 'TopMeasuredDepth'

GRADE = 'Grade'

DENSITY = 'Density'

BOREHOLEDIAMETER = 'BoreholeDiameter'

CEMENTTOP = 'CementTop'

CEMENTDENSITY = 'CementDensity'

ANNULUSMATERIALTYPE = 'AnnulusMaterialType'

ANNULUSMATERIALDENSITY = 'AnnulusMaterialDensity'

INNERDIAMETER = 'InnerDiameter'

ROUGHNESS = 'Roughness'

WALLTHICKNESS = 'WallThickness'

LENGTH = 'Length'

THERMALCONDUCTIVITY = 'ThermalConductivity'

CEMENTTHERMALCONDUCTIVITY = 'CementThermalConductivity'

FLUIDTHERMALCONDUCTIVITY = 'FluidThermalConductivity'

SECTIONTYPE = 'SectionType'

class AssociatedToFluid
Bases: `object`

ASSOCIATEDBLACKOILFLUID = 'AssociatedBlackOilFluid'

ASSOCIATEDCOMPOSITIONALFLUID = 'AssociatedCompositionalFluid'

ASSOCIATEDMFLFLUID = 'AssociatedMFLFluid'

class CanBeTemplate
Bases: `object`

ISTEMPLATE = 'IsTemplate'

ISBUILTINTEMPLATE = 'IsBuiltinTemplate'

class SharedPumpParameters
Bases: `object`

EFFICIENCY = 'Efficiency'

POWER = 'Power'

PRESSURE = 'Pressure'

PRESSUREDIFFERENTIAL = 'PressureDifferential'

PRESSURERATIO = 'PressureRatio'

USECURVES = 'UseCurves'

class SharedPumpCatalogParameters
Bases: `object`

MANUFACTURER = 'Manufacturer'

MODEL = 'Model'

BASESPEED = 'BaseSpeed'

OPERATINGSPEED = 'OperatingSpeed'

SHOWPOWER = 'ShowPower'

class FluidLink
Bases: `object`

RESERVOIRPRESSURE = 'ReservoirPressure'

RESERVOIRTEMPERATURE = 'ReservoirTemperature'

COMPLETIONTESTTYPE = 'CompletionTestType'

USETESTDATA = 'UseTestData'

USECONINGDATA = 'UseConingData'

CONEDGASSG = 'ConedGasSG'

USEGASRATIO = 'UseGasRatio'

USEWATERRATIO = 'UseWaterRatio'

GOR = 'GOR'

OGR = 'OGR'

GLR = 'GLR'

LGR = 'LGR'

GWR = 'GWR'

WGR = 'WGR'

WATERCUT = 'WaterCut'

USEFLUIDOVERRIDES = 'UseFluidOverrides'

OVERRIDESINITIALIZED = 'OverridesInitialized'

class Fluid
Bases: CanBeTemplate, FluidLink

COMMENT = 'Comment'

HASOVERRIDE = 'HasOverride'

class FileBasedFluid
Bases: Fluid

FLUIDFILENAME = 'FluidFileName'

class About
Bases: `object`

TOOLKITVERSION = 'ToolkitVersion'

WEBAPIVERSION = 'WebAPIVersion'

MODELFILENAME = 'ModelFilename'

UNITSYSTEM = 'UnitSystem'

UIUNITSYSTEM = 'UiUnitSystem'

class SimulationSetting
Bases: `object`

AMBIENTTEMPERATURE = 'AmbientTemperature'

ATMOSPHERICPRESSURE = 'AtmosphericPressure'

WINDSPEED = 'WindSpeed'

SOILTYPE = 'SoilType'

SOILCONDUCTIVITY = 'SoilConductivity'

METOCEANDATALOCATION = 'MetoceanDataLocation'

EROSIONALVELOCITYCONSTANT = 'ErosionalVelocityConstant'

CORROSIONMODEL = 'CorrosionModel'

CORROSIONEFFICIENCY = 'CorrosionEfficiency'

PIPESEGMENTATIONMAXREPORTINGINTERVAL = 'PipeSegmentationMaxReportingInterval'

PIPESEGMENTATIONPRINTSEGMENTATIONRESULT = 'PipeSegmentationPrintSegmentationResult'

PIPESEGMENTATIONMAXSEGMENTLENGTH = 'PipeSegmentationMaxSegmentLength'

MAXEMULSIONINVERSIONWATERCUT = 'MaxEmulsionInversionWaterCut'

NETWORKSOLVERMETHOD = 'NetworkSolver'

NETWORKSOLVERTOLERANCE = 'NetworkSolverTolerance'

ADVANCEDWELLTOLERANCE = 'AdvancedWellTolerance'

NETWORKSOLVERMAXITERATIONS = 'NetworkSolverMaxIterations'

SINGLEBRANCHKEYWORDS = 'SingleBranchKeywords'

NETWORKTOPKEYWORDS = 'NetworkTopKeywords'

NETWORKBOTTOMKEYWORDS = 'NetworkBottomKeywords'

GISELEVATIONINTERVAL = 'GISElevationInterval'

GISELEVATIONMAXPOINTS = 'GISElevationMaxPoints'

USEGLOBALFLOWCORRELATIONS = 'UseGlobalFlowCorrelations'

USEGLOBALCORROSIONMODEL = 'UseGlobalCorrosionModel'

USEGLOBALHEATTRANSFER = 'UseGlobalHeatTransfer'

ESPSLIPPAGEFACTOR = 'PumpSpeedFactor'

ADVANCEDCOMPRESSORHANDLING = 'AdvancedCompressorHandling'

class FlowCorrelation
Bases: `object`

SWAPANGLE = 'SwapAngle'

OVERRIDEGLOBAL = 'OverrideGlobal'

class SinglePhase
Bases: `object`

CORRELATION = 'SinglePhaseCorrelation'

FACTOR = 'SinglePhaseFactor'

class Multiphase
Bases: `object`

class Vertical
Bases: `object`

SOURCE = 'VerticalMultiphaseSource'

CORRELATION = 'VerticalMultiphaseCorrelation'

HOLDUPFACTOR = 'VerticalMultiphaseHoldupFactor'

FRICTIONFACTOR = 'VerticalMultiphaseFrictionFactor'

class Horizontal
Bases: `object`

SOURCE = 'HorizontalMultiphaseSource'

CORRELATION = 'HorizontalMultiphaseCorrelation'

HOLDUPFACTOR = 'HorizontalMultiphaseHoldupFactor'

FRICTIONFACTOR = 'HorizontalMultiphaseFrictionFactor'

class HeatTransferOption
Bases: `object`

PIPEBURIALMETHOD = 'PipeBurialMethod'

INSIDEFILMCOEFFMETHOD = 'InsideFilmCoeffMethod'

UVALUEMULTIPLIER = 'UValueMultiplier'

ENABLEHYDRATESUBCOOLCALC = 'EnableHydrateSubcoolCalc'

OVERRIDEGLOBAL = 'OverrideGlobal'

class BlackOilFluid
Bases: Fluid

API = 'API'

FRACTIONCO2 = 'CO2Fraction'

FRACTIONCO = 'COFraction'

GASSPECIFICGRAVITY = 'GasSpecificGravity'

GLR = 'GLR'

GOR = 'GOR'

USEGASRATIO = 'UseGasRatio'

USEWATERRATIO = 'UseWaterRatio'

GWR = 'GWR'

FRACTIONH2 = 'H2Fraction'

FRACTIONH2S = 'H2SFraction'

FRACTIONN2 = 'N2Fraction'

WATERCUT = 'WaterCut'

WATERSPECIFICGRAVITY = 'WaterSpecificGravity'

DEADOILDENSITY = 'DeadOilDensity'

USEDEADOILDENSITY = 'UseDeadOilDensity'

DEADOILVISCOSITYCORR = 'DeadOilViscosityCorr'

DEADOILTEMPERATURE1 = 'DeadOilTemperature1'

DEADOILTEMPERATURE2 = 'DeadOilTemperature2'

DEADOILVISCOSITY1 = 'DeadOilViscosity1'

DEADOILVISCOSITY2 = 'DeadOilViscosity2'

LIVEOILVISCOSITYCORR = 'LiveOilViscosityCorr'

LIQUIDVISCOSITYCALC = 'LiquidViscosityCalc'

USEBRAUNERULLMANEQUATION = 'UseBraunerUllmanEquation'

USERWATERCUTCUTOFF = 'UserWatercutCutOff'

UNDERSATURATEDOILVISCOSITYPARA = 'UndersaturatedOilViscosityParA'

UNDERSATURATEDOILVISCOSITYPARB = 'UndersaturatedOilViscosityParB'

UNDERSATURATEDOILVISCOSITYCORR = 'UndersaturatedOilViscosityCorr'

VANDUSERK1 = 'VandUserk1'

VANDUSERK2 = 'VandUserk2'

RICHARDSONKOIW = 'Richardsonkoiw'

RICHARDSONKWIO = 'Richardsonkwio'

OGR = 'OGR'

LGR = 'LGR'

WGR = 'WGR'

ISTEMPLATE = 'IsTemplate'

ISBUILTINTEMPLATE = 'IsBuiltinTemplate'

USERVISCOSITYTABLE = 'UserViscosityTable'

USEREMULSIONTABLE = 'UserEmulsionViscosityTable'

CALIBRATIONMODE = 'CalibrationMode'

class MultiPointCalibration
Bases: `object`

Multi-point PVT calibration data (stored on SinglePointCalibration in the domain model).

FLUIDTYPE = 'CalibrationFluidType'

USEOILDENSITY = 'UseOilDensity'

TESTTEMPERATURE = 'TestTemperature'

FLUIDTESTDATA = 'FluidTestDataTable'

class FluidTestData
Bases: `object`

PRESSURE = 'Pressure'

GOR = 'GOR'

OILDENSITY = 'OilDensity'

OFVF = 'OFVF'

OILVISCOSITY = 'OilViscosity'

GASZFACTOR = 'GasZFactor'

GASVISCOSITY = 'GasViscosity'

WEIGHT = 'Weight'

SOLUTIONGAS_MIN = 'GorCalibrationFactorData_Min'

SOLUTIONGAS_MAX = 'GorCalibrationFactorData_Max'

SOLUTIONGAS_FACTOR = 'GorCalibrationFactorData_Factor'

UNDERSATURATEDOILFVFCORR_MIN = 'OilFvfAboveBpCalibrationFactorData_Min'

UNDERSATURATEDOILFVFCORR_MAX = 'OilFvfAboveBpCalibrationFactorData_Max'

UNDERSATURATEDOILFVFCORR_FACTOR = 'OilFvfAboveBpCalibrationFactorData_Factor'

LIVEOILFVFCORRELATION_MIN = 'OilFvfAtOrBelowBpCalibrationFactorData_Min'

LIVEOILFVFCORRELATION_MAX = 'OilFvfAtOrBelowBpCalibrationFactorData_Max'

LIVEOILFVFCORRELATION_FACTOR = 'OilFvfAtOrBelowBpCalibrationFactorData_Factor'

UNDERSATURATEDOILVISCOSITYCORR_MIN = 'OilViscosityAboveBpCalibrationFactorData_Min'

UNDERSATURATEDOILVISCOSITYCORR_MAX = 'OilViscosityAboveBpCalibrationFactorData_Max'

UNDERSATURATEDOILVISCOSITYCORR_FACTOR = 'OilViscosityAboveBpCalibrationFactorData_Factor'

LIVEOILVISCCORRELATION_MIN = 'OilViscosityAtOrBelowBpCalibrationFactorData_Min'

LIVEOILVISCCORRELATION_MAX = 'OilViscosityAtOrBelowBpCalibrationFactorData_Max'

LIVEOILVISCCORRELATION_FACTOR = 'OilViscosityAtOrBelowBpCalibrationFactorData_Factor'

DEADOILVISCOSITYCORR_MIN = 'DeadOilViscosityCalibrationFactorData_Min'

DEADOILVISCOSITYCORR_MAX = 'DeadOilViscosityCalibrationFactorData_Max'

DEADOILVISCOSITYCORR_FACTOR = 'DeadOilViscosityCalibrationFactorData_Factor'

GASCOMPRESSCORRELATION_MIN = 'GasZCalibrationFactorData_Min'

GASCOMPRESSCORRELATION_MAX = 'GasZCalibrationFactorData_Max'

GASCOMPRESSCORRELATION_FACTOR = 'GasZCalibrationFactorData_Factor'

GASVISCCORRELATION_MIN = 'GasViscosityCalibrationFactorData_Min'

GASVISCCORRELATION_MAX = 'GasViscosityCalibrationFactorData_Max'

GASVISCCORRELATION_FACTOR = 'GasViscosityCalibrationFactorData_Factor'

class SinglePointCalibration
Bases: `object`

SOLUTIONGAS = 'SolutionGas'

LIVEOILFVFCORRELATION = 'OilFVFCorrelation'

LIVEOILVISCCORRELATION = 'LiveOilViscCorrelation'

UNDERSATURATEDOILFVFCORR = 'UndersaturatedOilFVFCorr'

GASCOMPRESSCORRELATION = 'GasCompressCorrelation'

GASVISCCORRELATION = 'GasViscCorrelation'

ABOVEBBPTYPE = 'AboveBBPType'

BELOWBBPTYPE = 'BelowBBPType'

BUBBLEPOINTSATGAS_VALUE = 'BubblepointSatGas_Value'

BUBBLEPOINTSATGAS_PRESSURE = 'BubblepointSatGas_Pressure'

BUBBLEPOINTSATGAS_TEMPERATURE = 'BubblepointSatGas_Temperature'

ABOVEBBPDENSITY_VALUE = 'AboveBBPDensity_Value'

ABOVEBBPDENSITY_PRESSURE = 'AboveBBPDensity_Pressure'

ABOVEBBPDENSITY_TEMPERATURE = 'AboveBBPDensity_Temperature'

ABOVEBBPOFVF_VALUE = 'AboveBBPOFVF_Value'

ABOVEBBPOFVF_PRESSURE = 'AboveBBPOFVF_Pressure'

ABOVEBBPOFVF_TEMPERATURE = 'AboveBBPOFVF_Temperature'

BELOWBBPDENSITY_VALUE = 'BelowBBPDensity_Value'

BELOWBBPDENSITY_PRESSURE = 'BelowBBPDensity_Pressure'

BELOWBBPDENSITY_TEMPERATURE = 'BelowBBPDensity_Temperature'

BELOWBBPOFVF_VALUE = 'BelowBBPOFVF_Value'

BELOWBBPOFVF_PRESSURE = 'BelowBBPOFVF_Pressure'

BELOWBBPOFVF_TEMPERATURE = 'BelowBBPOFVF_Temperature'

BELOWBBPLIVEOILVISCOSITY_VALUE = 'BelowBBPLiveOilViscosity_Value'

BELOWBBPLIVEOILVISCOSITY_PRESSURE = 'BelowBBPLiveOilViscosity_Pressure'

BELOWBBPLIVEOILVISCOSITY_TEMPERATURE = 'BelowBBPLiveOilViscosity_Temperature'

BELOWBBPGASVISCOSITY_VALUE = 'BelowBBPGasViscosity_Value'

BELOWBBPGASVISCOSITY_PRESSURE = 'BelowBBPGasViscosity_Pressure'

BELOWBBPGASVISCOSITY_TEMPERATURE = 'BelowBBPGasViscosity_Temperature'

BELOWBBPGASZ_VALUE = 'BelowBBPGasZ_Value'

BELOWBBPGASZ_PRESSURE = 'BelowBBPGasZ_Pressure'

BELOWBBPGASZ_TEMPERATURE = 'BelowBBPGasZ_Temperature'

class ThermalData
Bases: `object`

GASHEATCAPACITY = 'GasHeatCapacity'

OILHEATCAPACITY = 'OilHeatCapacity'

WATERHEATCAPACITY = 'WaterHeatCapacity'

GASCONDUCTIVITY = 'GasConductivity'

OILCONDUCTIVITY = 'OilConductivity'

WATERCONDUCTIVITY = 'WaterConductivity'

ENTHALPYCALCMETHOD = 'EnthalpyCalcMethod'

LATENTHEATOFVAPORIZATION = 'LatentHeatOfVaporization'

class BlackOilUserViscosityTable
Bases: `object`

TEMPERATURE = 'Temperature'

VISCOSITY = 'Viscosity'

class BlackOilUserEmulsionTable
Bases: `object`

WATERCUT = 'Watercut'

VISCOSITYRATIO = 'ViscosityRatio'

class Boundary
Bases: `object`

USEPQCURVE = 'UsePQCurve'

USEGASRATIO = 'UseGasRatio'

USEWATERRATIO = 'UseWaterRatio'

ISSURFACECONDITION = 'IsSurfaceCondition'

TEMPERATURE = 'Temperature'

PRESSURE = 'Pressure'

GASFLOWRATE = 'GasFlowRate'

LIQUIDFLOWRATE = 'LiquidFlowRate'

MASSFLOWRATE = 'MassFlowRate'

GOR = 'GOR'

OGR = 'OGR'

GLR = 'GLR'

LGR = 'LGR'

WATERCUT = 'WaterCut'

GWR = 'GWR'

WGR = 'WGR'

FLOWRATETYPE = 'FlowRateType'

COMPLETIONNAME = 'CompletionName'

ISBOTTOMCOMPLETION = 'IsBottomCompletion'

ISACTIVE = 'IsActive'

WELLNAME = 'WellName'

BOUNDARYNODETYPE = 'BoundaryNodeType'

BOUNDARYNODENAME = 'BoundaryNodeName'

class RateConstraint
Bases: `object`

OILFLOWRATE = 'OilFlowRate'

WATERFLOWRATE = 'WaterFlowRate'

GASFLOWRATE = 'GasFlowRate'

LIQUIDFLOWRATE = 'LiquidFlowRate'

MASSFLOWRATE = 'MassFlowRate'

class LocalConstraint
Bases: `object`

WELLCONTRIBUTION = 'IsControlledWell'

ALHANATICHECK = 'AlhanatiCheck'

FORCESTABLEFLOW = 'ForceStableFlow'

WELLSTATUS = 'WellMayShutIn'

MINGASLIFTRATE = 'MinGasliftRate'

MAXGASLIFTRATE = 'MaxGasliftRate'

MAXCHPFORGASINJECTION = 'MaxChpForGasInjection'

MINLIQUIDRATE = 'MinLiquidRate'

MAXLIQUIDRATE = 'MaxLiquidRate'

MINTOTALGASRATE = 'MinTotalGasRate'

MAXTOTALGASRATE = 'MaxTotalGasRate'

MAXWATERRATE = 'MaxWaterRate'

MAXWELLHEADTEMPERATURE = 'MaxWellheadTemperature'

MAXDRAWDOWNPRESSURE = 'MaxDrawdownPressure'

MINBUBBLEPOINTPRESSURE = 'MinBubblePointPressure'

MAXEVR = 'MaxEvr'

MAXVELOCITY = 'MaxVelocity'

MINPOWER = 'MinPower'

MAXPOWER = 'MaxPower'

MINFREQUENCY = 'MinFrequency'

MAXFREQUENCY = 'MaxFrequency'

MINSPEED = 'MinSpeed'

MAXSPEED = 'MaxSpeed'

MINBEANSIZE = 'MinBeanSize'

MAXBEANSIZE = 'MaxBeanSize'

MAXPRODUCEDGASRATE = 'MaxProducedGasRate'

MAXINJECTIONGASRATE = 'MaxInjectionGasRate'

MAXGOR = 'MaxGor'

MAXCO2 = 'MaxCo2'

MAXH2S = 'MaxH2s'

MAXOILRATE = 'MaxOilRate'

class OptimizerInitialConditions
Bases: `object`

DUALSTRINGWELLID = 'SiblingWellId'

CONSTRAINTTYPE = 'ConstraintType'

INJECTIONGAS = 'InjectionRate'

ESPFREQUENCY = 'ESPOperatingFrequency'

PCPSPEED = 'PCPOperatingSpeed'

CHOKESIZE = 'BeanSize'

class Casing
Bases: AbstractTubingSection

class CheckValve
Bases: SurfaceComponent

CHECKVALVESETTING = 'CheckValveSetting'

class Choke
Bases: DownholeOrSurfaceComponent

ADJUSTSUBCRITICALCORRELATION = 'AdjustSubcriticalCorrelation'

BEANSIZE = 'BeanSize'

BOTHPHASESFLOWCOEFFICIENT = 'BothPhasesFlowCoefficient'

CALCULATECRITICALPRESSURERATIO = 'CalculateCriticalPressureRatio'

GASEXPANSIONFACTOR = 'GasExpansionFactor'

CRITICALCORRELATION = 'CriticalCorrelation'

CRITICALPRESSURERATIO = 'CriticalPressureRatio'

DISCHARGECOEFFICIENT = 'DischargeCoefficient'

GASPHASEFLOWCOEFFICIENT = 'GasPhaseFlowCoefficient'

HEATCAPACITYRATIO = 'HeatCapacityRatio'

USEFLOWRATEFORCRITICALFLOW = 'UseFlowrateForCriticalFlow'

USEPRESSURERATIOFORCRITICALFLOW = 'UsePressureRatioForCriticalFlow'

USESONICDOWNSTREAMVELOCITYFORCRITICALFLOW = 'UseSonicDownstreamVelocityForCriticalFlow'

USESONICUPSTREAMVELOCITYFORCRITICALFLOW = 'UseSonicUpstreamVelocityForCriticalFlow'

LIQUIDPHASEFLOWCOEFFICIENT = 'LiquidPhaseFlowCoefficient'

SUBCRITICALCORRELATION = 'SubCriticalCorrelation'

TOLERANCE = 'Tolerance'

UPSTREAMPIPEID = 'UpstreamPipeID'

PRINTDETAILEDCALCULATIONS = 'PrintDetailedCalculations'

class Completion
Bases: DownholeComponent, AssociatedToFluid, FluidLink

DIAMETER = 'Diameter'

LENGTH = 'Length'

PHASEANGLE = 'PhaseAngle'

SHOTDENSITY = 'ShotDensity'

PENETRATIONDEPTH = 'PenetrationDepth'

FLUIDENTRYTYPE = 'FluidEntryType'

GEOMETRYPROFILETYPE = 'GeometryProfileType'

RESERVOIRPRESSURE = 'ReservoirPressure'

RESERVOIRTEMPERATURE = 'ReservoirTemperature'

TESTPOINTS = 'CompletionTestPoints'

IPRMODEL = 'IPRModel'

class CompletionConingPoint
Bases: `object`

LIQUIDFLOWRATE = 'LiquidFlowRate'

GOR = 'GOR'

WATERCUT = 'WaterCut'

class CompositionalFluid
Bases: Fluid

COMPONENTFRACTIONTYPE = 'ComponentFractionType'

USETUNEDFRACTIONS = 'UseTunedFractions'

SHOWALLCOMPONENTS = 'ShowAllComponents'

LIQUIDVISCOSITYCALC = 'LiquidViscosityCalc'

USEBRAUNERULLMANEQUATION = 'UseBraunerUllmanEquation'

USERWATERCUTCUTOFF = 'UserWatercutCutOff'

VANDUSERK1 = 'VandUserk1'

VANDUSERK2 = 'VandUserk2'

RICHARDSONKOIW = 'Richardsonkoiw'

RICHARDSONKWIO = 'Richardsonkwio'

IONSODIUM = 'SodiumIon'

IONCALCIUM = 'CalciumIon'

IONMAGNESIUM = 'MagnesiumIon'

IONPOTASSIUM = 'PotassiumIon'

IONSTRONTIUM = 'StrontiumIon'

IONBARIUM = 'BariumIon'

IONIRON = 'IronIon'

IONCHLORIDE = 'ChlorideIon'

IONSULPHATE = 'SulphateIon'

IONBICARBONATE = 'BicarbonateIon'

IONBROMIDE = 'BromideIon'

TOTALDISSOLVEDSOLIDS = 'TotalDissolvedSolids'

SALTWATERDENSITYTYPE = 'SaltWaterDensityType'

SALTWATERDENSITY = 'SaltWaterDensity'

SALTWATERSALINITY = 'SaltWaterSalinity'

SALTWATERTEMPERATURE = 'SaltWaterTemperature'

ISTEMPLATE = 'IsTemplate'

ISBUILTINTEMPLATE = 'IsBuiltinTemplate'

USEREMULSIONTABLE = 'UserEmulsionViscosityTable'

COMPOSITION = 'Composition'

class Compressor
Bases: SurfaceComponent, SharedPumpParameters, SharedPumpCatalogParameters

ROUTE = 'Route'

HONOURSTONEWALLLIMIT = 'HonourStonewallLimit'

ISRECIPROCATING = 'IsReciprocating'

HEADFACTOR = 'HeadFactor'

class IPRTriLinear
Bases: `object`

DISTANCETOBOUNDARY = 'DistanceToBoundary'

OUTERRESPERM = 'OuterResPerm'

INNERRESPERM = 'InnerResPerm'

OUTERRESPOROSITY = 'OuterResPorosity'

INNERRESPOROSITY = 'InnerResPorosity'

OUTERRESCOMPRESSIBILITY = 'OuterResCompressibility'

INNERRESCOMPRESSIBILITY = 'InnerResCompressibility'

NUMHYDRAULICFRAC = 'NumHydraulicFrac'

HYDRAULICFRACHALF = 'HydraulicFracHalf'

HYDRAULICFRACWIDTH = 'HydraulicFracWidth'

HYDRAULICFRACPERM = 'HydraulicFracPerm'

HYDRAULICFRACPOROSITY = 'HydraulicFracPorosity'

HYDRAULICFRACCOMPRESSIBILITY = 'HydraulicFracCompressibility'

CALCSKIN = 'CalcSkin'

TIME = 'Time'

RESERVOIRTHICKNESS = 'ReservoirThickness'

CALCULATIONTYPE = 'CalculationType'

ISGASMODEL = 'IsGasModel'

USEVOGELBELOWBUBBLEPOINT = 'UseVogelBelowBubblePoint'

USEVOGELWATERCUTCORRECTION = 'UseVogelWaterCutCorrection'

class IPRDarcy
Bases: `object`

RATIOTYPE = 'RatioType'

DAMAGEDZONEPERMRATIO = 'DamagedZonePermRatio'

COMPACTEDZONEPERMRATIO = 'CompactedZonePermRatio'

COMPLETIONVERTICALPERMRATIO = 'CompletionVerticalPermRatio'

COMPLETIONINTERVALRATIO = 'CompletionIntervalRatio'

DAMAGEDZONESKIN = 'DamagedZoneSkin'

PERFORATIONSKIN = 'PerforationSkin'

COMPACTEDZONESKIN = 'CompactedZoneSkin'

PARTIALPENETRATIONSKIN = 'PartialPenetrationSkin'

DEVIATIONSKIN = 'DeviationSkin'

GRAVELPACKSKIN = 'GravelPackSkin'

FRACPACKSKIN = 'FracPackSkin'

CALCULATEMECHANICALSKIN = 'CalculateMechanicalSkin'

CALCULATERATEDEPENDENTSKIN = 'CalculateRateDependentSkin'

CHOKELENGTH = 'ChokeLength'

OBSOLETECOMPACTEDZONEDIAMETER = 'ObsoleteCompactedZoneDiameter'

COMPACTEDZONETHICKNESS = 'CompactedZoneThickness'

COMPACTEDZONEPERMEABILITY = 'CompactedZonePermeability'

COMPLETIONDEVIATION = 'CompletionDeviation'

COMPLETIONVERTICALPERMEABILITY = 'CompletionVerticalPermeability'

COMPLETIONINTERVAL = 'CompletionInterval'

DAMAGEDEPTH = 'DamageDepth'

OBSOLETEDAMAGEDZONEDIAMETER = 'ObsoleteDamagedZoneDiameter'

DAMAGEDZONETHICKNESS = 'DamagedZoneThickness'

DAMAGEDZONEPERMEABILITY = 'DamagedZonePermeability'

DRAINAGERADIUS = 'DrainageRadius'

FRACTURECHOKEPERMEABILITY = 'FractureChokePermeability'

FRACTUREFACEDAMAGEPERMEABILITY = 'FractureFaceDamagePermeability'

FRACTUREHALFLENGTH = 'FractureHalfLength'

FRACTUREPROPPANTPERMEABILITY = 'FractureProppantPermeability'

FRACTUREWIDTH = 'FractureWidth'

ISGASMODEL = 'IsGasModel'

MECHANICALSKIN = 'MechanicalSkin'

PERFSKINMETHOD = 'PerfSkinMethod'

RATEDEPENDENTGASSKIN = 'RateDependentGasSkin'

RATEDEPENDENTLIQUIDSKIN = 'RateDependentLiquidSkin'

RESERVOIRAREA = 'ReservoirArea'

RESERVOIRPERMEABILITY = 'ReservoirPermeability'

RESERVOIRTHICKNESS = 'ReservoirThickness'

SHAPEFACTOR = 'ShapeFactor'

USERELATIVEPERMEABILITY = 'UseRelativePermeability'

USECHOKEFRACTURESKIN = 'UseChokeFractureSkin'

USEDAMAGEDZONESKIN = 'UseDamagedZoneSkin'

USEDRAINAGERADIUS = 'UseDrainageRadius'

USEFRACTUREFACESKIN = 'UseFractureFaceSkin'

USEFRACTURESKIN = 'UseFractureSkin'

USEGRAVELPACKSKIN = 'UseGravelPackSkin'

USEPARTIALPENETRATIONDEVIATIONSKIN = 'UsePartialPenetrationDeviationSkin'

USEPERFORATIONSKIN = 'UsePerforationSkin'

USEPSEUDOPRESSUREMETHOD = 'UsePseudoPressureMethod'

USEVOGELBELOWBUBBLEPOINT = 'UseVogelBelowBubblepoint'

USEVOGELWATERCUTCORRECTION = 'UseVogelWaterCutCorrection'

WELLCOMPLETIONTYPE = 'WellCompletionType'

ISTRANSIENT = 'IsTransient'

COMPRESSIBILITY = 'Compressibility'

POROSITY = 'Porosity'

TIME = 'Time'

WATERSATURATION = 'WaterSaturation'

RELATIVEPERMEABILITYOIL = 'RelativePermeabilityOil'

RELATIVEPERMEABILITYWATER = 'RelativePermeabilityWater'

class DistributedCompletionModel
Bases: `object`

RATIOTYPE = 'RatioType'

DAMAGEDZONEPERMRATIO = 'DamagedZonePermRatio'

COMPACTEDZONEPERMRATIO = 'CompactedZonePermRatio'

COMPLETIONVERTICALPERMRATIO = 'CompletionVerticalPermRatio'

DAMAGEDZONESKIN = 'DamagedZoneSkin'

PERFORATIONSKIN = 'PerforationSkin'

COMPACTEDZONESKIN = 'CompactedZoneSkin'

PARTIALPENETRATIONSKIN = 'PartialPenetrationSkin'

DEVIATIONSKIN = 'DeviationSkin'

GRAVELPACKSKIN = 'GravelPackSkin'

FRACPACKSKIN = 'FracPackSkin'

CALCULATESKIN = 'CalculateSkin'

OBSOLETECOMPACTEDZONEDIAMETER = 'ObsoleteCompactedZoneDiameter'

COMPACTEDZONETHICKNESS = 'CompactedZoneThickness'

COMPACTEDZONEPERMEABILITY = 'CompactedZonePermeability'

COMPLETIONLENGTH = 'CompletionLength'

COMPLETIONMODELTYPE = 'CompletionModelType'

OBSOLETEDAMAGEDZONEDIAMETER = 'ObsoleteDamagedZoneDiameter'

DAMAGEDZONETHICKNESS = 'DamagedZoneThickness'

DAMAGEDZONEPERMEABILITY = 'DamagedZonePermeability'

FLUIDOFVF = 'FluidOFVF'

FLUIDVISCOSITY = 'FluidViscosity'

GASPI = 'GasPI'

GASZ = 'GasZ'

GRAVELPACKPERMEABILITY = 'GravelPackPermeability'

GRAVELPACKTUNNEL = 'GravelPackTunnel'

HORIZONTALWELLLENGTH = 'HorizontalWellLength'

ISGASMODEL = 'IsGasModel'

LIQUIDPI = 'LiquidPI'

LOCATIONECCEN = 'LocationEccen'

LOCATIONXPOS = 'LocationXPos'

LOCATIONYPOS = 'LocationYPos'

LOCATIONZPOS = 'LocationZPos'

PERFORATIONDIAMETER = 'PerforationDiameter'

PERFORATIONLENGTH = 'PerforationLength'

PERFORATIONSHOTDENSITY = 'PerforationShotDensity'

PERMEABILITYX = 'PermeabilityX'

PERMEABILITYY = 'PermeabilityY'

PERMEABILITYZ = 'PermeabilityZ'

RESERVOIREXTENT = 'ReservoirExtent'

RESERVOIRTHICKNESS = 'ReservoirThickness'

RESERVOIRXDIM = 'ReservoirXDim'

RESERVOIRYDIM = 'ReservoirYDim'

SPECIFIEDSKIN = 'SpecifiedSkin'

USEDISTRIBUTEDPI = 'UseDistributedPI'

WELLLENGTH = 'WellLength'

WELLCOMPLETIONTYPE = 'WellCompletionType'

class IPRPSSBabuOdeh
Bases: DistributedCompletionModel

class IPRSSJoshi
Bases: DistributedCompletionModel

class IPRHorizontalPI
Bases: DistributedCompletionModel

class EngineKeywords
Bases: DownholeOrSurfaceComponent

KEYWORDS = 'Keywords'

class ESP
Bases: DownholeComponent

SERIES = 'Series'

USESTAGEBYSTAGECALC = 'UseStageByStageCalc'

BASEFREQUENCY = 'BaseFrequency'

CASINGID = 'CasingID'

OPERATINGPRODUCTIONRATE = 'OperatingProductionRate'

OPERATINGFREQUENCY = 'OperatingFrequency'

DIAMETER = 'Diameter'

GASSEPARATOREFFICIENCY = 'GasSeparatorEfficiency'

HASGASSEPARATOR = 'HasGasSeparator'

HEADFACTOR = 'HeadFactor'

MANUFACTURER = 'Manufacturer'

MAXFLOWRATE = 'MaxFlowRate'

MINFLOWRATE = 'MinFlowRate'

MODEL = 'Model'

NUMBERSTAGES = 'NumberStages'

USEVISCOSITYCORRECTION = 'UseViscosityCorrection'

POWER = 'Power'

USEPOWER = 'UsePower'

PERMANENTMAGNETMOTOR = 'PermanentMagnetMotor'

NUMBEROFPOLES = 'NumberOfPoles'

OVERRIDESLIPPAGEFACTOR = 'OverrideSlippageFactor'

SLIPPAGEFACTOR = 'SlippageFactor'

FLOWRATEFACTOR = 'FlowrateFactor'

POWERFACTOR = 'PowerFactor'

COEFFICIENTA = 'CoefficientA'

COEFFICIENTB = 'CoefficientB'

POWERCORRECTION = 'PowerCorrection'

ISPOWERCORRECTIONCALCULATED = 'IsPowerCorrectionCalculated'

CABLELENGTHBELOWPUMP = 'CableLengthBelowPump'

RECOMBINEGAS = 'RecombineGas'

class MotorCoefficients
Bases: `object`

PFValues = 'PFValues'

AMPValues = 'AMPValues'

EFFValues = 'EFFValues'

class MotorCatalogData
Bases: `object`

MANUFACTURER = 'MotorManufacturer'

MOTORNAME = 'MotorName'

NPPOWER = 'NPPower'

NPVOLTAGE = 'NPVoltage'

NPAMPERAGE = 'NPAmperage'

FLOOREFFICIENCY = 'FloorEfficiency'

FLOORPOWERFACTOR = 'FloorPowerFactor'

class CableCatalogData
Bases: `object`

NAME = 'CableName'

VDROP = 'VDrop'

MAXAMPS = 'MaxAmps'

class ESPMotorCoefficient
Bases: `object`

AMPVALUE = 'AMPValue'

PFVALUE = 'PFValue'

EFFVALUE = 'EFFValue'

class Expander
Bases: SurfaceComponent, SharedPumpParameters

ROUTE = 'Route'

class IPRFetkovitch
Bases: `object`

ABSOLUTEOPENFLOWPOTENTIAL = 'AbsoluteOpenFlowPotential'

NEXPONENT = 'NExponent'

class FlowControlValve
Bases: DownholeComponent

USEGENERICMODE = 'UseGenericMode'

SIZECALC = 'SizeCalc'

CHOKEAREA = 'ChokeArea'

PORTDIAMETER = 'PortDiameter'

PORTSNUMBER = 'PortsNumber'

SUBCRITICALCORRELATION = 'SubCriticalCorrelation'

CALCULATECRITICALPRESSURERATIO = 'CalculateCriticalPressureRatio'

CRITICALPRESSURERATIO = 'CriticalPressureRatio'

LIQUIDFLOWCOEFFICIENT = 'LiquidFlowCoefficient'

GASFLOWCOEFFICIENT = 'GasFlowCoefficient'

MAXIMUMFLOWRATETYPE = 'MaximumFlowRateType'

MAXIMUMLIQUIDRATE = 'MaxLiquidFlowThroughValve'

MAXIMUMWATERRATE = 'MaxWaterFlowThroughValve'

MAXIMUMGASRATE = 'MaxGasFlowThroughValve'

MAXIMUMMASSRATE = 'MaxMassFlowThroughValve'

class ValveCatalogData
Bases: `object`

MANUFACTURER = 'Manufacturer'

TYPE = 'Type'

MODEL = 'Model'

DIAMETER = 'Diameter'

POSITION = 'Position'

class ValveCoefficient
Bases: `object`

POSITION = 'Position'

OPENINGAREA = 'OpeningArea'

LIQUIDFLOWCOEFFICIENT = 'ValveLiquidFlowCoefficient'

GASFLOWCOEFFICIENT = 'ValveGasFlowCoefficient'

class Flowline
Bases: SurfaceComponent

SHOWASRISER = 'ShowAsRiser'

DETAILEDMODEL = 'DetailedModel'

USEGISDATA = 'UseGISData'

UNDULATIONRATE = 'UndulationRate'

ENTERSURVEYLENGTH = 'EnterSurveyLength'

MEASUREDDISTANCE = 'MeasuredDistance'

HORIZONTALDISTANCE = 'HorizontalDistance'

ELEVATIONDIFFERENCE = 'ElevationDifference'

SEABEDDEPTH = 'SeabedDepth'

PLATFORMHEIGHT = 'PlatformHeight'

AMBIENTTEMPERATURE = 'AmbientTemperature'

AMBIENTAIRTEMPERATURE = 'AmbientAirTemperature'

AMBIENTWATERTEMPERATURE = 'AmbientWaterTemperature'

AMBIENTTEMPERATUREOPTIONS = 'AmbientTemperatureOptions'

AMBIENTFLUIDTYPE = 'AmbientFluidType'

WATERINTERPOLATIONMETHOD = 'WaterInterpolationMethod'

DEVIATIONSURVEYCALC = 'DeviationSurveyCalc'

ISFLIPPED = 'IsFlipped'

GEOTHERMALSURVEYINDEX = 'GeothermalSurveyIndex'

USEGLOBALSETTINGS = 'UseGlobalSettings'

ISDOWNCOMER = 'IsDowncomer'

USEENVIRONMENTALDATA = 'UseEnvironmentalData'

SURFACETEMPERATURE = 'SurfaceTemperature'

DEPTHATSTART = 'DepthAtStart'

USEDEPTH = 'UseDepth'

OVERRIDECORROSION = 'OverrideCorrosion'

ANNULUSFLOW = 'AnnulusFlow'

INNERDIAMETER = 'InnerDiameter'

LENGTH = 'Length'

ROUGHNESS = 'Roughness'

WALLTHICKNESS = 'WallThickness'

INNERPIPEOUTSIDEDIAMETER = 'InnerPipeOutsideDiameter'

OUTERPIPEINSIDEDIAMETER = 'OuterPipeInsideDiameter'

OUTERPIPEWALLTHICKNESS = 'OuterPipeWallThickness'

CATALOGNAME = 'CatalogName'

CATALOGLABEL = 'CatalogLabel'

ENTEROD = 'EnterOD'

GEOMETRYPROFILE = 'GeometryProfile'

GEOTHERMALPROFILE = 'FlowlineGeothermalProfile'

class HeatTransfer
Bases: `object`

GROUNDCONDUCTIVITY = 'GroundConductivity'

INCLUDEINSIDEFILMCOEFF = 'IncludeInsideFilmCoeff'

ISUCALCULATED = 'IsUCalculated'

PIPEBURIALDEPTH = 'PipeBurialDepth'

PIPECONDUCTIVITY = 'PipeConductivity'

SURROUNDINGFLUIDVELOCITY = 'SurroundingFluidVelocity'

USETHERMALSURVEY = 'UseThermalSurvey'

UCOEFFUSER = 'UCoeffUser'

UCOEFFUSERAIR = 'UCoeffUserAir'

UCOEFFUSERWATER = 'UCoeffUserWater'

UTYPE = 'UType'

UTYPEAIR = 'UTypeAir'

UTYPEWATER = 'UTypeWater'

class FluidComponent
Bases: ModelComponent

MOLECULARWEIGHT = 'MolecularWeight'

TCRIT = 'Tcrit'

TBOIL = 'Tboil'

TMELT = 'Tmelt'

PCRIT = 'Pcrit'

VCRIT = 'Vcrit'

ZCRIT = 'Zcrit'

VCRITVISCOSITY = 'VcritViscosity'

ACF = 'Acf'

PARACHOR = 'Parachor'

OMEGAA = 'OmegaA'

OMEGAB = 'OmegaB'

REFERENCEDENSITY = 'ReferenceDensity'

EOSVOLUMESHIFT = 'EoSVolumeShift'

SPECIFICGRAVITY = 'SpecificGravity'

WATSONKFACTOR = 'WatsonKFactor'

HEATVAPOURISATION = 'HeatVapourisation'

CALORIFICVALUE = 'CalorificValue'

THERMEXPCOEFF = 'ThermExpCoeff'

HYDROCARBONFORM = 'HydrocarbonForm'

ISUSERDEFINED = 'IsUserDefined'

THERMALCOEFFICIENT0 = 'ThermalCoefficient0'

THERMALCOEFFICIENT1 = 'ThermalCoefficient1'

THERMALCOEFFICIENT2 = 'ThermalCoefficient2'

THERMALCOEFFICIENT3 = 'ThermalCoefficient3'

THERMALCOEFFICIENT4 = 'ThermalCoefficient4'

THERMALCOEFFICIENT5 = 'ThermalCoefficient5'

THERMALCOEFFICIENT6 = 'ThermalCoefficient6'

class FluidComponentFraction
Bases: `object`

SPECIFIEDFRACTION = 'SpecifiedFraction'

TUNEDFRACTION = 'TunedFraction'

COMPONENT = 'Component'

class IPRForchheimer
Bases: `object`

COEFFICIENTA = 'CoefficientA'

COEFFICIENTF = 'CoefficientF'

class GasLiftInjection
Bases: DownholeComponent

GASLIFTTYPE = 'GasLiftType'

GASRATE = 'GasRate'

GLR = 'GLR'

GLRINCREASE = 'GLRIncrease'

VALVEDIAMETER = 'ValveDiameter'

MANUFACTURER = 'Manufacturer'

SERIES = 'Series'

VALVETYPE = 'ValveType'

VALVESIZE = 'ValveSize'

PORTSIZE = 'PortSize'

PORTAREA = 'PortArea'

BELLOWAREA = 'BellowArea'

DISCHARGECOEFFICIENT = 'DischargeCoefficient'

DISCHARGETOFULLYOPEN = 'DischargeToFullyOpen'

PTRO = 'Ptro'

VALVECHOKE = 'ValveChoke'

SPRINGPRESSURE = 'SpringPressure'

TUNINGFACTOR = 'TuningFactor'

class GenericEquipment
Bases: SurfaceComponent

DISCHARGEPRESSURE = 'DischargePressure'

DISCHARGETEMPERATURE = 'DischargeTemperature'

DUTY = 'Duty'

PRESSUREDROP = 'PressureDrop'

PRESSURERATIO = 'PressureRatio'

PRESSURESPEC = 'PressureSpec'

ROUTE = 'Route'

TEMPERATUREDIFFERENTIAL = 'TemperatureDifferential'

TEMPERATURESPEC = 'TemperatureSpec'

class Pump
Bases: SurfaceComponent, SharedPumpParameters, SharedPumpCatalogParameters

ROUTE = 'Route'

DESIGNPRODUCTIONRATE = 'DesignProductionRate'

MAXFLOWRATE = 'MaxFlowRate'

MINFLOWRATE = 'MinFlowRate'

NUMBERSTAGES = 'NumberStages'

USEVISCOSITYCORRECTION = 'UseViscosityCorrection'

BASESTAGES = 'BaseStages'

HEADFACTOR = 'HeadFactor'

class GeographicSurvey
Bases: `object`

LATITUDE = 'Latitude'

LONGITUDE = 'Longitude'

ISVERTEX = 'IsVertex'

class GravelPack
Bases: `object`

GRAVELCASINGID = 'GravelCasingId'

GRAVELPERMEABILITY = 'GravelPermeability'

GRAVELSCREENSIZE = 'GravelScreenSize'

GRAVELTUNNELLENGTH = 'GravelTunnelLength'

class HeatExchanger
Bases: `object`

DISCHARGEPRESSURE = 'DischargePressure'

DISCHARGETEMPERATURE = 'DischargeTemperature'

DUTY = 'Duty'

PRESSUREDROP = 'PressureDrop'

PRESSURESPEC = 'PressureSpec'

TEMPERATUREDIFFERENTIAL = 'TemperatureDifferential'

TEMPERATURESPEC = 'TemperatureSpec'

class Injector
Bases: DownholeOrSurfaceComponent, AssociatedToFluid

GASFLOWRATE = 'GasFlowRate'

INJECTEDFLUID = 'InjectedFluid'

LIQUIDFLOWRATE = 'LiquidFlowRate'

MASSFLOWRATE = 'MassFlowRate'

TEMPERATURE = 'Temperature'

FLOWRATETYPE = 'FlowrateType'

USEGASRATIO = 'UseGasRatio'

USEWATERRATIO = 'UseWaterRatio'

GOR = 'GOR'

OGR = 'OGR'

GLR = 'GLR'

LGR = 'LGR'

GWR = 'GWR'

WGR = 'WGR'

WATERCUT = 'WaterCut'

USEFLUIDOVERRIDES = 'UseFluidOverrides'

OVERRIDESINITIALIZED = 'OverridesInitialized'

class IPRBackPressure
Bases: `object`

CONSTANTC = 'ConstantC'

SLOPEN = 'SlopeN'

class IPRHydraulicFracture
Bases: `object`

FRACTUREHALFLENGTH = 'FractureHalfLength'

FRACTUREPERMEABILITY = 'FracturePermeability'

FRACTUREWIDTH = 'FractureWidth'

ISGASMODEL = 'IsGasModel'

POROSITY = 'Porosity'

RESERVOIRPERMEABILITY = 'ReservoirPermeability'

RESERVOIRRADIUS = 'ReservoirRadius'

RESERVOIRTHICKNESS = 'ReservoirThickness'

TIME = 'Time'

TOTALCOMPRESSIBILITY = 'TotalCompressibility'

USETRANSIENTMODEL = 'UseTransientModel'

USEVOGELBELOWBUBBLEPOINT = 'UseVogelBelowBubblepoint'

USEVOGELWATERCUTCORRECTION = 'UseVogelWaterCutCorrection'

class IPRPIModel
Bases: `object`

GASPI = 'GasPI'

ISGASMODEL = 'IsGasModel'

LIQUIDPI = 'LiquidPI'

USEVOGELBELOWBUBBLEPOINT = 'UseVogelBelowBubblepoint'

USEVOGELWATERCUTCORRECTION = 'UseVogelWaterCutCorrection'

class IPRJones
Bases: `object`

GASCOEFFICIENTA = 'GasCoefficientA'

GASCOEFFICIENTB = 'GasCoefficientB'

ISGASMODEL = 'IsGasModel'

LIQUIDCOEFFICIENTA = 'LiquidCoefficientA'

LIQUIDCOEFFICIENTB = 'LiquidCoefficientB'

class Source
Bases: SurfaceComponent, AssociatedToFluid

USEPQCURVE = 'UsePQCurve'

PQTYPE = 'PQType'

TEMPERATURE = 'Temperature'

SELECTEDRATETYPE = 'SelectedRateType'

GASFLOWRATE = 'GasFlowRate'

LIQUIDFLOWRATE = 'LiquidFlowRate'

MASSFLOWRATE = 'MassFlowRate'

PRESSURE = 'Pressure'

USEGASRATIO = 'UseGasRatio'

USEWATERRATIO = 'UseWaterRatio'

GOR = 'GOR'

OGR = 'OGR'

GLR = 'GLR'

LGR = 'LGR'

GWR = 'GWR'

WGR = 'WGR'

WATERCUT = 'WaterCut'

USEFLUIDOVERRIDES = 'UseFluidOverrides'

OVERRIDESINITIALIZED = 'OverridesInitialized'

PQCURVE = 'PQCurve'

class Junction
Bases: Source

TREATASSOURCE = 'TreatAsSource'

class Liner
Bases: AbstractTubingSection

class MeasurementPoint
Bases: `object`

CONNECTEDTOSTARTEQUIPMENT = 'ConnectedToStartEquipment'

class MFLFluid
Bases: FileBasedFluid

LIQUIDVISCOSITYCALC = 'LiquidViscosityCalc'

USERWATERCUTCUTOFF = 'UserWatercutCutOff'

USEBRAUNERULLMANEQUATION = 'UseBraunerUllmanEquation'

VANDUSERK1 = 'VandUserk1'

VANDUSERK2 = 'VandUserk2'

RICHARDSONKOIW = 'Richardsonkoiw'

RICHARDSONKWIO = 'Richardsonkwio'

USEREMULSIONTABLE = 'UserEmulsionViscosityTable'

class MultiphaseBooster
Bases: SurfaceComponent

TOTALPOWER = 'Power'

DISCHARGEPRESSURE = 'Pressure'

PRESSUREDIFFERENTIAL = 'PressureDifferential'

PRESSURERATIO = 'PressureRatio'

TYPE = 'BoosterType'

class GenericMultiphaseBooster
Bases: MultiphaseBooster

PUMPEFFICIENCY = 'Efficiency'

COMPRESSOREFFICIENCY = 'BoosterEfficiency'

class SharedOneSubseaParameters
Bases: MultiphaseBooster

PUMPMODEL = 'PumpModel'

TUNINGFACTOR = 'TuningFactor'

NUMBEROFBOOSTERSINPARALLEL = 'NumberOfBoostersInParallel'

class OneSubseaMultiphaseBooster
Bases: SharedOneSubseaParameters

SPEEDLIMIT = 'SpeedLimit'

RECIRCULATIONFLOWRATE = 'RecirculationFlowRate'

class OneSubseaWetGasCompressor
Bases: SharedOneSubseaParameters

SPEEDSETPOINT = 'SpeedSetPoint'

UPSTREAMCOOLERMODEL = 'UpstreamCoolerModel'

UPSTREAMCOOLERDUTY = 'UpstreamCoolerDuty'

DOWNSTREAMCOOLERMODEL = 'DownstreamCoolerModel'

DOWNSTREAMCOOLERDUTY = 'DownstreamCoolerDuty'

RECIRCULATIONMASSRATE = 'RecirculationRate'

MAXTEMPERATURE = 'MaxTemperature'

class MultiplierAdder
Bases: SurfaceComponent

ADDER = 'Adder'

SCALER = 'Scaler'

USEASMULTIPLIER = 'UseAsMultiplier'

ADDERRATETYPE = 'AdderRateType'

ADDEDLIQUID = 'AddedLiquid'

ADDEDGAS = 'AddedGas'

ADDEDMASS = 'AddedMass'

class OpenHole
Bases: AbstractTubingSection

class Packer
Bases: DownholeComponent

class PCP
Bases: DownholeComponent

BASESPEED = 'BaseSpeed'

CASINGID = 'CasingID'

OPERATINGPRODUCTIONRATE = 'OperatingProductionRate'

OPERATINGSPEED = 'OperatingSpeed'

DIAMETER = 'Diameter'

GASSEPARATOREFFICIENCY = 'GasSeparatorEfficiency'

HASGASSEPARATOR = 'HasGasSeparator'

HEADFACTOR = 'HeadFactor'

MANUFACTURER = 'Manufacturer'

NOMINALFLOWRATE = 'NominalFlowRate'

MODEL = 'Model'

USEVISCOSITYCORRECTION = 'UseViscosityCorrection'

POWER = 'Power'

USEPOWER = 'UsePower'

SPEEDFACTOR = 'SpeedFactor'

SLIPFACTOR = 'SlipFactor'

FLOWRATEFACTOR = 'FlowrateFactor'

POWERFACTOR = 'PowerFactor'

ISTOPDRIVE = 'IsTopDrive'

RODDIAMETER = 'RodDiameter'

class PVTFluid
Bases: FileBasedFluid

class RodPump
Bases: DownholeComponent

GASSEPARATOREFFICIENCY = 'GasSeparatorEfficiency'

HASGASSEPARATOR = 'HasGasSeparator'

HASGASRECOMBINEDATWELLHEAD = 'HasGasRecombinedAtWellHead'

NOMINALFLOWRATE = 'NominalFlowRate'

USEVISCOSITYCORRECTION = 'UseViscosityCorrection'

MAXDP = 'MaxDP'

MAXPOWER = 'MaxPower'

RODDIAMETER = 'RodDiameter'

BASISTYPE = 'BasisType'

SLIPECOEFFICIENT = 'SlipCoefficient'

PUMPEFFICIENCY = 'PumpEfficiency'

STROKEPERMINUTE = 'StrokesPerMinute'

STROKELENGTH = 'StrokeLength'

PLUNGERDIAMTER = 'PlungerDiameter'

class SinglePhaseSeparator
Bases: DownholeComponent

EFFICIENCY = 'Efficiency'

SEPARATEDFLUID = 'SeparatedFluid'

class Sink
Bases: SurfaceComponent

GASFLOWRATE = 'GasFlowRate'

LIQUIDFLOWRATE = 'LiquidFlowRate'

MASSFLOWRATE = 'MassFlowRate'

PRESSURE = 'Pressure'

FLOWRATETYPE = 'FlowrateType'

class SlidingSleeve
Bases: DownholeComponent

ISOPEN = 'IsOpen'

class SpotReport
Bases: DownholeOrSurfaceComponent

FLOWMAP = 'FlowMap'

PHASEENVELOPE = 'PhaseEnvelope'

COMPOSITIONDETAILS = 'CompositionDetails'

STOCKTANKFLUID = 'StockTankFluid'

FLOWINGFLUID = 'FlowingFluid'

CUMULATIVEVALUES = 'CumulativeValues'

MULTIPHASEFLOWVALUES = 'MultiPhaseFlowValues'

SLUGGINGVALUES = 'SluggingValues'

PIGGINGVALUES = 'PiggingValues'

HEATTRANSFERVALUES = 'HeatTransferValues'

CUSTOM = 'Custom'

CUSTOMREPORTNAME = 'CustomReportName'

CUSTOMKEYWORDS = 'CustomKeywords'

class CompositionDetailsReport
Bases: `object`

GENERALDATA = 'General data'

PHASEFRACTIONS = 'Phase fractions'

COMPONENTTABLE = 'Component table'

SpotReportSectionMapping = {'Composition details': 'CompositionDetails', 'Cumulative values': 'CumulativeValues', 'Flow map': 'FlowMap', 'Flowing fluid properties': 'FlowingFluid', 'Heat transfer values': 'HeatTransferValues', 'Multiphase flow values': 'MultiPhaseFlowValues', 'Phase envelope': 'PhaseEnvelope', 'Pigging values': 'PiggingValues', 'Slugging values': 'SluggingValues', 'Stock tank fluid properties': 'StockTankFluid'}

SpotReportDisplayName = {'CompositionDetails': 'Composition details', 'CumulativeValues': 'Cumulative values', 'FlowMap': 'Flow map', 'FlowingFluid': 'Flowing fluid properties', 'HeatTransferValues': 'Heat transfer values', 'MultiPhaseFlowValues': 'Multiphase flow values', 'PhaseEnvelope': 'Phase envelope', 'PiggingValues': 'Pigging values', 'SluggingValues': 'Slugging values', 'StockTankFluid': 'Stock tank fluid properties'}

class SubsurfaceSafetyValve
Bases: DownholeComponent

BEANID = 'BeanID'

class Study
Bases: `object`

NAME = 'Name'

DESCRIPTION = 'Description'

class AbstractTask
Bases: `object`

TASKNAME = 'Name'

DESCRIPTION = 'Description'

STUDY = 'Study'

USEPHASERATIO = 'UsePhaseRatio'

FLOWRATECONDITION = 'FlowRateCondition'

FLOWRATECONDITIONTEMPERATURE = 'FlowRateConditionTemperature'

FLOWRATECONDITIONPRESSURE = 'FlowRateConditionPressure'

class SingleBranchSimulation
Bases: AbstractTask

PRODUCER = 'Producer'

BRANCHTERMINATOR = 'BranchTerminator'

SENSITIVITYVARIABLES = 'SensitivityVariables'

SENSITIVITYVARIABLE = 'SensitivityVariable'

class SensitivityVariable
Bases: `object`

COMPONENT = 'Component'

VARIABLE = 'Variable'

VALUES = 'Values'

APPLYALL = 'ApplyAll'

TYPE = 'Type'

class VfpTablesSimulation
Bases: SingleBranchSimulation

ARTIFICIALLIFTSENSITIVITY = 'ArtificialLiftSensitivity'

LIQUIDRATESENSITIVITY = 'LiquidRateSensitivity'

GASRATESENSITIVITY = 'GasRateSensitivity'

GORSENSITIVITY = 'GorSensitivity'

GLRSENSITIVITY = 'GlrSensitivity'

OGRSENSITIVITY = 'OgrSensitivity'

LGRSENSITIVITY = 'LgrSensitivity'

WATERCUTSENSITIVITY = 'WatercutSensitivity'

WGRSENSITIVITY = 'WgrSensitivity'

GWRSENSITIVITY = 'GwrSensitivity'

OUTLETPRESSURESENSITIVITY = 'OutletPressureSensitivity'

RESERVOIRSIMULATOR = 'TableType'

TABLENUMBER = 'TableNumber'

INCLUDETEMPERATURE = 'IncludeTemperature'

BOTTOMHOLEDATUMDEPTH = 'WellHeadDepth'
VFPTABLETYPE is for source only(no need for well)

Type:
Note

VFPTABLETYPE = 'GenerateInjectionTable'

RATETYPE = 'RateType'

GLRATIOTYPE = 'GLRatioType'

GWRATIOTYPE = 'GWRatioType'

GOR = 'GOR'

GLR = 'GLR'

GWR = 'GWR'

WGR = 'WGR'

WATERCUT = 'WaterCut'

LIQUIDFLOWRATE = 'LiquidFlowRate'

GASFLOWRATE = 'GasFlowRate'

class NetworkSimulation
Bases: AbstractTask

USESURFACEBOUNDARYCONDITIONS = 'UseSurfaceBoundaryConditions'

class NetworkOptimizerSimulation
Bases: AbstractTask

class ObjectiveFunctionTypes
Bases: `object`

MAXOILRATE = 'MaxOilRate'

MAXLIQUIDRATE = 'MaxLiquidRate'

MAXPRODUCEDGASRATE = 'MaxProducedGasRate'

MAXTOTALGASRATE = 'MaxTotalGasRate'

MINOILRATE = 'MinOilRate'

MINLIQUIDRATE = 'MinLiquidRate'

MINPRODUCEDGASRATE = 'MinProducedGasRate'

MINTOTALGASRATE = 'MinTotalGasRate'

MINPOWER = 'MinPower'

class InjectionGasrateTypes
Bases: `object`

FIXEDINJECTIONGASRATE = 'FixedInjectionGasrate'

MAXIMUMINJECTIONGASRATE = 'MaximumInjectionGasrate'

class GenerateCurvesTypes
Bases: `object`

ALWAYS = 'Always'

SELECTEDWELLS = 'SelectedWells'

class PowerTypes
Bases: `object`

FIXEDPOWER = 'FixedPower'

MAXIMUMPOWER = 'MaximumPower'

class RateTypes
Bases: `object`

FIXEDLIQUIDRATE = 'FixedLiquidrate'

FIXEDGASRATE = 'FixedGasrate'

FIXEDOILRATE = 'FixedOilrate'

class ControlTypes
Bases: `object`

GASLIFT = 'Gaslift'

ESP = 'Esp'

PCP = 'Pcp'

CHOKE = 'Choke'

class Options
Bases: `object`

class WellCurveParameters
Bases: `object`

CONTROLVALUESPERCURVE = 'ControlValuesPerCurve'

PRESSUREVALUESPERWELL = 'PressureValuesPerWell'

MINIMUMCHOKEBEANSIZE = 'MinBeanSizePerWell'

MAXIMUMCHOKEBEANSIZE = 'MaxBeanSizePerWell'

MINIMUMESPFREQUENCY = 'MinFrequencyPerWell'

MAXIMUMESPFREQUENCY = 'MaxFrequencyPerWell'

MINIMUMPCPSPEED = 'MinSpeedPerWell'

MAXIMUMPCPSPEED = 'MaxSpeedPerWell'

MINIMUMGASLIFTPERWELL = 'MinGasliftPerWell'

MAXIMUMGASLIFTPERWELL = 'MaxGasliftPerWell'

REGENERATECURVES = 'GenerateCurvesType'

class NetworkSolver
Bases: `object`

LINKTOOPTIMIZERTOLERANCE = 'LinkToTolerance'

NATWORKFAILURETOLERANCE = 'FailureTolerance'

class Search
Bases: `object`

CONSTRAINTSCONVEGENCETOLERANCE = 'SearchConverganceTolerance'

MAXIMUMGASRATE = 'SearchMinGasRate'

GASRATEMARGINALGRADIENT = 'SearchMarginGradient'

MINIMUMPOWER = 'SearchMinPower'

POWERMARGINALGRADIENT = 'SearchPowerMarginGradient'

class Initialization
Bases: `object`

UseLastKnownWellheadPressure = 'UseLastKnownWellheadPressures'

InitialWellheadPressure = 'InitialWellheadPressure'

UseCurrentControlParameters = 'UseCurrentControlParameters'

class Optimization
Bases: `object`

CONSTRAINTSCONVERGENCETOLERANCE = 'ToleranceConstraint'

PRESSURECONVERGENCETOLERANCE = 'TolerancePressure'

CONSTRAINTSMAXITERATIONS = 'MaxIterationsConstraint'

PRESSUREMAXITERATIONS = 'MaxIterationsPressure'

DAMPINGTHRESHOLD = 'DampingThreshold'

DAMPINGFACTOR = 'DampingFactor'

STABLEFLOWMARGIN = 'StableFlowMargin'

ACCELERATEBRANCHCONSTRAINTS = 'AccelerateBranchConstraints'

MAXIMUMOPTIMIZERRESTARTS = 'MaximumRestarts'

VERBOSEMESSAGES = 'VerboseMessages'

class OptimizationControl
Bases: `object`

OBJECTIVEFUNCTION = 'ObjectiveFunction'

class ControlVariables
Bases: `object`

CHOKEBEANSIZE = 'ChokeBeanSize'

GASLIFTRATE = 'GasliftRate'

ESPFREQUENCY = 'ESPFrequency'

PCPSPEED = 'PCPSpeed'

class OptimizationTargets
Bases: `object`

INJECTIONTYPE = 'InjectionType'

INJECTIONRATE = 'InjectionGasRate'

POWERTYPE = 'PowerType'

POWER = 'Power'

LIQUIDRATETYPE = 'RateType'

LIQUIDRATE = 'LiquidRate'

class GlobalConstraints
Bases: `object`

MINIMUMTOTALGASRATE = 'MinimumTotalGasRate'

MAXIMUMTOTALGASRATE = 'MaximumTotalGasRate'

MAXIMUMPRODUCEDGASRATE = 'MaximumProducedGasRate'

MAXIMUMWATERRATE = 'MaximumWaterRate'

MAXIMUMLIQUIDRATE = 'MaximumLiquidRate'

MAXIMUMOILRATE = 'MaximumOilRate'

MAXIMUMTOTALGOR = 'MaximumTotalGOR'

MAXIMUMCO2 = 'MaximumCO2'

MAXIMUMH2S = 'MaximumH2S'

class Scope
Bases: `object`

IGNOREGLOBALCONSTRAINS = 'IgnoreGlobalConstrains'

IGNORELOCALCONSTRAINS = 'IgnoreLocalConstrains'

class GLDiagnosticsSimulation
Bases: SingleBranchSimulation

OUTLETPRESSURE = 'OutletPressure'

DIAGNOSTICSTYPE = 'DiagnosticsType'

THROTTLING = 'ThrottlingOption'

INJECTIONGRADIENT = 'PressureGradientType'

TARGETINJECTIONRATE = 'TargetInjectionRate'

SURFACEINJECTIONTEMPERATURE = 'SurfaceGasTemperature'

SURFACEINJECTIONPRESSURE = 'SurfaceGasPressure'

class PTProfileSimulation
Bases: SingleBranchSimulation

CALCULATEDVARIABLE = 'CalculationVariableType'

CUSTOMVARIABLE = 'CalculationVariable'

FLOWRATETYPE = 'FlowRateType'

GASFLOWRATE = 'GasFlowRate'

LIQUIDFLOWRATE = 'LiquidFlowRate'

MASSFLOWRATE = 'MassFlowRate'

INLETPRESSURE = 'InletPressure'

OUTLETPRESSURE = 'OutletPressure'

class CustomVariable
Bases: `object`

COMPONENT = 'Component'

VARIABLE = 'Variable'

MINVALUE = 'MinValue'

MAXVALUE = 'MaxValue'

ISDIRECTPROPORTIONALITY = 'IsDirectProportionality'

class SystemAnalysisSimulation
Bases: PTProfileSimulation

SENSITIVITYMETHOD = 'SensitivityMethod'

class WellPerformanceCurvesSimulation
Bases: SingleBranchSimulation

FLOWRATEPOINTS = 'FlowratePoints'
Deprecated, please use SensitivityVariable instead

class SENSITIVITYVARIABLE
Bases: `object`

COMPONENT = 'Component'

VARIABLE = 'Variable'

VALUES = 'Values'

APPLYALL = 'ApplyAll'

class NodalAnalysisSimulation
Bases: SingleBranchSimulation

OUTLETPRESSURE = 'OutletPressure'

NODALMEASUREMENTPOINT = 'NodalMeasurementPoint'

MAXOUTFLOWPRESSURE = 'MaxOutflowPressure'

MAXFLOWRATETYPE = 'MaxFlowRateType'

MAXGASRATE = 'MaxGasRate'

MAXLIQUIDRATE = 'MaxLiquidRate'

MAXMASSRATE = 'MaxMassRate'

INFLOWPOINTS = 'InflowPoints'

OUTFLOWPOINTS = 'OutflowPoints'

LIMITINFLOW = 'LimitInflow'

LIMITOUTFLOW = 'LimitOutflow'

class ThreePhaseSeparator
Bases: SurfaceComponent

GASOILEFFICIENCY = 'GasOilEfficiency'

WATEROILEFFICIENCY = 'WaterOilEfficiency'

PRESSURE = 'Pressure'

PRODUCTFLUID = 'ProductFluid'

class Tubing
Bases: AbstractTubingSection

class TwoPhaseSeparator
Bases: SurfaceComponent

EFFICIENCY = 'Efficiency'

PRESSURE = 'Pressure'

PRODUCTIONSTREAM = 'ProductionStream'

DISCARDEDSTREAM = 'DiscardedStream'

class IPRVogel
Bases: `object`

ABSOLUTEOPENFLOWPOTENTIAL = 'AbsoluteOpenFlowPotential'

VOGELCOEFFICIENT = 'VogelCoefficient'

class WaterTempVelocitySurvey
Bases: `object`

ISGLOBAL = 'IsGlobal'

class GasliftSensitivity
Bases: `object`

COMPONENTNAME = 'Gas lift data'

SURFACEGASTEMPERATURE = 'SurfaceGasTemperature'

SURFACEGASPRESSURE = 'SurfaceGasPressure'

TARGETINJECTIONRATE = 'TargetInjectionRate'

MINIMUMINJECTIONRATE = 'MinimumInjectionRate'

MAXIMUMINJECTIONRATE = 'MaximumInjectionRate'

MINVALVEINJECTIONDP = 'MinValveInjectionDP'

class Well
Bases: SurfaceComponent, AssociatedToFluid, CanBeTemplate

GASFLOWRATE = 'GasFlowRate'

LIQUIDFLOWRATE = 'LiquidFlowRate'

MASSFLOWRATE = 'MassFlowRate'

FLOWRATETYPE = 'FlowRateType'

ISINJECTION = 'IsInjection'

ISSIMPLE = 'IsSimple'

CHECKVALVESETTING = 'CheckValveSetting'

WELLHEADDEPTH = 'WellheadDepth'

AMBIENTTEMPERATURE = 'AmbientTemperature'

USEGASLIFTVALVE = 'UseGasliftValve'

ALHANATICHECK = 'AlhanatiCheck'

SURFACEGASTEMPERATURE = 'SurfaceGasTemperature'

SURFACEGASPRESSURE = 'SurfaceGasPressure'

TARGETINJECTIONRATE = 'TargetInjectionRate'

MINIMUMINJECTIONRATE = 'MinimumInjectionRate'

MAXIMUMINJECTIONRATE = 'MaximumInjectionRate'

MINVALVEINJECTIONDP = 'MinValveInjectionDP'

GASLIFTINPUTOPTION = 'GasLiftInputOption'

GASSPECIFICGRAVITY = 'GasSpecificGravity'

TUNINGFACTOR = 'TuningFactor'

TESTRACKTEMPERATURE = 'TestRackTemperature'

NITROGENCORRECTIONTYPE = 'NitrogenCorrectionType'

TRAJECTORY = 'Trajectory'

GEOTHERMALPROFILE = 'BoreholeGeothermalProfile'

COMMENTS = 'Comments'

WELLOUTLETEQUIPMENT = 'WellOutletEquipment'

ISMULTIPOINTING = 'IsMultiPointing'

DIAGNOSTICSTYPE = 'DiagnosticsType'

THROTTLINGOPTION = 'ThrottlingOption'

PRESSUREGRADIENTTYPE = 'PressureGradientType'

OVERRIDECORROSION = 'OverrideCorrosion'

TYPE = 'WellType'

TUBINGCONFIGURATION = 'TubingConfig'

ISINJECTIONTHROUGHOUTERTUBING = 'IsInjectionThroughOuterTubing'

class HeatTransfer
Bases: `object`

UVALUEINPUTOPTION = 'HeatTransferMethod'

UCOEFF = 'UCoeff'

USEWELLHEADAMBIENTTEMPERATURE = 'UseWellHeadAmbientTemperature'

PRODUCTIONINJECTIONTIME = 'ProductionInjectionTime'

HEATTRANSFERCOEFFICIENTSTATUS = 'HeatTransferCoefficientStatus'

TUBINGHEADFLUIDTEMPERATURE = 'ProductionFluidMeasuredTemperature'

LONGTUBINGHEADFLUIDTEMPERATURE = 'ProductionFluidMeasuredTemperature'

SHORTTUBINGHEADFLUIDTEMPERATURE = 'ShortTubingProductionFluidMeasuredTemperature'

ISGEOSURVEYDEPTHTVD = 'IsGeoSurveyDepthTVD'

class DeviationSurvey
Bases: `object`

SURVEYTYPE = 'SurveyType'

RELATIVEDEPTHOPTION = 'DeviationRelativeDepth'

DEPENDENTPARAMETER = 'TrajectoryDependantParameter'

CALCULATEUSINGTANGENTIALMETHOD = 'CalculateUsingTangentialMethod'

class NodalPoint
Bases: `object`

NODALTYPE = 'NodalType'

DEPTH = 'Depth'

WELLSTRINGTYPE = 'WellStringType'

EQUIPMENT = 'Equipment'

NAME = 'Name'

class NodalOperatingEnvelopePlot
Bases: `object`

GASFLOWRATE = 'GasFlowrate'

GASFLOWRATEPRESSURE = 'GasFlowratePressure'

OILFLOWRATE = 'OilFlowrate'

OILFLOWRATEPRESSURE = 'OilFlowratePressure'

MASSFLOWRATE = 'MassFlowrate'

MASSFLOWRATEPRESSURE = 'MassFlowratePressure'

LIQUIDFLOWRATE = 'LiquidFlowrate'

LIQUIDFLOWRATEPRESSURE = 'LiquidFlowratePressure'

class GlobalCatalog
Bases: `object`

NAME = 'Name'

CATALOGTYPE = 'CatalogType'

class FlowlineGeometry
Bases: `object`

MEASUREDDISTANCE = 'MeasuredDistance'

HORIZONTALDISTANCE = 'HorizontalDistance'

ELEVATION = 'Elevation'

LATITUDE = 'Latitude'

LONGITUDE = 'Longitude'

ISVERTEX = 'IsVertex'

class GeothermalSurvey
Bases: `object`

MEASUREDDISTANCE = 'MeasuredDistance'

HORIZONTALDISTANCE = 'HorizontalDistance'

TEMPERATURE = 'Temperature'

CURRENTVELOCITY = 'CurrentVelocity'

UCOEFF = 'UCoeff'

THERMALCONDUCTIVITY = 'ThermalConductivity'

DENSITY = 'Density'

SPECIFICHEATCAPACITY = 'SpecificHeatCapacity'

class CoatingHeatTransfer
Bases: `object`

THERMALCONDUCTIVITY = 'ThermalConductivity'

DESCRIPTION = 'Description'

THICKNESS = 'Thickness'

class RelativePermeability
Bases: `object`

WATERSATURATION = 'WaterSaturation'

RELATIVEPERMEABILITYOIL = 'RelativePermeabilityOil'

RELATIVEPERMEABILITYWATER = 'RelativePermeabilityWater'

class WellTrajectory
Bases: `object`

MEASUREDDEPTH = 'MeasuredDepth'

TRUEVERTICALDEPTH = 'TrueVerticalDepth'

INCLINATION = 'Inclination'

AZIMUTH = 'Azimuth'

MAXDOGLEGSEVERITY = 'MaxDogLegSeverity'

class CompletionTestPoint
Bases: `object`

LIQUIDFLOWRATE = 'LiquidFlowRate'

GASFLOWRATE = 'GasFlowRate'

STATICRESERVOIRPRESSURE = 'StaticReservoirPressure'

BOTTOMHOLEFLOWINGPRESSURE = 'BottomHoleFlowingPressure'

class PQCurve
Bases: `object`

GASFLOWRATE = 'GasFlowRate'

LIQUIDFLOWRATE = 'LiquidFlowRate'

MASSFLOWRATE = 'MassFlowRate'

PRESSURE = 'Pressure'

class RiskIndexLimits
Bases: `object`

NEGLIGIBLE = 'Negligible'

LOW = 'Low'

MODERATE = 'Moderate'

HIGH = 'High'

class TpaCorrosionModel
Bases: `object`

OXYGENORBACTERIA = 'OxygenOrBacteria'

PREEXISTINGDAMAGE = 'PreExistingDamage'

POWDERORDEBRIS = 'PowderOrDebris'

PIPEDEPLOYMENTYEAR = 'PipeDeploymentYear'

CORROSIONASSESSMENTYEAR = 'CorrosionAssessmentYear'

class DeWaardCorrosionModel
Bases: `object`

EFFICIENCY = 'Efficiency'

CALCULATEPH = 'CalculatePH'

PHVALUE = 'PHValue'

class Wellstream
Bases: AssociatedToFluid

ISPRODUCTIONFLOWDIRECTION = 'IsProductionFLowDirection'

CHECKVALVESETTINGS = 'CheckValveSetting'

USEPQCURVE = 'UsePQCurve'

TEMPERATURE = 'Temperature'

SELECTEDRATETYPE = 'SelectedRateType'

GASFLOWRATE = 'GasFlowRate'

LIQUIDFLOWRATE = 'LiquidFlowRate'

MASSFLOWRATE = 'MassFlowRate'

PRESSURE = 'Pressure'

USEGASRATIO = 'UseGasRatio'

USEWATERRATIO = 'UseWaterRatio'

GOR = 'GOR'

OGR = 'OGR'

GLR = 'GLR'

LGR = 'LGR'

GWR = 'GWR'

WGR = 'WGR'

WATERCUT = 'WaterCut'

USEFLUIDOVERRIDES = 'UseFluidOverrides'

class WellCalibration
Bases: SingleBranchSimulation

TESTDATA = 'TestData'

USEOILFLUID = 'UseOilFluid'

CALIBRATIONCORRELATIONS = 'CalibrationCorrelations'

class Test
Bases: `object`

NAME = 'Name'

DATE = 'Date'

ISACTIVE = 'IsActive'

COMMENTS = 'Comments'

TESTVALUES = 'Values'

PARAMETERFACTORS = 'ParameterFactors'

class TestData
Bases: `object`

VALUE = 'Value'

class ParameterFactor
Bases: `object`

MINVALUE = 'MinValue'

MAXVALUE = 'MaxValue'

INITIALVALUE = 'InitialValue'

class sixgill.definitions.Constants
Bases: `object`

Enumerated constants used by Pipesim domain model

class WellCalibration
Bases: `object`

Constants for WellCalibration results publishing.

NORMALIZED = 'Normalized'

PARAMETERNAME = 'ParameterName'

CALIBRATE = 'Calibrate'

TESTOBJECTID = '_TestObjectId'

FLUIDTYPE = 'FluidType'

OIL = 'Oil'

GAS = 'Gas'

class Profile
Bases: `object`

Profile result types for well calibration.

ORIGINAL = 'Original'

CALIBRATED = 'Calibrated'

NORMALIZED = 'Normalized'

MEASUREDDATA = 'Measured Data'

class Results
Bases: `object`

Results structure properties.

CASES = 'Cases'

CASENAME = 'CaseName'

MATCHINGQUALITY = 'MatchingQuality'

TUNINGPARAMETERS = 'TuningParameters'

NAME = 'Name'

UNIT = 'Unit'

VARIABLE = 'Variable'

MEASURED = 'Measured'

ORIGINALMODEL = 'OriginalModel'

ORIGINALMODELDIFF = 'OriginalModelDiff'

CALIBRATED = 'Calibrated'

CALIBRATEDDIFF = 'CalibratedDiff'

NORMALIZED = 'Normalized'

NORMALIZEDDIFF = 'NormalizedDiff'

INITIAL = 'Initial'

OPTIMIZED = 'Optimized'

OPTIMIZEDDIFF = 'OptimizedDiff'

PROFILEDATA = 'ProfileData'

class CalibrationMode
Bases: `object`

Black oil calibration mode (SinglePointCalibration.CalibrationMode).

SINGLEPOINT = 'SinglePoint'

MULTIPOINT = 'MultiPoint'

class CalibrationFluidType
Bases: `object`

OIL = 'Oil'

GAS = 'Gas'

class CalibrationCorrelation
Bases: `object`

Row keys for multi-point calibration factor data (names aligned with BlackOilFluid / SinglePointCalibration).

SOLUTIONGAS = 'SolutionGas'

UNDERSATURATEDOILFVFCORR = 'UndersaturatedOilFVFCorr'

LIVEOILFVFCORRELATION = 'LiveOilFVFCorrelation'

UNDERSATURATEDOILVISCOSITYCORR = 'UndersaturatedOilViscosityCorr'

LIVEOILVISCCORRELATION = 'LiveOilViscCorrelation'

DEADOILVISCOSITYCORR = 'DeadOilViscosityCorr'

GASCOMPRESSCORRELATION = 'GasCompressCorrelation'

GASVISCCORRELATION = 'GasViscCorrelation'

CORRELATION = 'Correlation'

MIN = 'Min'

MAX = 'Max'

FACTOR = 'Factor'

class TubingConfiguration
Bases: `object`

SINGLESTRING = 'SingleString'

CONCENTRICTUBING = 'ConcentricTubing'

DUALSTRING = 'DualString'

class WellType
Bases: `object`

Available well types

PRODUCTION = 'Production'

INJECTION = 'Injection'

ADVANCED = 'Advanced'

class Wellstream
Bases: `object`

TOP = 'Top'

MIDDLE = 'Middle'

BOTTOM = 'Bottom'

class BoundaryNode
Bases: `object`

TUBING = 'Tubing'

ANNULUS = 'Annulus'

SHORTTUBING = 'Short tubing'

LONGTUBING = 'Long tubing'

INNERTUBING = 'Inner tubing'

OUTERTUBING = 'Outer tubing'

class ConstraintType
Bases: `object`

GASLIFT = 'Gaslift'

ESP = 'Esp'

PCP = 'Pcp'

CHOKE = 'Choke'

FLOWLINE = 'Flowline'

SINK = 'Sink'

NOCONTROL = 'NoControl'

class WellImportFluidConflict
Bases: `object`

CREATENEW = 'CreateNew'

USEEXISTING = 'UseExisting'

DONTIMPORT = 'DontImport'

class SoilType
Bases: `object`

PEATDRY = 'PeatDry'

PEATWET = 'PeatWet'

PEATICY = 'PeatIcy'

LOAM = 'Loam'

SANDYDRY = 'SandyDry'

SANDYMOIST = 'SandyMoist'

SANDYSOAKED = 'SandySoaked'

CLAYDRY = 'ClayDry'

CLAYMOIST = 'ClayMoist'

CLAYWET = 'ClayWet'

CLAYFROZEN = 'ClayFrozen'

GRAVEL = 'Gravel'

GRAVELSANDY = 'GravelSandy'

LIMESTONE = 'Limestone'

SANDSTONE = 'Sandstone'

ICE = 'Ice'

ICEN40C = 'IceN40C'

SNOWLOOSE = 'SnowLoose'

SNOWHARD = 'SnowHard'

USERDEFINED = 'UserDefined'

class MetoceanDataLocation
Bases: `object`

GULFOFMEXICO = 'GOM'

NORTHSEA = 'NSea'

WESTAFRICA = 'WAfrica'

WESTAUSTRALIA = 'WAustralia'

OFFSHOREBRAZIL = 'OffshoreBrazil'

USERDEFINED = 'UserDefined'

class NetworkSolverMethod
Bases: `object`

AUTOMATIC = 'Automatic'

STANDARD = 'Standard'

ADVANCED = 'Advanced'

class LiveOilFVFCorrelation
Bases: `object`

STANDING = 'Standing'

VASQUEZANDBEGGS = 'VasquezAndBeggs'

KARTOATMODJO = 'Kartoatmodjo'

PETROSKYFARSHAD = 'PetroskyFarshad'

ELSHARKAWY = 'Elsharkawy'

class UndersaturatedOilFVFCorrelation
Bases: `object`

VASQUEZANDBEGGS = 'VasquezAndBeggs'

PETROSKYFARSHAD = 'PetroskyFarshad'

class LiveOilViscCorrelation
Bases: `object`

BEGGSANDROBINSON = 'BeggsAndRobinson'

CHEWANDCONNALY = 'ChewandConnaly'

KARTOATMODJO = 'Kartoatmodjo'

KHAN = 'Khan'

DEGHETTO = 'DeGhetto'

HOSSAIN = 'Hossain'

ELSHARKAWY = 'Elsharkawy'

PETROSKYFARSHAD = 'PetroskyFarshad'

class GasCompressCorrelation
Bases: `object`

STANDING = 'Standing'

HALLANDYARBOROUGH = 'HallAndYarborough'

DRANCHUKROBINSON = 'Robinsonetal'

class GasViscCorrelation
Bases: `object`

LEEETAL = 'Leeetal'

class CharacterizationSystem
Bases: `object`

PVTI = 'PVTi'

DBR = 'DBR'

MULTIFLASH = 'Multiflash'

class BICsCorrelation
Bases: `object`

PVTI = 'PVTi'

OILANDGAS1 = 'OilAndGas1'

OILANDGAS2 = 'OilAndGas2'

OILANDGAS3 = 'OilAndGas3'

OILANDGAS4 = 'OilAndGas4'

class IPRModels
Bases: `object`

IPRBACKPRESSURE = 'IPRBackPressure'

IPRDARCY = 'IPRDarcy'

IPRTRILINEAR = 'IPRTriLinear'

IPRFETKOVITCH = 'IPRFetkovitch'

IPRFORCHHEIMER = 'IPRForchheimer'

IPRHORIZONTALPI = 'IPRHorizontalPI'

IPRHYDRAULICFRACTURE = 'IPRHydraulicFracture'

IPRJONES = 'IPRJones'

IPRPIMODEL = 'IPRPIModel'

IPRPSSBABUODEH = 'IPRPSSBabuOdeh'

IPRSSJOSHI = 'IPRSSJoshi'

IPRVOGEL = 'IPRVogel'

class ErosionModels
Bases: `object`

API14E = 'API14e'

class CorrosionModels
Bases: `object`

DEWAARD1995 = 'deWaard1995'

TPA = 'Tpa'

NONE = 'None'

class CompositionalFluidFlash
Bases: `object`

class PhysicalPropertiesMethod
Bases: `object`

INTERPOLATE = 'Interpolate'

HYBRID = 'Hybrid'

RIGOROUS = 'Rigorous'

class TemperatureEnthalpyMethod
Bases: `object`

INTERPOLATE = 'Interpolate'

HYBRID = 'Hybrid'

RIGOROUS = 'Rigorous'

class SingleComponentSystem
Bases: `object`

YES = 'Yes'

NO = 'No'

AUTOMATIC = 'Automatic'

class MultiphaseFlowCorrelationSource
Bases: `object`

BAKER_JARDINE = 'BJA'

TULSA = 'Tulsa'

OLGAS = 'OLGAS'

TUFFPUNIFIED = 'TUFFP Unified'

LEDAFLOWPM = 'LedaFlow PM'

NEOTEC = 'Neotec'

class MultiphaseFlowCorrelation
Bases: `object`

class BakerJardine
Bases: `object`

ANSARI = 'Ansari'

BEGGSBRILLORIGINAL = 'Beggs & Brill Original'

BEGGSBRILLTAITELDUKLERMAP = 'Beggs & Brill, Taitel Dukler map'

BEGGSBRILLREVISED = 'Beggs & Brill Revised'

BEGGSBRILLREVISEDTAITELDUKLERMAP = 'Beggs & Brill Revised, Taitel Dukler map'

BAKERJARDINEREVISED = 'Baker Jardine Revised'

DUKLERAGAFLANIGAN = 'Dukler, AGA & Flanigan'

DUKLERAGAFLANIGAN_EATONHOLDUP = 'Dukler, AGA & Flanigan (Eaton Holdup)'

MUKHERJEEBRILL = 'Mukherjee & Brill'

NOSLIPASSUMPTION = 'No Slip Assumption'

OLIEMANS = 'Oliemans'

XIAO = 'Xiao'

DUNSROS = 'Duns & Ros'

GOVIERAZIZFOGARASI = 'Govier, Aziz & Fogarasi'

GRAY_MODIFIED = 'Gray (modified)'

GRAY_ORIGINAL = 'Gray (original)'

HAGEDORNBROWN = 'Hagedorn & Brown'

HAGEDORNBROWNDUNSROSMAP = 'Hagedorn & Brown, Duns & Ros map'

ORKISZEWSKI = 'Orkiszewski'

class OLGAS
Bases: `object`

OLGAS20171_2PHASE = 'OLGAS 2017.1 2-Phase'

OLGAS20171_3PHASE = 'OLGAS 2017.1 3-Phase'

OLGAS20171_3PHASEHD = 'OLGAS 2017.1 3-Phase HD'

OLGAS20231_2PHASE = 'OLGAS 2023.1 2-Phase'

OLGAS20231_3PHASE = 'OLGAS 2023.1 3-Phase'

OLGAS20231_3PHASEHD = 'OLGAS 2023.1 3-Phase HD'

OLGAS20251_2PHASE = 'OLGAS 2025.1 2-Phase'

OLGAS20251_3PHASE = 'OLGAS 2025.1 3-Phase'

OLGAS20251_3PHASEHD = 'OLGAS 2025.1 3-Phase HD'

OLGAS20261_2PHASE = 'OLGAS 2026.1 2-Phase'

OLGAS20261_2PHASECO2 = 'OLGAS 2026.1 2-Phase CO2'

OLGAS20261_3PHASE = 'OLGAS 2026.1 3-Phase'

OLGAS20261_3PHASEHD = 'OLGAS 2026.1 3-Phase HD'

class TUFFPUnified
Bases: `object`

TUFFPV20111_3PHASE_DEFAULT = 'TUFFP v. 2011.1 3-Phase (default)'

TUFFPV20111_3PHASE_EMULSIONOVERRIDE = 'TUFFP v. 2011.1 3-Phase (emulsion override)'

TUFFPV20111_2PHASE = 'TUFFP v. 2011.1 2-Phase'

TUFFPV2024_3PHASE = 'TUFFP v. 2024 3-Phase'

class LedaFlowPM
Bases: `object`

LEDAFLOWV14_3PHASE = 'LedaFlow v. 1.4 3-Phase'

LEDAFLOWV14_2PHASE = 'LedaFlow v. 1.4 2-Phase'

LEDAFLOWV22_3PHASE = 'LedaFlow v. 2.2 3-Phase'

LEDAFLOWV22_2PHASE = 'LedaFlow v. 2.2 2-Phase'

class Neotec
Bases: `object`

GREGORY = 'Gregory'

AZIZGOVIERFOGARASI = 'Aziz Govier Fogarasi'

EATONOLIEMANS = 'Eaton Oliemans'

HUGHMARKDUKLER = 'Hughmark Dukler'

XIAOMODFILM = 'Xiao Mod. Film'

GOMEZ = 'Gomez'

GOMEZENHANCED = 'Gomez Enhanced'

class TulsaLegacy
Bases: `object`

BEGGSBRILL = 'Beggs & Brill'

DUNSROS = 'Duns & Ros'

GOVIERAZIZ = 'Govier, Aziz'

HAGEDORNBROWN_REVISED = 'Hagedorn & Brown (Revised)'

HAGEDORNBROWN_ORIGINAL = 'Hagedorn & Brown (Original)'

MUKHERJEEBRILL = 'Mukherjee & Brill'

ORKISZEWSKI = 'Orkiszewski'

DUKLER = 'Dukler'

class NodalAnalysisLimits
Bases: `object`

LIQUIDFLOWRATE = 'LiquidFlowRate'

GASFLOWRATE = 'GasFlowRate'

MASSFLOWRATE = 'MassFlowRate'

class FlowRateCondition
Bases: `object`

STOCKTANK = 'StockTank'

INSITU = 'Flowing'

class TubingPosition
Bases: `object`

POSITIONED = 'Positioned'

CENTRALIZED = 'Centralized'

FLUSHJOINT = 'FlushJoint'

NOTPOSITIONED = 'NotPositioned'

class HeatTransferCoefficient
Bases: `object`

CALCULATE = 'Calculate'

SPECIFY = 'Specify'

class PerforationPosition
Bases: `object`

POSITIONED = 'Positioned'

CENTERED = 'Centered'

ECCENTERED = 'Eccentered'

class PerforationGunPhaseAngle
Bases: `object`

ZERO = 'zero'

P45 = 'p45'

P60 = 'p60'

P72 = 'p72'

P90 = 'p90'

P99 = 'p99'

P120 = 'p120'

P120_P60 = 'p120_p60'

P135_P45 = 'p135_p45'

P140_P20 = 'p140_p20'

P180 = 'p180'

PM10 = 'pm10'

PM20 = 'pm20'

PM45 = 'pm45'

ZERO_PM45 = 'zero_pm45'

PM60 = 'pm60'

ZERO_PM60 = 'zero_pm60'

PM90 = 'pm90'

P45_PNDLM = 'p45_pndlm'

ZERO_PM35 = 'zero_pm35'

MOEB45 = 'moeb45'

P120_P40 = 'p120_p40'

class PerforationGunHardware
Bases: `object`

STANDARD = 'Standard'

OBSOLETE = 'Obsolete'

NONSTANDARD = 'NonStandard'

PURE = 'PURE'

STDPURE = 'STDPURE'

OBSPURE = 'ObsPURE'

NONSTANDARDPURE = 'NonStandardPURE'

MYSTERY = 'Mystery'

UNKNOWN = 'Unknown'

class PenetrationModelOptions
Bases: `object`

ROCKONLY = 'RockOnly'

CONCRETEONLY = 'ConcreteOnly'

ROCKORCONCRETE = 'RockOrConcrete'

class PenetrationModelType
Bases: `object`

ROCK = 'Rock'

CONCRETE = 'Concrete'

class NodalPointType
Bases: `object`

SURFACE = 'Surface'

DOWNHOLE = 'Downhole'

class PerforationGunAPITestEdition
Bases: `object`

ESTIMATED_API = 'Estimated_API'

UNOFFICIAL_API = 'Unofficial_API'

UNOFFICIAL_C_33M = 'Unofficial_C_33M'

UNOFFICIAL_19B_1ST_ED = 'Unofficial_19B_1st_Ed'

RP43_4THED = 'RP43_4thEd'

RP43_5THED = 'RP43_5thEd'

RP43_C_33M = 'RP43_C_33M'

A19B_1STED = 'A19B_1stEd'

CUSTOM_VALUES = 'Custom_Values'

BASED_CUSTOM_VALUES = 'Based_Custom_Values'

BASED_A19B_1STED = 'Based_A19B_1stEd'

BASED_RP43_C_33M = 'Based_RP43_C_33M'

BASED_RP43_5THED = 'Based_RP43_5thEd'

BASED_RP43_4THED = 'Based_RP43_4thEd'

BASED_UNOFFICIAL_19B_1ST_ED = 'Based_Unofficial_19B_1st_Ed'

BASED_UNOFFICIAL_C_33M = 'Based_Unofficial_C_33M'

BASED_UNOFFICIAL_API = 'Based_Unofficial_API'

class DeviationSurveyType
Bases: `object`

VERTICAL = 'VerticalDeviation'

TWODIMENSIONAL = 'TwoDimensional'

THREEDIMENSIONAL = 'ThreeDimensional'

class ReferenceDepthOption
Bases: `object`

OriginalRKB = 'OriginalRKB'

RKB = 'RKB'

GL = 'GL'

MSL = 'MSL'

THF = 'THF'

class UValueInputOption
Bases: `object`

InputSingleUValue = 'InputSingleUValue'

InputMultipleUValues = 'InputMultipleUValues'

class PipeHeatTransfer
Bases: `object`

INSULATED = 'Insulated'

COATED = 'Coated'

BAREINAIR = 'BareInAir'

BAREINWATER = 'BareInWater'

USERSUPPLIED = 'UserSupplied'

class PipeBurialMethod
Bases: `object`

METHOD2009 = 'Method2009'

METHOD2000 = 'Method2000'

METHOD1983 = 'Method1983'

class InsideFilmCoeffMethod
Bases: `object`

KREITH = 'Kreith'

KAMINSKY = 'Kaminsky'

class TrilinearCalculationType
Bases: `object`

CONSTANTPRESSURE = 'ConstantPressure'

CONSTANTRATE = 'ConstantRate'

class FlowRateType
Bases: `object`

LIQUIDFLOWRATE = 'LiquidFlowRate'

GASFLOWRATE = 'GasFlowRate'

MASSFLOWRATE = 'MassFlowRate'

class FlowControlValveMaxFlowRateType
Bases: `object`

LIQUIDFLOWRATE = 'LiquidFlowRate'

WATERFLOWRATE = 'WaterFlowRate'

GASFLOWRATE = 'GasFlowRate'

MASSFLOWRATE = 'MassFlowRate'

class FlowControlValveSizeCalc
Bases: `object`

CHOKEAREA = 'EquivalentChokeArea'

PORTDIAMETER = 'PortDiameter'

class RangeType
Bases: `object`

RANGEINCREMENT = 'rangeIncrement'

RANGEDECREMENT = 'rangeDecrement'

RANGESTEP = 'rangeStep'

RANGEMULTIPLY = 'rangeMultiply'

class SinglePhaseFlowCorrelation
Bases: `object`

MOODY = 'Moody'

AGA = 'AGA'

PANHANDLEA = "Panhandle 'A'"

PANHANDLEB = "Panhandle 'B'"

HAZEN_WILLIAMS = 'Hazen - Williams'

WEYMOUTH = 'Weymouth'

CULLENDER_SMITH = 'Cullender - Smith'

class SystemVarType
Bases: `object`

UNDEFINED = 'varUndefined'

INLETPRESSURE = 'varInletPressure'

OUTLETPRESSURE = 'varOutletPressure'

LIQFLOWRATE = 'varLiqFlowrate'

GASFLOWRATE = 'varGasFlowrate'

MASSFLOWRATE = 'varMassFlowrate'

CUSTOM = 'varCustom'

class DeviationRelativeDepth
Bases: `object`

ORIGINALRKB = 'OriginalRKB'

RKB = 'RKB'

GL = 'GL'

MSL = 'MSL'

THF = 'THF'

class TrajectoryDependentParameter
Bases: `object`

MD = 'MD'

TVD = 'TVD'

ANGLE = 'Angle'

class SurveyType
Bases: `object`

VERTICALDEVIATION = 'VerticalDeviation'

TWODIMENSIONAL = 'TwoDimensional'

THREEDIMENSIONAL = 'ThreeDimensional'

class ZoneMaterial
Bases: `object`

UNKNOWN = 'unknown'

SHALE = 'shale'

SAND = 'sand'

WATER = 'water'

class GISWMSLayerPropertyFormat
Bases: `object`

PNG = 'PNG'

JPEG = 'JPEG'

class GasRatioOption
Bases: `object`

GLR = 'GLR'

GOR = 'GOR'

LGR = 'LGR'

OGR = 'OGR'

class WaterRatioOption
Bases: `object`

WATERCUT = 'WaterCut'

GWR = 'GWR'

WGR = 'WGR'

class DeadOilViscosityCorrelation
Bases: `object`

BEGGSANDROBINSON = 'BeggsAndRobinson'

GLASO = 'Glaso'

KARTOATMODJO = 'Kartoatmodjo'

DEGHETTO = 'DeGhetto'

HOSSAIN = 'Hossain'

ELSHARKAWY = 'Elsharkawy'

PETROSKYFARSHAD = 'PetroskyFarshad'

USER2POINT = 'User2Point'

USERTABLE = 'UserTable'

class LiveOilViscosityCorrelation
Bases: `object`

BEGGSANDROBINSON = 'BeggsAndRobinson'

CHEWANDCONNALY = 'ChewandConnaly'

KARTOATMODJO = 'Kartoatmodjo'

KHAN = 'Khan'

DEGHETTO = 'DeGhetto'

HOSSAIN = 'Hossain'

ELSHARKAWY = 'Elsharkawy'

PETROSKYFARSHAD = 'PetroskyFarshad'

class EnthalpyCalcMethod
Bases: `object`

METHOD1983 = 'Method1983'

METHOD2009 = 'Method2009'

class UndersaturatedOilViscosityCorrelation
Bases: `object`

NONE = 'None'

VASQUEZANDBEGGS = 'VasquezAndBeggs'

KOUZEL = 'Kouzel'

KARTOATMODJO = 'Kartoatmodjo'

KHAN = 'Khan'

DEGHETTO = 'DeGhetto'

HOSSAIN = 'Hossain'

ELSHARKAWY = 'Elsharkawy'

BERGMANANDSUTTON = 'BergmanAndSutton'

PETROSKYFARSHAD = 'PetroskyFarshad'

class CriticalFlowCorrelation
Bases: `object`

MECHANISTIC = 'Mechanistic'

GILBERT = 'Gilbert'

ROS = 'Ros'

ACHONG = 'Achong'

BAXENDELL = 'Baxendell'

ASHFORD = 'Ashford'

POETBECK = 'Poetbeck'

OMANA = 'Omana'

PILEHVARI = 'Pilehvari'

class SubCriticalFlowCorrelation
Bases: `object`

MECHANISTIC = 'Mechanistic'

API14B = 'API14b'

ASHFORD = 'Ashford'

class ComponentFractionType
Bases: `object`

MOLE = 'Mole'

MASS = 'Mass'

class LiquidViscosityCalculationMethod
Bases: `object`

CONTINUOUSPHASE = 'ContinuousPhase'

OILWATERVOLUMERATIO = 'OilWaterVolumeRatio'

ORIGINALWOELFLIN = 'OriginalWoelflin'

WOELFLINLOOSE = 'WoelflinLoose'

WOELFLINMEDIUM = 'WoelflinMedium'

WOELFLINTIGHT = 'WoelflinTight'

BRINKMAN = 'Brinkman'

VANDVAND = 'VandVand'

VANDBARNEAMIZRAHI = 'VandBarneaMizrahi'

VANDUSER = 'VandUser'

RICHARDSON = 'Richardson'

LEVITONLEIGHTON = 'LevitonLeighton'

USERTABLE = 'UserTable'

class SaltWaterDensity
Bases: `object`

DEFAULTDENSITY = 'DefaultDensity'

DENSITY = 'Density'

SALINITY = 'Salinity'

class FluidFlashType
Bases: `object`

PRESSURETEMPERATURE = 'PressureTemperature'

PRESSUREENTHALPYMASS = 'PressureEnthalpyMass'

PRESSUREENTROPYMASS = 'PressureEntropyMass'

PRESSUREENTHALPYMOLAR = 'PressureEnthalpyMolar'

PRESSUREENTROPYMOLAR = 'PressureEntropyMolar'

class IPRDarcyRatioType
Bases: `object`

RATIO = 'Ratio'

ABSOLUTE = 'Absolute'

class PerforationSkinMethod
Bases: `object`

MCLEOD = 'McLeod'

KARAKASTARIQ = 'KarakasTariq'

class WellCompletionType
Bases: `object`

NONE = 'None'

OPENHOLE = 'OpenHole'

PERFORATED = 'Perforated'

GRAVELPACKEDANDPERFORATED = 'GravelPackedAndPerforated'

OPENHOLEGRAVELPACK = 'OpenHoleGravelPack'

FRACPACK = 'FracPack'

class ChokeValveEquation
Bases: `object`

MECHANISTIC = 'Mechanistic'

APIRP11V2 = 'APIRP11V2'

class AmbientTemperatureOption
Bases: `object`

INPUTSINGLEVALUE = 'InputSingleValue'

INPUTMULTIPLEVALUES = 'InputMultipleValues'

USEGLOBALVALUE = 'UseGlobalValue'

class AmbientFluid
Bases: `object`

AIR = 'Air'

WATER = 'Water'

class WaterInterpolationMethod
Bases: `object`

INTERPOLATE = 'Interpolate'

STEPFUNCTION = 'StepFunction'

class DeviationSurveyCalculationMethod
Bases: `object`

MEASUREDDISTANCE = 'measuredDistance'

HORIZONTALDISTANCE = 'horizontalDistance'

VERTICALDISTANCE = 'verticalDistance'

class CompletionTestType
Bases: `object`

MULTIPOINT = 'Multipoint'

ISOCHRONAL = 'Isochronal'

class GasLiftType
Bases: `object`

INJECTIONGASRATE = 'InjectionGasRate'

GLR = 'GLR'

GLRINCREASE = 'GLRIncrease'

class GaugeType
Bases: `object`

UNDEFINED = 'gaugeUndefined'

PRESSURE = 'gaugePressure'

FLOWRATE = 'gaugeFlowRate'

TEMPERATURE = 'gaugeTemperature'

class HeatExchangerPressureSpecification
Bases: `object`

DISCHARGEPRESSURE = 'dischargePressure'

PRESSUREDROP = 'pressureDrop'

class HeatExchangerTemperatureSpecification
Bases: `object`

DELTATEMPERATURE = 'deltaTemperature'

DISCHARGETEMPERATURE = 'dischargeTemperature'

DUTY = 'duty'

class OilCalibrationType
Bases: `object`

DENSITY = 'Density'

OFVF = 'OFVF'

class RodPumpBasisType
Bases: `object`

STROKELENGTHFREQUENCY = 'StrokeLengthFrequency'

NOMINALRATE = 'NominalRate'

class NetworkDiagramLayerProperty
Bases: `object`

DEFAULT = 'Default'

LINKLAYER = 'LinkLayer'

EQUIPMENT = 'Equipment'

JUNCTION = 'Junction'

SINKSOURCE = 'SinkSource'

FOLDERS = 'Folders'

GAUGES = 'Gauges'

PROPERTYPANELS = 'PropertyPanels'

CUSTOM = 'Custom'

class SensitivityVariableType
Bases: `object`

NONE = 'varNone'

INFLOW = 'varInflow'

OUTFLOW = 'varOutflow'

XAXIS = 'varXAxis'

SENSITIVITY = 'varSensitivity'

class CalculatedVariable
Bases: `object`

INLETPRESSURE = 'calcInletPressure'

OUTLETPRESSURE = 'calcOutletPressure'

FLOWRATE = 'calcFlowrate'

CUSTOM = 'calcCustom'

class Fluid
Bases: `object`

LIQUID = 'liquid'

GAS = 'gas'

WATER = 'water'

class FluidType
Bases: `object`

BLACKOIL = 'fluidBlackOil'

COMPOSITIONAL = 'fluidCompositional'

PVT = 'fluidPVT'

MFL = 'fluidMFL'

STEAM = 'fluidSteam'

class PVTPackage
Bases: `object`

E300 = 'E300'

GERG = 'GERG'

MULTIFLASH = 'MULTIFLASH'

class MultiphaseBoosterType
Bases: `object`

GENERIC = 'GenericBooster'

ONESUBSEA = 'OneSubseaBooster'

WETGASCOMPRESSOR = 'WetGasCompressor'

class OneSubseaBoosterModel
Bases: `object`

HX310_250_180 = 'FRAMO Helico-Axial 310-250/180'

HX310_400_180 = 'FRAMO Helico-Axial 310-400/180'

HX310_500_45 = 'FRAMO Helico-Axial 310-500/45'

HX310_500_180 = 'FRAMO Helico-Axial 310-500/180'

HX310_600_120 = 'FRAMO Helico-Axial 310-600/120'

HX310_700_45 = 'FRAMO Helico-Axial 310-700/45'

HX310_800_120 = 'FRAMO Helico-Axial 310-800/120'

HX310_900_45 = 'FRAMO Helico-Axial 310-900/45'

HX310_1100_45 = 'FRAMO Helico-Axial 310-1100/45'

HX310_1100_120 = 'FRAMO Helico-Axial 310-1100/120'

HX360_1200_38 = 'FRAMO Helico-Axial 360-1200/38'

HX360_1500_38 = 'FRAMO Helico-Axial 360-1500/38'

HX360_1800_38 = 'FRAMO Helico-Axial 360-1800/38'

HX330_350_200 = 'OneSubsea Helico-Axial 330-350/200'

HX330_450_200 = 'OneSubsea Helico-Axial 330-450/200'

HX330_550_200 = 'OneSubsea Helico-Axial 330-550/200'

HX330_650_200 = 'OneSubsea Helico-Axial 330-650/200'

HX330_800_200 = 'OneSubsea Helico-Axial 330-800/200'

HX330_1000_200 = 'OneSubsea Helico-Axial 330-1000/200'

HX330_1200_200 = 'OneSubsea Helico-Axial 330-1200/200'

HX330_1400_200 = 'OneSubsea Helico-Axial 330-1400/200'

class WetGasCompressorModel
Bases: `object`

CRC385_2400_51 = 'OneSubsea-CRC385-2400-51'

CRC385_3600_51 = 'OneSubsea-CRC385-3600-51'

CRC385_4800_51 = 'OneSubsea-CRC385-4800-51'

CRC385_5800_51 = 'OneSubsea-CRC385-5800-51'

CRC385_6900_51 = 'OneSubsea-CRC385-6900-51'

CRC385_8400_51 = 'OneSubsea-CRC385-8400-51'

class WetGasCompressorCoolerModel
Bases: `object`

NONE = 'None'

USERSPECIFIED = 'User specified'

COOLER6M8B = 'Cooler-6m-8b'

class SeparatorProductFluid
Bases: `object`

LIQUID = 'liquid'

GAS = 'gas'

WATER = 'water'

OIL = 'oil'

GASOIL = 'gasOil'

GASWATER = 'gasWater'

class TubingSectionType
Bases: `object`

CASING = 'Casing'

LINER = 'Liner'

OPENHOLE = 'OpenHole'

TUBING = 'Tubing'

TAILPIPE = 'TailPipe'

LONGTUBING = 'Long'

SHORTTUBING = 'Short'

INNERTUBING = 'Inner'

OUTERTUBING = 'Outer'

class AnnulusMaterial
Bases: `object`

CEMENT = 'Cement'

MUD = 'Mud'

BRINE = 'Brine'

WATER = 'Water'

GAS = 'Gas'

OIL = 'Oil'

DIESEL = 'Diesel'

ACID = 'Acid'

class UserEquipmentType
Bases: `object`

SURFACE = 'Surface'

ARTIFICIALLIFT = 'ArtificialLift'

DOWNHOLE = 'Downhole'

class CheckValveSetting
Bases: `object`

NONE = 'None'

BLOCKFORWARD = 'BlockForward'

BLOCKREVERSE = 'BlockReverse'

BLOCKBOTH = 'Off'

class GasLiftInputOption
Bases: `object`

USEGASSPECIFICGRAVITY = 'UseGasSpecificGravity'

ASSOCIATEEXISTINGFLUID = 'AssociateExistingFluid'

class NitrogenCorrectionMethod
Bases: `object`

DAKSUTTON = 'DakSutton'

WRINKLEREADES1989 = 'WrinklerEades1989'

class GenericEquipmentPressureSpecification
Bases: `object`

DISCHARGEPRESSURE = 'dischargePressure'

DELTAPRESSURE = 'deltaPressure'

PRESSURERATIO = 'pressureRatio'

class GenericEquipmentThermodynamics
Bases: `object`

DEFAULT = 'defaultRoute'

ISENTHALPIC = 'isenthalpicRoute'

ISENTROPIC = 'isentropicRoute'

ISOTHERMAL = 'isothermalRoute'

class CompressorThermodynamics
Bases: `object`

ADIABATIC = 'routeAdiabatic'

POLYTROPIC = 'routePolytropic'

MOLLIER = 'routeMollier'

class ViscosityCorrection
Bases: `object`

NONE = 'None'

CENTRILIFT = 'Centrilift'

REDA = 'Reda'

TURZO = 'Turzo'

USER = 'User'

class ProfilePlotOption
Bases: `object`

DEFAULT = 'Default'

ELEVATIONVSPRESSURE = 'ElevationVsPressure'

ELEVATIONVSTEMPERATURE = 'ElevationVsTemperature'

PRESSUREVSTOTAL_DISTANCE = 'PressureVsTotal_Distance'

TEMPERATUREVSTOTAL_DISTANCE = 'TemperatureVsTotal_Distance'

class PumpThermodynamics
Bases: `object`

ADIABATIC = 'Adiabatic'

MOLLIER = 'Mollier'

ISOTHERMAL = 'Isothermal'

class CompletionFluidEntry
Bases: `object`

SINGLEPOINT = 'SinglePoint'

DISTRIBUTED = 'Distributed'

class Orientation
Bases: `object`

VERTICAL = 'Vertical'

HORIZONTAL = 'Horizontal'

class BoreholeFluid
Bases: `object`

MUD = 'Mud'

BRINE = 'Brine'

WATER = 'Water'

GAS = 'Gas'

OIL = 'Oil'

DIESEL = 'Diesel'

ACID = 'Acid'

class FormationFluid
Bases: `object`

OIL = 'Oil'

WATER = 'Water'

GAS = 'Gas'

class RockType
Bases: `object`

SANDSTONE = 'Sandstone'

LIMESTONE = 'Limestone'

DOLOMITE = 'Dolomite'

SHALE = 'Shale'

COAL = 'Coal'

class PerforationFlowRate
Bases: `object`

LIQUIDFLOWRATE = 'LiquidFlowRate'

GASFLOWRATE = 'GasFlowRate'

class SensitivityMethod
Bases: `object`

PERMUTED = 'Permuted'

STEPWITHVARIABLE1 = 'StepWithVariable1'

STEPWITHXAXIS = 'StepWithXAxis'

class VFPTablesOperationTable
Bases: `object`

ECLIPSE = 'TableEclipse'

PORES = 'TablePores'

VIP = 'TableVIP'

COMP4 = 'TableComp4'

MORES = 'TableMoRes'

class VfpTablesType
Bases: `object`

PRODUCTION = 'Production'

INJECTION = 'Injection'

class DiagnosticsType
Bases: `object`

FIXEDPRESSURE = 'FixedPressure'

FIXEDINJECTION = 'FixedInjection'

FIXEDBOTH = 'FixedBoth'

class ThrottlingType
Bases: `object`

ON = 'On'

OFF = 'Off'

class FlowDirectionTypes
Bases: `object`

FORWARD = 'forward'

BACKWARD = 'backward'

UNKNOWN = 'unknown'

class PressureGradientType
Bases: `object`

INCLUDEFRICTIONLOSSES = 'FrictionElevation'

STATIC = 'Static'

class GasLift
Bases: `object`

Gas Lift Design constants

class DiagnosticsOperationDiagnostics
Bases: `object`

FIXEDPRESSURE = 'FixedPressure'

FIXEDINJECTION = 'FixedInjection'

FIXEDBOTH = 'FixedBoth'

class DiagnosticsOperationThrottling
Bases: `object`

ON = 'On'

OFF = 'Off'

class PressureGradient
Bases: `object`

FRICTIONELEVATION = 'FrictionElevation'

STATIC = 'Static'

class SolutionPoint
Bases: `object`

LIQUIDPRODRATE = 'LiquidProdRate'

RESERVOIRPRESSURE = 'ReservoirPressure'

INJECTIONRATE = 'InjectionRate'

INJECTIONPRESSURE = 'InjectionPressure'

class DesignSpacing
Bases: `object`

NEWSPACING = 'NewSpacing'

CURRENTSPACING = 'CurrentSpacing'

OPTIMUMDEPTH = 'OptimumDepth'

VALVEPORTDEPTH = 'ValvePortDepth'

class ResponseSolution
Bases: `object`

LIQUIDPRODRATE = 'LiquidProdRate'

RESERVOIRPRESSURE = 'ReservoirPressure'

INJECTIONRATE = 'InjectionRate'

INJECTIONPRESSURE = 'InjectionPressure'

class TransferFactor
Bases: `object`

PINJPPROD = 'PinjPprod'

PPROD = 'Pprod'

class TransferGradient
Bases: `object`

SURFACEOFFSET = 'SurfaceOffset'

SURFACEOFFSETDP = 'SurfaceOffsetDP'

class DesignMethod
Bases: `object`

IPOSURFACECLOSE = 'IpoSurfaceClose'

IPOPTMINMAX = 'IpoPtMinMax'

PPODESIGN = 'PpoDesign'

class UnloadingTemperature
Bases: `object`

INJECTION = 'Injection'

PRODUCTION = 'Production'

AMBIENT = 'Ambient'

UNLOADING = 'Unloading'

class ProductionPressureCurve
Bases: `object`

MODEL = 'Model'

class DesignSolutionPoint
Bases: `object`

LIQUIDPRODRATE = 'LiquidProdRate'

RESERVOIRPRESSURE = 'ReservoirPressure'

INJECTIONRATE = 'InjectionRate'

INJECTIONPRESSURE = 'InjectionPressure'

class TopValveLocation
Bases: `object`

LIQUIDTOSURFACE = 'LiquidToSurface'

LIQUIDLEVEL = 'LiquidLevel'

CALCLIQUIDLEVEL = 'CalcLiquidLevel'

class OperatingValves
Bases: `object`

ORIFICE = 'Orifice'

IPO = 'IPO'

PPO = 'PPO'

class DesignTreatTransferGradient
Bases: `object`

OPENINGPRESSURE = 'OpeningPressure'

CLOSINGPRESSURE = 'ClosingPressure'

class DesignTransferGradientDP
Bases: `object`

INJECTIONPRESSURE = 'InjectionPressure'

PRODUCTIONPRESSURE = 'ProductionPressure'

class BlackOilCalibrationSolutionGas
Bases: `object`

LASATER = 'Lasater'

STANDING = 'Standing'

VASQUEZANDBEGGS = 'VasquezAndBeggs'

GLASO = 'Glaso'

KARTOATMODJO = 'Kartoatmodjo'

DEGHETTOETAL = 'DeGhettoEtAl'

PETROSKYFARSHAD = 'PetroskyFarshad'

class MultiflashComponent
Bases: `object`

ONE_2_DIETHYLBENZENE = '1,2-Diethylbenzene'

TWO_2_DIMETHYLPROPANE = '2,2-Dimethylpropane'

THREE_METHYL_HEXANE = '3-methyl hexane'

AMMONIA = 'Ammonia'

ARGON = 'Argon'

BENZENE = 'Benzene'

BUTANE = 'Butane'

CARBON_DIOXIDE = 'Carbon Dioxide'

CARBON_MONOXIDE = 'Carbon Monoxide'

CUMENE = 'Cumene'

CYCLOHEXANE = 'Cyclohexane'

CYCLOPENTANE = 'Cyclopentane'

DECANE = 'Decane'

DIETHYLENE_GLYCOL = 'Diethylene Glycol'

DOCOSANE = 'Docosane'

DODECANE = 'Dodecane'

DOTRIACONTANE = 'Dotriacontane'

EICOSANE = 'Eicosane'

ETHANE = 'Ethane'

ETHANOL = 'Ethanol'

ETHYLBENZENE = 'Ethylbenzene'

ETHYLCYCLOHEXANE = 'Ethylcyclohexane'

ETHYLENE = 'Ethylene'

ETHYLENE_GLYCOL = 'Ethylene Glycol'

HELIUM = 'Helium'

HENEICOSANE = 'Heneicosane'

HEPTACOSANE = 'Heptacosane'

HEPTADECANE = 'Heptadecane'

HEPTANE = 'Heptane'

HEXACOSANE = 'Hexacosane'

HEXADECANE = 'Hexadecane'

HEXANE = 'Hexane'

HEXATRIACONTANE = 'Hexatriacontane'

HYDROGEN = 'Hydrogen'

HYDROGEN_SULPHIDE = 'Hydrogen Sulphide'

ISOBUTANE = 'Isobutane'

ISOPENTANE = 'Isopentane'

METHANE = 'Methane'

METHANOL = 'Methanol'

METHYLCYCLOHEXANE = 'Methylcyclohexane'

METHYLCYCLOPENTANE = 'Methylcyclopentane'

M_XYLENE = 'M-Xylene'

NAPHTHALENE = 'Naphthalene'

NITROGEN = 'Nitrogen'

NONACOSANE = 'Nonacosane'

NONADECANE = 'Nonadecane'

NONANE = 'Nonane'

OCTACOSANE = 'Octacosane'

OCTADECANE = 'Octadecane'

OCTANE = 'Octane'

OXYGEN = 'Oxygen'

O_XYLENE = 'O-Xylene'

PENTACOSANE = 'Pentacosane'

PENTADECANE = 'Pentadecane'

PENTANE = 'Pentane'

PROPANE = 'Propane'

P_XYLENE = 'P-Xylene'

SALT_COMPONENT = 'Salt Component'

TETRACOSANE = 'Tetracosane'

TETRADECANE = 'Tetradecane'

TOLUENE = 'Toluene'

TRIACONTANE = 'Triacontane'

TRICOSANE = 'Tricosane'

TRIDECANE = 'Tridecane'

TRIETHYLENE_GLYCOL = 'Triethylene Glycol'

UNDECANE = 'Undecane'

WATER = 'Water'

class E300Component
Bases: `object`

BEN = 'BEN'

C1 = 'C1'

C10 = 'C10'

C11 = 'C11'

C12 = 'C12'

C13 = 'C13'

C14 = 'C14'

C15 = 'C15'

C16 = 'C16'

C17 = 'C17'

C18 = 'C18'

C19 = 'C19'

C2 = 'C2'

C20 = 'C20'

C21 = 'C21'

C22 = 'C22'

C23 = 'C23'

C24 = 'C24'

C25 = 'C25'

C26 = 'C26'

C27 = 'C27'

C28 = 'C28'

C29 = 'C29'

C3 = 'C3'

C30 = 'C30'

C31 = 'C31'

C32 = 'C32'

C33 = 'C33'

C34 = 'C34'

C35 = 'C35'

C36 = 'C36'

C37 = 'C37'

C38 = 'C38'

C39 = 'C39'

C4 = 'C4'

C40 = 'C40'

C41 = 'C41'

C42 = 'C42'

C43 = 'C43'

C44 = 'C44'

C45 = 'C45'

C5 = 'C5'

C6 = 'C6'

C7 = 'C7'

C8 = 'C8'

C9 = 'C9'

CO = 'CO'

CO2 = 'CO2'

CYCLOC6 = 'CycloC6'

ETHYLBENZENE = 'Ethylbenzene'

H2 = 'H2'

H2O = 'H2O'

H2S = 'H2S'

IC4 = 'IC4'

IC5 = 'IC5'

MCYCLOC5 = 'McycloC5'

MCYCLOC6 = 'McycloC6'

MPXYLENE = 'MPXylene'

N2 = 'N2'

NC4 = 'NC4'

NC5 = 'NC5'

OXYLENE = 'OXylene'

TOL = 'TOL'

class GERGComponent
Bases: `object`

ARGON = 'Argon'

CARBON_DIOXIDE = 'Carbon dioxide'

CARBON_MONOXIDE = 'Carbon monoxide'

ETHANE = 'Ethane'

HELIUM = 'Helium'

HYDROGEN = 'Hydrogen'

HYDROGEN_SULPHIDE = 'Hydrogen sulphide'

ISOBUTANE = 'Isobutane'

ISOPENTANE = 'Isopentane'

METHANE = 'Methane'

N_BUTANE = 'n-Butane'

N_DECANE = 'n-Decane'

N_HEPTANE = 'n-Heptane'

N_HEXANE = 'n-Hexane'

NITROGEN = 'Nitrogen'

N_NONANE = 'n-Nonane'

N_OCTANE = 'n-Octane'

N_PENTANE = 'n-Pentane'

OXYGEN = 'Oxygen'

PROPANE = 'Propane'

WATER = 'Water'

class EmulsionViscosityMethod
Bases: `object`

Set to viscosity of the continuous phase

CONTINUOUSPHASE = 'ContinuousPhase'

OILWATERVOLUMERATIO = 'OilWaterVolumeRatio'

ORIGINALWOELFLIN = 'OriginalWoelflin'

WOELFLINLOOSE = 'WoelflinLoose'

WOELFLINMEDIUM = 'WoelflinMedium'

WOELFLINTIGHT = 'WoelflinTight'

BRINKMAN = 'Brinkman'

VANDVAND = 'VandVand'

VANDBARNEAMIZRAHI = 'VandBarneaMizrahi'

VANDUSER = 'VandUser'

RICHARDSON = 'Richardson'

LEVITONLEIGHTON = 'LevitonLeighton'

KENDALLMONROE = 'KendallMonroe'

USERTABLE = 'UserTable'

class EquationOfState
Bases: `object`

class Multiflash
Bases: `object`

PENGROBINSON2PARAMETER = 'PengRobinson2Parameter'

PENGROBINSON3PARAMETER = 'PengRobinson3Parameter'

REDLICHKWONG = 'RedlichKwong'

SOAVEREDLICHKWONG2PARAMETER = 'SoaveRedlichKwong2Parameter'

SOAVEREDLICHKWONG3PARAMETER = 'SoaveRedlichKwong3Parameter'

SOAVEREDLICHKWONG3PARAMETERNRTLMIXINGRULE = 'SoaveRedlichKwong3ParameterNRTLMixingRule'

BENEDICTWEBBRUBINSTARLING = 'BenedictWebbRubinStarling'

CUBICPLUSASSOCIATION = 'CubicPlusAssociation'

CORRESPONDINGSTATES = 'CorrespondingStates'

class GERG
Bases: `object`

GERG_REFPROP = 'GERG_REFPROP'

class E300
Bases: `object`

PENGROBINSON3PARAMETERCORRECTED = 'PengRobinson3ParameterCorrected'

PENGROBINSON2PARAMETERCORRECTED = 'PengRobinson2ParameterCorrected'

SOAVEREDLICHKWONG3PARAMETER = 'SoaveRedlichKwong3Parameter'

SOAVEREDLICHKWONG2PARAMETER = 'SoaveRedlichKwong2Parameter'

class ViscosityCorrelationMethod
Bases: `object`

LOHRENZBRAYCLARK = 'LohrenzBrayClark'

PEDERSEN = 'Pedersen'

AASBERGPETERSEN = 'AasbergPetersen'

NIST = 'NIST'

PEDERSENTWU = 'PedersenTwu'

SUPERTRAPP = 'SuperTRAPP'

class VolumeShiftCorrelationMethod
Bases: `object`

SORIEDE = 'Soriede'

PENELOUXDBR = 'PenelouxDBR'

MULTIFLASH = 'Multiflash'

class CriticalPropertyCorrelationMethod
Bases: `object`

KESLERLEE = 'KeslerLee'

CAVETT = 'Cavett'

RIAZIDAUBERT = 'RiaziDaubert'

WINN = 'Winn'

PEDERSEN = 'Pedersen'

SINGLECARBONNUMBER = 'SingleCarbonNumber'

class ThermalCoefficientsCorrelationMethod
Bases: `object`

KESLERLEE = 'KeslerLee'

KESLERLEEMODIFIED = 'KeslerLeeModified'

MULTIFLASH = 'Multiflash'

class AcfCorrelationMethod
Bases: `object`

KESLERLEE = 'KeslerLee'

EDMISTER = 'Edmister'

THOMASSEN = 'Thomassen'

PEDERSEN = 'Pedersen'

SINGLECARBONNUMBER = 'SingleCarbonNumber'

class SalinityModel
Bases: `object`

NONE = 'None'

IONANALYSIS = 'IonAnalysis'

TDS = 'TDS'

class FluidComponentType
Bases: `object`

HYDROCARBON = 'Hydrocarbon'

NONHYDROCARBON = 'NonHydrocarbon'

class sixgill.definitions.OptimizerVariables
Bases: `object`

The optimizer Results Variables

GAS_LIFT_RATE = 'OptimizerGas_lift_rate'

WELL_IS_SHUT_OFF = 'OptimizerWell_is_shut_off'

TOTAL_ALLOCATED_POWER_USED = 'OptimizerTotal_allocated_power_used'

TOTAL_ALLOCATED_GAS_INJECTED = 'OptimizerTotal_allocated_gas_injected'

PERCENT_CHANGE_IN_WATER_RATE = 'OptimizerPercent_change_in_water_rate'

PERCENT_CHANGE_IN_GAS_RATE = 'OptimizerPercent_change_in_gas_rate'

PERCENT_CHANGE_IN_OIL_RATE = 'OptimizerPercent_change_in_oil_rate'

TOTAL_WATER_RATE = 'OptimizerTotal_water_rate'

TOTAL_OIL_RATE = 'OptimizerTotal_oil_rate'

EFFICIENCY = 'OptimizerEfficiency'

POWER = 'OptimizerPower'

FREQUENCY = 'OptimizerFrequency'

SPEED = 'OptimizerSpeed'

MAXIMUM_GOR = 'OptimizerMaximum_GOR'

MAXIMUM_CO2 = 'OptimizerMaximum_CO2'

MAXIMUM_H2S = 'OptimizerMaximum_H2S'

BUBBLE_POINT_MARGIN_ = 'OptimizerBubble_point_margin_'

DRAWDOWN_PRESSURE_DROP = 'OptimizerDrawdown_pressure_drop'

MAXIMUM_EROSIONAL_VELOCITY_RATIO = 'OptimizerMaximum_Erosional_velocity_ratio'

CASING_HEAD_PRESSURE = 'OptimizerCasing_head_pressure'

OUTLET_TEMPERATURE = 'OptimizerOutlet_temperature'

OUTLET_PRESSURE = 'OptimizerOutlet_pressure'

WATER_RATE = 'OptimizerWater_rate'

LIQUID_RATE = 'OptimizerLiquid_rate'

OIL_RATE = 'OptimizerOil_rate'

BEAN_SIZE = 'OptimizerBean_size'

TOTAL_GAS_RATE = 'OptimizerTotal_gas_rate'

class sixgill.definitions.SystemVariables
Bases: `object`

The System and Equipment Results Variables

ALHANATI_CRITERION1 = 'AlhanatiCriterion1'

ALHANATI_CRITERION2 = 'AlhanatiCriterion2'

ARTIFICIAL_LIFT_QUANTITY = 'ArtificialLiftQuantity'

BOTTOM_HOLE_PRESSURE = 'BottomHolePressure'

CASE_NUMBER = 'CaseNumber'

CASE_STATUS = 'CaseStatus'

CASING_HEAD_PRESSURE = 'CasingHeadPressure'

CONED_GOR = 'ConedGOR'

ESP_DELTA_PRESSURE = 'ESPDeltaPressure'

ESP_DELTA_TEMPERATURE = 'ESPDeltaTemperature'

ESP_DISCHARGE_PRESSURE = 'ESPDischargePressure'

ESP_EFFICIENCY = 'ESPEfficiency'

ESP_EFFICIENCY_FACTOR = 'ESPEfficiencyFactor'

ESP_FLOWRATE_FACTOR = 'ESPFlowrateFactor'

ESP_FREQUENCY = 'ESPFrequency'

ESP_HEAD = 'ESPHead'

ESP_HEAD_FACTOR = 'ESPHeadFactor'

ESP_INTAKE_GAS_VOLUME_FRACTION = 'ESPIntakeGasVolumeFraction'

ESP_INTAKE_PRESSURE = 'ESPIntakePressure'

ESP_INTAKE_TOTAL_VOLUMETRIC_FLOWRATE = 'ESPIntakeTotalVolumetricFlowrate'

ESP_NUMBER_OF_STAGES = 'ESPNumberOfStages'

ESP_POWER = 'ESPPower'

ESP_POWER_FACTOR = 'ESPPowerFactor'

ESP_SUCTION_GAS_VOLUME_FRACTION = 'ESPSuctionGasVolumeFraction'

FRICTION_FACTOR_MEAN = 'FrictionFactorMean'

GAS_INJECTION_DEPTH = 'GasInjectionDepth'

GAS_INJECTION_GAS_TEMPERATURE_BEFORE_MIXING = 'GasInjectionGasTemperatureBeforeMixing'

GAS_INJECTION_PRODUCTION_TEMPERATURE_DOWNSTREAM = 'GasInjectionProductionTemperatureDownstream'

GAS_INJECTION_PRODUCTION_TEMPERATURE_UPSTREAM = 'GasInjectionProductionTemperatureUpstream'

GAS_INJECTION_VALVE_DELTA_TEMPERATURE = 'GasInjectionValveDeltaTemperature'

GAS_INJECTION_VALVE_DELTA_PRESSURE = 'GasInjectionValveDeltaPressure'

GAS_LIFT_DIAGNOSTICS_PORT_DIAMETER = 'GLDiagnosticsValvePortDiameter'

GAS_LIFT_DIAGNOSTICS_POSITION_STATUS = 'GLDiagnosticsValvePositionStatus'

GAS_LIFT_DIAGNOSTICS_DOME_TEMPERATURE = 'GLDiagnosticsValveDomeTemperature'

GAS_LIFT_DIAGNOSTICS_GAS_RATE_NO_THROTTLING = 'GLDiagnosticsValveGasRateNoThrottling'

GAS_LIFT_DIAGNOSTICS_STATUS = 'GLDiagnosticsValveStatus'

GAS_LIFT_DIAGNOSTICS_CLOSING_PRESSURE = 'GLDiagnosticsValveClosingPressure'

GAS_LIFT_DIAGNOSTICS_OPENING_PRESSURE = 'GLDiagnosticsValveOpeningPressure'

GAS_LIFT_DIAGNOSTICS_DOME_PRESSURE = 'GLDiagnosticsValveDomePressure'

GAS_LIFT_DIAGNOSTICS_PTRO = 'GLDiagnosticsValvePtro'

GAS_LIFT_DIAGNOSTICS_DISCHARGE_COEFFICIENT = 'GLDiagnosticsValveDischargeCoefficient'

GAS_LIFT_DIAGNOSTICS_PORT_TO_BELLOW_AREA = 'GLDiagnosticsValvePortToBellowArea'

GAS_LIFT_DIAGNOSTICS_OPERATION_MODE = 'GLDiagnosticsValveOperationMode'

GAS_LIFT_DIAGNOSTICS_PORT_TYPE = 'GLDiagnosticsValveType'

GAS_LIFT_INJECTION_CASING_HEAD_TEMPERATURE = 'GasLiftInjectionCasingHeadTemperature'

GAS_LIFT_INJECTION_PORT_DIAMETER = 'GasLiftInjectionPortDiameter'

GAS_LIFT_INJECTION_CASING_PRESSURE = 'GasLiftInjectionCasingPressure'

GAS_LIFT_INJECTION_PRESSURE = 'GasLiftInjectionPressure'

GAS_LIFT_INJECTION_RATIO = 'GasLiftInjectionRatio'

GAS_LIFT_INJECTION_SOURCE_PRESSURE = 'GasLiftInjectionSourcePressure'

GAS_LIFT_INJECTION_CASING_TEMPERATURE = 'GasLiftInjectionCasingTemperature'

GAS_LIFT_INJECTION_TEMPERATURE = 'GasLiftInjectionTemperature'

HEAT_TRANSFER_COEFFICIENT = 'HeatTransferCoefficient'

HEEL_GOR_STOCKTANK = 'HeelGORStockTank'

HEEL_MASS_FLOWRATE_FLUID = 'HeelMassFlowrateFluid'

HEEL_PRESSURE = 'HeelPressure'

HEEL_RESERVOIR_DRAWDOWN = 'HeelReservoirDrawdown'

HEEL_TEMPERATURE = 'HeelTemperature'

HEEL_VELOCITY_FLUID = 'HeelVelocityFluid'

HEEL_VOLUME_FLOWRATE_FLUID_INSITU = 'HeelVolumeFlowrateFluidInSitu'

HEEL_VOLUME_FLOWRATE_FLUID_STOCKTANK = 'HeelVolumeFlowrateFluidStockTank'

HEEL_VOLUME_FLOWRATE_GAS_STOCKTANK = 'HeelVolumeFlowrateGasStockTank'

HEEL_FLOWING_GAS_FLOWRATE_STOCKTANK = 'Gas flowrate at heel (standard cond)'

HEEL_VOLUME_FLOWRATE_LIQUID_INSITU = 'HeelVolumeFlowrateLiquidInSitu'

HEEL_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'HeelVolumeFlowrateLiquidStockTank'

HEEL_VOLUME_FLOWRATE_OIL_STOCKTANK = 'HeelVolumeFlowrateOilStockTank'

HEEL_WATER_CUT_STOCKTANK = 'HeelWaterCutStockTank'

INLET_EROSIONAL_VELOCITY_RATIO = 'InletErosionalVelocityRatio'

INLET_GOR_STOCKTANK = 'InletGORStockTank'

INLET_MASS_FLOWRATE_FLUID = 'InletMassFlowrateFluid'

INLET_MASS_FRACTION_GAS = 'InletMassFractionGas'

INLET_TEMPERATURE = 'InletTemperature'

INLET_VELOCITY_FLUID = 'InletVelocityFluid'

INLET_VELOCITY_GAS = 'InletVelocityGas'

INLET_VELOCITY_LIQUID = 'InletVelocityLiquid'

INLET_VOLUME_FLOWRATE_FLUID_INSITU = 'InletVolumeFlowrateFluidInSitu'

INLET_VOLUME_FLOWRATE_FLUID_STOCKTANK = 'InletVolumeFlowrateFluidStockTank'

INLET_VOLUME_FLOWRATE_GAS_INSITU = 'InletVolumeFlowrateGas'

INLET_VOLUME_FLOWRATE_GAS_STOCKTANK = 'InletVolumeFlowrateGasStockTank'

INLET_VOLUME_FLOWRATE_LIQUID_INSITU = 'InletVolumeFlowrateLiquid'

INLET_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'InletVolumeFlowrateLiquidStockTank'

INLET_VOLUME_FLOWRATE_OIL_STOCKTANK = 'InletVolumeFlowrateOilStockTank'

INLET_VOLUME_FRACTION_LIQUID = 'InletVolumeFractionLiquid'

INLET_WATER_CUT_STOCKTANK = 'InletWaterCutStockTank'

INPUT_FLOWRATE = 'InputFlowrate'

INPUT_TUBING_HEAD_PRESSURE = 'InputTubingHeadPressure'

INPUT_WATERCUT = 'InputWatercut'

INPUT_WATER_RATIO = 'InputWaterRatio'

MASS_FLOWRATE_AT_NODAL_ANALYSIS_POINT = 'MassFlowrateAtNodalAnalysisPoint'

MAXIMUM_CORROSION_RATE = 'MaximumCorrosionRate'

MAXIMUM_CORROSION_RISK = 'MaximumCorrosionRisk'

MAXIMUM_EROSION_RISK = 'MaximumErosionRisk'

MAXIMUM_EROSIONAL_VELOCITY_RATIO = 'MaximumErosionalVelocityRatio'

MAXIMUM_EROSION_RATE = 'MaximumErosionRate'

MAXIMUM_HEAT_TRANSFER_COEFFICIENT = 'MaximumHeatTransferCoefficient'

MAXIMUM_HYDRATE_SUB_COOLING_TEMPERATURE_DIFFERENCE = 'MaximumHydrateSubCoolingTemperatureDifference'

MAXIMUM_LIQUID_LOADING_GAS_RATE = 'MaximumLiquidLoadingGasRate'

MAXIMUM_LIQUID_LOADING_VELOCITY_RATIO = 'MaximumLiquidLoadingVelocityRatio'

MAXIMUM_VELOCITY_FLUID = 'MaximumVelocityFluid'

MAXIMUM_VELOCITY_GAS = 'MaximumVelocityGas'

MAXIMUM_VELOCITY_LIQUID = 'MaximumVelocityLiquid'

MAXIMUM_WAX_SUB_COOLING_TEMPERATURE_DIFFERENCE = 'MaximumWaxSubCoolingTemperatureDifference'

NODAL_POINT_BUBBLE_POINT_PRESSURE = 'NodalPointBubblePointPressure'

NODAL_POINT_ENTHALPY_FLUID = 'NodalPointEnthalpyFluid'

NODAL_POINT_FRACTION_LIQUID = 'NodalPointFractionLiquid'

NODAL_POINT_GLR_STOCKTANK = 'NodalPointGLRStockTank'

NODAL_POINT_LGR_STOCKTANK = 'NodalPointLGRStockTank'

NODAL_POINT_MASS_FLOWRATE_FLUID = 'NodalPointMassFlowrateFluid'

NODAL_POINT_PRESSURE = 'NodalPointPressure'

NODAL_POINT_TEMPERATURE = 'NodalPointTemperature'

NODAL_POINT_VELOCITY_FLUID = 'NodalPointVelocityFluid'

NODAL_POINT_VOLUME_FLOWRATE_FLUID_INSITU = 'NodalPointVolumeFlowrateFluidInSitu'

NODAL_POINT_VOLUME_FLOWRATE_FLUID_STOCKTANK = 'NodalPointVolumeFlowrateFluidStockTank'

NODAL_POINT_VOLUME_FLOWRATE_GAS_INSITU = 'NodalPointVolumeFlowrateGasInSitu'

NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK = 'NodalPointVolumeFlowrateGasStockTank'

NODAL_POINT_VOLUME_FLOWRATE_LIQUID_INSITU = 'NodalPointVolumeFlowrateLiquidInSitu'

NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'NodalPointVolumeFlowrateLiquidStockTank'

NODAL_POINT_VOLUME_FLOWRATE_OIL_STOCKTANK = 'NodalPointVolumeFlowrateOilStockTank'

NODAL_POINT_WATER_CUT_INSITU = 'NodalPointWaterCutInSitu'

NODAL_POINT_WATER_CUT_STOCKTANK = 'NodalPointWaterCutStockTank'

OUTLET_EROSIONAL_VELOCITY = 'OutletErosionalVelocity'

OUTLET_EROSIONAL_VELOCITY_RATIO = 'OutletErosionalVelocityRatio'

OUTLET_FRACTION_CO = 'OutletFractionCO'

OUTLET_FRACTION_CO2 = 'OutletFractionCO2'

OUTLET_FRACTION_H2S = 'OutletFractionH2S'

OUTLET_FRACTION_H2 = 'OutletFractionH2'

OUTLET_FRACTION_N2 = 'OutletFractionN2'

OUTLET_GLR_STOCKTANK = 'OutletGLRStockTank'

OUTLET_GOR_STOCKTANK = 'OutletGORStockTank'

OUTLET_LGR_STOCKTANK = 'OutletLGRStockTank'

OUTLET_MASS_FLOWRATE_FLUID = 'OutletMassFlowrateFluid'

OUTLET_MASS_FLOWRATE_GAS_STOCKTANK = 'OutletMassFlowrateGasStockTank'

OUTLET_MASS_FLOWRATE_OIL_STOCKTANK = 'OutletMassFlowrateOilStockTank'

OUTLET_MASS_FLOWRATE_WATER_STOCKTANK = 'OutletMassFlowrateWaterStockTank'

OUTLET_MASS_FRACTION_GAS = 'OutletMassFractionGas'

OUTLET_SPECIFIC_GRAVITY_GAS = 'OutletSpecificGravityGas'

OUTLET_VELOCITY_FLUID = 'OutletVelocityFluid'

OUTLET_VELOCITY_GAS = 'OutletVelocityGas'

OUTLET_VELOCITY_LIQUID = 'OutletVelocityLiquid'

OUTLET_VOLUME_FLOWRATE_FLUID_INSITU = 'OutletVolumeFlowrateFluidInSitu'

OUTLET_VOLUME_FLOWRATE_FLUID_STOCKTANK = 'OutletVolumeFlowrateFluidStockTank'

OUTLET_VOLUME_FLOWRATE_GAS_INSITU = 'OutletVolumeFlowrateGas'

OUTLET_VOLUME_FLOWRATE_GAS_STOCKTANK = 'OutletVolumeFlowrateGasStockTank'

OUTLET_VOLUME_FLOWRATE_LIQUID_INSITU = 'OutletVolumeFlowrateLiquid'

OUTLET_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'OutletVolumeFlowrateLiquidStockTank'

OUTLET_VOLUME_FLOWRATE_OIL_STOCKTANK = 'OutletVolumeFlowrateOilStockTank'

OUTLET_VOLUME_FLOWRATE_WATER_STOCKTANK = 'OutletVolumeFlowrateWaterStockTank'

OUTLET_VOLUME_FRACTION_LIQUID = 'OutletVolumeFractionLiquid'

OUTLET_WATER_CUT_STOCKTANK = 'OutletWaterCutStockTank'

PCP_DISCHARGE_PRESSURE = 'PCPDischargePressure'

PCP_EFFICIENCY = 'PCPEfficiency'

PCP_INTAKE_PRESSURE = 'PCPIntakePressure'

PCP_INTAKE_VOLUMETRIC_FLOWRATE_FLUID = 'PCPIntakeVolumetricFlowrateFluid'

PCP_POWER = 'PCPPower'

PCP_SPEED = 'PCPSpeed'

PCP_TORQUE = 'PCPTorque'

PIPE_OUTSIDE_DIAMETER = 'PipeOutsideDiameter'

PRESSURE_DROP_TOTAL_ACCELERATION = 'PressureDropTotalAcceleration'

PRESSURE_DROP_TOTAL_COMPLETION = 'PressureDropTotalCompletion'

RECORD_COUNT = 'RecordCount'

RESISTANCE_ELEVATIONAL = 'ResistanceElevational'

RESISTANCE_FRICTIONAL = 'ResistanceFrictional'

REYNOLDS_NUMBER_MEAN = 'ReynoldsNumberMean'

SEVERE_SLUGGING_INDICATOR = 'SevereSluggingIndicator'

SLUG_FREQUENCY1IN1000 = 'SlugFrequency1In1000'

SLUG_FREQUENCY_MEAN = 'SlugFrequencyMean'

SLUG_LENGTH1IN1000 = 'SlugLength1In1000'

SLUG_LENGTH_MEAN = 'SlugLengthMean'

SLUG_VOLUME1IN1000 = 'SlugVolume1In1000'

SLUG_VOLUME_MEAN = 'SlugVolumeMean'

SPECIFIC_GRAVITY_PRODUCED_GAS = 'SpecificGravityProducedGas'

SPHERE_GENERATED_LIQUID_VOLUME = 'SphereGeneratedLiquidVolume'

SPHERE_GENERATED_LIQUID_VOLUME_DUMPING_TIME = 'SphereGeneratedLiquidVolumeDumpingTime'

SPHERE_TRANSIT_TIME = 'SphereTransitTime'

STOCK_TANK_GAS_AT_NODAL_ANALYSIS_POINT = 'StockTankGasAtNodalAnalysisPoint'

STOCK_TANK_LIQUID_AT_NODAL_ANALYSIS_POINT = 'StockTankLiquidAtNodalAnalysisPoint'

SURFACE_INJECTION_CHOKE_DIAMETER = 'SurfaceInjectionChokeDiameter'

SYSTEM_INLET_PRESSURE = 'SystemInletPressure'

SYSTEM_INLET_TEMPERATURE = 'SystemInletTemperature'

SYSTEM_OUTLET_PRESSURE = 'SystemOutletPressure'

SYSTEM_OUTLET_TEMPERATURE = 'SystemOutletTemperature'

SYSTEM_PRESSURE_LOSS = 'SystemPressureLoss'

SYSTEM_TEMPERATURE_DIFFERENCE = 'SystemTemperatureDifference'

TIME_HOURS = 'Time_Hours'

TOE_PRESSURE = 'ToePressure'

TOE_RESERVOIR_DRAWDOWN = 'ToeReservoirDrawdown'

TOE_TEMPERATURE = 'ToeTemperature'

TOE_VELOCITY_FLUID = 'ToeVelocityFluid'

TOTAL_INJECTION_GAS = 'TotalInjectionGas'

TOTAL_LIQUID_HOLDUP = 'TotalLiquidHoldup'

TOTAL_OIL_HOLDUP = 'TotalOilHoldup'

TOTAL_PRESSURE_DROP_ELEVATIONAL = 'TotalPressureDropElevational'

TOTAL_PRESSURE_DROP_FRICTIONAL = 'TotalPressureDropFrictional'

TOTAL_WATER_HOLDUP = 'TotalWaterHoldup'

WELLHEAD_GOR_STOCKTANK = 'WellheadGORStockTank'

WELLHEAD_MASS_FLOWRATE_FLUID = 'WellheadMassFlowrateFluid'

WELLHEAD_PRESSURE = 'WellheadPressure'

WELLHEAD_TEMPERATURE = 'WellheadTemperature'

WELLHEAD_TRUE_VERTICAL_DEPTH = 'WellheadTrueVerticalDepth'

WELLHEAD_VOLUME_FLOWRATE_FLUID_INSITU = 'WellheadVolumeFlowrateFluidInSitu'

WELLHEAD_VOLUME_FLOWRATE_GAS_STOCKTANK = 'WellheadVolumeFlowrateGasStockTank'

WELLHEAD_VOLUME_FLOWRATE_LIQUID_INSITU = 'WellheadVolumeFlowrateLiquidInSitu'

WELLHEAD_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'WellheadVolumeFlowrateLiquidStockTank'

WELLHEAD_VOLUME_FLOWRATE_OIL_STOCKTANK = 'WellheadVolumeFlowrateOilStockTank'

WELLHEAD_VOLUME_FLOWRATE_FLUID_STOCKTANK = 'WellheadVolumeFlowrateFluidStockTank'

WELLHEAD_WATER_CUT_STOCKTANK = 'WellheadWaterCutStockTank'

ABSOLUTE_SPEED = 'AbsoluteSpeed'

API_GRAVITY_OIL = 'ApiGravityOil'

ARTIFICIAL_LIFT_FLOWRATE_CONVERSION_FACTOR = 'ArtificialLiftFlowrateConversionFactor'

ARTIFICIAL_LIFT_FLOWRATE_TYPE = 'ArtificialLiftFlowrateType'

BEAN_SIZE = 'BeanSize'

COILED_TUBING_INJECTION_PRESSURE = 'CoiledTubingInjectionPressure'

COMPLETION_VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'CompletionVolumeFlowrateLiquidStockTank'

COMPRESSOR_EFFICIENCY = 'CompressorEfficiency'

COMPRESSOR_POWER = 'CompressorPower'

CONTAMINANTS_CO2 = 'ContaminantsCO2'

CONTAMINANTS_H2S = 'ContaminantsH2S'

CONTAMINANTS_N2 = 'ContaminantsN2'

CRITICAL_PRESSURE_RATIO = 'CriticalPressureRatio'

DELTA_ENTHALPY = 'DeltaEnthalpy'

DELTA_ENTROPY = 'DeltaEntropy'

DELTA_PRESSURE = 'DeltaPressure'

DELTA_TEMPERATURE = 'DeltaTemperature'

DENSITY_FLUID_MEAN = 'DensityFluidMean'

DENSITY_GAS_STOCKTANK = 'DensityGasStockTank'

DENSITY_OIL_STOCKTANK = 'DensityOilStockTank'

DENSITY_WATER_STOCKTANK = 'DensityWaterStockTank'

DIAMETER_RATIO = 'DiameterRatio'

DISCHARGE_COEFFICIENT = 'DischargeCoefficient'

DISCHARGE_PRESSURE = 'DischargePressure'

DOWNSTREAM_COOLER_DUTY = 'DownstreamCoolerDuty'

DOWNSTREAM_DENSITY = 'DownstreamDensity'

DOWNSTREAM_HEAT_CAPACITY_RATIO = 'DownstreamHeatCapacityRatio'

DOWNSTREAM_MACH_NUMBER = 'DownstreamMachNumber'

DOWNSTREAM_PRESSURE = 'DownstreamPressure'

DOWNSTREAM_SONIC_VELOCITY = 'DownstreamSonicVelocity'

DOWNSTREAM_VELOCITY = 'DownstreamVelocity'

DOWNSTREAM_VELOCITY_RATIO_CRITICAL = 'DownstreamVelocityRatioCritical'

DUTY = 'Duty'

EFFICIENCY = 'Efficiency'

ELEVATION_DELTA_PRESSURE = 'ElevationDeltaPressure'

ELEVATION_DIFFERENCE = 'ElevationDifference'

ENTHALPY = 'Enthalpy'

EQUIPMENT_TYPE = 'EquipmentType'

EROSIONAL_VELOCITY = 'ErosionalVelocity'

EROSIONAL_VELOCITY_MAXIMUM = 'ErosionalVelocityMaximum'

EROSIONAL_VELOCITY_RATIO = 'ErosionalVelocityRatio'

EXPANSION_FACTOR_GAS = 'ExpansionFactorGas'

EXPANSION_FACTOR_GAS_CRITICAL = 'ExpansionFactorGasCritical'

FLOW_COEFFICIENT_FLUID = 'FlowCoefficientFluid'

FLOW_COEFFICIENT_GAS = 'FlowCoefficientGas'

FLOW_COEFFICIENT_LIQUID = 'FlowCoefficientLiquid'

FLOW_FACTOR = 'FlowFactor'

FLOWING_GAS_VOLUME_FLOWRATE = 'FlowingGasVolumeFlowrate'

FLOWRATE = 'Flowrate'

FLOWRATE_BEYOND_CURVE_MAX_RATE = 'FlowrateBeyondCurveMaxRate'

FLOWRATE_DERIVATIVE_OF_OUTLET_PRESSURE = 'FlowrateDerivativeOfOutletPressure'

FLOWRATE_RATIO_CRITICAL = 'FlowrateRatioCritical'

FLOWRATE_TYPE = 'FlowrateType'

FLUID_HANDLE_STRING = 'FluidHandleString'

FRICTION_DELTA_PRESSURE = 'FrictionDeltaPressure'

GENERIC_EQUIPMENT_DELTA_PRESSURE = 'GenericEquipmentPressureDrop'

GLR_INSITU = 'GLRInSitu'

GLR_STOCKTANK = 'GLRStockTank'

LGR_STOCKTANK = 'LGRStockTank'

GOR_STOCKTANK = 'GORStockTank'

GWR_STOCKTANK = 'GWRStockTank'

HEAD = 'Head'

COMPRESSOR_HEAD = 'CompressorHead'

HEAT_CAPACITY_RATIO_UPSTREAM = 'HeatCapacityRatioUpstream'

HEEL_DRAWDOWN = 'HeelDrawdown'

INJECTION_FLUID_ENTHALPY = 'InjectionFluidEnthalpy'

INJECTION_FLUID_GAS_FLOWRATE_STOCKTANK = 'InjectionFluidGasFlowrateStockTank'

INJECTION_FLUID_LIQUID_FLOWRATE_STOCKTANK = 'InjectionFluidLiquidFlowrateStockTank'

INJECTION_FLUID_MASS_FLOWRATE_STOCKTANK = 'InjectionFluidMassFlowrateStockTank'

INJECTION_FLUID_SPECIFIC_GRAVITY_GAS = 'InjectionFluidSpecificGravityGas'

INJECTION_FLUID_TEMPERATURE = 'InjectionFluidTemperature'

INJECTION_GAS_PRESSURE_AT_CASING_HEAD = 'InjectionGasPressureAtCasingHead'

INJECTION_GAS_PRESSURE_AT_INJECTION_POINT = 'InjectionGasPressureAtInjectionPoint'

INJECTION_GAS_TEMPERATURE_AT_CASING_HEAD = 'InjectionGasTemperatureAtCasingHead'

INJECTION_GAS_TEMPERATURE_AT_INJECTION_POINT = 'InjectionGasTemperatureAtInjectionPoint'

INJECTION_PORT_DELTA_PRESSURE = 'InjectionPortDeltaPressure'

INJECTION_PORT_DELTA_TEMPERATURE = 'InjectionPortDeltaTemperature'

INJECTION_PORT_DEPTH = 'InjectionPortDepth'

INLET_PRESSURE = 'InletPressure'

INLET_PRESSURE_DERIVATIVE_OF_FLOWRATE = 'InletPressureDerivativeOfFlowrate'

INLET_PRESSURE_DERIVATIVE_OF_OUTLET_PRESSURE = 'InletPressureDerivativeOfOutletPressure'

INPUT_FLOWRATE_GAS = 'InputFlowrateGas'

INPUT_FLOWRATE_LIQUID = 'InputFlowrateLiquid'

INPUT_FLOWRATE_OIL = 'InputFlowrateOil'

INPUT_MASS_FLOWRATE_FLUID = 'InputMassFlowrateFluid'

INPUT_TEMPERATURE = 'InputTemperature'

IS_CRITICAL_FLOW = 'IsCriticalFlow'

IS_INJECTING_INTO_COMPLETION = 'IsInjectingIntoCompletion'

IS_SUPER_CRITICAL = 'IsSuperCritical'

LIMITED_BY = 'LimitedBy'

LIMIT_RATIO = 'LimitRatio'

LIQUID_FLOWRATE_CRITICAL = 'LiquidFlowrateCritical'

LIQUID_RATE = 'LiquidRate'

MASS_FLOWRATE_CRITICAL = 'MassFlowrateCritical'

MASS_FLOWRATE_FLUID = 'MassFlowrateFluid'

MASS_FLOWRATE_GAS_STOCKTANK = 'MassFlowrateGasStockTank'

MASS_FLOWRATE_O_IL_STOCKTANK = 'MassFlowrateOIlStockTank'

MASS_FLOWRATE_STOCKTANK = 'MassFlowrateStockTank'

MASS_FLOWRATE_WATER_STOCKTANK = 'MassFlowrateWaterStockTank'

MASS_RATE = 'MassRate'

MASS_RATE_REMOVED = 'MassRateRemoved'

MAX_RATIO_CRITICAL = 'MaxRatioCritical'

OGR_STOCKTANK = 'OGRStockTank'

OUTLET_PRESSURE_DERIVATIVE_OF_FLOWRATE = 'OutletPressureDerivativeOfFlowrate'

OUTLET_PRESSURE = 'OutputPressure'

OUTPUT_FLOWRATE_GAS = 'OutputFlowrateGas'

OUTPUT_FLOWRATE_LIQUID = 'OutputFlowrateLiquid'

OUTPUT_FLOWRATE_OIL = 'OutputFlowrateOil'

INPUT_FLOWRATE_WATER = 'InputFlowrateWater'

OUTPUT_FLOWRATE_WATER = 'OutputFlowrateWater'

OUTPUT_MASS_FLOWRATE_FLUID = 'OutputMassFlowrateFluid'

POWER = 'Power'

SURFACEPOWER = 'SurfacePower'

PRESSURE = 'Pressure'

PRESSURE_DIFFERENCE = 'PressureDifference'

PRESSURE_DIFFERENCE_CRITICAL = 'PressureDifferenceCritical'

PRESSURE_MAXIMUM = 'PressureMaximum'

PRESSURE_RATIO = 'PressureRatio'

PRESSURE_RATIO_CRITICAL = 'PressureRatioCritical'

PRESSURE_REDUCTION_PER_STAGE = 'PressureReductionPerStage'

PUMP_EFFICIENCY = 'PumpEfficiency'

PUMP_POWER = 'PumpPower'

RESERVOIR_TEMPERATURE_AVERAGE = 'ReservoirTemperatureAverage'

ROUTE = 'Route'

SPECIFIC_GRAVITY_GAS_STOCKTANK = 'SpecificGravityGasStockTank'

SPECIFIC_GRAVITY_OIL_INSITU = 'SpecificGravityOilInSitu'

SPECIFIC_GRAVITY_WATER_INSITU = 'SpecificGravityWaterInSitu'

SPEED = 'Speed'

SPEED_FRACTION = 'SpeedFraction'

STAGES = 'Stages'

STATIC_DELTA_PRESSURE = 'StaticDeltaPressure'

STATIC_RESERVOIR_PRESSURE = 'StaticReservoirPressure'

STONEWALL_LIMIT_EXCEEDED = 'StonewallLimitExceeded'

SUCTION_INLET_GAS_VOLUME_PERCENT = 'SuctionInletGasVolumePercent'

SUCTION_PRESSURE = 'SuctionPressure'

SUCTION_PRESSURE_DOWNSTREAM_OF_INLET_CHOKE = 'SuctionPressureDownstreamOfInletChoke'

SURFACE_CHOKE_DIAMETER = 'SurfaceChokeDiameter'

SURFACE_INJECTION_PRESSURE = 'SurfaceInjectionPressure'

TEMPERATURE = 'Temperature'

TEMPERATURE_FLOWING = 'TemperatureFlowing'

TEMPERATURE_MIXED_FLUID = 'TemperatureMixedFluid'

TEMPERATURE_PRODUCTION_FLUID = 'TemperatureProductionFluid'

TOE_DRAWDOWN = 'ToeDrawdown'

TOTAL_VOLUME_RATE_BOOSTER = 'TotalVolumeRateBooster'

TOTAL_VOLUME_RATE_OOS_BOOSTER = 'TotalVolumeRateOOSBooster'

TUBING_PRESSURE = 'TubingPressure'

TYPE = 'Type'

UPSTREAM_COOLER_DUTY = 'UpstreamCoolerDuty'

UPSTREAM_DENSITY = 'UpstreamDensity'

UPSTREAM_MACH_NUMBER = 'UpstreamMachNumber'

UPSTREAM_PIPE_ID = 'UpstreamPipeID'

UPSTREAM_PRESSURE = 'UpstreamPressure'

UPSTREAM_SONIC_VELOCITY = 'UpstreamSonicVelocity'

UPSTREAM_VELOCITY = 'UpstreamVelocity'

UPSTREAM_VELOCITY_RATIO_CRITICAL = 'UpstreamVelocityRatioCritical'

VISCOSITY_CORRELATION_FACTOR_FOR_EFFICIENCY = 'ViscosityCorrelationFactorForEfficiency'

VISCOSITY_CORRELATION_FACTOR_FOR_FLOWRATE = 'ViscosityCorrelationFactorForFlowrate'

VISCOSITY_CORRELATION_FACTOR_FOR_HEAD = 'ViscosityCorrelationFactorForHead'

VISCOSITY_CORRELATION_FACTOR_FOR_POWER = 'ViscosityCorrelationFactorForPower'

VOLUME_FLOWRATE_FLUID = 'VolumeFlowrateFluid'

VOLUME_FLOWRATE_GAS_INSITU = 'VolumeFlowrateGasInSitu'

VOLUME_FLOWRATE_GAS_STOCKTANK = 'VolumeFlowrateGasStockTank'

VOLUME_FLOWRATE_GAS_STANDARD = 'VolumeFlowrateGasStandard'

VOLUME_FLOWRATE_LIQUID_INSITU = 'VolumeFlowrateLiquidInSitu'

VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'VolumeFlowrateLiquidStockTank'

VOLUME_FLOWRATE_OIL_INSITU = 'VolumeFlowrateOilInSitu'

VOLUME_FLOWRATE_OIL_STOCKTANK = 'VolumeFlowrateOilStockTank'

VOLUME_FLOWRATE_WATER_INSITU = 'VolumeFlowrateWaterInSitu'

VOLUME_FLOWRATE_WATER_STOCKTANK = 'VolumeFlowrateWaterStockTank'

VOLUME_FRACTION_GAS = 'VolumeFractionGas'

WATER_CUT_INSITU = 'WaterCutInSitu'

WATER_CUT_STOCKTANK = 'WaterCutStockTank'

WATER_OIL_RATIO = 'WaterOilRatio'

WGR_STOCKTANK = 'WGRStockTank'

WORKING_SPEED = 'WorkingSpeed'

WELL_CURVE_PERFORMANCE_PWI = 'WellCurvePerformancePwiId'

VFP_TABLES = 'VFP_TABLES'

VFP_TABLES_WITH_TEMPERATURE = 'VFP_TABLES_WITH_TEMPERATURE'

TOTAL_MOVING_LIQUID_VOLUME = 'TotalMovingLiquidVolume'

TOTAL_STATIC_LIQUID_VOLUME = 'TotalStaticLiquidVolume'

SPHERE_TIME_IN_PIPELINE = 'SphereTimeInPipeline'

MOTOR_LOAD = 'MotorLoad'

MOTOR_EFFICIENCY = 'MotorEfficiency'

MOTOR_CURRENT = 'MotorCurrent'

MOTOR_VOLTAGE = 'MotorVoltage'

MOTOR_POWER_FACTOR = 'MotorPowerFactor'

CABLE_VOLTAGE_DROP = 'CableVoltageDrop'

FLOW_DIRECTION = 'FlowDirectionVariable'

OPENING_AREA = 'OpeningArea'

FLOW_CONTROL_VALVE_POSITION = 'Position'

MINIMUM_MAOP = 'Minimum MAOP'

MAXIMUM_MAOP_RATIO = 'Maximum MAOP ratio'

MAXIMUM_MAOP_RISK = 'Maximum MAOP risk'

RECIRCULATING_FLOW = 'Recirculating flow'

class sixgill.definitions.ProfileVariables
Bases: `object`

Available Results Profile Variables

AMBIENT_FLUID_COEFFICIENT_OF_EXPANSION = 'AmbientFluidCoefficientOfExpansion'

AMBIENT_FLUID_CONDUCTIVITY = 'AmbientFluidConductivity'

AMBIENT_FLUID_DENSITY = 'AmbientFluidDensity'

AMBIENT_FLUID_HEAT_CAPACITY = 'AmbientFluidHeatCapacity'

AMBIENT_FLUID_VELOCITY = 'AmbientFluidVelocity'

AMBIENT_FLUID_VISCOSITY = 'AmbientFluidViscosity'

AMBIENT_TEMPERATURE_AT_NODE = 'AmbientTemperatureAtNode'

ANNULUS_INSIDE_DIAMETER = 'AnnulusInsideDiameter'

ANNULUS_OUTSIDE_DIAMETER = 'AnnulusOutsideDiameter'

ASPHALTENE_FORMATION_TEMPERATURE = 'AsphalteneFormationTemperature'

BP_BUBBLE_LENGTH1IN1000 = 'BPBubbleLength1In1000'

BP_BUBBLE_LENGTH_MEAN = 'BPBubbleLengthMean'

BP_SLUG_FREQUENCY = 'BPSlugFrequency'

BP_SLUG_FREQUENCY1IN1000 = 'BPSlugFrequency1In1000'

BP_SLUG_LENGTH1IN1000 = 'BPSlugLength1In1000'

BP_SLUG_LENGTH_MEAN = 'BPSlugLengthMean'

BP_SLUG_LIQUID_HOLDUP = 'BPSlugLiquidHoldup'

BUBBLE_POINT_PRESSURE_INSITU = 'BubblePointPressureInSitu'

BURIAL_DEPTH_CIRCUMFERENCE = 'BurialDepthCircumference'

BURIAL_DEPTH_FACTOR_EXTRA = 'BurialDepthFactorExtra'

BURIAL_DEPTH_OF_PIPE_CENTERLINE = 'BurialDepthOfPipeCenterline'

BURIAL_DEPTH_OF_PIPE_TOPMOST_COAT = 'BurialDepthOfPipeTopmostCoat'

CASING_GAS_PRESSURE = 'CasingGasPressure'

CASING_GAS_TEMPERATURE = 'CasingGasTemperature'

COEF_OF_EXPANSION_GAS = 'CoefOfExpansionGas'

COEF_OF_EXPANSION_LIQUID = 'CoefOfExpansionLiquid'

COMPRESSIBILITY_OIL_INSITU = 'CompressibilityOilInSitu'

CONDUCTIVITY_FLUID_INSITU = 'ConductivityFluidInSitu'

CONDUCTIVITY_GAS_INSITU = 'ConductivityGasInSitu'

CONDUCTIVITY_LIQUID_INSITU = 'ConductivityLiquidInSitu'

CONDUCTIVITY_OIL_INSITU = 'ConductivityOilInSitu'

CONDUCTIVITY_WATER_INSITU = 'ConductivityWaterInSitu'

CORROSION_RATE = 'CorrosionRate'

CORROSION_PIT_RATE = 'CorrosionPitRate'

CORROSION_CUMULATIVE_LOSS = 'CorrosionCumulativeLoss'

CORROSION_RISK = 'CorrosionRisk'

CROSS_SECTIONAL_AREA_FOR_FLOW = 'CrossSectionalAreaForFlow'

CUMULATIVE_ACCELERATION_PRESSURE_DIFFERENCE = 'CumulativeAccelerationPressureDifference'

CUMULATIVE_ELEVATION_PRESSURE_DIFFERENCE = 'CumulativeElevationPressureDifference'

CUMULATIVE_FRICTION_PRESSURE_DIFFERENCE = 'CumulativeFrictionPressureDifference'

CUMULATIVE_GAS_HOLDUP = 'CumulativeGasHoldup'

CUMULATIVE_LIQUID_HOLDUP = 'CumulativeLiquidHoldup'

CUMULATIVE_OIL_HOLDUP = 'CumulativeOilHoldup'

CUMULATIVE_PIPELINE_VOLUME = 'CumulativePipelineVolume'

CUMULATIVE_WATER_HOLDUP = 'CumulativeWaterHoldup'

DENSITY_FLUID_INSITU = 'DensityFluidInSitu'

DENSITY_FLUID_NO_SLIP_INSITU = 'DensityFluidNoSlipInSitu'

DENSITY_GAS_INSITU = 'DensityGasInSitu'

DENSITY_GAS_STOCKTANK = 'DensityGasStockTank'

DENSITY_LIQUID_INSITU = 'DensityLiquidInSitu'

DENSITY_LIQUID_STOCKTANK = 'DensityLiquidStockTank'

DENSITY_OIL_INSITU = 'DensityOilInSitu'

DENSITY_OIL_STOCKTANK = 'DensityOilStockTank'

DENSITY_WATER_INSITU = 'DensityWaterInSitu'

DENSITY_WATER_STOCKTANK = 'DensityWaterStockTank'

DISTRIBUTED_PI_GAS_INSITU = 'DistributedPIGasInSitu'

DISTRIBUTED_PI_LIQUID_INSITU = 'DistributedPILiquidInSitu'

EFFECTIVE_PERMEABILITY = 'EffectivePermeability'

ELEVATION = 'Elevation'

ENTHALPY_FLUID = 'EnthalpyFluid'

ENTROPY_FLUID_INSITU = 'EntropyFluidInSitu'

EQUIVALENT_HYDRAULIC_DIAMETER = 'EquivalentHydraulicDiameter'

EROSION_RISK = 'ErosionRisk'

EROSIONAL_VELOCITY = 'ErosionalVelocity'

EROSIONAL_VELOCITY_RATIO = 'ErosionalVelocityRatio'

EROSION_RATE = 'ErosionRate'

FLOW_PATTERN_GAS_LIQUID = 'FlowPatternGasLiquid'

FLOW_PATTERN_OIL_WATER = 'FlowPatternOilWater'

FLOWRATE_GAS_INSITU = 'FlowrateGasInSitu'

FLOWRATE_LIQUID_INSITU = 'FlowrateLiquidInsitu'

FORMATION_VOLUME_FACTOR_OIL_INSITU = 'FormationVolumeFactorOilInSitu'

FRICTION_FACTOR_RATIO_TWO_PHASE = 'FrictionFactorRatioTwoPhase'

FRICTION_FACTOR_SINGLE_PHASE = 'FrictionFactorSinglePhase'

FROUDE_NUMBER_GAS = 'FroudeNumberGas'

FROUDE_NUMBER_LIQUID = 'FroudeNumberLiquid'

GLR_STOCKTANK = 'GLRStockTank'

GOR_STOCKTANK = 'GORStockTank'

GROUND_CONDUCTIVITY = 'GroundConductivity'

GROUND_HEAT_TRANSFER_COEFFICIENT = 'GroundHeatTransferCoefficient'

GROUND_HEAT_TRANSFER_COEFFICIENT_NO_ADJUSTMENT_BY_AREA_RATIO = 'GroundHeatTransferCoefficientNoAdjustmentByAreaRatio'

GWR_STOCKTANK = 'GWRStockTank'

HEAT_CAPACITY_FLUID_INSITU = 'HeatCapacityFluidInSitu'

HEAT_CAPACITY_GAS_INSITU = 'HeatCapacityGasInSitu'

HEAT_CAPACITY_LIQUID_INSITU = 'HeatCapacityLiquidInSitu'

HEAT_CAPACITY_OIL_INSITU = 'HeatCapacityOilInSitu'

HEAT_CAPACITY_WATER_INSITU = 'HeatCapacityWaterInSitu'

HOLDUP_FRACTION_LIQUID = 'HoldupFractionLiquid'

HOLDUP_LIQUID_WATER = 'HoldupLiquidWater'

HORIZONTAL_DISTANCE = 'HorizontalDistance'

HORIZONTAL_POSITION = 'HorizontalPosition'

HYDRATE_FORMATION_TEMPERATURE = 'HydrateFormationTemperature'

HYDRATE_SUB_COOLING_DELTA_TEMPERATURE = 'HydrateSubCoolingDeltaTemperature'

HYDROSTATIC_HEAD = 'HydrostaticHead'

INLINE_HEATER_MINIMUM_TEMPERATURE = 'InlineHeaterMinimumTemperature'

INLINE_HEATER_POWER_AVAILABLE = 'InlineHeaterPowerAvailable'

INLINE_HEATER_POWER_USED = 'InlineHeaterPowerUsed'

INPUT_HEAT_TRANSFER_COEFFICIENT = 'InputHeatTransferCoefficient'

INSIDE_FILM_FORCED_CONV_NUSSELT_NUMBER = 'InsideFilmForcedConvNusseltNumber'

INSIDE_FILM_GAS_GRASHOF_NUMBER = 'InsideFilmGasGrashofNumber'

INSIDE_FILM_GAS_HEAT_TRANSFER_COEFFICIENT = 'InsideFilmGasHeatTransferCoefficient'

INSIDE_FILM_GAS_NUSSELT_NUMBER = 'InsideFilmGasNusseltNumber'

INSIDE_FILM_GAS_PRANDTL_NUMBER = 'InsideFilmGasPrandtlNumber'

INSIDE_FILM_GAS_REYNOLDS_NUMBER = 'InsideFilmGasReynoldsNumber'

INSIDE_FILM_GRASHOF_NUMBER = 'InsideFilmGrashofNumber'

INSIDE_FILM_GRASHOF_NUMBER_LIQUID = 'InsideFilmGrashofNumberLiquid'

INSIDE_FILM_LIQUID_HEAT_TRANSFER_COEFFICIENT = 'InsideFilmLiquidHeatTransferCoefficient'

INSIDE_FILM_LIQUID_NUSSELT_NUMBER = 'InsideFilmLiquidNusseltNumber'

INSIDE_FILM_LIQUID_PRANDTL_NUMBER = 'InsideFilmLiquidPrandtlNumber'

INSIDE_FILM_LIQUID_REYNOLDS_NUMBER = 'InsideFilmLiquidReynoldsNumber'

INSIDE_FILM_MEAN_HEAT_TRANSFER_COEFFICIENT = 'InsideFilmMeanHeatTransferCoefficient'

INSIDE_FILM_NATURAL_CONV_NUSSELT_NUMBER = 'InsideFilmNaturalConvNusseltNumber'

INSIDE_FILM_NUSSELT_NUMBER = 'InsideFilmNusseltNumber'

INSIDE_FILM_PRANDTL_NUMBER = 'InsideFilmPrandtlNumber'

INSIDE_FILM_REYNOLDS_NUMBER = 'InsideFilmReynoldsNumber'

INSIDE_FLUID_FILM_HEAT_TRANSFER_COEFFICIENT = 'InsideFluidFilmHeatTransferCoefficient'

JOULE_THOMSON_COEFFICIENT_INSITU = 'JouleThomsonCoefficientInSitu'

JOULE_THOMPSON_COEFFICIENT_INSITU = 'JouleThomsonCoefficientInSitu'

LAYER_STATIC_PRESSURE = 'LayerStaticPressure'

LGR_STOCKTANK = 'LGRStockTank'

LIQUID_LOADING_GAS_RATE = 'LiquidLoadingGasRate'

LIQUID_LOADING_VELOCITY = 'LiquidLoadingVelocity'

LIQUID_LOADING_VELOCITY_RATIO = 'LiquidLoadingVelocityRatio'

LIVE_OIL_SATURATED_VISCOSITY_INSITU = 'LiveOilSaturatedViscosityInSitu'

MACH_NUMBER_IN_FLUID = 'MachNumberInFluid'

MASS_FLOWRATE = 'MassFlowrate'

MASS_FLOWRATE_GAS_INSITU = 'MassFlowrateGasInSitu'

MASS_FLOWRATE_GAS_STOCKTANK = 'MassFlowrateGasStockTank'

MASS_FLOWRATE_LIQUID_INSITU = 'MassFlowrateLiquidInSitu'

MASS_FLOWRATE_LIQUID_STOCKTANK = 'MassFlowrateLiquidStockTank'

MASS_FLOWRATE_OIL_INSITU = 'MassFlowrateOilInSitu'

MASS_FLOWRATE_OIL_STOCKTANK = 'MassFlowrateOilStockTank'

MASS_FLOWRATE_WATER_INSITU = 'MassFlowrateWaterInSitu'

MASS_FLOWRATE_WATER_STOCKTANK = 'MassFlowrateWaterStockTank'

MASS_FRACTION_GAS_INSITU = 'MassFractionGasInSitu'

MASS_FRACTION_LIQUID_INSITU = 'MassFractionLiquidInSitu'

MEAN_COEF_OF_EXPANSION_FLUID = 'MeanCoefOfExpansionFluid'

MEAN_VELOCITY_FLUID = 'MeanVelocityFluid'

MEASURED_DEPTH = 'MeasuredDepth'

MOLAR_DENSITY_STOCKTANK = 'MolarDensityStockTank'

MOLAR_VOLUME_STOCKTANK = 'MolarVolumeStockTank'

MOLECULAR_WEIGHT_FLUID = 'MolecularWeightFluid'

MOLE_FRACTION_CO = 'MoleFractionCO'

MOLE_FRACTION_CO2 = 'MoleFractionCO2'

MOLE_FRACTION_H2 = 'MoleFractionH2'

MOLE_FRACTION_H2S = 'MoleFractionH2S'

MOLE_FRACTION_N2 = 'MoleFractionN2'

MUDLINE_TEMPERATURE = 'MudlineTemperature'

NODE_NUMBER = 'NodeNumber'

OGR_STOCKTANK = 'OGRStockTank'

OIL_FORMATION_VOLUME_FACTOR = 'OilFormationVolumeFactor'

OUTSIDE_FILM_FORCED_CONVECTION_HEAT_TRANSFER_COEFFICIENT = 'OutsideFilmForcedConvectionHeatTransferCoefficient'

OUTSIDE_FILM_FORCED_CONVECTION_NUSSELT_NUMBER = 'OutsideFilmForcedConvectionNusseltNumber'

OUTSIDE_FILM_FREE_CONVECTION_HEAT_TRANSFER_COEFFICIENT = 'OutsideFilmFreeConvectionHeatTransferCoefficient'

OUTSIDE_FILM_FREE_CONVECTION_NUSSELT_NUMBER = 'OutsideFilmFreeConvectionNusseltNumber'

OUTSIDE_FILM_GRASHOF_NUMBER = 'OutsideFilmGrashofNumber'

OUTSIDE_FILM_HEAT_TRANSFER_COEFFICIENT_FOR_BURIED_PORTION = 'OutsideFilmHeatTransferCoefficientForBuriedPortion'

OUTSIDE_FILM_HEAT_TRANSFER_COEFFICIENT_FOR_EXPOSED_PORTION = 'OutsideFilmHeatTransferCoefficientForExposedPortion'

OUTSIDE_FILM_PRANDTL_NUMBER = 'OutsideFilmPrandtlNumber'

OUTSIDE_FILM_RALEIGH_NUMBER = 'OutsideFilmRaleighNumber'

OUTSIDE_FILM_REYNOLDS_NUMBER = 'OutsideFilmReynoldsNumber'

OUTSIDE_FLUID_FILM_HEAT_TRANSFER_COEFFICIENT = 'OutsideFluidFilmHeatTransferCoefficient'

OVERALL_AMBIENT_HEAT_TRANSFER_COEFFICIENT = 'OverallAmbientHeatTransferCoefficient'

OVERALL_HEAT_TRANSFER_COEFFICIENT = 'OverallHeatTransferCoefficient'

OVERALL_HEAT_TRANSFER_COEFFICIENT_OF_BURIED_PORTION = 'OverallHeatTransferCoefficientOfBuriedPortion'

OVERALL_HEAT_TRANSFER_COEFFICIENT_OF_EXPOSED_PORTION = 'OverallHeatTransferCoefficientOfExposedPortion'

PHASE_INVERSION_WATERCUT_LIQUID_INSITU = 'PhaseInversionWatercutLiquidInsitu'

PIPE_ANGLE_TO_HORIZONTAL = 'PipeAngleToHorizontal'

PIPE_COATINGS_THICKNESS = 'PipeCoatingsThickness'

PIPE_INSIDE_DIAMETER = 'PipeInsideDiameter'

PIPE_INSIDE_TEMPERATURE = 'PipeInsideTemperature'

PIPE_INSIDE_TEMPERATURE_BURIED_PART = 'PipeInsideTemperatureBuriedPart'

PIPE_INSIDE_TEMPERATURE_EXPOSED_PART = 'PipeInsideTemperatureExposedPart'

PIPE_OUTSIDE_DIAMETER = 'PipeOutsideDiameter'

PIPE_OUTSIDE_DIAMETER_WITH_COATINGS = 'PipeOutsideDiameterWithCoatings'

PIPE_OUTSIDE_TEMPERATURE = 'PipeOutsideTemperature'

PIPE_OUTSIDE_TEMPERATURE_BURIED_PART = 'PipeOutsideTemperatureBuriedPart'

PIPE_OUTSIDE_TEMPERATURE_EXPOSED_PART = 'PipeOutsideTemperatureExposedPart'

PIPE_WALL_CONDUCTIVITY = 'PipeWallConductivity'

PIPE_WALL_HEAT_TRANSFER_COEFFICIENT = 'PipeWallHeatTransferCoefficient'

PIPE_WALL_ROUGHNESS = 'PipeWallRoughness'

PIPE_WALL_THICKNESS = 'PipeWallThickness'

PRESSURE = 'Pressure'

PRESSURE_DROP_RATIO_ELEVATION = 'PressureDropRatioElevation'

PRESSURE_DROP_RATIO_FRICTION = 'PressureDropRatioFriction'

PRESSURE_DROP_RATIO_TOTAL = 'PressureDropRatioTotal'

PRESSURE_GRADIENT_ACCELERATION = 'PressureGradientAcceleration'

PRESSURE_GRADIENT_ELEVATION = 'PressureGradientElevation'

PRESSURE_GRADIENT_FRICTION = 'PressureGradientFriction'

PRESSURE_GRADIENT_TOTAL = 'PressureGradientTotal'

RELATIVE_PERMEABILITY_OIL = 'RelativePermeabilityOil'

RELATIVE_PERMEABILITY_WATER = 'RelativePermeabilityWater'

RESERVOIR_DRAWDOWN = 'ReservoirDrawdown'

RESERVOIR_PRESSURE = 'ReservoirPressure'

RESERVOIR_SATURATION = 'ReservoirSaturation'

RESERVOIR_SPECIFIC_GAS_INFLOW = 'ReservoirSpecificGasInflow'

RESERVOIR_SPECIFIC_MASS_INFLOW = 'ReservoirSpecificMassInflow'

RESERVOIR_TEMPERATURE = 'ReservoirTemperature'

RESISTANCE_OF_BURIED_PORTION_OVERALL = 'ResistanceOfBuriedPortionOverall'

RESISTANCE_OF_EXPOSED_PORTION_OVERALL = 'ResistanceOfExposedPortionOverall'

RESISTANCE_OF_OUTSIDE_FILM_ON_EXPOSED_PORTION = 'ResistanceOfOutsideFilmOnExposedPortion'

REYNOLDS_NUMBER = 'ReynoldsNumber'

SAND_PRODUCTION_RATE = 'SandProductionRate'

SEGMENT_ENTHALPY_GRADIENT = 'SegmentEnthalpyGradient'

SEGMENT_INFLOW_RATE_GRADIENT = 'SegmentInflowRateGradient'

SEGMENT_LENGTH = 'SegmentLength'

SEGMENT_PRESSURE_GRADIENT = 'SegmentPressureGradient'

SEGMENT_TEMPERATURE_GRADIENT = 'SegmentTemperatureGradient'

SINGLE_PHASE_ELEVATION_PRESSURE_GRADIENT = 'SinglePhaseElevationPressureGradient'

SINGLE_PHASE_FRICTIONAL_PRESSURE_GRADIENT = 'SinglePhaseFrictionalPressureGradient'

SINGLE_PHASE_TOTAL_PRESSURE_GRADIENT = 'SinglePhaseTotalPressureGradient'

SKIN_DUE_TO_COMPACTED_ZONE = 'SkinDueToCompactedZone'

SKIN_DUE_TO_DAMAGED_WELLBORE = 'SkinDueToDamagedWellbore'

SKIN_DUE_TO_GRAVEL_PACK = 'SkinDueToGravelPack'

SKIN_DUE_TO_PERFORATION_GEOMETRY = 'SkinDueToPerforationGeometry'

SKIN_FACTOR_OVERALL = 'SkinFactorOverall'

SKIN_FACTOR_RATE_DEPENDENT = 'SkinFactorRateDependent'

SKIN_TURBULENT_DUE_TO_DAMAGED_WELLBORE = 'SkinTurbulentDueToDamagedWellbore'

SKIN_TURBULENT_DUE_TO_GRAVEL_PACKING = 'SkinTurbulentDueToGravelPacking'

SKIN_TURBULENT_DUE_TO_PERFORATIONS = 'SkinTurbulentDueToPerforations'

SLIP_RATIO_GAS_LIQUID = 'SlipRatioGasLiquid'

SLIP_RATIO_OIL_WATER = 'SlipRatioOilWater'

SLUG_FREQUENCY1IN10 = 'SlugFrequency1In10'

SLUG_FREQUENCY1IN100 = 'SlugFrequency1In100'

SLUG_FREQUENCY1IN1000 = 'SlugFrequency1In1000'

SLUG_FREQUENCY_MEAN = 'SlugFrequencyMean'

SEVERE_SLUGGING_INDICATOR_POTS = 'SeverSluggingIndicatorPots'

SLUG_LENGTH1IN10 = 'SlugLength1In10'

SLUG_LENGTH1IN100 = 'SlugLength1In100'

SLUG_LENGTH1IN1000 = 'SlugLength1In1000'

SLUG_LENGTH_MEAN = 'SlugLengthMean'

SLUG_VOLUME1IN10 = 'SlugVolume1In10'

SLUG_VOLUME1IN100 = 'SlugVolume1In100'

SLUG_VOLUME1IN1000 = 'SlugVolume1In1000'

SLUG_VOLUME_MEAN = 'SlugVolumeMean'

SOLUTION_GAS_IN_OIL_INSITU = 'SolutionGasInOilInSitu'

SOLUTION_GAS_IN_WATER_INSITU = 'SolutionGasInWaterInSitu'

SOLUTION_GAS_POTENTIAL_IN_LIQUID_INSITU = 'SolutionGasPotentialInLiquidInSitu'

SOLUTION_GAS_POTENTIAL_IN_OIL_INSITU = 'SolutionGasPotentialInOilInSitu'

SOLUTION_GAS_POTENTIAL_IN_WATER_INSITU = 'SolutionGasPotentialInWaterInSitu'

SOLUTION_GAS_VOLUME_FLOWRATE_INSITU = 'SolutionGasVolumeFlowrateInSitu'

SONIC_VELOCITY_IN_FLUID = 'SonicVelocityInFluid'

SPECIFIC_GRAVITY_GAS_INSITU = 'SpecificGravityGasInSitu'

SPECIFIC_GRAVITY_GAS_STOCKTANK = 'SpecificGravityGasStockTank'

SPECIFIC_GRAVITY_LIQUID_STOCKTANK = 'SpecificGravityLiquidStockTank'

SPECIFIC_GRAVITY_OIL_STOCKTANK = 'SpecificGravityOilStockTank'

SPECIFIC_GRAVITY_WATER_STOCKTANK = 'SpecificGravityWaterStockTank'

SPECIFIC_HEAT_CAPACITY_RATIO_GAS_INSITU = 'SpecificHeatCapacityRatioGasInSitu'

SPHERE_GENERATED_LIQUID_VOLUME_DUMPING_TIME_TOTAL = 'SphereGeneratedLiquidVolumeDumpingTimeTotal'

SPHERE_GENERATED_LIQUID_VOLUME_FROM_SECTION = 'SphereGeneratedLiquidVolumeFromSection'

SPHERE_GENERATED_LIQUID_VOLUME_SO_FAR = 'SphereGeneratedLiquidVolumeSoFar'

SPHERE_TRANSIT_TIME_FROM_SECTION = 'SphereTransitTimeFromSection'

SUPERFICIAL_VELOCITY_GAS = 'SuperficialVelocityGas'

SUPERFICIAL_VELOCITY_LIQUID = 'SuperficialVelocityLiquid'

SUPERFICIAL_VELOCITY_OIL = 'SuperficialVelocityOil'

SUPERFICIAL_VELOCITY_WATER = 'SuperficialVelocityWater'

SURFACE_TENSION_LIQUID_INSITU = 'SurfaceTensionLiquidInSitu'

SURFACE_TENSION_OIL_GAS_INSITU = 'SurfaceTensionOilGasInSitu'

SURFACE_TENSION_OIL_WATER_INSITU = 'SurfaceTensionOilWaterInSitu'

SURFACE_TENSION_WATER_GAS_INSITU = 'SurfaceTensionWaterGasInSitu'

TEMPERATURE = 'Temperature'

TEMPERATURE_FLUID = 'TemperatureFluid'

TEMPERATURE_GRADIENT_ELEVATION = 'TemperatureGradientElevation'

TEMPERATURE_GRADIENT_GROUND_AND_AMBIENT = 'TemperatureGradientGroundAndAmbient'

TEMPERATURE_GRADIENT_HEAT_TRANSFER = 'TemperatureGradientHeatTransfer'

TEMPERATURE_GRADIENT_INSIDE_FILM = 'TemperatureGradientInsideFilm'

TEMPERATURE_GRADIENT_JOULE_THOMSON = 'TemperatureGradientJouleThomson'

TEMPERATURE_GRADIENT_OVERALL = 'TemperatureGradientOverall'

TEMPERATURE_GRADIENT_PIPE_AND_COATINGS = 'TemperatureGradientPipeAndCoatings'

TOTAL_DISTANCE = 'TotalDistance'

TOTAL_SPHERE_TRANSIT_TIME_SO_FAR = 'TotalSphereTransitTimeSoFar'

TRUE_VERTICAL_DEPTH = 'TrueVerticalDepth'

VELOCITY_GAS = 'VelocityGas'

VELOCITY_LIQUID = 'VelocityLiquid'

VELOCITY_OIL = 'VelocityOil'

VELOCITY_WATER = 'VelocityWater'

VISCOSITY_DEAD_OIL_STOCKTANK = 'ViscosityDeadOilStockTank'

VISCOSITY_FLUID_NO_SLIP_INSITU = 'ViscosityFluidNoSlipInSitu'

VISCOSITY_FLUID_SLIP_INSITU = 'ViscosityFluidSlipInSitu'

VISCOSITY_GAS_INSITU = 'ViscosityGasInSitu'

VISCOSITY_LIQUID_INSITU = 'ViscosityLiquidInSitu'

VISCOSITY_OIL_INSITU = 'ViscosityOilInSitu'

VISCOSITY_WATER_INSITU = 'ViscosityWaterInSitu'

VOLUME_FLOWRATE_FLUID_INSITU = 'VolumeFlowrateFluidInSitu'

VOLUME_FLOWRATE_GAS_INSITU = 'VolumeFlowrateGasInSitu'

VOLUME_FLOWRATE_GAS_INSITU_IDEAL = 'VolumeFlowrateGasInsituIdeal'

VOLUME_FLOWRATE_GAS_STOCKTANK = 'VolumeFlowrateGasStockTank'

VOLUME_FLOWRATE_LIQUID_INSITU = 'VolumeFlowrateLiquidInSitu'

VOLUME_FLOWRATE_LIQUID_STOCKTANK = 'VolumeFlowrateLiquidStockTank'

VOLUME_FLOWRATE_OIL_INSITU = 'VolumeFlowrateOilInSitu'

VOLUME_FLOWRATE_OIL_STOCKTANK = 'VolumeFlowrateOilStockTank'

VOLUME_FLOWRATE_WATER_INSITU = 'VolumeFlowrateWaterInSitu'

VOLUME_FLOWRATE_WATER_STOCKTANK = 'VolumeFlowrateWaterStockTank'

VOLUME_FRACTION_GAS_INSITU = 'VolumeFractionGasInSitu'

VOLUME_FRACTION_LIQUID = 'VolumeFractionLiquid'

VOLUME_FRACTION_LIQUID_STOCKTANK = 'VolumeFractionLiquidStockTank'

WATERCUT = 'Watercut'

WATER_CUT_STOCKTANK = 'WaterCutStockTank'

WAX_FORMATION_TEMPERATURE = 'WaxFormationTemperature'

WAX_SUB_COOLING_DELTA_TEMPERATURE = 'WaxSubCoolingDeltaTemperature'

WGR_STOCKTANK = 'WGRStockTank'

Z_FACTOR_GAS_INSITU = 'ZFactorGasInSitu'

GAS_WALL_SHEAR_STRESS = 'GasWallShearStress'

OIL_WALL_SHEAR_STRESS = 'OilWallShearStress'

WATER_WALL_SHEAR_STRESS = 'WaterWallShearStress'

LIQUID_WALL_SHEAR_STRESS = 'LiquidWallShearStress'

MAOP = 'Max. Allowable Operating Pressure'

MAOP_RATIO = 'Max. Allowable Operating Pressure ratio'

MAOP_RISK = 'Max. Allowable Operating Pressure risk'

class sixgill.definitions.SpotReportVariables
Bases: `object`

PRESSURE = 'Pressure'

TEMPERATURE = 'Temperature'

STOCK_TANK_GAS_FLOWRATE = 'StockTankGasFlowrate'

STOCK_TANK_LIQUID_FLOWRATE = 'StockTankLiquidFlowrate'

STOCK_TANK_OIL_FLOWRATE = 'StockTankOilFlowrate'

STOCK_TANK_WATER_FLOWRATE = 'StockTankWaterFlowrate'

STOCK_TANK_GAS_MASS_FLOWRATE = 'StockTankGasMassFlowrate'

STOCK_TANK_LIQUID_MASS_FLOWRATE = 'StockTankLiquidMassFlowrate'

STOCK_TANK_OIL_MASS_FLOWRATE = 'StockTankOilMassFlowrate'

STOCK_TANK_WATER_MASS_FLOWRATE = 'StockTankWaterMassFlowrate'

STOCK_TANK_GLR = 'StockTankGlr'

STOCK_TANK_GOR = 'StockTankGor'

STOCK_TANK_LGR = 'StockTankLgr'

STOCK_TANK_OGR = 'StockTankOgr'

STOCK_TANK_GWR = 'StockTankGwr'

STOCK_TANK_WGR = 'StockTankWgr'

STOCK_TANK_WATERCUT = 'StockTankWatercut'

STOCK_TANK_MOLAR_DENSITY = 'StockTankMolarDensity'

STOCK_TANK_GAS_DENSITY = 'StockTankGasDensity'

STOCK_TANK_LIQUID_DENSITY = 'StockTankLiquidDensity'

STOCK_TANK_OIL_DENSITY = 'StockTankOilDensity'

STOCK_TANK_WATER_DENSITY = 'StockTankWaterDensity'

STOCK_TANK_GAS_SPECIFIC_GRAVITY = 'StockTankGasSpecificGravity'

STOCK_TANK_LIQUID_SPECIFIC_GRAVITY = 'StockTankLiquidSpecificGravity'

STOCK_TANK_OIL_SPECIFIC_GRAVITY = 'StockTankOilSpecificGravity'

STOCK_TANK_WATER_SPECIFIC_GRAVITY = 'StockTankWaterSpecificGravity'

STOCK_TANK_LIQUID_VOLUME_FRACTION = 'StockTankLiquidVolumeFraction'

MASS_FLOWRATE = 'MassFlowrate'

MOLECULAR_WEIGHT_OF_TOTAL_STREAM = 'MolecularWeightOfTotalStream'

AMBIENT_TEMPERATURE_AT_NODE = 'AmbientTemperatureAtNode'

INSIDE_FLUID_FILM_HEAT_TRANSFER_COEFFICIENT = 'InsideFluidFilmHeatTransferCoefficient'

OVERALL_HEAT_TRANSFER_COEFFICIENT = 'OverallHeatTransferCoefficient'

PIPE_OUTSIDE_DIAMETER = 'PipeOutsideDiameter'

TEMPERATURE_GRADIENT_OVERALL = 'TemperatureGradientOverall'

TEMPERATURE_GRADIENT_ELEVATION = 'TemperatureGradientElevation'

TEMPERATURE_GRADIENT_JOULE_THOMSON = 'TemperatureGradientJouleThomson'

TEMPERATURE_GRADIENT_HEAT_TRANSFER = 'TemperatureGradientHeatTransfer'

TEMPERATURE_GRADIENT_INSIDE_FILM = 'TemperatureGradientInsideFilm'

TEMPERATURE_GRADIENT_PIPE_COATINGS = 'TemperatureGradientPipe&Coatings'

TEMPERATURE_GRADIENT_GROUND_AMBIENT = 'TemperatureGradientGround&Ambient'

FLOWING_LIQUID_FLOWRATE = 'FlowingLiquidFlowrate'

FLOWING_GAS_FLOWRATE = 'FlowingGasFlowrate'

FLOWING_OIL_FLOWRATE = 'FlowingOilFlowrate'

FLOWING_WATER_FLOWRATE = 'FlowingWaterFlowrate'

FLOWING_GAS_VOLUME_FLOWRATE = 'FlowingGasVolumeFlowrate'

FLOWING_LIQUID_VOLUME_FLOWRATE = 'FlowingLiquidVolumeFlowrate'

FLOWING_TOTAL_FLOWRATE = 'FlowingTotalFlowrate'

FLOWING_GAS_MASS_FLOWRATE = 'FlowingGasMassFlowrate'

FLOWING_LIQUID_MASS_FLOWRATE = 'FlowingLiquidMassFlowrate'

FLOWING_OIL_MASS_FLOWRATE = 'FlowingOilMassFlowrate'

FLOWING_WATER_MASS_FLOWRATE = 'FlowingWaterMassFlowrate'

FLOWING_LIQUID_MASS_FRACTION = 'FlowingLiquidMassFraction'

FLOWING_LIQUID_VOLUME_FRACTION = 'FlowingLiquidVolumeFraction'

LIQUID_HOLDUP_FRACTION = 'LiquidHoldupFraction'

FLOWING_WATERCUT = 'FlowingWatercut'

FLOWING_LIQUID_PHASE_INVERSION_WATERCUT = 'FlowingLiquidPhaseInversionWatercut'

FLOWING_GAS_VOLUME_FRACTION = 'FlowingGasVolumeFraction'

FLOWING_GAS_SPECIFIC_GRAVITY = 'FlowingGasSpecificGravity'

FLOWING_GAS_IN_SOLUTION = 'FlowingGasInSolution'

FLOWING_SOLUTION_GAS_IN_OIL = 'FlowingSolutionGasInOil'

FLOWING_SOLUTION_GAS_IN_WATER = 'FlowingSolutionGasInWater'

FLOWING_POTENTIAL_OF_SOLUTION_GAS_IN_LIQUID = 'FlowingPotentialOfSolutionGasInLiquid'

FLOWING_POTENTIAL_OF_SOLUTION_GAS_IN_OIL = 'FlowingPotentialOfSolutionGasInOil'

FLOWING_POTENTIAL_OF_SOLUTION_GAS_IN_WATER = 'FlowingPotentialOfSolutionGasInWater'

FLOWING_BUBBLE_POINT_PRESSURE = 'FlowingBubblePointPressure'

FLOWING_GAS_DENSITY = 'FlowingGasDensity'

FLOWING_LIQUID_DENSITY = 'FlowingLiquidDensity'

FLOWING_OIL_DENSITY = 'FlowingOilDensity'

FLOWING_WATER_DENSITY = 'FlowingWaterDensity'

FLOWING_NO_SLIP_MIXTURE_DENSITY = 'FlowingNoSlipMixtureDensity'

FLOWING_GAS_VISCOSITY = 'FlowingGasViscosity'

FLOWING_LIQUID_VISCOSITY = 'FlowingLiquidViscosity'

FLOWING_OIL_VISCOSITY = 'FlowingOilViscosity'

FLOWING_WATER_VISCOSITY = 'FlowingWaterViscosity'

FLOWING_NO_SLIP_MIXTURE_VISCOSITY = 'FlowingNoSlipMixtureViscosity'

FLOWING_LIQUID_SURFACE_TENSION = 'FlowingLiquidSurfaceTension'

FLOWING_OIL_GAS_SURFACE_TENSION = 'FlowingOilGasSurfaceTension'

FLOWING_WATER_GAS_SURFACE_TENSION = 'FlowingWaterGasSurfaceTension'

FLOWING_OIL_WATER_SURFACE_TENSION = 'FlowingOilWaterSurfaceTension'

FLOWING_OIL_FORMATION_VOLUME_FACTOR = 'FlowingOilFormationVolumeFactor'

FLOWING_OIL_COMPRESSIBILITY = 'FlowingOilCompressibility'

FLUID_ENTHALPY = 'FluidEnthalpy'

FLOWING_ENTROPY = 'FlowingEntropy'

FLOWING_GAS_Z_FACTOR = 'FlowingGasZFactor'

MACH_NUMBER_IN_FLUID = 'MachNumberInFluid'

SONIC_VELOCITY_IN_FLUID = 'SonicVelocityInFluid'

FLOWING_IDEAL_GAS_FLOWRATE = 'Flowing(Ideal)GasFlowrate'

FLOWING_JOULE_THOMSON_COEFFICIENT = 'FlowingJouleThomsonCoefficient'

FLOWING_JOULE_THOMPSON_COEFFICIENT = 'FlowingJouleThomsonCoefficient'

TOTAL_DISTANCE = 'TotalDistance'

CUMULATIVE_LIQUID_HOLDUP = 'CumulativeLiquidHoldup'

CUMULATIVE_OIL_HOLDUP = 'CumulativeOilHoldup'

CUMULATIVE_WATER_HOLDUP = 'CumulativeWaterHoldup'

CUMULATIVE_GAS_HOLDUP = 'CumulativeGasHoldup'

CUMULATIVE_PIPELINE_VOLUME = 'CumulativePipelineVolume'

TOTAL_SPHERE_GENERATED_LIQUID_VOLUME_SO_FAR = 'TotalSphereGeneratedLiquidVolumeSoFar'

CUMULATIVE_FRICTION_PRESSURE_DIFFERENCE = 'CumulativeFrictionPressureDifference'

CUMULATIVE_ELEVATION_PRESSURE_DIFFERENCE = 'CumulativeElevationPressureDifference'

CUMULATIVE_ACCELERATION_PRESSURE_DIFFERENCE = 'CumulativeAccelerationPressureDifference'

FLOW_PATTERN_GAS_LIQUID = 'FlowPattern,GasLiquid'

FLOW_PATTERN_OIL_WATER = 'FlowPattern,OilWater'

WATER_HOLDUP_IN_LIQUID = 'WaterHoldupInLiquid'

GAS_LIQUID_SLIP_RATIO = 'Gas/LiquidSlipRatio'

OIL_WATER_SLIP_RATIO = 'Oil/WaterSlipRatio'

LIQUID_SUPERFICIAL_VELOCITY = 'LiquidSuperficialVelocity'

GAS_SUPERFICIAL_VELOCITY = 'GasSuperficialVelocity'

OIL_SUPERFICIAL_VELOCITY = 'OilSuperficialVelocity'

WATER_SUPERFICIAL_VELOCITY = 'WaterSuperficialVelocity'

LIQUID_VELOCITY = 'LiquidVelocity'

GAS_VELOCITY = 'GasVelocity'

OIL_VELOCITY = 'OilVelocity'

WATER_VELOCITY = 'WaterVelocity'

FLUID_MEAN_VELOCITY = 'FluidMeanVelocity'

EROSIONAL_VELOCITY_RATIO = 'ErosionalVelocityRatio'

LIQUID_LOADING_VELOCITY_RATIO = 'LiquidLoadingVelocityRatio'

PIPE_INSIDE_DIAMETER = 'PipeInsideDiameter'

EQUIVALENT_HYDRAULIC_DIAMETER = 'EquivalentHydraulicDiameter'

ANNULUS_INSIDE_DIAMETER = 'AnnulusInsideDiameter'

ANNULUS_OUTSIDE_DIAMETER = 'AnnulusOutsideDiameter'

CROSS_SECTIONAL_AREA_FOR_FLOW = 'CrossSectionalAreaForFlow'

PIPE_ANGLE_TO_HORIZONTAL = 'PipeAngleToHorizontal'

PIPE_WALL_ROUGHNESS = 'PipeWallRoughness'

FLOWING_SLIP_MIXTURE_DENSITY = 'FlowingSlipMixtureDensity'

FLOWING_SLIP_MIXTURE_VISCOSITY = 'FlowingSlipMixtureViscosity'

PRESSURE_GRADIENT = 'PressureGradient'

FRICTION_PRESSURE_GRADIENT = 'FrictionPressureGradient'

ELEVATION_PRESSURE_GRADIENT = 'ElevationPressureGradient'

ACCELERATION_PRESSURE_GRADIENT = 'AccelerationPressureGradient'

REYNOLDS_NUMBER = 'ReynoldsNumber'

LIQUID_FROUDE_NUMBER = 'LiquidFroudeNumber'

GAS_FROUDE_NUMBER = 'GasFroudeNumber'

SEVERE_SLUGGING_INDICATOR_POTS = 'SevereSluggingIndicatorPots'

MEAN_SLUG_VOLUME = 'MeanSlugVolume'

MEAN_SLUG_LENGTH = 'MeanSlugLength'

MEAN_SLUG_FREQUENCY = 'MeanSlugFrequency'

ONE_IN_1000_SLUG_VOLUME = '1In1000SlugVolume'

ONE_IN_1000_SLUG_LENGTH = '1In1000SlugLength'

ONE_IN_1000_SLUG_FREQUENCY = '1In1000SlugFrequency'

BP_MEAN_SLUG_LENGTH = 'BpMeanSlugLength'

BP_SLUG_FREQUENCY = 'BpSlugFrequency'

BP_SLUG_LIQUID_HOLDUP = 'BpSlugLiquidHoldup'

BP_1_IN_1000_SLUG_LENGTH = 'Bp1In1000SlugLength'

BP_1_IN_1000_SLUG_FREQUENCY = 'Bp1In1000SlugFrequency'

TOTAL_SPHERE_TRANSIT_TIME_SO_FAR = 'TotalSphereTransitTimeSoFar'

TOTAL_SPHERE_GENERATED_LIQUID_VOLUME_DUMPING_TIME_SO_FAR = 'TotalSphereGeneratedLiquidVolumeDumpingTimeSoFar'

COMPONENTS = 'Components'

class sixgill.definitions.OutputVariables
Bases: `object`

class System
Bases: `object`

GAS_FIELD = ['PipeOutsideDiameter', 'SystemPressureLoss', 'SystemInletPressure', 'SystemOutletPressure', 'SystemOutletTemperature', 'TotalLiquidHoldup', 'InletVolumeFlowrateLiquid', 'InletVolumeFlowrateGas', 'InletVelocityFluid', 'OutletVolumeFlowrateLiquid', 'OutletVolumeFlowrateGas', 'OutletVelocityFluid', 'OutletVolumeFlowrateLiquidStockTank', 'OutletGLRStockTank', 'OutletMassFlowrateFluid', 'CaseNumber', 'InletWaterCutStockTank', 'InputTubingHeadPressure', 'InputFlowrate', 'TotalInjectionGas', 'GasLiftInjectionRatio', 'GasLiftInjectionCasingPressure', 'GasLiftInjectionCasingTemperature', 'GasLiftInjectionPortDiameter', 'GasLiftInjectionSourcePressure', 'GasLiftInjectionCasingHeadTemperature', 'PCPIntakePressure', 'PCPIntakeVolumetricFlowrateFluid', 'PCPEfficiency', 'PCPPower', 'PCPTorque', 'PCPSpeed', 'PCPDischargePressure', 'ESPIntakeGasVolumeFraction', 'ESPIntakePressure', 'ESPIntakeTotalVolumetricFlowrate', 'ESPSuctionGasVolumeFraction', 'ESPDischargePressure', 'ESPDeltaPressure', 'ESPPower', 'ESPNumberOfStages', 'ESPHead', 'ESPDeltaTemperature', 'ESPEfficiency', 'ESPEfficiencyFactor', 'ESPFlowrateFactor', 'ESPHeadFactor', 'ESPPowerFactor', 'BottomHolePressure', 'InputWatercut', 'InletVolumeFlowrateLiquidStockTank', 'InletMassFlowrateFluid', 'WellheadPressure', 'WellheadVolumeFlowrateLiquidStockTank', 'WellheadVolumeFlowrateLiquidInSitu', 'WellheadVolumeFlowrateGasStockTank', 'WellheadMassFlowrateFluid', 'NodalPointVolumeFlowrateLiquidStockTank', 'NodalPointPressure', 'NodalPointMassFlowrateFluid', 'TotalPressureDropElevational', 'TotalPressureDropFrictional', 'OutletVolumeFlowrateOilStockTank', 'OutletMassFlowrateOilStockTank', 'OutletVolumeFlowrateWaterStockTank', 'OutletMassFlowrateWaterStockTank', 'OutletVolumeFlowrateGasStockTank', 'OutletMassFlowrateGasStockTank', 'NodalPointVolumeFlowrateGasStockTank', 'InletVolumeFlowrateGasStockTank', 'SevereSluggingIndicator', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'ErosionalVelocityMaximum', 'MaximumErosionalVelocityRatio', 'ESPFrequency', 'SphereGeneratedLiquidVolume', 'InletMassFractionGas', 'TotalOilHoldup', 'TotalWaterHoldup', 'SystemTemperatureDifference', 'OutletWaterCutStockTank', 'OutletGORStockTank', 'OutletFractionCO2', 'OutletFractionH2S', 'OutletFractionN2', 'OutletFractionH2', 'OutletFractionCO', 'CaseStatus', 'MaximumVelocityGas', 'InletErosionalVelocityRatio', 'OutletErosionalVelocityRatio', 'MaximumHydrateSubCoolingTemperatureDifference', 'MaximumErosionRate', 'MaximumCorrosionRate', 'MaximumErosionRisk', 'MaximumCorrosionRisk', 'MaximumLiquidLoadingVelocityRatio', 'MaximumLiquidLoadingGasRate', 'NodalPointBubblePointPressure']

WELL_PERFORMANCE = ['PipeOutsideDiameter', 'SystemPressureLoss', 'SystemInletPressure', 'SystemOutletPressure', 'SystemOutletTemperature', 'TotalLiquidHoldup', 'InletVolumeFlowrateLiquid', 'InletVolumeFlowrateGas', 'InletVelocityFluid', 'OutletVolumeFlowrateLiquid', 'OutletVolumeFlowrateGas', 'OutletVelocityFluid', 'OutletVolumeFlowrateLiquidStockTank', 'OutletGLRStockTank', 'OutletMassFlowrateFluid', 'CaseNumber', 'InletWaterCutStockTank', 'InputTubingHeadPressure', 'InputFlowrate', 'TotalInjectionGas', 'GasLiftInjectionRatio', 'GasLiftInjectionCasingPressure', 'GasLiftInjectionCasingTemperature', 'GasLiftInjectionPortDiameter', 'GasLiftInjectionSourcePressure', 'GasLiftInjectionCasingHeadTemperature', 'PCPIntakePressure', 'PCPIntakeVolumetricFlowrateFluid', 'PCPEfficiency', 'PCPPower', 'PCPTorque', 'PCPSpeed', 'PCPDischargePressure', 'ESPIntakeGasVolumeFraction', 'ESPIntakePressure', 'ESPIntakeTotalVolumetricFlowrate', 'ESPSuctionGasVolumeFraction', 'ESPDischargePressure', 'ESPDeltaPressure', 'ESPPower', 'ESPNumberOfStages', 'ESPHead', 'ESPDeltaTemperature', 'ESPEfficiency', 'ESPEfficiencyFactor', 'ESPFlowrateFactor', 'ESPHeadFactor', 'ESPPowerFactor', 'BottomHolePressure', 'InputWatercut', 'InletVolumeFlowrateLiquidStockTank', 'InletMassFlowrateFluid', 'WellheadPressure', 'WellheadVolumeFlowrateLiquidStockTank', 'WellheadVolumeFlowrateLiquidInSitu', 'WellheadMassFlowrateFluid', 'NodalPointVolumeFlowrateLiquidStockTank', 'NodalPointPressure', 'NodalPointVolumeFlowrateLiquidInSitu', 'NodalPointVolumeFlowrateGasInSitu', 'NodalPointMassFlowrateFluid', 'HeelReservoirDrawdown', 'TotalPressureDropElevational', 'TotalPressureDropFrictional', 'OutletVolumeFlowrateOilStockTank', 'OutletMassFlowrateOilStockTank', 'OutletVolumeFlowrateWaterStockTank', 'OutletMassFlowrateWaterStockTank', 'OutletVolumeFlowrateGasStockTank', 'OutletMassFlowrateGasStockTank', 'WellheadVolumeFlowrateOilStockTank', 'NodalPointVolumeFlowrateOilStockTank', 'WellheadVolumeFlowrateGasStockTank', 'NodalPointVolumeFlowrateGasStockTank', 'InletVolumeFlowrateGasStockTank', 'SevereSluggingIndicator', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'ErosionalVelocityMaximum', 'MaximumErosionalVelocityRatio', 'ESPFrequency', 'SphereGeneratedLiquidVolume', 'WellheadTemperature', 'PressureDropTotalCompletion', 'InletMassFractionGas', 'SystemTemperatureDifference', 'OutletWaterCutStockTank', 'OutletGORStockTank', 'CaseStatus', 'MaximumErosionRate', 'MaximumCorrosionRate', 'MaximumErosionRisk', 'MaximumCorrosionRisk', 'MaximumLiquidLoadingVelocityRatio', 'MaximumLiquidLoadingGasRate', 'NodalPointBubblePointPressure']

FLOW_ASSURANCE = ['PipeOutsideDiameter', 'SystemPressureLoss', 'SystemInletPressure', 'SystemOutletPressure', 'SystemOutletTemperature', 'TotalLiquidHoldup', 'InletVolumeFlowrateLiquid', 'InletVolumeFlowrateGas', 'InletVelocityFluid', 'OutletVolumeFlowrateLiquid', 'OutletVolumeFlowrateGas', 'OutletVelocityFluid', 'HeatTransferCoefficient', 'OutletVolumeFlowrateLiquidStockTank', 'OutletGLRStockTank', 'OutletMassFlowrateFluid', 'CaseNumber', 'InletWaterCutStockTank', 'InputTubingHeadPressure', 'InputFlowrate', 'TotalInjectionGas', 'GasLiftInjectionRatio', 'GasLiftInjectionCasingPressure', 'GasLiftInjectionCasingTemperature', 'GasLiftInjectionPortDiameter', 'GasLiftInjectionSourcePressure', 'GasLiftInjectionCasingHeadTemperature', 'PCPIntakePressure', 'PCPIntakeVolumetricFlowrateFluid', 'PCPEfficiency', 'PCPPower', 'PCPTorque', 'PCPSpeed', 'PCPDischargePressure', 'ESPIntakeGasVolumeFraction', 'ESPIntakePressure', 'ESPIntakeTotalVolumetricFlowrate', 'ESPSuctionGasVolumeFraction', 'ESPDischargePressure', 'ESPDeltaPressure', 'ESPPower', 'ESPNumberOfStages', 'ESPHead', 'ESPDeltaTemperature', 'ESPEfficiency', 'ESPEfficiencyFactor', 'ESPFlowrateFactor', 'ESPHeadFactor', 'ESPPowerFactor', 'BottomHolePressure', 'InputWatercut', 'InletVolumeFlowrateLiquidStockTank', 'InletMassFlowrateFluid', 'WellheadPressure', 'WellheadVolumeFlowrateLiquidStockTank', 'WellheadVolumeFlowrateLiquidInSitu', 'WellheadVolumeFlowrateGasStockTank', 'WellheadMassFlowrateFluid', 'NodalPointVolumeFlowrateLiquidStockTank', 'NodalPointPressure', 'NodalPointMassFlowrateFluid', 'TotalPressureDropElevational', 'TotalPressureDropFrictional', 'OutletVolumeFlowrateOilStockTank', 'OutletMassFlowrateOilStockTank', 'OutletVolumeFlowrateWaterStockTank', 'OutletMassFlowrateWaterStockTank', 'OutletVolumeFlowrateGasStockTank', 'OutletMassFlowrateGasStockTank', 'WellheadVolumeFlowrateOilStockTank', 'NodalPointVolumeFlowrateGasStockTank', 'InletVolumeFlowrateGasStockTank', 'SevereSluggingIndicator', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'SlugVolume1In1000', 'SlugLength1In1000', 'SlugFrequency1In1000', 'ErosionalVelocityMaximum', 'MaximumErosionalVelocityRatio', 'ESPFrequency', 'SphereGeneratedLiquidVolume', 'PressureDropTotalAcceleration', 'InletMassFractionGas', 'TotalOilHoldup', 'TotalWaterHoldup', 'SystemTemperatureDifference', 'MaximumHeatTransferCoefficient', 'OutletWaterCutStockTank', 'OutletGORStockTank', 'CaseStatus', 'MaximumVelocityFluid', 'MaximumVelocityLiquid', 'MaximumVelocityGas', 'MaximumHydrateSubCoolingTemperatureDifference', 'MaximumWaxSubCoolingTemperatureDifference', 'MaximumErosionRate', 'MaximumCorrosionRate', 'MaximumErosionRisk', 'MaximumCorrosionRisk', 'MaximumLiquidLoadingVelocityRatio', 'MaximumLiquidLoadingGasRate', 'NodalPointBubblePointPressure', 'TotalMovingLiquidVolume', 'TotalStaticLiquidVolume', 'Minimum MAOP', 'Maximum MAOP ratio', 'Maximum MAOP risk']

LARGE_NETWORK = ['PipeOutsideDiameter', 'SystemPressureLoss', 'SystemInletPressure', 'SystemOutletPressure', 'SystemOutletTemperature', 'TotalLiquidHoldup', 'InletVolumeFlowrateLiquid', 'InletVolumeFlowrateGas', 'InletVelocityFluid', 'OutletVolumeFlowrateLiquid', 'OutletVolumeFlowrateGas', 'OutletVelocityFluid', 'OutletVolumeFlowrateLiquidStockTank', 'OutletGLRStockTank', 'OutletMassFlowrateFluid', 'TotalInjectionGas', 'GasLiftInjectionRatio', 'GasLiftInjectionCasingPressure', 'GasLiftInjectionCasingTemperature', 'GasLiftInjectionPortDiameter', 'GasLiftInjectionSourcePressure', 'GasLiftInjectionCasingHeadTemperature', 'PCPIntakePressure', 'PCPIntakeVolumetricFlowrateFluid', 'PCPEfficiency', 'PCPPower', 'PCPTorque', 'PCPSpeed', 'PCPDischargePressure', 'ESPIntakeGasVolumeFraction', 'ESPIntakePressure', 'ESPIntakeTotalVolumetricFlowrate', 'ESPSuctionGasVolumeFraction', 'ESPDischargePressure', 'ESPDeltaPressure', 'ESPPower', 'ESPNumberOfStages', 'ESPHead', 'ESPDeltaTemperature', 'ESPEfficiency', 'ESPEfficiencyFactor', 'ESPFlowrateFactor', 'ESPHeadFactor', 'ESPPowerFactor', 'BottomHolePressure', 'InletVolumeFlowrateLiquidStockTank', 'InletMassFlowrateFluid', 'WellheadPressure', 'WellheadVolumeFlowrateLiquidStockTank', 'WellheadVolumeFlowrateLiquidInSitu', 'WellheadVolumeFlowrateGasStockTank', 'NodalPointVolumeFlowrateLiquidStockTank', 'NodalPointPressure', 'NodalPointMassFlowrateFluid', 'TotalPressureDropElevational', 'TotalPressureDropFrictional', 'OutletVolumeFlowrateOilStockTank', 'OutletMassFlowrateOilStockTank', 'OutletVolumeFlowrateWaterStockTank', 'OutletMassFlowrateWaterStockTank', 'OutletVolumeFlowrateGasStockTank', 'OutletMassFlowrateGasStockTank', 'WellheadVolumeFlowrateOilStockTank', 'NodalPointVolumeFlowrateGasStockTank', 'InletVolumeFlowrateGasStockTank', 'SevereSluggingIndicator', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'ErosionalVelocityMaximum', 'MaximumErosionalVelocityRatio', 'ESPFrequency', 'SphereGeneratedLiquidVolume', 'InletMassFractionGas', 'SystemTemperatureDifference', 'OutletWaterCutStockTank', 'OutletGORStockTank', 'MaximumErosionRate', 'MaximumCorrosionRate', 'MaximumErosionRisk', 'MaximumCorrosionRisk', 'MaximumLiquidLoadingVelocityRatio', 'MaximumLiquidLoadingGasRate', 'NodalPointBubblePointPressure']

class Profile
Bases: `object`

GAS_FIELD = ['HorizontalDistance', 'TotalDistance', 'Elevation', 'Pressure', 'Temperature', 'HoldupFractionLiquid', 'VelocityLiquid', 'VelocityGas', 'MeanVelocityFluid', 'NodeNumber', 'HydrostaticHead', 'PipeInsideDiameter', 'EnthalpyFluid', 'Watercut', 'VolumeFractionLiquid', 'TrueVerticalDepth', 'MeasuredDepth', 'FlowrateLiquidInsitu', 'FlowrateGasInSitu', 'PressureGradientTotal', 'AmbientTemperatureAtNode', 'PressureGradientFriction', 'PressureGradientElevation', 'PressureGradientAcceleration', 'VolumeFlowrateGasStockTank', 'VolumeFlowrateLiquidStockTank', 'VolumeFlowrateOilStockTank', 'GLRStockTank', 'LGRStockTank', 'MassFlowrate', 'VolumeFlowrateGasInSitu', 'VolumeFlowrateLiquidInSitu', 'VolumeFlowrateOilInSitu', 'VolumeFractionGasInSitu', 'SpecificGravityGasInSitu', 'DensityGasInSitu', 'ViscosityGasInSitu', 'ViscosityLiquidInSitu', 'EntropyFluidInSitu', 'ZFactorGasInSitu', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'SeverSluggingIndicatorPots', 'ErosionalVelocity', 'ErosionalVelocityRatio', 'FlowPatternGasLiquid', 'FlowPatternOilWater', 'SuperficialVelocityLiquid', 'SuperficialVelocityGas', 'HorizontalPosition', 'ErosionRate', 'CorrosionRate', 'CorrosionPitRate', 'CorrosionCumulativeLoss', 'ErosionRisk', 'CorrosionRisk', 'HydrateFormationTemperature', 'HydrateSubCoolingDeltaTemperature', 'LiquidLoadingVelocity', 'LiquidLoadingVelocityRatio', 'LiquidLoadingGasRate']

WELL_PERFORMANCE = ['HorizontalDistance', 'TotalDistance', 'Elevation', 'Pressure', 'Temperature', 'HoldupFractionLiquid', 'VelocityLiquid', 'VelocityGas', 'MeanVelocityFluid', 'NodeNumber', 'HydrostaticHead', 'PipeInsideDiameter', 'Watercut', 'VolumeFractionLiquid', 'TrueVerticalDepth', 'MeasuredDepth', 'FlowrateLiquidInsitu', 'FlowrateGasInSitu', 'ReservoirDrawdown', 'PressureGradientTotal', 'LayerStaticPressure', 'OilFormationVolumeFactor', 'AmbientTemperatureAtNode', 'SkinTurbulentDueToDamagedWellbore', 'SkinFactorOverall', 'SkinFactorRateDependent', 'SkinDueToDamagedWellbore', 'SkinDueToPerforationGeometry', 'SkinDueToCompactedZone', 'SkinDueToGravelPack', 'SkinTurbulentDueToPerforations', 'SkinTurbulentDueToGravelPacking', 'EffectivePermeability', 'PressureGradientFriction', 'PressureGradientElevation', 'PressureGradientAcceleration', 'VolumeFlowrateGasStockTank', 'VolumeFlowrateLiquidStockTank', 'VolumeFlowrateOilStockTank', 'GLRStockTank', 'LGRStockTank', 'MassFlowrate', 'VolumeFlowrateGasInSitu', 'VolumeFlowrateLiquidInSitu', 'VolumeFlowrateOilInSitu', 'VolumeFlowrateWaterInSitu', 'VolumeFractionGasInSitu', 'BubblePointPressureInSitu', 'DensityLiquidInSitu', 'DensityOilInSitu', 'DensityWaterInSitu', 'ViscosityGasInSitu', 'ViscosityLiquidInSitu', 'ErosionalVelocity', 'ErosionalVelocityRatio', 'HeatCapacityGasInSitu', 'HeatCapacityLiquidInSitu', 'FlowPatternGasLiquid', 'FlowPatternOilWater', 'SuperficialVelocityLiquid', 'SuperficialVelocityGas', 'HorizontalPosition', 'ErosionRate', 'CorrosionRate', 'CorrosionPitRate', 'CorrosionCumulativeLoss', 'ErosionRisk', 'CorrosionRisk', 'LiquidLoadingVelocity', 'LiquidLoadingVelocityRatio', 'LiquidLoadingGasRate', 'SpecificHeatCapacityRatioGasInSitu', 'SeverSluggingIndicatorPots']

FLOW_ASSURANCE = ['HorizontalDistance', 'TotalDistance', 'Elevation', 'Pressure', 'Temperature', 'HoldupFractionLiquid', 'VelocityLiquid', 'VelocityGas', 'MeanVelocityFluid', 'NodeNumber', 'HydrostaticHead', 'PipeInsideDiameter', 'EnthalpyFluid', 'Watercut', 'VolumeFractionLiquid', 'TrueVerticalDepth', 'MeasuredDepth', 'FlowrateLiquidInsitu', 'FlowrateGasInSitu', 'PressureGradientTotal', 'AmbientTemperatureAtNode', 'PressureGradientFriction', 'PressureGradientElevation', 'PressureGradientAcceleration', 'ReynoldsNumber', 'VolumeFlowrateGasStockTank', 'VolumeFlowrateLiquidStockTank', 'VolumeFlowrateOilStockTank', 'GLRStockTank', 'LGRStockTank', 'MassFlowrate', 'VolumeFlowrateGasInSitu', 'VolumeFlowrateLiquidInSitu', 'VolumeFlowrateOilInSitu', 'VolumeFlowrateWaterInSitu', 'VolumeFractionGasInSitu', 'BubblePointPressureInSitu', 'DensityGasInSitu', 'DensityLiquidInSitu', 'DensityOilInSitu', 'DensityWaterInSitu', 'DensityFluidNoSlipInSitu', 'DensityFluidInSitu', 'ViscosityGasInSitu', 'ViscosityLiquidInSitu', 'EntropyFluidInSitu', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'SeverSluggingIndicatorPots', 'SlugVolume1In1000', 'SlugLength1In1000', 'SlugFrequency1In1000', 'ErosionalVelocity', 'ErosionalVelocityRatio', 'OverallHeatTransferCoefficient', 'InsideFluidFilmHeatTransferCoefficient', 'HeatCapacityGasInSitu', 'HeatCapacityLiquidInSitu', 'FlowPatternGasLiquid', 'FlowPatternOilWater', 'SuperficialVelocityLiquid', 'SuperficialVelocityGas', 'HorizontalPosition', 'ErosionRate', 'CorrosionRate', 'CorrosionPitRate', 'CorrosionCumulativeLoss', 'ErosionRisk', 'CorrosionRisk', 'HydrateFormationTemperature', 'HydrateSubCoolingDeltaTemperature', 'WaxFormationTemperature', 'WaxSubCoolingDeltaTemperature', 'AsphalteneFormationTemperature', 'LiquidLoadingVelocity', 'LiquidLoadingVelocityRatio', 'LiquidLoadingGasRate', 'TemperatureGradientElevation', 'TemperatureGradientJouleThomson', 'TemperatureGradientHeatTransfer', 'TemperatureGradientOverall', 'TemperatureGradientInsideFilm', 'TemperatureGradientPipeAndCoatings', 'TemperatureGradientGroundAndAmbient', 'SpecificHeatCapacityRatioGasInSitu', 'Max. Allowable Operating Pressure', 'Max. Allowable Operating Pressure ratio', 'Max. Allowable Operating Pressure risk']

LARGE_NETWORK = ['HorizontalDistance', 'TotalDistance', 'Elevation', 'Pressure', 'Temperature', 'HoldupFractionLiquid', 'VelocityLiquid', 'VelocityGas', 'MeanVelocityFluid', 'HydrostaticHead', 'PipeInsideDiameter', 'Watercut', 'VolumeFractionLiquid', 'FlowrateLiquidInsitu', 'FlowrateGasInSitu', 'PressureGradientTotal', 'AmbientTemperatureAtNode', 'PressureGradientFriction', 'PressureGradientElevation', 'PressureGradientAcceleration', 'VolumeFlowrateGasStockTank', 'VolumeFlowrateLiquidStockTank', 'VolumeFlowrateOilStockTank', 'GLRStockTank', 'LGRStockTank', 'MassFlowrate', 'VolumeFlowrateGasInSitu', 'VolumeFlowrateLiquidInSitu', 'VolumeFlowrateOilInSitu', 'VolumeFlowrateWaterInSitu', 'VolumeFractionGasInSitu', 'DensityLiquidInSitu', 'DensityOilInSitu', 'DensityWaterInSitu', 'ViscosityGasInSitu', 'ViscosityLiquidInSitu', 'SlugVolumeMean', 'SlugLengthMean', 'SlugFrequencyMean', 'SeverSluggingIndicatorPots', 'ErosionalVelocity', 'ErosionalVelocityRatio', 'HeatCapacityGasInSitu', 'HeatCapacityLiquidInSitu', 'FlowPatternGasLiquid', 'FlowPatternOilWater', 'HorizontalPosition', 'ErosionRate', 'CorrosionRate', 'CorrosionPitRate', 'CorrosionCumulativeLoss', 'ErosionRisk', 'CorrosionRisk', 'LiquidLoadingVelocity', 'LiquidLoadingVelocityRatio', 'LiquidLoadingGasRate', 'SpecificHeatCapacityRatioGasInSitu']

class sixgill.definitions.EspCurvesVariables
Bases: `object`

Available Results Profile Variables

VARIABLESPEEDCURVE = ('Speed',)

VARIABLEPERFORMANCECURVE = 'Performance'

VALUES = ('Values',)

VALUE = ('Value',)

UNIT = ('Unit',)

FREQUENCIES = ('Frequencies',)

OPERATINGENVELOPE = ('OperatingEnvelope',)

FLOWRATE = ('Flowrate',)

MODEL = ('Model',)

MANUFACTURER = ('Manufacturer',)

MAXFLOWRATE = ('MaxFlowrate',)

MINFLOWRATE = ('MinFlowrate',)

STAGES = ('BaseStages',)

FREQUENCY = ('Frequency',)

SPEED = ('Speed',)

POWER = ('Power',)

HEAD = ('Head',)

EFFICIENCY = ('Efficiency',)

INPUTS = ('Inputs',)

OPERATINGPOINT = ('OperatingPoint',)

MINCURVE = ('MinCurve',)

BEPCURVE = ('BepCurve',)

MAXCURVE = ('MaxCurve',)

class sixgill.definitions.RequestMessageType(**values*)
Bases: `str`, `Enum`

Available options for optimizer request message

NONE = 'None'

DATA_ONLY = 'DataOnly'

DATA_AND_MODELTEXT = 'DataAndModelText'

DATA_AND_MODELFILENAME = 'DataAndModelFileName'

class sixgill.definitions.SimulationSettings
Bases: `object`

Convenience aliases for simulation setting keys.

Primary supported keys are under Parameters.SimulationSetting.*.

ADVANCED_COMPRESSOR_HANDLING = 'AdvancedCompressorHandling'

## sixgill.ErosionCorrosionRiskIndexLimits module

Definition of the ValidationIssue class

class sixgill.ErosionCorrosionRiskIndexLimits.ErosionCorrosionRiskIndexLimits(*node*, *units_manager*, *is_erosion*)
Bases: `object`

A class to describe the risk index limits

property negligible
Get the negligible value

property low
Get the low value

property moderate
Get the moderate value

property high
Get the high value

## sixgill.model_setting module

class sixgill.model_setting.ModelSetting(*model*)
Bases: `dict`

A class to get and set the model and simulation settings

get(*key*, *default=None*)
Return the value for key if key is in the dictionary, else default.

items()
Return a set-like object providing a view on the dict’s items.

keys()
Return a set-like object providing a view on the dict’s keys.

values()
Return an object providing a view on the dict’s values.

pop(*k*[, *d*]) → v, remove specified key and return the corresponding value.
If the key is not found, return the default if given; otherwise,
raise a KeyError.

popitem(**args*, ***kwargs*)
Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order.
Raises KeyError if the dict is empty.

clear(**args*, ***kwargs*)
Remove all items from the dict.

update([*E*, ]***F*) → None.  Update D from mapping/iterable E and F.
If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k]
If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v
In either case, this is followed by: for k in F: D[k] = F[k]

setdefault(**args*, ***kwargs*)
Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

fromkeys(**args*, ***kwargs*)
Create a new dictionary with keys from iterable and values set to value.

property ambient_temperature

property atmospheric_pressure

property wind_speed

property soil_type

property soil_conductivity

property metocean_data_location

property erosional_velocity_constant

property corrosion_model

property corrosion_efficiency

property max_report_interval_length

property print_computation_segment_result

property max_computation_segment_length

property max_emulsion_inversion_watercut

property network_solver_method

property network_solver_tolerance

property advanced_well_solver_tolerance

property network_solver_max_iterations

property single_branch_keywords

property network_keywords_top

property network_keywords_bottom

property gis_elevation_interval

property gis_elevation_max_points

property use_global_flow_correlation

property use_global_heat_transfer

property use_global_corrosion_model

property pump_speed_factor

property advanced_compressor_handling

property global_flow_correlation
Return global flow correlation settings as a dictionary

property global_heat_transfer_option
Return global heat transfer options as a dictionary

property erosion_limits
The erosion risk index limits

property corrosion_limits
Deprecated. Use corrosion_model_dewaard.corrosion_limits instead.
The corrosion risk index limits

property corrosion_model_dewaard
The dewaard corrosion model

property corrosion_model_tpa
The tpa corrosion model

get_corrosion_models(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → dict
Return corrosion model for wells or flowlines that match the given context.
If no context specified, return all corrosion models for wells and flowlines.

Parameters:

- **context** (*str*) – Optional. The context string to search in.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
A dictionary that contains corrosion model settings.
If the corrosion model is set to “None”, the dictionary will be empty

Return type:
dict

Examples

```
    >>> model.sim_settings.get_corrosion_models(context="Well 23")
    >>> model.sim_settings.get_corrosion_models()
```

set_corrosion_models(*corrosion_data*)
Set corrosion model settings for wells and flowlines from a dictionary.
The key of the dictionary is the name of flowline or well that corrosion model is associated with
and the value is a sub dictionary that contains corrosion model settings.
If name is “Default”, it is considered the global default corrosion model.
the settings not belonging to the corrosion model are ignored. Ex: TPA corrosion model
has no setting for PH value, if PH value is specified for a TPA model, it will be ignored
The keys of sub dictionary are:
Parameters.DeWaardCorrosionModel.EFFICIENCY
Parameters.DeWaardCorrosionModel.CALCULATEPH
Parameters.DeWaardCorrosionModel.PHVALUE

Parameters.TpaCorrosionModel.OXYGENORBACTERIA
Parameters.TpaCorrosionModel.PREEXISTINGDAMAGE
Parameters.TpaCorrosionModel.POWDERORDEBRIS
Parameters.TpaCorrosionModel.PIPEDEPLOYMENTYEAR
Parameters.TpaCorrosionModel.CORROSIONASSESSMENTYEAR

get_flow_correlations(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → dict
Return flow correlation settings for wells or flowlines that match the given context.
If no context specified, return all flow correlation settings for wells and flowlines.

Parameters:

- **context** (*str*) – Optional. The context string to search in.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
A dictionary that contains flow correlation settings.

Return type:
dict

Examples

```
    >>> model.sim_settings.get_flow_correlations(context="Well 23")
    >>> model.sim_settings.get_flow_correlations()
```

get_heat_transfer_options(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → dict
Return heat transfer options for wells or flowlines that match the given context.
If no context specified, return all heat transfer options for wells and flowlines.

Parameters:

- **context** (*str*) – Optional. The context string to search in.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
A dictionary that contains heat transfer options.

Return type:
dict

Examples

```
    >>> model.sim_settings.get_heat_transfer_options(context="Well 23")
    >>> model.sim_settings.get_heat_transfer_options()
```

set_flow_correlations(*flow_correlations*)
Set flow correlation settings for well and flowlines from a dictionary.
The key of the dictionary is the name of flowline or well that flow correlation is associated with
and the value is a sub dictionary that contains flow correlation settings.
If name is “Default”, it is considered the global default flow correlation.
The keys of sub dictionary are:
VerticalMultiphaseSource: Vertifical multiphase flow correlation source
VerticalMultiphaseCorrelation: Vertifical multiphase flow correlation name
VerticalMultiphaseHoldupFactor: Vertifical multiphase flow correlation holdup factor
VerticalMultiphaseFrictionFactor: Vertifical multiphase flow correlation fricition factor
HorizontalMultiphaseSource: Horizontal multiphase flow correlation source
HorizontalMultiphaseCorrelation: Horizontal multiphase flow correlation name
HorizontalMultiphaseHoldupFactor: Horizontal multiphase flow correlation holdup factor
HorizontalMultiphaseFrictionFactor: Horizontal multiphase flow correlation fricition factor
SwapAngle : Vertical and horizontal swap angle
SinglePhaseCorrelation : Single phase flow correlation name
SinglePhaseFactor : Single phase flow correlation factor

set_heat_transfer_options(*heat_transfer_options*)
Set heat transfer option settings for well and flowlines from a dictionary.
The key of the dictionary is the name of flowline or well that heat transfer option is associated with
and the value is a sub dictionary that contains heat transfer options.
If name is “Default”, it is considered as global heat transfer options.
The keys of sub dictionary are:
PipeBurialMethod: Pipe burial method
InsideFilmCoeffMethod: Inside film coefficient method
UValueMultiplier: U value multiplier
EnableHydrateSubcoolCalc: boolean flag indicating whether to enable hydrate subcooling calculation

class sixgill.model_setting.GlobalFlowCorrelation(*get_web_api*, *get_flow_corr*, *set_flow_corr*)
Bases: `object`

A class to get and set the global flow correlations.

property vertical_source

property vertical_correlation

property vertical_holdup_factor

property vertical_friction_factor

property horizontal_source

property horizontal_correlation

property horizontal_holdup_factor

property horizontal_friction_factor

class sixgill.model_setting.GlobalHeatTransferOption(*get_web_api*, *get_htc_opt*, *set_htc_opt*)
Bases: `object`

A class to get and set the global heat transfer options

property pipe_burial_method

property inside_film_coeff_method

property u_value_multiplier

property hydrate_subcooling_calc

## sixgill.network_optimizer_simulation module

The network_optimizer_simulation module maintains the high level network optimization methods for the
Pipesim Python Toolkit.

class sixgill.network_optimizer_simulation.NetworkOptimizerSimulation(*model*, *sim_type*)
Bases: AbstractNetworkSimulation

Various methods supporting the network optimization

get_conditions(*study: str | None = None*) → Dict
Returns the network optimizer boundary conditions.

Returns the network optimizer boundary conditions for the specified study.
If the network optimizer simulation task does not exist in the study, a new one will be created.

Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:
The boundary condition for the study specified.

Return type:
dict

Examples

```
    >>> studynetsim1 = model.tasks.networkoptimizersimulation.get_conditions()
    >>> studynetsim1 = model.tasks.networkoptimizersimulation.get_conditions("Study 1")
    >>> studynetsim1 = model.tasks.networkoptimizersimulation.get_conditions(study="Study 1")
```

set_conditions(*boundaries: dict | None = None*, *study: str | None = None*)
Sets the network optimizer boundary conditions.

Sets the network optimizer boundary conditions for the study specified.
If the network optimizer simulation task does not exist in the study, a new one will be created.

Parameters:

- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created network optimizer simulation operation.

Return type:
Network optimizer simulation operation

Examples

```
    >>> model.tasks.networkoptimizersimulation.set_conditions(
                boundaries={"Well:VertComp":{
                                Parameters.Boundary.PRESSURE:NAN,
                                Parameters.Boundary.TEMPERATURE:150,
                                Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
                                Parameters.Boundary.GASFLOWRATE:5}
                            })
    >>> model.tasks.networkoptimizersimulation.set_conditions(
                boundaries={"Well:VertComp":{
                                Parameters.Boundary.PRESSURE:3000,
                                Parameters.Boundary.TEMPERATURE:150,
                                Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
                                Parameters.Boundary.GASFLOWRATE:NAN}
                            },
                study = "Study 1")
```

reset_conditions(*study: str | None = None*)
Resets the network optimizer boundary conditions from the model.

Resets the network optimizer boundary conditions for the study specified from the model.

Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:
True or False.
The reset succeeded (True) or not (False).

Return type:
Bool

Examples

```
    >>> model.tasks.networkoptimizersimulation.reset_conditions()
    >>> model.tasks.networkoptimizersimulation.reset_conditions(study = "Study 1")
```

get_initial_conditions(*study: str | None = None*) → Dict
Returns the network optimizer initial conditions .

Returns the network optimizer initial conditions for the specified study.
If the network optimizer simulation task does not exist in the study, a new one will be created.

> Initial conditions includes: Control type, injection gas, ESP freq, PCP speed, Choke size and Dual string.


Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:
The initial conditions for the study specified

Return type:
dict

Examples

```
    >>> studynetsim1 = model.tasks.networkoptimizersimulation.get_initial_conditions()
    >>> studynetsim1 = model.tasks.networkoptimizersimulation.get_initial_conditions("Study 1")
    >>> studynetsim1 = model.tasks.networkoptimizersimulation.get_initial_conditions(study="Study 1")
```

set_initial_conditions(*initial_conditions: dict | None = None*, *study: str | None = None*)
Sets the network optimizer initial conditions.

Sets the network optimizer initial conditions for the specified study.
If the network optimizer simulation task does not exist in the study, a new one will be created.

> Initial conditions includes: Control type, injection gas, ESP freq, PCP speed and Choke size without dual string. Dual string is done separately


Parameters:

- **initial_conditions** (*dict*) – Optional. The initial conditions to be set on the study(Note: dual strings has to be set separately).
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created network optimizer simulation operation.

Return type:
Network optimizer simulation operation

Examples

```
    >>> model.tasks.networkoptimizersimulation.set_initial_conditions(
                boundaries={"Well:VertComp":{Parameters.OptimizerInitialConditions.INJECTIONGAS:NAN,
                Parameters.OptimizerInitialConditions.ESPFREQUENCY:55}})
```

get_local_constraints(*study: str | None = None*) → Dict
Returns the network optimizer task local_constraints.

Returns the network optimizer task local_constraints for the specified study.
If the network optimizer simulation task does not exist in the study, a new one will be created.

Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:
The the network optimizer task local_constraints.

Return type:
dict

Examples

```
    >>> studynetsim1 = model.tasks.networkoptimizersimulation.get_local_constraints()
    >>> studynetsim1 = model.tasks.networkoptimizersimulation.get_local_constraints("Study 1")
    >>> studynetsim1 = model.tasks.networkoptimizersimulation.get_local_constraints(study="Study 1")
```

set_local_constraints(*constraints: dict | None = None*, *study: str | None = None*)
Sets the network optimizer task local_constraints.

Sets the network optimizer task local_constraints for the specified study.
If the network optimizer simulation task does not exist in the study, a new one will be created.

Parameters:

- **constraints** (*dict*) – Optional. The local constraints to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created network optimizer simulation operation.

Return type:
Network optimizer simulation operation

Examples

```
    >>> model.tasks.networkoptimizersimulation.set_local_constraints(
                constraints={"Well:VertComp":{
                    Parameters.LocalConstraint.MAXPOWER:150,
                    Parameters.LocalConstraint.MINLIQUIDRATE:150}
                })
    >>> model.tasks.networkoptimizersimulation.set_local_constraints(
            constraints={"Well:VertComp":{
                    Parameters.LocalConstraint.MAXPOWER:150,
                    Parameters.LocalConstraint.MINLIQUIDRATE:150}},
            study = "Study 1")
```

get_parameters(*study: str | None = None*) → Dict
Returns the network optimizer task parameters.

Returns the network optimizer task parameters for the specified study.
If the network optimizer simulation task does not exist in the study, a new one will be created.

Parameters includes: optimization control( optimization type, control variables, optimization targets and global constraints) and options (optimization, initialization, network solver, search and well curve parameters options)

Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:
The the network optimizer task parameters.

Return type:
dict

Examples

```
    >>> parsmeters1 = model.tasks.networkoptimizersimulation.get_parameters()
    >>> parsmeters1 = model.tasks.networkoptimizersimulation.get_parameters("Study 1")
    >>> parsmeters1 = model.tasks.networkoptimizersimulation.get_parameters(study="Study 1")
```

set_parameters(*parameters*, *study: str | None = None*)
Sets the network optimizer task parameters.

Sets the network optimizer task parameters for specified study.
If the network optimizer simulation task does not exist in the study, a new one will be created.

Parameters:

- **parameters** (*dict*) – The parameters to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created network optimizer simulation operation.

Return type:
Network optimizer simulation operation

Examples

```
    >>> model.tasks.networkoptimizersimulation.set_parameters(
                parameters=
                {
                Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
                Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
                })
    >>> model.tasks.networkoptimizersimulation.set_parameters(
                parameters=
                {
                Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
                Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
                }, study = "Study 1")
```

set_dual_strings(*reset=False*, *pair_wells: list | None = None*, *unpair_wells: list | None = None*, *study: str | None = None*)
Sets the network optimizer task dual string parameters
Pairs/unpairs wells(when pairing, two wells will be combined to act as one). Note: To get dual string parameters, use get_initial_conditions.

If the network optimizer simulation task does not exist in the study, a new one will be created.

Parameters:

- **pair_wells** (*list* *of* *strings*) – Optional.The names of the wells to be paired(must be even number of well names).
- **unpair_wells** (*list* *of* *strings*) – Optional.The names of the paired wells to be separated(must be even number of well names).
- **reset** (*boolean*) – Optional: Separates all dual strings
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created network optimizer simulation operation.

Return type:
Network optimizer simulation operation

Examples

```
    >>> model.tasks.networkoptimizersimulation.set_dual_strings(
                pair_wells=["well_1","well_3"], study = "Study 1"
                )
    >>> model.tasks.networkoptimizersimulation.set_dual_strings(
                reset=True, study = "Study 1"
                )
    >>> model.tasks.networkoptimizersimulation.set_dual_strings(
                pair_wells=["well_1","well_3"],
                unpair_wells=["well_4","well_2"],
                study = "Study 1")
```

reset_dual_strings(*study: str | None = None*)

> Resets to unpair dual strings for all the wells.


Resets to unpair dual strings for all the wells for a specific study
If the network optimizer simulation task does not exist in the study, a new one will be created.

Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:

- *——-*
- *Network optimizer simulation operation* – The existing or created network optimizer simulation operation.


Examples

```
    >>> model.tasks.networkoptimizersimulation.reset_dual_strings(study = "Study 1")
    >>> model.tasks.networkoptimizersimulation.reset_dual_strings()
```

run(*boundaries: dict | None = None*, *constraints: dict | None = None*, *initial_conditions: dict | None = None*, *parameters: dict | None = None*, *study: str | None = None*)
Runs a network optimizer task

Runs a network optimizer task for the specified study.
If the network optimizer simulation task does not exist in the study, a new one will be created.

Parameters:

- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **constraints** (*dict*) – Optional. The blocal constraints to be set on the study.
- **initial_conditions** (*dict*) – Optional. The initial conditions to be set on the study.
- **parameters** (*dict*) – Optional.The parameters to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.
- **Returns** (*dict*) – Results of a network optimization run.


Examples

```
    >>> model.tasks.networkoptimizersimulation.run(
                parameters=
                {
                Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
                Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
                })
    >>> model.tasks.networkoptimizersimulation.run(
                parameters=
                {
                Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
                Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
                }, study = "Study 1")
```

start(*boundaries: dict | None = None*, *constraints: dict | None = None*, *initial_conditions: dict | None = None*, *parameters: dict | None = None*, *study: str | None = None*)
Starts running a simulation of the specified type, returning the simulation id
immediately which can be used later to check the status and get the results.
If the network optimizer simulation task does not exist in the study, a new one will be created.

Parameters:

- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **constraints** (*dict*) – Optional. The blocal constraints to be set on the study.
- **initial_conditions** (*dict*) – Optional. The initial conditions to be set on the study.
- **parameters** (*dict*) – Optional.The parameters to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation id, which can be used to access simulation status and get the results.

Return type:
str

Examples

```
    >>> model.tasks.networkoptimizersimulation.start(
                parameters=
                {
                Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
                Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
                })
    >>> model.tasks.networkoptimizersimulation.start(
                parameters=
                {
                Parameters.NetworkOptimizerSimulation.OptimizationControl.ControlVariables.CHOKEBEANSIZE:True,
                Parameters.NetworkOptimizerSimulation.OptimizationControl.OptimizationTargets.INJECTIONRATE:3
                }, study = "Study 1")
```

generate_engine_files(*folder_path: str | None = None*, *study: str | None = None*, *generate_keyword_files=False*, *generate_request_message: RequestMessageType | None = RequestMessageType.NONE*) → List[str]
Create network optimizer engine files.
Create network optimizer engine files for the specified study. The files are written
to the specified folder, or to the current model folder if one is not given.

Parameters:

- **folder_path** (*str*) – Optional. The folder location where the generated files are written to.
If not specified, the files will be written to current Pipesim model file folder.
- **study** (*str*) – Optional. The study name.
- **generate_keyword_files** (*True/False*)
- **generate_request_message** (RequestMessageType) – NONE: No Request message is generated
DATA_ONLY: Only data section, no model_text,, no “data” keyword, the request message is same as today
DATA_AND_MODELTEXT: {“model_text”: “xxxxxxxxxxxxxxxxxxxxxxxxxxx”, “data” :{….}}
DATA_AND_MODELFILENAME: {“model_filename”: “filename.tnt”, “data” :{….}}


Returns:
The list of engine files generated.

Return type:
List[str]

Examples

```
    >>> engine_files = model.tasks.networkoptimizersimulation.generate_engine_files()
    >>> engine_files = model.tasks.networkoptimizersimulation.generate_engine_files(
                               study='Study 1')
    >>> engine_files = model.tasks.networkoptimizersimulation.generate_engine_files(
                               folder_path="D:/Temp", study='Study 1')
```

get_engine_files(*study: str | None = None*, *generate_keyword_files=False*, *generate_request_message: RequestMessageType | None = RequestMessageType.NONE*) → List[str]
Get engine files for the specified study.

Generate the engine file(s) for the requested study. The files are written
to the specified folder, or to the current model folder if one is not given.

Parameters:

- **study** (*str*) – Optional. The study name.
- **generate_keyword_files** (*True/False*)
- **generate_request_message** (RequestMessageType) – NONE: No Request message is generated
DATA_ONLY: Only data section, no model_text,, no “data” keyword, the request message is same as today
DATA_AND_MODELTEXT: {“model_text”: “xxxxxxxxxxxxxxxxxxxxxxxxxxx”, “data” :{….}}
DATA_AND_MODELFILENAME: {“model_filename”: “filename.tnt”, “data” :{….}}


Returns:
The list of engine files generated.

Return type:
Dictionary

Examples

```
    >>> files_content = model.tasks.networkoptimizersimulation.get_engine_files()
    >>> files_content = model.tasks.networkoptimizersimulation.get_engine_files(
                               study='Study 1', generate_keyword_files=True)
    >>> files_content = model.tasks.networkoptimizersimulation.get_engine_files(
                               generate_request_message="DATA_ONLY", study='Study 1')
    >>> \# Get the curve file content of Well_1:
    >>> print(files_content['Well_1'])
    >>> \# Get the tnt content(the key is the project name.tnt):
    >>> print(files_content['CSN_312_ESP Optimization.tnt'])
    >>> \# Get the request message(json)
    >>> print(files_content['RequestMessage'])
    >>> \# Get the request message 64(json)
    >>> print(files_content['RequestMessage64'])
```

apply_results(*study: str | None = None*)
Applies the optimization results to the model.

Parameters:
**study** (*str*) – Optional. The study name.

Examples

```
    >>> model.tasks.networkoptimizersimulation.apply_results()
    >>> model.tasks.networkoptimizersimulation.get_engine_files(study='Study 1')
```

## sixgill.optimizer_simulation_result module

optimizer_simulation_result

class sixgill.optimizer_simulation_result.OptimizerResults(*units_mgr*, *web_api_result*, *simulation*, *state*)
Bases: SimulationResult

property well_results
well results of the simulation.

Returns:
A nested dictionary. The key of outer dictionary is
the name of the well, and it’s value is a nested ordered
dictionary of key values, key is variable name and value is the value.

Return type:
defaultdict(OrderedDict)

Examples

```
    >>> \# the value of CHP for Well_1
    >>> print(result.well_results['Well_1'][OptimizerVariables.CASING_HEAD_PRESSURE])
    >>> 2001.66209137371129
```

property flowline_results
flowline results of the simulation.

Returns:
A nested dictionary. The key of outer dictionary is
the name of the flowline, and it’s value is a nested ordered
dictionary of key values, key is variable name and value is the value.

Return type:
defaultdict(OrderedDict)

Examples

```
    >>> \# the value of oil rate for Fl_1
    >>> result.flowline_results['Fl_1'][OptimizerVariables.OIL_RATE]
```

property sink_results
sink results of the simulation.

Returns:
A nested dictionary. The key of outer dictionary is
the name of the sink, and it’s value is a nested ordered
dictionary of key values, key is variable name and value is the value.

Return type:
defaultdict(OrderedDict)

Examples

```
    >>> \# the value of oil rate for sink_1
    >>> result.sink_results['sink_1'][OptimizerVariables.OIL_RATE]
```

property total_results
total results of the simulation.

Returns:
A dictionary. The key is variable name and value is the value.

Return type:
defaultdict(OrderedDict)

Examples

```
    >>> \# the value of total oil rate
    >>> result.total_results[OptimizerVariables.TOTAL_OIL_RATE]
```

property units
gets the units
:returns: A dictionary. The key is variable name and value is the unit.
:rtype: defaultdict(OrderedDict)

Examples

```
    >>> \# the unit of CHP
    >>> result.units[OptimizerVariables.CASING_HEAD_PRESSURE]
    >>>psia
```

property variable_names
gets the variable names
:returns: A dictionary. The key is variable name and value is the name.
:rtype: defaultdict(OrderedDict)

Examples

```
    >>> \# the name of CHP
    >>> result.variable_names[OptimizerVariables.CASING_HEAD_PRESSURE]
    >>>CHP
```

## sixgill.pipesim module

The Pipesim module maintains the high level classes and methods for the
Pipesim Python Toolkit. This includes aspects such as the Model() class
for creating a session with a Pipesim model as well as the static classes
that enumerate the options that are available.

class sixgill.pipesim.Model(*pipesim_session*, *model_file*, *unit_system*)
Bases: `object`

The Model() class defines a session for working with a Pipesim
model. It maintains the connection details of the session while the
Manta module performs the actual interaction with the
Pipesim model. Users should open a Pipesim model using the
Model.open() which takes care of handling the low level Manta
calls.

Parameters:

- **pipesim_session** (*manta.server.manager.PipesimManager*) – The pipesim_session object from the Manta module.
- **model_file** (*str*) – The full folder and filename of the Pipesim file.
- **unit_system** (*str*) – The engineering units system being used for reading and writing the
values, as defined by the Units static class.


Returns:
The Pipesim model session object.

Return type:
Model

Examples

```
    >>> mymodel=Model.open("C:/ProjectX/Models/Pipesim/ProjectXModel.pips")
```

property is_open
Whether the Pipesim model is open (True) or not (False)

property api
The low level Manta library API

property filename
The model file name and path

property session
The model session

static update_data_context(*filename: str*, *model_type: str*, *save_as: str*, *model_update_url: str | None = None*, *data_partition: str | None = None*, *token: str | None = None*, *appkey: str | None = None*, *report_messages_of_type: ReportMessageTypes | None = ReportMessageTypes.ALL*, *production_study_name: str | None = None*, *max_retries: str | None = None*, *base_retry_time: str | None = None*, *max_time: str | None = None*, *jitter_factor: str | None = None*) → production_data_update_status
Updates the model with the latest production data

Note

base_sleep_time = min(max_time, base_retry_time * retry_number)
sleep_time = base_sleep_time +/- random(jitter_factor * base_sleep_time)

Parameters:

- **filename** (*str*) – Full path to the pips file to be updated
- **model_type** (*str*) – Type of the model: [pipesim-well, pipesim network]
- **save_as** (*str*) – Full path to where to save the updated model
- **model_update_url** (*str*) – a file or url address of the service providing the operational data
- **data_partition** (*str*) – data partition
- **token** (*str*) – access token
- **appkey** (*Optional[str]*) – appKey
- **report_messages_of_type** – indicate what type of messages to report(default is all types)
- **production_study_name** (*Optional[str]*) – name of the production study
- **max_retries** (*Optional[str]*) – maximum number of retries when HTTP request is failed
- **base_retry_time** (*Optional[str]*) – base time used to calculate sleep time for each retry
- **max_time** (*Optional[str]*) – maximum base sleep time
- **jitter_factor** (*Optional[str]*) – jitter factor


Returns:
A class containing lists of messages and properties.

Return type:
[production_data_update_status]

static open(*filename: str*, *units: str | None = 'PIPESIM_FIELD'*, *in_memory_results: bool | None = True*)
Open a Pipesim model

Opens the Pipesim model.

Parameters:

- **filename** (*str*) – The Pipesim model path and file name.
- **units** (*str*) – The engineering units that will be used by POET. This is one
of the Units enumerations, with the default being
FIELD units.
- **in_memory_results** (*bool*) – If True simulation results will be deleted after run and will not be saved, otherwise they will be kept and saved.


Returns:
The model object that has been open.

Return type:
Model

Examples

```
    >>> model = Model.open("C:/POET Demo/CSN_301_small network.pips")
    >>> model = Model.open("C:/MyProject/FlowNetwork.pips", Units.METRIC)
```

static new(*filename: str*, *units: str | None = 'PIPESIM_FIELD'*, *overwrite: bool | None = False*, *in_memory_results: bool | None = True*)
Open a new Pipesim model

Opens a new Pipesim model.

Parameters:

- **filename** (*str*) – The new Pipesim model path and file name.
- **units** (*str*) – The engineering units that will be used by POET. This is one
of the Units enumerations, with the default being
FIELD units.
- **overwrite** (*bool*) – If the file already exists, this flag will define if
it should be overwrited or not.
- **in_memory_results** (*bool*) – If True simulation results will be deleted after run and will not be saved, otherwise they will be kept and saved.


Returns:
The model object that has been open.

Return type:
Model

Examples

```
    >>> model = Model.new("C:/POET Demo/new_workspace.pips")
    >>> model = Model.new("C:/MyProject/NewWorkspace.pips", Units.METRIC)
```

open_ui(*filename: str | None = ''*)
Open a Pipesim file with Pipesim UI

Opens the Pipesim model file in the Pipesim UI. It supports opening a
model directly, and opening the model that is open in the Toolkit. A
model that is open in the Pipesim Python Toolkit will be saved and
closed before opening in the UI. This is because changes cannot be made
to a model simultaneously in the UI and through the Python Toolkit.

Parameters:
**filename** (*str*) – The Pipesim file path and name. This is not required when opening
a model that is already open in the Python Toolkit.

Examples

```
    >>> \# Without first opening the model in Python
    >>> Model.open_ui("C:/POET Demo/CSN_301_small network.pips")
    >>> \# While the model is open in the Python Toolkit
    >>> model = Model.open("C:/POET Demo/CSN_301_small network.pips")
    >>> model.open_ui()
```

save(*filename=''*, *view_type=''*)
Save the Pipesim model

Saves the Pipesim model. If the filename is not specified then it
peforms a save; if the filename is specified then it performs a
Save As. the suffix “pips” may be omitted.

Parameters:

- **filename** (*str*) – Optional. The full path and name of the file to save.
- **view_type** (*str*) – Optional. The view type(Pipesim UI will open in Network view or well view).
can be ViewTypes.WELL or ViewTypes.NETWORK


Examples

```
    >>> model.save()
    >>> model.save("C:/Temp/MyModel2.pips")
    >>> model.save("C:/Temp/MyModel2.pips",ViewTypes.WELL)
    >>> model.save("C:/Temp/MyModel2.pips",ViewTypes.NETWORK)
```

close()
Close the Pipesim model

Closes the Pipesim model.

Examples

```
    >>> model.close()
```

validate() → List[ValidationIssue]
Validates the model or a specified well, task.

Returns:
a list of ValidationIssue instances.

Return type:
list

Examples

```
    >>> issues = model.validate()
    >>> for issue in issues:
            print(issue.message)
            print(issue.path)
            print(issue.property_name)
```

property context: AbstractModelContext
The root context of this model.

Returns:
Returns the model context object that matches the entirety of the model.

Return type:
AbstractModelContext

find(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → List[str]
Find the model components in the context.

Find the specified components in the model.

Parameters:

- **context** (*str*) – Optional. The context (identifier) of the item to look for.
- **component** (*str*) – Optional. The model component to look for.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to look for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
Returns a list of the component contexts (identifiers) of the
model components that match the specified criteria.

Return type:
list

Examples

```
    >>> model.find(component=ModelComponents.CHOKE, Name="CK-1")
    >>> model.find(Well="Well03")
```

find_components(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → List[AbstractModelContext]
Find the full context of the specified component

Returns the context objects of the items found. This is functionally
similar to the find() but returns the list of AbstractModelContext
objects rather than the context strings.

Parameters:

- **context** (*str*) – Optional. The context string to search in.
- **component** (*str*) – Optional. The model component to look for.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
Returns a list of the contexts for each of the model components that match the specified criteria.

Return type:
list[AbstractModelContext]

Examples

```
    >>> model.find_components(component=ModelComponents.CHOKE, context="CK-1")
    >>> model.find_components(component=ModelComponents.COMPLETION, Well="Well03")
```

find_component_objects(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → List[Component]
Find the model components in the context.

Find the specified components in the model.

Parameters:

- **context** (*str*) – Optional. The context (identifier) of the item to look for.
- **component** (*str*) – Optional. The model component to look for.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to look for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
Returns a list of the Component instances that match the specified criteria.

Return type:
list

Examples

```
    >>> model.find_component_objects(component=ModelComponents.CHOKE, Name="CK-1")
    >>> model.find_component_objects(Well="Well03")
```

filter(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Filter the model, creating a submodel of the items of interest

Returns a Model class containing only the items specified in the
context. This allows the model to be filtered by specific aspects
and then accessed using the usual methods, such as get and set,
on the filtered model.

Parameters:

- **context** (*str*) – Optional. The context (identifier) of the item to look for.
- **component** (*str*) – Optional. The model component to look for.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to look for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
Returns a list of the component contexts (identifiers) of the
model components that match the specified criteria.

Return type:
list

Examples

```
    >>> \# Filter for all the flowlines
    >>> filtered_model = model.filter(Flowline=ALL)
    >>> \# Filter for all the items in the specified well
    >>> filtered_model = model.filter(Well="Well03")
```

describe(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, *parameter: str | None = None*, ***context_keywords: str*)
Describe a parameter given a context.

Returns an object with properties for the parameter description
such as the units of measurement and unit conversions. The available
properties are:

- units: The units of measurement, e.g. inches
- units_symbol: The symbol(s) for the unit of measurement, e.g. ins
- si_offset: The unit conversion offset (bias) from SI
- si_factor: The unit conversion factor (gain) from SI


Parameters:

- **context** (*str*) – Optional. The context (identifier) of the item to look for.
- **parameter** (*str*) – Required. The parameter that needs to be described.
- **component** (*str*) – Optional. The model component to look for.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to look for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
The object with the descriptions.

Return type:
Description

Examples

```
    >>> eu = model.describe(context="Well",
                           parameter=Parameters.Well.TESTRACKTEMPERATURE).units
```

get_value(*context: str | None = None*, *parameter: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → Any
Return a single parameter value from a context in the model.

The function queries the model for the specified item and parameter
returning the parameter value. An error is raised if the context
matches more than one item.

Parameters:

- **context** (*str*) – Optional. The context (identifier) to search for.
Context can also be an instanse of “Component” class.
- **parameter** (*str*) – Optional. The parameter on the item to return the value of.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – The model context object to search for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
The value of the specified parameter.

Return type:
var

Examples

```
    >>> val = model.get_value(context="Choke23",
                              parameter=Parameters.Choke.BEANSIZE)
    >>> val = model.get_value(Well="Well 23", Choke="CK1",
                              parameter=Parameters.Choke.BEANSIZE)
```

set_node_value(*node*, *parameter: str*, *value: Any = None*)

set_value(*context: str | None = None*, *parameter: str | None = None*, *value: Any = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Set a parameter value on a single context item in the model.

The function queries the model for the specified item and then sets the
parameter to the specified value. An error is raised if the context
matches more than one item.

Parameters:

- **context** (*str*) – Optional. The context string to search in.
Context can also be an instanse of “Component” class
- **parameter** (*str*) – Required. The parameter on the item to be set.
- **value** (*var*) – Required. The value to set the parameter to.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_value(context="Choke23",
                        parameter=Parameters.Choke.BEANSIZE, value=4.5)
    >>> model.set_value(Well="Well 23", Choke="CK1",
                        parameter=Parameters.Choke.BEANSIZE, value=5)
```

set_all_value(*context: str | None = None*, *parameter: str | None = None*, *value: Any = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Set a parameter value for all items in the context.

The function queries the model for the specified items and then sets
the parameter to the specified value. It sets the parameter for all
items within the context.

Parameters:

- **context** (*str*) – Optional. The context string to search in.
- **parameter** (*str*) – Required. The parameter on the item(s) to set.
- **value** (*var*) – Required. The value to set the parameter to.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_all_value(Source=ALL,
                            parameter=Parameters.Source.ASSOCIATEDBLACKOILFLUID,
                            value = 'BK111')
```

change_equipment_string(*string: str*, *context: str | None = None*, *depth_md: float | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*)
Set a string value of a single context item in the model.

The function queries the model for the specified item and then sets the
string to the specified value. An error is raised if the context
matches more than one item.

Parameters:

- **string** (*str*) – Required. The tubing string type of the item to be set.
- **context** (*str*) – Optional. The context string to search in.
Context can also be an instanse of “Component” class
- **depth_md** (*float*) – Optional. The measured depth of the item to be set.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.


Examples

```
    >>> model.change_equipment_string(context = "Chk0",
                                    string = Constants.TubingSectionType.LONGTUBING, depth_md = 1000)
```

get_values(*context: str | None = None*, *parameters: List[str] = []*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, *show_units: bool = False*, ***context_keywords: str*) → Dict
Returns a dictionary with the parameters and values from a context.

The function queries the model for the specified items and parameters
returning a dictionary. The key of the dictionary is context string,
and the value of the dictionary is a sub dictionary, which contains
parameter as the key and its value

Parameters:

- **context** (*str*) – Optional. The context string to search in.
- **parameters** (*list*) – Optional. The parameter on the item to return the value of. If
empty or not provided then it returns all the parameters.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
The dictionary containing the parameter values.

Return type:
Dict

Examples

```
    >>> dict = model.get_values(context="Choke23",
                                parameters=[Parameters.Choke.BEANSIZE,
                                Parameters.Choke.CRITICALPRESSURERATIO])
    >>> dict = model.get_values(Well="Well 23", Choke="CK1",
                                parameters=[Parameters.Choke.BEANSIZE,
                                Parameters.Choke.CRITICALPRESSURERATIO])
```

set_values(*dict: Dict*, *context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Set parameters values as specified by the Python dictionary.

The key of the dictionary is context string, and the value of
the dictionary is a sub dictionary, which specify the
parameter as key and its value. The dictionary is therefore
the same format as the get_values() function.

Parameters:
**dict** (*Dict*) – Required. The Python dictionary to set the item parameters.

Examples

```
    >>> model.set_values(dict=values)
```

get_wellstream(*port: str | None = 'Top'*, *context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → str
Return the name of the wellstream equipment for specified port.

Parameters:

- **port** (*str*) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
- **context** (*str*) – Optional. The context (identifier) to search for.
Context can also be an instanse of “Component” class.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to search for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
The name of the wellstream equipment for specified port.

Return type:
str

Examples

```
    >>> val = model.get_wellstream(Well="Well", port = Constants.Wellstream.TOP)
```

set_wellstream(*surface_component_name: str*, *port: str | None = 'Top'*, *context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Set the wellstream for the specified port.

Parameters:

- **surface_component_name** (*str*) – Required. The name of the surface component to be set as wellstream.
- **port** (*str*) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
- **context** (*str*) – Optional. The context (identifier) to search for.
Context can also be an instanse of “Component” class.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to search for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_wellstream(Well="Well", port=Constants.Wellstream.TOP, surface_component_name="Ck ")
```

reset_wellstreams(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Reset all wellstream to wellhead.

Parameters:

- **context** (*str*) – Optional. The context (identifier) to search for.
Context can also be an instanse of “Component” class.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to search for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.reset_wellstreams("Well")
```

get_wellstream_property(*parameter: str*, *port: str | None = 'Top'*, *context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Set the wellstream property for the specified port.

Parameters:

- **parameter** (*str*) – Required. The parameter on the wellstream to return the value of.
- **port** (*str*) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
- **context** (*str*) – Optional. The context (identifier) to search for.
Context can also be an instanse of “Component” class.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to search for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Return type:
The value of the specified parameter

Examples

```
    >>> model.get_wellstream_property(Well="well_1",port=Constants.Wellstream.TOP, parameter=Parameters.Wellstream.ISPRODUCTIONFLOWDIRECTION)
```

get_wellstream_properties(*port: str | None = 'Top'*, *parameters: List[str] | None = []*, *context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Set the wellstream property for the specified port.

Parameters:

- **port** (*str*) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
- **parameters** (*List[str]*) – Optional. The parameters on the wellstream to return the value of.
- **context** (*str*) – Optional. The context (identifier) to search for.
Context can also be an instanse of “Component” class.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to search for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:

- *dict*
- *The parameters and respective values.*


Examples

```
    >>> model.get_wellstream_properties(Well="well_1",port=Constants.Wellstream.TOP, parameters = {
                                        Parameters.Wellstream.GASFLOWRATE,
                                        Parameters.Wellstream.ISPRODUCTIONFLOWDIRECTION,
                                        Parameters.Wellstream.CHECKVALVESETTINGS,
                                        Parameters.Wellstream.USEPQCURVE
                                        })
```

set_wellstream_property(*parameter: str*, *port: str | None = 'Top'*, *context: str | None = None*, *value: Any = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Set the wellstream property for the specified port.

Parameters:

- **parameter** (*str*) – Required. The parameter on the wellstream to be set.
- **port** (*str*) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
- **context** (*str*) – Optional. The context (identifier) to search for.
Context can also be an instanse of “Component” class.
- **value** (*var*) – Required. The value to set the parameter to.
- **component** (*str*) – Optional. The type of the item.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to search for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_wellstream_property(Well="well_1",
                                      port=Constants.Wellstream.TOP,
                                      parameter = Parameters.Wellstream.GASFLOWRATE,
                                      value=123)
```

set_wellstream_properties(*parameters: Dict*, *port: str | None = 'Top'*, *context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Set the wellstream property for the specified port.

Parameters:

- **parameters** (*Dict*) – Required. The Python dictionary to set the wellstream parameters.
- **port** (*str*) – Optional for conventional wells, but required for advanced wells. The port name. It must be one of Constants.Wellstream.
- **context** (*str*) – Optional. The context (identifier) to search for.
Context can also be an instanse of “Component” class.
- **model_context** (*AbstractModelContext*) – Optional. The model context object to search for.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_wellstream_properties(Well="well_1", port=Constants.Wellstream.TOP, parameters = {
                                        Parameters.Wellstream.GASFLOWRATE: 234,
                                        Parameters.Wellstream.ISPRODUCTIONFLOWDIRECTION: False,
                                        Parameters.Wellstream.CHECKVALVESETTINGS: Constants.CheckValveSetting.BLOCKBOTH,
                                        Parameters.Wellstream.USEPQCURVE: True,
                                        })
```

get_metocean_data() → DataFrame
Get the Metocean user defined data.

Returns:
The met ocean data frame includes following columns: Horizontal distance,
Temperature and Current velocity

Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_metocean_data()
```

set_metocean_data(*data*)
Set the Metocean user defined data.

Parameters:
**data** (*DataFrame*) – Required. The data frame to set to the user defined Metocean.

Examples

```
    >>> model.set_metocean_data(data=df)
```

delete_metocean_data()
delete the Metocean user defined data.

Examples

```
    >>> model.delete_metocean_data()
```

get_trajectory(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → DataFrame
Get the specified well trajectory.

Get the well trajectory as identified by the specified context. If more
than one item is found by the context then it will fail.

Parameters:

- **context** (*str*) – Optional. The context string to search for well.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
The trajectory data frame includes following columns: MeasuredDepth
Inclination, Azimuth and MaxDogLegSeverity

Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_trajectory(context="Well-1")
    >>> dfw = model.get_trajectory(Well="Well 23")
```

set_trajectory(*context: str | None = None*, *value: DataFrame = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Set well trajectory to the values specified in the DataFrame.

Sets well trajectory to the values specified in the DataFrame. It will
fail if more than one item is found by the context.

Parameters:

- **value** (*DataFrame*) – Required. The data frame to set to the well trajectory.
- **context** (*str*) – Optional. The context string to look for the well.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_trajectory(context="Well-1", value = df)
    >>> model.set_trajectory(Well="Well 23", value = df)
```

get_completion_ipr_points(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → IprPoints
Get pwf and rate values for the ipr model. It will
fail if more than one item is found by the context.

Parameters:

- **context** (*str*) – Optional. The context string to search for completion.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
ipr_points: a pandas.DataFrame containing the pressure and rate values
messages: a list of stings of any messages produced by ipr calculation

Return type:
A class with two properties

Examples

```
    >>> results = model. get_completion_ipr_points(context="Well-1:VertComp")
    >>> print( results.ipr_points)
    >>> for msg in results.messages:
            print(msg)
```

get_completion_test_points(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*)
Return well completion test points found in the context.

Return well completion test points found in the context. It will fail
if more than one item is found by the context.

Parameters:

- **context** (*str*) – Optional. The context string of completion
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).
e.g. Well =’well_name’, Completion = ‘completion_name’


Returns:
The completion test points data frame includes following columns:
LiquidFlowrate, GasFlowrate, StaticReservoirPressure, BottomHoleFlowingPressure

Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_completion_test_points(context="Well-1:VertComp")
```

set_completion_test_points(*context: str | None = None*, *value: DataFrame = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*)
Set data frame to the completion test points of well in the context.

Set data frame to the completion test points of well in the context. It
will fail if more than one item is found by the context.

Parameters:

- **value** (*DataFrame*) – Required. The data frame to set to the well completion test points
- **context** (*str*) – Optional. The context string to look for the completion
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_completion_test_points(context="Well-1:VertComp", value = df)
```

get_pq_curve(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*) → DataFrame
Return PQ curve in the context.

Returns PQ curve in the context. It will fail if more than one item is
found in the context.

Parameters:

- **context** (*str*) – Optional. The context string to look for source.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
The PQ curve data frame includes the following columns:
GasFlowRate, LiquidFlowRate, MassFlowRate, Pressure

Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_pq_curve(context="Source_1")
    >>> dfw = model.get_pq_curve(Source="Source 23")
```

set_pq_curve(*context: str | None = None*, *value: DataFrame = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*)
Set data frame to the PQ curve of source in the context.

Set data frame to the PQ curve of source in the context. It will fail
if more than one item is found in the context or the source does not
use PQ curve.

Parameters:

- **value** (*DataFrame*) – Required. The data frame to set to the source PQ curve
- **context** (*str*) – Optional. The context string to look for the source.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_pq_curve(context="Source-1", value = df)
    >>> model.set_pq_curve(Source="Source 23" value = df)
```

get_coating(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → DataFrame
Return pipe coating table in the context.

Returns flowline pipe coating table in the context. It will fail if more
than one item is found in the context.

Parameters:

- **context** (*str*) – Optional. The context string to search for flowline.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_coating(context="FL-3")
    >>> dfw = model.get_coating(Flowline="FL-3")
```

delete_coating(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Delete pipe coating table in the context. It will fail if more
than one item is found in the context.
‘U value input’ will be reset to ‘Specify’ if ‘Calculate’ selected

Parameters:

- **context** (*str*) – Optional. The context string to search for blackoil.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.delete_coating(context="FL-3")
    >>> model.delete_coating(Flowline="FL-3")
```

set_coating(*context: str | None = None*, *value: DataFrame = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*)
Set data frame to the pipe coating table in the context.

Set data frame to the pipe coating table in the context. It will
fail if more than one item is found in the context.

Parameters:

- **value** (*DataFrame*) – Required. The data frame to set to flowline model
- **context** (*str*) – Optional. The context string to search for flowline.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_coating(context="FL-3", value = df)
    >>> model.set_coating(Flowline="FL-3", value = df)
```

raise_exception_if_completion_ipr_model_is_not_Darcy(*model_context: AbstractModelContext | None = None*)

get_relative_permeability_data(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → DataFrame
Return relative permeability data in the context.

Returns Darcy IPR model relative permeability data in the context. It will fail if more
than one item is found in the context.

Parameters:

- **context** (*str*) – Optional. The context string to search for Darcy IPR model.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_relative_permeability_data(context="Well:Comp-1:IPRDARCY")
    >>> dfw = model.get_relative_permeability_data(Well="Well", Completion="Comp-1")
```

delete_relative_permeability_data(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Delete relative permeability data in the context. It will fail if more
than one item is found in the context. The UseRelativePermeability flag on
the Darcy IPR model will be set to False.

Parameters:

- **context** (*str*) – Optional. The context string to search for Darcy IPR model.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.delete_relative_permeability_data(context="Well:Comp-1:IPRDARCY")
    >>> model.delete_relative_permeability_data(Well="Well", Completion="Comp-1")
```

set_relative_permeability_data(*context: str | None = None*, *value: DataFrame = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*)
Set data frame to the relative permeability data in the context.
It will fail if more than one item is found in the context.
The UseRelativePermeability flag on the Darcy IPR model will be set to True.

Parameters:

- **value** (*DataFrame*) – Required. The data frame to set to Darcy IPR model
- **context** (*str*) – Optional. The context string to search for Darcy IPR model.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_relative_permeability_data(context="Well:Comp-1:IPRDARCY", value = df)
    >>> model.set_relative_permeability_data(Well="Well", Completion="Comp-1", value = df)
```

get_deadoil_viscosity_table(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → DataFrame
Return blackoil user viscosity table in the context.

Returns blackoil user viscosity table in the context. It will fail if more
than one item is found in the context.

Parameters:

- **context** (*str*) – Optional. The context string to search for blackoil.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_deadoil_viscosity_table(context="Heavy_Oil")
    >>> dfw = model.get_deadoil_viscosity_table(BlackOilFluid="Heavy_Oil")
```

delete_deadoil_viscosity_table(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Delete blackoil user viscosity table in the context. It will fail if more
than one item is found in the context.
Dead oil correlation will be reset to Beggs & Robinson if user table is selected

Parameters:

- **context** (*str*) – Optional. The context string to search for blackoil.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.deletet_deadoil_viscosity_table(context="Heavy_Oil")
    >>> model.delete_deadoil_viscosity_table(BlackOilFluid="Heavy_Oil")
```

set_deadoil_viscosity_table(*context: str | None = None*, *value: DataFrame = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*)
Set data frame to the blackoil user viscosity table in the context.

Set data frame to the blackoil user viscosity table in the context. It will
fail if more than one item is found in the context.

Parameters:

- **value** (*DataFrame*) – Required. The data frame to set to black oil model
- **context** (*str*) – Optional. The context string to search for blackoil.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_deadoil_viscosity_table(context="Heavy_Oil", value = df)
    >>> model.set_deadoil_viscosity_table(BlackOilFluid="Heavy_Oil", value = df)
```

get_fluid_calibration_test_data(*fluid_name: str | None = None*, *model_context: AbstractModelContext | None = None*) → DataFrame
Return Black Oil multi-point calibration fluid test data for the fluid in context.

Parameters:

- **fluid_name** (*str*) – Optional. Name of the BlackOilFluid (e.g. `"Fluid_1"`).
- **model_context** (*AbstractModelContext*) – Optional. Context to search in.


Returns:
Columns match Parameters.BlackOilFluid.MultiPointCalibration.FluidTestData.

Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_fluid_calibration_test_data(fluid_name="Fluid_1")
```

set_fluid_calibration_test_data(*fluid_name: str | None = None*, *test_data: DataFrame = None*, *model_context: AbstractModelContext | None = None*)
Set Black Oil multi-point calibration fluid test data for the fluid in context.

Parameters:

- **fluid_name** (*str*) – Optional. Name of the BlackOilFluid (e.g. `"Fluid_1"`).
- **test_data** (*DataFrame*) – Required. Test points table; column names must match FluidTestData parameters.
- **model_context** (*AbstractModelContext*) – Optional. Context to search in.


Examples

```
    >>> model.set_fluid_calibration_test_data(fluid_name="Fluid_1", test_data=df)
```

delete_fluid_calibration_test_data(*fluid_name: str | None = None*, *model_context: AbstractModelContext | None = None*)
Delete Black Oil multi-point calibration fluid test data for the fluid in context.

Clears entered test points by replacing the table with the default empty rows
(Web API does not support removing CalibrationTestData nodes directly).

Parameters:

- **fluid_name** (*str*) – Optional. Name of the BlackOilFluid (e.g. `"Fluid_1"`).
- **model_context** (*AbstractModelContext*) – Optional. Context to search in.


Examples

```
    >>> model.delete_fluid_calibration_test_data(fluid_name="Fluid_1")
```

perform_multipoint_calibration(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Run multi-point calibration tuning and update calibration factor data on the fluid.

Run multi-point calibration tuning on the Black Oil fluid identified by the
specified context. It will fail if more than one BlackOilFluid is found in
the context.

Parameters:

- **context** (*str*) – Optional. The context string to search for the BlackOilFluid.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
`Success` and `IsValid` from the API response.

Return type:
dict

Examples

```
    >>> model.perform_multipoint_calibration(context="Fluid_1")
    >>> model.perform_multipoint_calibration(BlackOilFluid="Fluid_1")
```

reset_multipoint_calibration(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Reset multi-point calibration factor data to unity on the fluid.

Reset multi-point calibration factor data to unity on the Black Oil fluid
identified by the specified context. It will fail if more than one
BlackOilFluid is found in the context.

Parameters:

- **context** (*str*) – Optional. The context string to search for the BlackOilFluid.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
`Success` and `IsValid` from the API response.

Return type:
dict

Examples

```
    >>> model.reset_multipoint_calibration(context="Fluid_1")
    >>> model.reset_multipoint_calibration(BlackOilFluid="Fluid_1")
```

get_mix_viscosity_table(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → DataFrame
Return user mixture viscosity table in the context.

Returns user mixture viscosity table in the context. It will fail if more
than one item is found in the context. Supports BlackOil, Compositional, and MFL fluids.

The fluid name can be passed directly without specifying the fluid type.
The fluid type will be automatically resolved from the model.

Parameters:

- **context** (*str*) – Optional. The fluid name or context string to search for the fluid.
When just a fluid name is provided, the fluid type is automatically
detected from the model.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_mix_viscosity_table("MyFluid")
    >>> df = model.get_mix_viscosity_table(context="Heavy_Oil")
    >>> dfw = model.get_mix_viscosity_table(BlackOilFluid="Heavy_Oil")
    >>> dfc = model.get_mix_viscosity_table(CompositionalFluid="MyCompFluid")
    >>> dfm = model.get_mix_viscosity_table(MFLFluid="MyMFLFluid")
```

delete_mix_viscosity_table(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Delete user mixture viscosity table in the context. It will fail if more
than one item is found in the context. Supports BlackOil, Compositional, and MFL fluids.
Emulsion viscosity method will be reset to ‘Set to viscosity of the continuous phase’ if user table is selected

The fluid name can be passed directly without specifying the fluid type.
The fluid type will be automatically resolved from the model.

Parameters:

- **context** (*str*) – Optional. The fluid name or context string to search for the fluid.
When just a fluid name is provided, the fluid type is automatically
detected from the model.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.delete_mix_viscosity_table("MyFluid")
    >>> model.delete_mix_viscosity_table(context="Heavy_Oil")
    >>> model.delete_mix_viscosity_table(BlackOilFluid="Heavy_Oil")
    >>> model.delete_mix_viscosity_table(CompositionalFluid="MyCompFluid")
    >>> model.delete_mix_viscosity_table(MFLFluid="MyMFLFluid")
```

set_mix_viscosity_table(*context: str | None = None*, *value: DataFrame = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*)
Set data frame to the user mixture viscosity table in the context.

Set data frame to the user mixture viscosity table in the context. It will
fail if more than one item is found in the context. Supports BlackOil, Compositional, and MFL fluids.

The fluid name can be passed directly without specifying the fluid type.
The fluid type will be automatically resolved from the model.

Parameters:

- **value** (*DataFrame*) – Required. The data frame to set to the fluid model
- **context** (*str*) – Optional. The fluid name or context string to search for the fluid.
When just a fluid name is provided, the fluid type is automatically
detected from the model.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_mix_viscosity_table("MyFluid", value = df)
    >>> model.set_mix_viscosity_table(context="Heavy_Oil", value = df)
    >>> model.set_mix_viscosity_table(BlackOilFluid="Heavy_Oil", value = df)
    >>> model.set_mix_viscosity_table(CompositionalFluid="MyCompFluid", value = df)
    >>> model.set_mix_viscosity_table(MFLFluid="MyMFLFluid", value = df)
```

get_geometry(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → DataFrame
Return flowline geometry profile in the context.

Returns flowline geometry profile in the context. It will fail if more
than one item is found in the context.

Parameters:

- **context** (*str*) – Optional. The context string to search for flowline.
Context can also be an instanse of “Component” class.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
If flowline is in detialed mode, return flowline detailed profile data.

Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_geometry(context="fl-1")
    >>> dfw = model.get_geometry(Flowline="fl-2")
```

set_geometry(*context: str | None = None*, *value: DataFrame = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords*)
Set data frame to the flowline geometry profile in the context.

Set data frame to the flowline geometry profile in the context. It will
fail if more than one item is found in the context.

Parameters:

- **value** (*DataFrame*) – Required. The data frame to set to the flowline geometry profile
- **context** (*str*) – Optional. The context string to search for flowline.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_geometry(context="fl-1", value = df)
    >>> model.set_geometry(Flowline="fl-2", value = df)
```

get_geothermal_profile(*context: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → DataFrame
Return the flowline or well geothermal profile in the context.

Returnz the flowline or well geothermal profile in the context. It will fail
if more than one item is found in the context.

Parameters:

- **context** (*str*) – Optional. The context string to search for flowline or well.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
Return geothermal data frame.
If flowline is simple, or geothermal data use global settings, empty data frame is returned.

Return type:
pandas.DataFrame

Examples

```
    >>> df = model.get_geothermal_profile(context="fl-1")
    >>> dfw = model.get_geothermal_profile(Well="well-1")
```

set_geothermal_profile(*context: str | None = None*, *value: DataFrame = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Set the DataFrame values to the flowline geothermal profile in the context.

Sets the DataFrame values to the flowline geothermal profile in the context. It will
fail if more than one item is found in the context.

Parameters:

- **value** (*DataFrame*) – Required. The data frame to set to the flowline geothermal profile
- **context** (*str*) – Optional. The context string to search for flowline or well.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.set_geothermal_profile(context="fl-1", value = df)
    >>> model.set_geothermal_profile(Flowline="fl-2", value = df)
```

read_catalog(*context=None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*)
Update the equipment data from the catalog.

Update equipment data for an FCV, ESP, PCP, Pump or Compressor from the
catalog. The equipment must have Manufacturer and Model set so that the
entry in the catalog can be identified. It will fail if more than one
item is found in the context.

Parameters:

- **context** (*str*) – Optional. The context string to look for pump
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.read_catalog(context="Pump-1")
```

batch_update()
Apply batch updates to the model

Ordinarily changes to the model through set…() are immediately
applied. The batch update allows a series of updates to be cached and
then updated as group. This is useful where many changes need to be
applied, which can be bundled together and applied all at once. This
has a performance improvement over individual updates.

Return type:
None

Examples

```
    >>> with model.batch_update():
            model.set_value("Choke", Parameters.Choke.BEANSIZE, 56)
            model.set_geometry("FL-1", geometry_df)
```

property about
Return information about the current Pipesim version.

Returns the versions of Pipesim, web API and Pipesim Python Toolkit
that are being used. Called as a function about() it returns a
dictionary of the version information. It will also return the
individual properties of the ModelAbout() class.

Parameters:
**None**

Returns:
Information about the Pipesim version.

Return type:
dict

Examples

```
    >>> version_dict = model.about()
    >>> webapi_version = model.about.webapi_version
```

get_elevation(*lat: float*, *long: float*) → float
Get the elevation of a location

Returns the elevation of the latitude / longitude location.

Parameters:

- **lat** (*float*) – Required. The latitude of the location in degree.
- **long** (*float*) – Required. The longitude of the location in degree.


Returns:
The elevation of the location with specified lat and long in meter
Raise ValueError exception if the location is invalid.

Return type:
float

Examples

```
    >>> elev = model.get_elevation(0.2, 0.5)
```

get_elevations(*locations*)
Get the elevation of a array of location points with latitude longitude

Returns an array of location points with latitude, longitude and elevation.

Parameters:
**location** (*array[dic{Longitude:value,Latitude:value},* *...]*) – Required. Location array with longitude and latitude points.

Returns:
**array[dic{Longitude** – The location array with latitude, longitude and elevetion values for each point.
Raise ValueError exception if the location is invalid.

Return type:
value,Latitude:value, Elevetion:value}, …]

Examples

```
    >>> location = model.get_elevations([{Parameters.Location.LATITUDE:0.2,Parameters.Location.LONGITUDE:0.5}])
```

export_parameters(*filename: str*, *with_templates: bool = False*) → str
Export the model parameters to a CSV file.

Exports the model parameters to a comma separated values (CSV) file.
Note that this only includes the scalar model parameters and simulation
settings; tabulated data such as trajectories and profiles are not
included.

Parameters:

- **filename** (*str*) – Required. The name of the CSV filename to save the CSV.
- **with_templates** (*bool*) – Optional. Whether to include templates (True) or not (False). The
default is False.


Returns:
The full absolute path to the CSV file saved.

Return type:
str

Examples

```
    >>> file = model.export_parameters(filename="C:/poet/model_details.pips")
```

property sim_settings
The simulation settings

property fluids
The fluid settings, primarily setting up compositional fluids

property tasks
The simulation tasks

export_well(*context: str | None = None*, *folder: str | None = None*, *model_context: AbstractModelContext | None = None*, *well_names: List[str] | None = None*, ***context_keywords: str*) → List[str]
Export the specified well(s) into Pipesim files

Exports the specified well(s) in to individual Pipesim files in
the specified folder. The filename will match the well name. If the
well name is not specified then all the wells in the model are
exported. If folder is not specified, then the wells are exported to
the current working folder

Parameters:

- **context** (*str*) – Optional. The context string to search for well.
- **folder** (*str*) – Optional. The folder location to save the files into.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).
- **well_names** (*List[str]*) – Optional. A list of well names to be exported. If this parameter is specified, the context,
model_context and context_keywords are ignored


Returns:
The list of filenames with full path of each well exported.

Return type:
list

Examples

```
    >>> files = model.export_well()
    >>> files = model.export_well(context="Well 03")
    >>> files = model.export_well(Well="Well 1")
```

import_well(*filename*, *name*, *fluid_override=False*, *overwrite_existing=False*)
Import a well into the model.

Imports the well from the file into the model with the specified
options.

Parameters:

- **filename** (*str*) – Required. The filename to import the well from
- **name** (*str*) – Required. The name that will be given to the well in the model.
- **fluid_override** (*bool*) – Specifies whether the fluid from the well import file overwrites
the existing fluid in the model (True) or not (False).
- **overwrite_existing** (*bool*) – Specifies whether the well will overwrite (replace) an existing
well in the model with the same name.


Examples

```
    >>> model.import_well(filename="C:/temp/mywells/Well01.pips", name="Well02",
                          fluid_override=False, over_write_existing=False)
```

import_wells(*folder*, *fluid_override=False*, *cache_update=True*)
import all wells from a specified folder

Parameters:

- **folder** (*str*) – The folder location where the .pips files are located. All the pips files in the folder will be imported
The file name must match to a well name inside the model.
- **fluid_override** (*bool*) – Specifies whether the fluid from the well import file overwrites
the existing fluid in the model (True) or not (False).
- **cache_update** (*bool*) – If False, the cache is not updated(better performance). User should exit the session afterwards as the cache is not reflecting the newly imported wells


Returns:
Returns a list of well names of the imported wells

Return type:
List[str]

Examples

```
    >>> folder = "C:/ImportFolder"
    >>> imported_well_names = model.import_wells(folder)
    >>> imported_well_names = model.import_wells(folder, True)
    >>> imported_well_names = model.import_wells(folder, True, True)
```

delete(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, *parameter: str | None = None*, ***context_keywords: str*)
Delete components from the model.

Deletes the specified components from the model

Parameters:

- **context** (*str*) – Optional. The context string to search in.
- **component** (*str*) – Optional. The model component to look for.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.delete(context="Sep01")
```

add(*component*, *name*, *context: str | None = None*, *parameters: dict | None = {}*)
Adds components to the model.

Create a new items in the model of the specified component type.

Parameters:

- **component** (*str*) – Required. The type of model component to add to the model. This
is one of the ModelComponents enumerations.
- **name** (*str*) – Required. The name of the item added to the model.
- **context** (*str*) – Optional. The string representation of the context to add the component.
For example, when adding downhole object to a well, it is the context string of the well.
- **parameters** (*dict*) – Optional. The parameters to set when creating the item. If not
specified then the item is created with the default parameters.


Examples

```
    >>> model.add(component=ModelComponents.BLACKOILFLUID, name="BO_01",
                  parameters={Parameters.BlackOilFluid.GOR:200})
    >>> model.add(component=ModelComponents.CHOKE, name="TSV-01",
                 {Parameters.Choke.BEANSIZE:5})
    >>> model.add(component=ModelComponents.CHOKE, name="ck", context="Well 1",
                  parameters={Parameters.DowholeLocation.TOPMEASUREDDEPTH:500,
                  Parameters.Choke.BEANSIZE=4.5})
```

copy(*context: str*, *name: str*, *use_template: bool | None = False*)
Duplicate an item in the model.

Copy a model component. **Note that it only works for the following
components in the current release**:

- Well


Parameters:

- **context** (*str*) – The existing model component to be duplicated.
- **name** (*str*) – The name of the duplicate. If this already exists then it will
append a suffix to the name.
- **use_template** (*Boolean*) – Optional. Duplicate the item from the the catalog, if it exists.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.copy(Well='Simple vertical', name='Sixgill', use_template=True)
    >>> model.copy(Name='Well01', name='Well01', use_template=False)
```

connect(*source*, *destination*, *source_port=None*)
Connect the source item to the destination item

Creates a connection from the source item to the destination item. It
will fail if the source context or destination context match more than
one item.

Parameters:

- **source** (*dict* *or* *context string*) – The find context for the source item.
- **destination** (*dict* *or* *context string*) – The find context for the destination item.
- **source_port** (*str*) – If the source is a TwoPhaseSeparator or ThreePhaseSeparator, this
is required to indicate which outlet should be used to make the
connection, as provided by the Connection.Separator enumeration.


Examples

```
    >>> connect(source={ModelComponent.Well:"Well 3"},
                destination={"Choke":"TCV-03"})
    >>> connect(source="Sep-01", destination="ExportGasSink",
                source_port=Connection.Separator.Top)
```

disconnect(*source*, *destination: str | None = None*, *port: str | None = None*)
Disconnect the source and the destination components.

Removes the connection between the source model component and the
destination model component. Altenatively, specifying the source and
the source port will break the connection from the specified port.
The method will fail if the source or destination contexts do not
exist or there is no connection between them.

Parameters:

- **source** (*dict* *or* *str*) – The source model component (starting point for the connection). This
can either be a context string or a context dictionary.
- **destination** (*dict* *or* *str*) – Optional. The destination model component (ending point of the connection).
- **port** (*str*) – Optional. The port to be disconnected on the source model component. Note
that some model components (e.g. Junction, Heat Exchange, Choke) do
not have indentifiable inlet and outlet ports hence should need to
use the destination argument instead.


Examples

```
    >>> disconnect(source={ModelComponent.Well:"Well 3"},
                   destination={Choke:"TCV-03"})
    >>> disconnect(source="Well 3", destination="TCV-03")
```

connections(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → List[Dict]
Get the model component connections in the context.

Returns the model component connections in the context. It is provided
as a list of dictionaries with the Source, Destination and Source Port
for easy revieiwng and formatting in a DataFrame. If no context is
provided, then the information of all connections are returned.

Parameters:

- **context** (*str*) – Optional. The context string to search for Source or Destination.
- **component** (*str*) – Optional. The model component to look for Source or Destination.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
Return a list of dictionaries. Each dictionary contains connection information
including Source, Source Port, and Destination

Return type:
List[Dict]

Examples

```
    >>> model.connections(Well=ALL)
```

get_connections(*context: str | None = None*, *component: str | None = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → Dict
Get the connections for each item in the context.

Returns the connections for each item in the context. It is formatted
as a dictionary of context, with each context providing the source,
destination and the ports of the context items. It is therefore useful
as a look-up table to find the inlets and outlets of specific model
components. If no context is provided, then the information of all
connections is returned.

Parameters:

- **context** (*str*) – Optional. The context string to search for Source or Destination.
- **component** (*str*) – Optional. The model component to look for Source or Destination.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Returns:
Returns a dictionary of dictionaries. Each dictionary contains
connection information including Source, Source Port, and Destination

Return type:
Dict[Dict]

Examples

```
    >>> model.get_connections("MBD-101")
```

convert(*context: str | None = None*, *to_component: str = None*, *model_context: AbstractModelContext | None = None*, ***context_keywords: str*) → DataFrame | None
Convert an item to the specified type of model component.

Converts a junction to either a WellHead, Source or Sink. If more than
one item matches the search context then it will fail.

Parameters:

- **context** (*str*) – Optional. The context string to search in.
- **to_component** (*str*) – Required. The model component type to change the specified item
into. This must be an enumeration of ModelComponents, though
only WellHead, Source and Sink are supported at this time.
- **model_context** (*AbstractModelContext*) – Optional. The context to search in.
- **context_keywords** (*str*) – Comma separated list of context search criteria in the form of
component=’value’, where component is the model component of the
item, and value is the value of the model component. Values can
also be ANY (matches any value) or NONE (matches no value).


Examples

```
    >>> model.convert(component=ModelComponents.Junction, context="JN-01",
                      to_component=ModelComponents.WELL)
```

class sixgill.pipesim.ModelAbout(*model*)
Bases: `object`

Provides details about the model, web API and Python Toolkit

property webapi_version
The Pipesim web API version

property filename
The model folder and file name

property toolkit_version
The Pipesim Python Toolkit version

property unit_system
The engineering unit system

property ui_unit_system
The engineering ui unit system

class sixgill.pipesim.Task(*model*)
Bases: `object`

property networksimulation

property systemperformance

property networkoptimizersimulation

property vfptablessimulation

property ptprofilesimulation

property nodalanalysis

property wellperformancecurvessimulation

property systemanalysissimulation

property gldiagnosticssimulation

property wellcalibration

class sixgill.pipesim.NetworkSimulation(*model*, *sim_type*)
Bases: AbstractNetworkSimulation

get_use_surface_conditions(*study: str | None = None*)
Returns the value of use surface conditions.

Returns the value of use surface conditions for the specified study.
If the network simulation task does not exist in the study, a new one will be created.

Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:
The value of use surface conditions.

Return type:
bool

Examples

```
    >>> use_surface = model.tasks.networksimulation.get_use_surface_conditions()
    >>> use_surface = model.tasks.networksimulation.get_use_surface_conditions("Study 1")
```

set_use_surface_conditions(*value: bool*, *study: str | None = None*)
Sets the value of use surface conditions.

Sets the the value of use surface conditions for the specified study.
If the network simulation task does not exist in the study, a new one will be created.

Parameters:

- **value** (*bool*) – The value of use surface conditions. If true, set to use surface conditions.
If false, set to use reservoir conditions.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Examples

```
    >>> model.tasks.networksimulation.set_use_surface_conditions(True)
    >>> model.tasks.networksimulation.set_use_surface_conditions(False, study = "Study 1")
```

get_constraint_branch_names(*study: str | None = None*) → Dict
Returns the study constraint branch names.

Returns the network simulation constraint branch names for the specified study.
If the network simulation task does not exist in the study, a new one will be created.

Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:
The study constraint branch names.

Return type:
dict

Examples

```
    >>> studynetsim1 = model.tasks.networksimulation.get_constraint_branch_names()
    >>> studynetsim1 = model.tasks.networksimulation.get_constraint_branch_names("Study 1")
```

get_conditions(*use_surface_condition: bool | None = None*, *study: str | None = None*) → Dict
Returns the study conditions.

Returns the network simulation conditions for the specified study.
If the network simulation task does not exist in the study, a new one will be created.

Parameters:

- **use_surface_condition** (*bool*) – Optional. get surface conditions or reservoir conditions. If not provided,
default is the conditions used in the model.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The study conditions.

Return type:
dict

Examples

```
    >>> studynetsim1 = model.tasks.networksimulation.get_conditions()
    >>> studynetsim1 = model.tasks.networksimulation.get_conditions("Study 1")
    >>> studynetsim1 = model.tasks.networksimulation.get_conditions(
                            use_surface_condition=True, study="Study 1")
```

set_conditions(*boundaries: dict | None = {}*, *constraints: dict | None = {}*, *use_surface_condition: bool | None = None*, *study: str | None = None*)
Sets the study conditions.

Sets the study conditions for the specified study.
If the network simulation task does not exist in the study, a new one will be created.

Parameters:

- **use_surface_condition** (*bool*) – Optional. set surface conditions or reservoir conditions. If not provided,
default is the conditions used in the model.
- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **constraints** (*dict*) – Optional. The rate constraints to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created network simulation operation.

Return type:
Network simulation operation

Examples

```
    >>> model.tasks.networksimulation.set_conditions(
                boundaries={"Well:VertComp":{
                    Parameters.Boundary.PRESSURE:NAN,
                    Parameters.Boundary.TEMPERATURE:150,
                    Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
                    Parameters.Boundary.GASFLOWRATE:5}},
                constraints={"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}})
    >>> model.tasks.networksimulation.set_conditions(use_surface_condition=False,
                boundaries={"Well:VertComp":{
                                Parameters.Boundary.PRESSURE:NAN,
                                Parameters.Boundary.TEMPERATURE:150,
                                Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
                                Parameters.Boundary.GASFLOWRATE:5}},
                study = "Study 1")
```

reset_conditions(*study: str | None = None*)
Resets the study conditions to be synchronized with the model.

Resets the study conditions to be synchronized with the model for the specified study.

Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:
Whether the reset succeeded (True) or not (False).

Return type:
bool

Examples

```
    >>> model.tasks.networksimulation.reset_conditions()
    >>> model.tasks.networksimulation.reset_conditions(study = "Study 1")
```

get_constraints(*study: str | None = None*) → Dict
Returns the study constraints.

Returns the network simulation conditions for the specified study.
If the network simulation task does not exist in the study, a new one will be created.

Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:
The study conditions.

Return type:
dict

Examples

```
    >>> studynetsim1 = model.tasks.networksimulation.get_constraints()
    >>> studynetsim1 = model.tasks.networksimulation.get_constraints("Study 1")
```

set_constraints(*constraints*, *study: str | None = None*)
Sets the study constraints.

Sets the study constraints for the specified study.
If the network simulation task does not exist in the study, a new one will be created.

Parameters:

- **constraints** (*dict*) – The constraints to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created network simulation operation.

Return type:
Network simulation operation

Examples

```
    >>> model.tasks.networksimulation.set_constraints(constraints={"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}})
    >>> model.tasks.networksimulation.set_constraints({"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}})
    >>> model.tasks.networksimulation.set_constraints(
                constraints={"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}},
                study = "Study 1")
```

delete_constraints(*study: str | None = None*)
Deletes the study constraints.

Parameters:
**study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.

Returns:
Whether the reset succeeded (True) or not (False).

Return type:
bool

Examples

```
    >>> model.tasks.networksimulation.delete_constraints()
    >>> model.tasks.networksimulation.delete_constraints(study = "Study 1")
```

generate_engine_files(*folder_path: str | None = None*, *study: str | None = None*) → List[str]
Create engine files for the specified study.

Generate the engine file(s) for the requested study. The files are written
to the specified folder, or to the current model folder if one is not given.

Parameters:

- **folder_path** (*str*) – Optional. The folder location where the generated files are written to.
If not specified, the files will be written to current Pipesim model file folder.
- **study** (*str*) – Optional. The study name.


Returns:
The list of engine files generated.

Return type:
List[str]

Examples

```
    >>> engine_files = model.tasks.networksimulation.generate_engine_files()
    >>> engine_files = model.tasks.networksimulation.generate_engine_files(
                               study='Study 1')
    >>> engine_files = model.tasks.networksimulation.generate_engine_files(
                               folder_path="D:/Temp", study='Study 1')
```

run(*profile_variables: list | None = None*, *system_variables: list | None = None*, *boundaries: dict | None = {}*, *constraints: dict | None = {}*, *use_surface_condition: bool | None = None*, *study: str | None = None*, *options: dict | None = {}*)
Runs a network simulation.

Runs a network simulation. Optionally the
boundaries, constraints, and variables may be set at the same time
avoiding the need to use set_conditions().
If the network simulation task does not exist in the study, a new one will be created.
The method waits until the simulation has finished before returning, and then returns
the results.

Parameters:

- **use_surface_condition** (*bool*) – Optional. use surface conditions or reservoir conditions. If not provided,
default is the conditions used in the model.
- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **constraints** (*dict*) – Optional. The constraints to be set on the study.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.
- **options** (*dict*) – Optional. simulations options like generating ouput files and using Restart


Returns:
The simulation results.

Return type:
dict

Examples

```
    >>> sim_results = model.tasks.networksimulation.run(
                use_surface_condition=False,
                boundaries={"Well1.Comp1":{
                                    Parameters.Boundary.PRESSURE:NAN,
                                    Parameters.Boundary.LIQUIDFLOWRATE:200,
                                    Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.LIQUIDFLOWRATE}
                            },
                constraints={"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}},
                profile_variables=OutputVariables.Profile.GAS_FIELD,
                system_variables=OutputVariables.System.GAS_FIELD,
                options={SimulationOptions.GENERATEOUTPUTFILE:True,
                        SimulationOptions.RESTART:False,
                        SimulationOptions.PARALLELISM:4})#generate output file, do not use restart files, run with 4 cores
```

start(*profile_variables: list | None = None*, *system_variables: list | None = None*, *boundaries: dict | None = {}*, *constraints: dict | None = {}*, *use_surface_condition: bool | None = None*, *options: dict | None = {}*, *study: str | None = None*) → str
Starts running a simulation of the specified type, returning the simulation id
immediately which can be used later to check the status and get the results.
If the network simulation task does not exist in the study, a new one will be created.

Parameters:

- **use_surface_condition** (*bool*) – Optional. use surface conditions or reservoir conditions. If not provided,
default is the conditions used in the model.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
For PT Profile, it must contain the name of the StartNode (Well or Source)
- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **constraints** (*dict*) – Optional. The constraints to be set on the study.
- **sensitivities** (*dict*) – Optional. For PT Profile simulations, the sensitivities.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.
- **options** (*dict*) – Optional. simulations options like generating ouput files and using Restart


Returns:
The simulation id, which can be used to access simulation status and get the results.

Return type:
str

Examples

```
    >>> sim_id = model.tasks.networksimulation.start(use_surface_condition=False,
                      boundaries={"Well1.Comp1":{
                                            Parameters.Boundary.PRESSURE:NAN,
                                            Parameters.Boundary.LIQUIDFLOWRATE:200,
                                            Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.LIQUIDFLOWRATE}
                                  },
                      constraints={"Well":{Parameters.RateConstraint.LIQUIDFLOWRATE:200.0}},
                      profile_variables=OutputVariables.Profile.GAS_FIELD,
                      system_variables=OutputVariables.System.GAS_FIELD,
                      options={SimulationOptions.GENERATEOUTPUTFILE:True,
                                SimulationOptions.RESTART:False,
                                SimulationOptions.PARALLELISM:4}) #generate output file, do not use restart files, run with 4 cores
```

class sixgill.pipesim.PTProfileSimulation(*model*, *sim_type*)
Bases: AbstractSingleBranchSimulation

get_conditions(*producer*, *study: str | None = None*)
Returns the study conditions.

Returns the PT profile simulation conditions for the specified study.
If the PT profile simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the PT profile simulation task
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The PT profile settings in a dictionary format.

Return type:
dictZ

Examples

```
    >>> studyptsim1 = model.tasks.ptprofilesimulation.get_conditions("Well 1")
    >>> studyptsim1 = model.tasks.ptprofilesimulation.get_conditions("Well 1",
                               "Study 2")
```

set_conditions(*producer*, *parameters={}*, *study: str | None = None*)
Sets the study conditions.

Sets the PT profile simulation task conditions for the specified study.
If the PT profile simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the PT profile simulation task.
- **parameters** (*dict*) – Required. The conditions for PT profile task to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created PT profile operation.

Return type:
PT profile operation

Examples

```
    >>> model.tasks.ptprofilesimulation.set_conditions("Well 1",
                parameters={Parameters.PTProfileSimulation.INLETPRESSURE:3000,
                            Parameters.PTProfileSimulation.OUTLETPRESSURE:150,
                            Parameters.PTProfileSimulation.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
                            Parameters.PTProfileSimulation.GASFLOWRATE:5})
    >>> model.tasks.ptprofilesimulation.set_conditions("Well 1",
                parameters={Parameters.PTProfileSimulation.INLETPRESSURE:3000,
                            Parameters.PTProfileSimulation.OUTLETPRESSURE:150,
                            Parameters.PTProfileSimulation.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
                            Parameters.PTProfileSimulation.GASFLOWRATE:5},
                study="Study 2")
```

reset_conditions(*producer*, *study: str | None = None*)
Resets the study conditions to be synchronized with the model.

Resets the study conditions to be synchronized with the model for the specified study.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the PT profile simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
Whether the reset succeeded (True) or not (False).

Return type:
bool

Examples

```
    >>> model.tasks.ptprofilesimulation.reset_conditions("Well 1")
    >>> model.tasks.ptprofilesimulation.reset_conditions(
                                        "Well 1", study = "Study 1")
```

get_sensitivity_variables(*producer*, *study: str | None = None*) → List[str]
Get the available sensitivity variable list.

Get the list of possible sensitivity variables for the PT profile simulation task.
If the PT profile simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the PT profile simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
a list of sensitivity variables names that can be applied to this task.

Return type:
list

Examples

```
    >>> model.tasks.ptprofilesimulation.get_sensitivity_variables("Well 1")
    >>> model.tasks.ptprofilesimulation.get_sensitivity_variables("Well 1",
                      study="Study 2")
```

get_calculated_variables(*producer*, *study: str | None = None*) → List[str]
get the possible calculated variable list.

Get the list of possible calculated variable for the PT profile simulation task.
If the PT profile simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the PT profile simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
a list of possible calculated variable names that can be applied to this task.

Return type:
list

Examples

```
    >>> model.tasks.ptprofilesimulation.get_calculated_variables("Well 1")
    >>> model.tasks.ptprofilesimulation.get_calculated_variables("Well 1",
                      study="Study 2")
```

generate_engine_files(*producer*, *folder_path: str | None = None*, *study: str | None = None*) → List[str]
Create engine files for the specified study.

Generate the engine file(s) for the requested study. The files are written
to the specified folder, or to the current model folder if one is not given.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the PT profile simulation task.
- **folder_path** (*str*) – Optional. The folder location where the generated files are written to.
If not specified, the files will be written to current Pipesim model folder.
- **study** (*str*) – Optional. The study name.


Returns:
The list of engine files generated.

Return type:
List[str]

Examples

```
    >>> engine_files = model.tasks.ptprofilesimulation.generate_engine_files(
                                producer="Well 1")
    >>> engine_files = model.tasks.ptprofilesimulation.generate_engine_files(
                                producer="Well 1", folder_path="D:/Temp")
    >>> engine_files = model.tasks.ptprofilesimulation.generate_engine_files(
                                producer="Well 1", folder_path="D:/Temp",
                                study="Study 1")
```

run(*producer*, *parameters={}*, *profile_variables: list | None = None*, *system_variables: list | None = None*, *study: str | None = None*)
Runs a PT Profile simulation.

Runs a PT Profile simulation. Optionally the
parameters and variables may be set at the same time
avoiding the need to use set_conditions().
If the PT profile simulation task does not exist in the study, a new one will be created.
The method waits until the simulation has finished before returning, and then returns
the results.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the PT profile simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation results.

Return type:
dict

Examples

```
    >>> sim_results = model.tasks.ptprofilesimulation.run( "Well 1",
            parameters={Parameters.PTProfileSimulation.OUTLETPRESSURE:200,
                        Parameters.PTProfileSimulation.SENSITIVITYVARIABLE:
                {Parameters.PTProfileSimulation.SensitivityVariable.COMPONENT:
                "VertComp",
                Parameters.PTProfileSimulation.SensitivityVariable.VARIABLE:
                "ReservoirPressure",
                Parameters.PTProfileSimulation.SensitivityVariable.VALUES:
                [2000,3000,4000]}
            },
            profile_variables=OutputVariables.Profile.GAS_FIELD,
            system_variables=OutputVariables.System.GAS_FIELD)
```

start(*producer*, *parameters={}*, *profile_variables: list | None = None*, *system_variables: list | None = None*, *study: str | None = None*)
Starts running a PT Profile simulation, returning the simulation id
immediately which can be used later to check the status and get the results
If the PT profile simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the PT profile simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation id, which can be used to access simulation status and get the results.

Return type:
str

Examples

```
    >>> sim_id = model.tasks.ptprofilesimulation.start( "Well 1",
            parameters={Parameters.PTProfileSimulation.OUTLETPRESSURE:200,
                        Parameters.PTProfileSimulation.SENSITIVITYVARIABLE:
                {Parameters.PTProfileSimulation.SensitivityVariable.COMPONENT:
                "VertComp",
                Parameters.PTProfileSimulation.SensitivityVariable.VARIABLE:
                "ReservoirPressure",
                Parameters.PTProfileSimulation.SensitivityVariable.VALUES:
                [2000,3000,4000]}
            },
            profile_variables=OutputVariables.Profile.GAS_FIELD,
            system_variables=OutputVariables.System.GAS_FIELD)
```

class sixgill.pipesim.GLDiagnosticsSimulation(*model*, *sim_type*)
Bases: AbstractSingleBranchSimulation

get_conditions(*producer*, *study: str | None = None*)
Returns the study conditions.

Returns the GLDiagnostics simulation conditions for the specified study.
If the GLDiagnostics simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the GLDiagnostics simulation task
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The GLDiagnostics settings in a dictionary format.

Return type:
dictZ

Examples

```
    >>> studyptsim1 = model.tasks.gldiagnosticssimulation.get_conditions("Well 1")
    >>> studyptsim1 = model.tasks.gldiagnosticssimulation.get_conditions("Well 1",
                               "Study 2")
```

set_conditions(*producer*, *parameters={}*, *boundaries: dict | None = {}*, *study: str | None = None*)
Sets the study conditions.

Sets the GLDiagnostics simulation task conditions for the specified study.
If the GLDiagnostics simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the GLDiagnostics simulation task.
- **parameters** (*dict*) – Required. The conditions for GLDiagnostics task to be set on the study.
- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created GLDiagnostics operation.

Return type:
GLDiagnostics operation

Examples

```
    >>> model.tasks.gldiagnosticssimulation.set_conditions("Well 1",
                parameters={Parameters.GLDiagnosticsSimulation.OUTLETPRESSURE:150,
                            Parameters.GLDiagnosticsSimulation.SURFACEINJECTIONPRESSURE:1750,
                            Parameters.GLDiagnosticsSimulation.TARGETINJECTIONRATE: 2.5})
    >>> model.tasks.gldiagnosticssimulation.set_conditions("Well 1",
                parameters={Parameters.GLDiagnosticsSimulation.OUTLETPRESSURE:150,
                            Parameters.GLDiagnosticsSimulation.SURFACEINJECTIONPRESSURE:1750,
                            Parameters.GLDiagnosticsSimulation.TARGETINJECTIONRATE: 2.5},
                study="Study 2")
```

reset_conditions(*producer*, *study: str | None = None*)
Resets the study conditions to be synchronized with the model.

Resets the study conditions to be synchronized with the model for the specified study.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the GLDiagnostics simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
Whether the reset succeeded (True) or not (False).

Return type:
bool

Examples

```
    >>> model.tasks.gldiagnosticssimulation.reset_conditions("Well 1")
    >>> model.tasks.gldiagnosticssimulation.reset_conditions(
                                        "Well 1", study = "Study 1")
```

get_sensitivity_variables(*producer*, *study: str | None = None*) → List[str]
Get the available sensitivity variable list.

Get the list of possible sensitivity variables for the GLDiagnostics simulation task.
If the GLDiagnostics simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the GLDiagnostics simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
a list of sensitivity variables names that can be applied to this task.

Return type:
list

Examples

```
    >>> model.tasks.gldiagnosticssimulation.get_sensitivity_variables("Well 1")
    >>> model.tasks.gldiagnosticssimulation.get_sensitivity_variables("Well 1",
                      study="Study 2")
```

generate_engine_files(*producer*, *folder_path: str | None = None*, *study: str | None = None*) → List[str]
Create engine files for the specified study.

Generate the engine file(s) for the requested study. The files are written
to the specified folder, or to the current model folder if one is not given.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the GLDiagnostics simulation task.
- **folder_path** (*str*) – Optional. The folder location where the generated files are written to.
If not specified, the files will be written to current Pipesim model folder.
- **study** (*str*) – Optional. The study name.


Returns:
The list of engine files generated.

Return type:
List[str]

Examples

```
    >>> engine_files = model.tasks.gldiagnosticssimulation.generate_engine_files(
                                producer="Well 1")
    >>> engine_files = model.tasks.gldiagnosticssimulation.generate_engine_files(
                                producer="Well 1", folder_path="D:/Temp")
    >>> engine_files = model.tasks.gldiagnosticssimulation.generate_engine_files(
                                producer="Well 1", folder_path="D:/Temp",
                                study="Study 1")
```

run(*producer*, *parameters={}*, *boundaries: dict | None = {}*, *profile_variables: list | None = None*, *system_variables: list | None = None*, *study: str | None = None*)
Runs a GLDiagnostics simulation.

Runs a GLDiagnostics simulation. Optionally the
parameters and variables may be set at the same time
avoiding the need to use set_conditions().
If the GLDiagnostics simulation task does not exist in the study, a new one will be created.
The method waits until the simulation has finished before returning, and then returns
the results.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the GLDiagnostics simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation results.

Return type:
dict

Examples

```
    >>> sim_results = model.tasks.gldiagnosticssimulation.run( "Well 1",
            parameters={Parameters.GLDiagnosticsSimulation.OUTLETPRESSURE:200,
                        Parameters.GLDiagnosticsSimulation.SENSITIVITYVARIABLE:
                {Parameters.GLDiagnosticsSimulation.SensitivityVariable.COMPONENT:
                "VertComp",
                Parameters.GLDiagnosticsSimulation.SensitivityVariable.VARIABLE:
                "ReservoirPressure",
                Parameters.GLDiagnosticsSimulation.SensitivityVariable.VALUES:
                [2000,3000,4000]}
            },
            profile_variables=OutputVariables.Profile.GAS_FIELD,
            system_variables=OutputVariables.System.GAS_FIELD)
```

start(*producer*, *parameters={}*, *boundaries: dict | None = {}*, *profile_variables: list | None = None*, *system_variables: list | None = None*, *study: str | None = None*)
Starts running a GLDiagnostics simulation, returning the simulation id
immediately which can be used later to check the status and get the results
If the GLDiagnostics simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the GLDiagnostics simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation id, which can be used to access simulation status and get the results.

Return type:
str

Examples

```
    >>> sim_id = model.tasks.gldiagnosticssimulation.start( "Well 1",
            parameters={Parameters.GLDiagnosticsSimulation.OUTLETPRESSURE:200,
                        Parameters.GLDiagnosticsSimulation.SENSITIVITYVARIABLE:
                {Parameters.GLDiagnosticsSimulation.SensitivityVariable.COMPONENT:
                "VertComp",
                Parameters.GLDiagnosticsSimulation.SensitivityVariable.VARIABLE:
                "ReservoirPressure",
                Parameters.GLDiagnosticsSimulation.SensitivityVariable.VALUES:
                [2000,3000,4000]}
            },
            profile_variables=OutputVariables.Profile.GAS_FIELD,
            system_variables=OutputVariables.System.GAS_FIELD)
```

class sixgill.pipesim.SystemAnalysisSimulation(*model*, *sim_type*)
Bases: AbstractSingleBranchSimulation

get_conditions(*producer*, *study: str | None = None*)
Returns the study conditions.

Returns the System analysis simulation conditions for the specified study.
If the System analysis task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the System analysis simulation task
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The System analysis settings in a dictionary format.

Return type:
dictZ

Examples

```
    >>> studyptsim1 = model.tasks.systemanalysissimulation.get_conditions("Well 1")
    >>> studyptsim1 = model.tasks.systemanalysissimulation.get_conditions("Well 1",
                               "Study 2")
```

set_conditions(*producer*, *parameters={}*, *study: str | None = None*)
Sets the study conditions.

Sets the System analysis simulation task conditions for the specified study.
If the System analysis simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the System analysis simulation task.
- **parameters** (*dict*) – Required. The conditions for System analysis task to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created System analysis operation.

Return type:
System analysis operation

Examples

```
    >>> model.tasks.systemanalysissimulation.set_conditions("Well 1",
                parameters={Parameters.SystemAnalysisSimulation.INLETPRESSURE:3000,
                            Parameters.SystemAnalysisSimulation.OUTLETPRESSURE:150,
                            Parameters.SystemAnalysisSimulation.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
                            Parameters.SystemAnalysisSimulation.LIQUIDFLOWRATE:5})
    >>> model.tasks.systemanalysissimulation.set_conditions("Well 1",
                parameters={Parameters.SystemAnalysisSimulation.INLETPRESSURE:3000,
                            Parameters.SystemAnalysisSimulation.OUTLETPRESSURE:150,
                            Parameters.SystemAnalysisSimulation.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
                            Parameters.SystemAnalysisSimulation.LIQUIDFLOWRATE:5},
                study="Study 2")
```

reset_conditions(*producer*, *study: str | None = None*)
Resets the study conditions to be synchronized with the model.

Resets the study conditions to be synchronized with the model for the specified study.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the System analysis simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
Whether the reset succeeded (True) or not (False).

Return type:
bool

Examples

```
    >>> model.tasks.systemanalysissimulation.reset_conditions("Well 1")
    >>> model.tasks.systemanalysissimulation.reset_conditions(
                                        "Well 1", study = "Study 1")
```

get_calculated_variables(*producer*, *study: str | None = None*) → List[str]
get the possible calculated variable list.

Get the list of possible calculated variable for the System analysis simulation task.
If the System analysis simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the System analysis simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
a list of possible calculated variable names that can be applied to this task.

Return type:
list

Examples

```
    >>> model.tasks.systemanalysissimulation.get_calculated_variables("Well 1")
    >>> model.tasks.systemanalysissimulation.get_calculated_variables("Well 1",
                      study="Study 2")
```

get_sensitivity_variables(*producer*, *study: str | None = None*) → List[str]
Get the available sensitivity variable list.

Get the list of possible sensitivity variables for the System analysis simulation task.
If the System analysis simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the System analysis simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
a list of sensitivity variables names that can be applied to this task.

Return type:
list

Examples

```
    >>> model.tasks.systemanalysissimulation.get_sensitivity_variables("Well 1")
    >>> model.tasks.systemanalysissimulation.get_sensitivity_variables("Well 1",
                      study="Study 2")
```

generate_engine_files(*producer*, *folder_path: str | None = None*, *study: str | None = None*) → List[str]
Create engine files for the specified study.

Generate the engine file(s) for the requested study. The files are written
to the specified folder, or to the current model folder if one is not given.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the System analysis simulation task.
- **folder_path** (*str*) – Optional. The folder location where the generated files are written to.
If not specified, the files will be written to current Pipesim model folder.
- **study** (*str*) – Optional. The study name.


Returns:
The list of engine files generated.

Return type:
List[str]

Examples

```
    >>> engine_files = model.tasks.systemanalysissimulation.generate_engine_files(
                                producer="Well 1")
    >>> engine_files = model.tasks.systemanalysissimulation.generate_engine_files(
                                producer="Well 1", folder_path="D:/Temp")
    >>> engine_files = model.tasks.systemanalysissimulation.generate_engine_files(
                                producer="Well 1", folder_path="D:/Temp",
                                study="Study 1")
```

run(*producer*, *parameters={}*, *profile_variables: list | None = None*, *system_variables: list | None = None*, *study: str | None = None*)
Runs a System analysis simulation.

Runs a System analysis simulation. Optionally the
parameters and variables may be set at the same time
avoiding the need to use set_conditions().
If the System analysis simulation task does not exist in the study, a new one will be created.
The method waits until the simulation has finished before returning, and then returns
the results.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the System analysis simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation results.

Return type:
dict

Examples

```
    >>> sim_results = model.tasks.systemanalysissimulation.run( "Well 1",
            parameters={Parameters.SystemAnalysisSimulation.OUTLETPRESSURE:200,
                        Parameters.SystemAnalysisSimulation.SENSITIVITYVARIABLE:
                {Parameters.SystemAnalysisSimulation.SensitivityVariable.COMPONENT:
                "VertComp",
                Parameters.SystemAnalysisSimulation.SensitivityVariable.VARIABLE:
                "ReservoirPressure",
                Parameters.SystemAnalysisSimulation.SensitivityVariable.VALUES:
                [2000,3000,4000]}
            },
            profile_variables=OutputVariables.Profile.GAS_FIELD,
            system_variables=OutputVariables.System.GAS_FIELD)
```

start(*producer*, *parameters={}*, *profile_variables: list | None = None*, *system_variables: list | None = None*, *study: str | None = None*)
Starts running a System analysis simulation, returning the simulation id
immediately which can be used later to check the status and get the results
If the System analysis simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the System analysis simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation id, which can be used to access simulation status and get the results.

Return type:
str

Examples

```
    >>> sim_id = model.tasks.systemanalysissimulation.start( "Well 1",
            parameters={Parameters.SystemAnalysisSimulation.OUTLETPRESSURE:200,
                        Parameters.SystemAnalysisSimulation.SENSITIVITYVARIABLE:
                {Parameters.SystemAnalysisSimulation.SensitivityVariable.COMPONENT:
                "VertComp",
                Parameters.SystemAnalysisSimulation.SensitivityVariable.VARIABLE:
                "ReservoirPressure",
                Parameters.SystemAnalysisSimulation.SensitivityVariable.VALUES:
                [2000,3000,4000]}
            },
            profile_variables=OutputVariables.Profile.GAS_FIELD,
            system_variables=OutputVariables.System.GAS_FIELD)
```

class sixgill.pipesim.WellPerformanceCurvesSimulation(*model*, *sim_type*)
Bases: AbstractSingleBranchSimulation

get_conditions(*producer*, *study: str | None = None*)
Returns the study conditions.

Returns the Well performance curves simulation conditions for the specified study.
If the Well performance curves simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well performance curves simulation task
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The Well performance curves settings in a dictionary format.

Return type:
dict

Examples

```
    >>> studyptsim1 = model.tasks.wellperformancecurvessimulation.get_conditions("Well 1")
    >>> studyptsim1 = model.tasks.wellperformancecurvessimulation.get_conditions("Well 1",
                               "Study 2")
```

set_conditions(*producer*, *parameters={}*, *study: str | None = None*)
Sets the study conditions.

Sets the Well performance curves simulation task conditions for the specified study.
If the Well performance curves simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well performance curves simulation task.
- **parameters** (*dict*) – Required. The conditions for Well performance curves task to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created Well performance curves operation.

Return type:
Well performance curves operation

Examples

```
    >>> model.tasks.wellperformancecurvessimulation.set_conditions("Well 1", parameters=studyptsim1)
    >>> model.tasks.wellperformancecurvessimulation.set_conditions("Well 1", parameters=studyptsim1,
                               "Study 2")
```

get_sensitivity_variables(*producer*, *study: str | None = None*) → List[str]
Get the available sensitivity variable list.

Get the list of possible sensitivity variables for the Well performance curves simulation task.
If the Well performance curves simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well performance curves simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
a list of sensitivity variables names that can be applied to this task.

Return type:
list

Examples

```
    >>> model.tasks.wellperformancecurvessimulation.get_sensitivity_variables("Well 1")
    >>> model.tasks.wellperformancecurvessimulation.get_sensitivity_variables("Well 1",
                      study="Study 2")
```

generate_engine_files(*producer*, *folder_path: str | None = None*, *study: str | None = None*) → List[str]
Create engine files for the specified study.

Generate the engine file(s) for the requested study. The files are written
to the specified folder, or to the current model folder if one is not given.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well performance curves simulation task.
- **folder_path** (*str*) – Optional. The folder location where the generated files are written to.
If not specified, the files will be written to current Pipesim model folder.
- **study** (*str*) – Optional. The study name.


Returns:
The list of engine files generated.

Return type:
List[str]

Examples

```
    >>> engine_files = model.tasks.wellperformancecurvessimulation.generate_engine_files(
                                producer="Well 1")
    >>> engine_files = model.tasks.wellperformancecurvessimulation.generate_engine_files(
                                producer="Well 1", folder_path="D:/Temp")
    >>> engine_files = model.tasks.wellperformancecurvessimulation.generate_engine_files(
                                producer="Well 1", folder_path="D:/Temp",
                                study="Study 1")
```

run(*producer*, *parameters={}*, *system_variables: list | None = None*, *study: str | None = None*)
Runs a Well performance curves simulation.

Runs a Well performance curves simulation. Optionally the
parameters and variables may be set at the same time
avoiding the need to use set_conditions().
If the Well performance curves simulation task does not exist in the study, a new one will be created.
The method waits until the simulation has finished before returning, and then returns
the results.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well performance curves simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation results.

Return type:
dict

Examples

```
    >>> sim_results = model.tasks.wellperformancecurvessimulation.run( "Well 1")
```

start(*producer*, *parameters={}*, *system_variables: list | None = None*, *study: str | None = None*)
Starts running a Well performance curves simulation, returning the simulation id
immediately which can be used later to check the status and get the results
If the Well performance curves simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well performance curves simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation id, which can be used to access simulation status and get the results.

Return type:
str

Examples

```
    >>> sim_id = model.tasks.wellperformancecurvessimulation.start( "Well 1")
```

class sixgill.pipesim.NodalAnalysisSimulation(*model*, *sim_type*)
Bases: AbstractSingleBranchSimulation

get_conditions(*producer*, *nodal_point_settings: dict | None = None*, *study: str | None = None*)
Returns the nodal analysis general conditions in one dictionary and inlet condtions in anohter dictionary.

Returns the nodal analysis general conditions for the specified study.
If the nodal analysis task does not exist in the study, a new one will be created. If the producer is a
well and nodal point settings are not provided, a default nodal point at bottom hole will be created.
If nodal point settings are provided, a new nodal point will be created and be applied to the existing or
newly created nodal analysis task.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the nodal analysis simulation task
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.
- **nodal_point_settings** (*dict*) – Optional. The settings for nodal point to be created. The new nodal point is applied to the
existing or newly created nodal analysis task.


Returns:
Nodal analysis simulation settings in the first dictionary, and inlet conditions in the second dictionary

Return type:
dict

Examples

```
    >>> na_sim, inlet_cond = model.tasks.nodalanalysis.get_conditions("Well 1")
    >>> na_sim, inlet_cond = model.tasks.nodalanalysis.get_conditions(
        "Well 1",
        nodal_point_settings = {
        Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.SURFACE,
        Parameters.NodalPoint.EQUIPMENT: 'Choke',
        Parameters.NodalPoint.NAME: 'NA1'
        })
    >>> na_sim, inlet_cond = model.tasks.nodalanalysis.get_conditions(
        "Well 1", "Study 2",
        nodal_point_settings = {
        Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.DOWNHOLE,
        Parameters.NodalPoint.DEPTH: 1000,
        Parameters.NodalPoint.WELLSTRINGTYPE: Constants.TubingSectionType.TUBING,
        Parameters.NodalPoint.NAME: 'NA2'
        })
```

set_conditions(*producer*, *parameters={}*, *inlet_conditions: dict | None = None*, *nodal_point_settings: dict | None = None*, *study: str | None = None*)
Sets the study conditions.

Sets the nodal analysis profile simulation task conditions for the specified study.
If the nodal analysis simulation task does not exist in the study, a new one will be created.If the producer is a
well and nodal point settings are not provided, a default nodal point at bottom hole will be created.
If nodal point settings are provided, a new nodal point will be created and be applied to the existing or
newly created nodal analysis task.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the nodal analysis simulation task.
- **parameters** (*dict*) – Required. The conditions for nodal analysis task to be set on the study.
- **inlet_conditions** (*dict*) – Optional. The inlet conditions for nodal analysis task to be set on the study.
- **nodal_point_settings** (*dict*) – Optional. The settings for nodal point to be created. The new nodal point is applied to the
existing or newly created nodal analysis task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The exisitng or created nodal analysis operation

Return type:
Nodal analysis operation

Examples

```
    >>> model.tasks.nodalanalysis.set_conditions("Well 1",
            parameters={
            Parameters.NodalAnalysisSimulation.LIMITINFLOW: True,
            Parameters.NodalAnalysisSimulation.LIMITOUTFLOW: False,
            Parameters.NodalAnalysisSimulation.OUTFLOWPOINTS: 40,
            Parameters.NodalAnalysisSimulation.INFLOWPOINTS: 50,
            Parameters.NodalAnalysisSimulation.MAXFLOWRATETYPE:
                                    Constants.FlowRateType.GASFLOWRATE,
            Parameters.NodalAnalysisSimulation.OUTLETPRESSURE: 300,
            Parameters.NodalAnalysisSimulation.MAXGASRATE: 300,
            Parameters.NodalAnalysisSimulation.MAXOUTFLOWPRESSURE: 400,
            Parameters.NodalAnalysisSimulation.BRANCHTERMINATOR: "Choke"
            },
            inlet_conditions={
                "Well 1:Comp1":{Parameters.Boundary.PRESSURE:4000,
                                Parameters.Boundary.TEMPERATURE:200}
            },
            nodal_point_settings={
            Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.DOWNHOLE,
            Parameters.NodalPoint.DEPTH: 1000,
            Parameters.NodalPoint.WELLSTRINGTYPE: Constants.TubingSectionType.TUBING,
            Parameters.NodalPoint.NAME: 'NA2'
            }
        )
    >>> model.tasks.nodalanalysis.set_conditions(
            producer="Well 1", study="Study 2",
            parameters={
                Parameters.NodalAnalysisSimulation.OUTLETPRESSURE: 3000,
                Parameters.NodalAnalysisSimulation.BRANCHTERMINATOR: "Choke"
                Parameters.NodalAnalysisSimulation.NODALMEASUREMENTPOINT: "NA2"
            })
    >>> model.tasks.nodalanalysis.set_conditions(
            producer="Well 1", study="Study 2",
            nodal_point_settings = {
                Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.SURFACE,
                Parameters.NodalPoint.EQUIPMENT: 'Choke',
                Parameters.NodalPoint.NAME: 'NA4'
            })
```

reset_conditions(*producer*, *study: str | None = None*)
Resets the study conditions to be synchronized with the model.

Resets the study conditions to be synchronized with the model for the specified study.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the nodal analysis simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
Whether the reset succeeded (True) or not (False).

Return type:
bool

Examples

```
    >>> model.tasks.nodalanalysis.reset_conditions("Well 1")
    >>> model.tasks.nodalanalysis.reset_conditions("Well 1",study = "Study 1")
```

run(*producer*, *parameters={}*, *inlet_conditions: dict | None = None*, *nodal_point_settings: dict | None = None*, *profile_variables: list | None = None*, *system_variables: list | None = None*, *study: str | None = None*)
Runs a nodal analysis simulation.

Runs a nodal analysis simulation. Optionally the parameters, nodal point settings and variables
may be set at the same time avoiding the need to use set_conditions().
If the nodal analysis task does not exist in the study, a new one will be created.
The method waits until the simulation has finished before returning, and then returns
the results.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the nodal analysis simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
- **nodal_point_settings** (*dict*) – Optional. The settings for nodal point to be created. The new nodal point is
applied to the existing or newly created nodal analysis task.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation results.

Return type:
dict

Examples

```
    >>> sim_results = model.tasks.nodalanalysis.run( "Well 1",
            parameters={
                Parameters.NodalAnalysisSimulation.OUTLETPRESSURE: 3000,
                Parameters.NodalAnalysisSimulation.BRANCHTERMINATOR: "Choke"
            },
            nodal_point_settings = {
                Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.SURFACE,
                Parameters.NodalPoint.EQUIPMENT: 'Choke',
                Parameters.NodalPoint.NAME: 'NA4'
            },
            profile_variables=OutputVariables.Profile.GAS_FIELD,
            system_variables=OutputVariables.System.GAS_FIELD)
```

start(*producer*, *parameters={}*, *inlet_conditions: dict | None = None*, *nodal_point_settings: dict | None = None*, *profile_variables: list | None = None*, *system_variables: list | None = None*, *study: str | None = None*)
Starts running a nodal analysis simulation, returning the simulation id
immediately which can be used later to check the status and get the results
If the nodal analysis simulation task does not exist in the study, a new one
will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the nodal analysis simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values to set.
- **nodal_point_settings** (*dict*) – Optional. The settings for nodal point to be created. The new nodal point is
applied to the existing or newly created nodal analysis task.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation id, which can be used to access simulation status and get the results.

Return type:
str

Examples

```
    >>> sim_id = model.tasks.nodalanalysis.start("Well 1",
            parameters={
                Parameters.NodalAnalysisSimulation.OUTLETPRESSURE: 3000,
                Parameters.NodalAnalysisSimulation.BRANCHTERMINATOR: "Choke"
            },
            nodal_point_settings = {
                Parameters.NodalPoint.NODALTYPE: Constants.NodalPointType.SURFACE,
                Parameters.NodalPoint.EQUIPMENT: 'Choke',
                Parameters.NodalPoint.NAME: 'NA4'
            },
            profile_variables=OutputVariables.Profile.GAS_FIELD,
            system_variables=OutputVariables.System.GAS_FIELD)
```

generate_engine_files(*producer*, *folder_path: str | None = None*, *study: str | None = None*) → List[str]
Create engine files for the specified study.

Generate the engine file(s) for the requested study. The files are written
to the specified folder, or to the current model folder if one is not given.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Nodal analysis simulation task.
- **folder_path** (*str*) – Optional. The folder location where the generated files are written to.
If not specified, the files will be written to current Pipesim model folder.
- **study** (*str*) – Optional. The study name.


Returns:
The list of engine files generated.

Return type:
List[str]

Examples

```
    >>> engine_files = model.tasks.nodalanalysis.generate_engine_files(
                                producer="Well 1")
    >>> engine_files = model.tasks.nodalanalysis.generate_engine_files(
                                producer="Well 1",
                                folder_path="D:/Temp")
    >>> engine_files = model.tasks.nodalanalysis.generate_engine_files(
                                producer="Well 1",
                                folder_path="D:/Temp",
                                study="Study 1")
```

class sixgill.pipesim.SystemPerformance(*model*, *sim_type*)
Bases: AbstractAdvancedWellSimulation

get_conditions(*producer*, *study: str | None = None*) → Dict
Returns the study conditions.

Returns the system performance conditions for the specified study.
If the system performance task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well for system performance task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The study conditions.

Return type:
dict

Examples

```
    >>> studynetsim1 = model.tasks.systemperformance.get_conditions("Well 1")
    >>> studynetsim1 = model.tasks.systemperformance.get_conditions("Well 1", study="Study 1")
```

set_conditions(*producer*, *boundaries: dict | None = {}*, *study: str | None = None*)
Sets the study conditions.

Sets the study conditions for the specified study.
If the system performance simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well for system performance task.
- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created system performance operation.

Return type:
system performance operation

Examples

```
    >>> model.tasks.systemperformance.set_conditions("Well",
        boundaries={"Annulus":{
            Parameters.Boundary.PRESSURE:NAN,
            Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.GASFLOWRATE,
            Parameters.Boundary.GASFLOWRATE:5}})
```

```
    >>> model.tasks.systemperformance.set_conditions("Well",
        boundaries={"Well:Cpl A":{
            Parameters.Boundary.PRESSURE:3800,
            Parameters.Boundary.TEMPERATURE:150}},
            study="Study 1")
```

reset_conditions(*producer*, *study: str | None = None*)
Resets the study conditions to be synchronized with the model.

Resets the study conditions to be synchronized with the model for the specified study.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well for system performance task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
Whether the reset succeeded (True) or not (False).

Return type:
bool

Examples

```
    >>> model.tasks.systemperformance.reset_conditions("Well 1")
    >>> model.tasks.systemperformance.reset_conditions("Well 1",study = "Study 1")
```

generate_engine_files(*producer*, *folder_path: str | None = None*, *study: str | None = None*) → List[str]
Create engine files for the specified study.

Generate the engine file(s) for the requested study. The files are written
to the specified folder, or to the current model folder if one is not given.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well for system performance task.
- **folder_path** (*str*) – Optional. The folder location where the generated files are written to.
If not specified, the files will be written to current Pipesim model file folder.
- **study** (*str*) – Optional. The study name.


Returns:
The list of engine files generated.

Return type:
List[str]

Examples

```
    >>> engine_files = model.tasks.systemperformance.generate_engine_files("Well 1")
    >>> engine_files = model.tasks.systemperformance.generate_engine_files("Well 1",
                               study='Study 1')
    >>> engine_files = model.tasks.systemperformance.generate_engine_files("Well 1",
                               folder_path="D:/Temp", study='Study 1')
```

run(*producer*, *profile_variables: list | None = None*, *system_variables: list | None = None*, *boundaries: dict | None = {}*, *study: str | None = None*, *options: dict | None = {}*)
Runs a system performance operation.

Runs a system performance operation. Optionally the
boundaries, constraints, and variables may be set at the same time
avoiding the need to use set_conditions().
If the system performance task does not exist in the study, a new one will be created.
The method waits until the operation has finished before returning, and then returns
the results.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well for system performance task.
- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
simulation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
simulation system results. If omitted then all the possible
system variables are returned.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.
- **options** (*dict*) – Optional. simulations options like generating ouput files and using Restart


Returns:
The operation results.

Return type:
dict

Examples

```
    >>> sysPerf_results = model.tasks.systemperformance.run(producer="Well",
        profile_variables=OutputVariables.Profile.GAS_FIELD,
        system_variables=OutputVariables.System.GAS_FIELD,
        boundaries={"Well:Cpl A":{
                            Parameters.Boundary.PRESSURE:3900
                    },
                    "Tubing":{
                            Parameters.Boundary.PRESSURE:NAN,
                            Parameters.Boundary.LIQUIDFLOWRATE:200,
                            Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.LIQUIDFLOWRATE
                    }},
        options={SimulationOptions.GENERATEOUTPUTFILE:True,
                SimulationOptions.RESTART:False,
                SimulationOptions.PARALLELISM:4}) #generate output file, do not use restart files, run with 4 cores
```

start(*producer*, *profile_variables: list | None = None*, *system_variables: list | None = None*, *boundaries: dict | None = {}*, *options: dict | None = {}*, *study: str | None = None*) → str
Starts running a system performance of the specified type, returning the operation id
immediately which can be used later to check the status and get the results.
If the system performance task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the Well for system performance task.
- **profile_variables** (*list*) – Optional. The list of profile variables to be returned with the
operation profile results. If omitted then all the possible
profile variables are returned.
- **system_variables** (*list*) – Optional. The list of system variables to be returned with the
operation system results. If omitted then all the possible
system variables are returned.
- **boundaries** (*dict*) – Optional. The boundary conditions to be set on the study.
- **options** (*dict*) – Optional. operation options like generating ouput files and using Restart
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The operation id, which can be used to access operation status and get the results.

Return type:
str

Examples

```
    >>> sys_id = model.tasks.systemperformance.start("Well",
        profile_variables=OutputVariables.Profile.GAS_FIELD,
        system_variables=OutputVariables.System.GAS_FIELD,
        boundaries={"Well:Cpl A":{
                            Parameters.Boundary.PRESSURE:3900
                    },
                    "Tubing":{
                            Parameters.Boundary.PRESSURE:NAN,
                            Parameters.Boundary.LIQUIDFLOWRATE:200,
                            Parameters.Boundary.FLOWRATETYPE:Constants.FlowRateType.LIQUIDFLOWRATE
                    }},
        options={SimulationOptions.GENERATEOUTPUTFILE:True,
                SimulationOptions.RESTART:False,
                SimulationOptions.PARALLELISM:4}) #generate output file, do not use restart files, run with 4 cores
```

## sixgill.simulation_result module

class sixgill.simulation_result.SimulationResult(*units_mgr*, *web_api_result*, *simulation*, *state*)
Bases: `object`

property system
System result of simulation.

Returns:
The system result is a nested dictionary. The key of outer dictionary is
the name of system variable, and it’s value is a nested ordered
dictionary, the first item in the dictionary is the unit of the result
with ‘Unit’ as the key, and other items are system results with key
of case name (for single branch operation) or branch name (for network
simulation).

Return type:
defaultdict(OrderedDict)

Examples

```
    >>> \# PT simulation system result of bottom hole pressure with 3 cases
    >>> print(result.system)
    >>> {'BottomHolePressure':
                OrderedDict([
                    ('Unit', 'psia'),
                    ('PWSTATIC=2000 psia Flowrate=4035.663 sbbl/day',
                        1899.3466005297103),
                    ('PWSTATIC=3000 psia Flowrate=6423.735 sbbl/day',
                        2894.0057045084613),
                    ('PWSTATIC=4000 psia Flowrate=8874.929 sbbl/day',
                        3890.6145718622515)
                        ])
         }
    >>> \# get bottome hole pressure results for all cases
    >>> result.system[SystemVariables.BOTTOM_HOLE_PRESSURE]
    >>> \# get the unit for bottom hole pressure
    >>> result.system[SystemVariables.BOTTOM_HOLE_PRESSURE]['Unit']
    >>> \# get bottom hole pressure for the first case
    >>> result.system[SystemVariables.BOTTOM_HOLE_PRESSURE][result.cases[0]]
    >>> \# network simulation system result with bottom hole pressure
    >>> print(result.system)
    >>> {'BottomHolePressure':
            OrderedDict([
                    ('Unit', 'psia'),
                    ('Manifold_Separator', 675.439895675529),
                    ('Oil-Facility', 120.66209137371129),
                    ('Well', 2414.049343852503),
                    ('Gas-Sales', 670.1023674374065),
                    ('Source', 677.051334969821),
                    ('Separator_LL-1', 668.3923541261727),
                    ('Separator_GL-1', 668.3923541261727)
                ])
          }
    >>> \# get bottome hole pressure results for all branches
    >>> result.system[SystemVariables.BOTTOM_HOLE_PRESSURE]
    >>> \# get bottom hole pressure for branch 'Well'
    >>> result.system[SystemVariables.BOTTOM_HOLE_PRESSURE]['Well']
    >>> \# get the ESP performance curve results for the first case for an esp pump called 'B-ESP':
    >>> result.esp_curves[0]['B-ESP'][EspCurvesVariables.PERFORMANCE][0][EspCurvesVariables.VALUES]
```

property node
Node (equipment) result of simulation.

Returns:

- *defaultdict(OrderedDict) for network simulation* – The node result for network simulation is a nested dictionary.
The key of outer dictionary is the name of system variable and
it’s value is a nested ordered dictionary, the first item in
the dictionary is the unit of the result with ‘Unit’ as the key,
and other items are system results with key of equipment
name.
- *defaultdict(collections.OrderedDict)) for single branch simulation* – The node result for single branch simulation is a dictionary of a
collection of nested dictionaries. The key of outer dictionary is
case name and it’s value is a collection of nested ordered
dictionaries. Each single nested dictonary is defaultdict(OrderedDict),
whihc has the same format as network simulation node result.


Examples

```
    >>> \# network simulation node result of SystemVariables.PRESSURE
    >>> print(result.node)
    >>> {'Pressure': OrderedDict([('Unit', 'psia'),
                                ('Separator', 668.3923541261727),
                                ('Oil-Facility', 299.99999981427857),
                                ('VertComp', 2414.049343852503),
                                ('Gas-Sales', 599.9999997922582),
                                ('Manifold', 675.439895675529),
                                ('Choke', 688.8950792066037),
                                ('Source', 677.051334969821),
                                ('Compressor', 1226.7486656475476),
                                ('Well', 971.9041960688403),
                                ('Pmp', 382.02050175837144)])
         }
    >>> \# get pressure results for all branches
    >>> result.node[SystemVariables.PRESSURE]
    >>> \# get pressure for branch 'Well'
    >>> result.node[SystemVariables.PRESSURE]['Well']
    >>> \# get the unit for pressure
    >>> result.node[SystemVariables.PRESSURE]['Unit']
    >>> \# PT simulation result of pressure with 3 cases
    >>> print(result.node)
    >>> {'PWSTATIC=2000 psia Flowrate=4035.663 sbbl/day':
                        {'Pressure': OrderedDict([
                            ('Unit', 'psia'),
                            ('Choke', 231.64419332730813),
                            ('VertComp', 1899.3466005297103)
                        ])}),
         'PWSTATIC=3000 psia Flowrate=6423.735 sbbl/day':
                        {'Pressure': OrderedDict([
                            ('Unit', 'psia'),
                            ('VertComp', 2894.0057045084613),
                            ('Choke', 272.70024724587813)
                        ])}),
         'PWSTATIC=4000 psia Flowrate=8874.929 sbbl/day':
                        {'Pressure': OrderedDict([
                            ('Unit', 'psia'),
                            ('VertComp', 3890.6145718622515),
                            ('Choke', 325.1985651291863)])})
        }
    >>> \# get pressure results for all the equipment in the first case
    >>> result.node[result.cases[0]][SystemVariables.PRESSURE]
    >>> \# get Choke pressure in the first case
    >>> result.node[result.cases[0]][SystemVariables.PRESSURE]['Choke']
```

property profile
Profile result of simulation.

Returns:
The node result for single branch simulation is a dictionary of a
collection of nested dictionaries. The key of outer dictionary is
case name for single branch simulation and branch name for network
simulation. The value is a collection of nested ordered dictionaries.
Each single nested dictonary is defaultdict(OrderedDict) with key
of profile variable name and value of profile results.

Return type:
defaultdict(collections.OrderedDict))

Examples

```
    >>> \# network simulation profile result with ProfileVariables.ELEVATION
    >>> print(result.profile)
    >>> {'Gas-Sales':
            {'BranchEquipment': ['GL-1', None, None, 'Compressor', 'GL-2'],
            'Elevation': [-10.0, -5.0, 0.0, 0.0, 0.0]
            },
        'Manifold_Separator':
            {'BranchEquipment': ['GL-1', None, None, 'Compressor', 'GL-2'],
            'Elevation': [-10.0, -5.0, 0.0, 0.0, 0.0]
            }
        }
    >>> \# get elevation results for 'Gas-Sales' branch
    >>> result.profile['Gas-Sales'][ProfileVariables.ELEVATION]
    >>> \# PT simulation result of pressure with 3 cases
    >>> print(result.node)
    >>> {'PWSTATIC=2000 psia Flowrate=4035.663 sbbl/day':
                {'BranchEquipment': ['GL-1', None, None, 'Compressor', 'GL-2'],
                'Pressure': [2000, 1898.0, 1888.0, 1788.0, 1568.0]
                },
         'PWSTATIC=3000 psia Flowrate=6423.735 sbbl/day':
                {'BranchEquipment': ['GL-1', None, None, 'Compressor', 'GL-2'],
                'Pressure': [3000, 2798.0, 2678.0, 2354.0, 2312.0]
                },
         'PWSTATIC=4000 psia Flowrate=8874.929 sbbl/day':
                {'BranchEquipment': ['GL-1', None, None, 'Compressor', 'GL-2'],
                'Pressure': [4000, 4798.0, 4578.0, 4335.0, 4321.0]
                },
        }
    >>> \# get pressure results for the first case
    >>> result.profile[result.cases[0]][SystemVariables.PRESSURE]
```

property spot_reports

property esp_curves
Esp curve results of simulation.

Returns:
The result for single branch simulation is a dictionary of a
collection of nested dictionaries. The key of outer dictionary is
case name. The value is a collection of nested dictionaries.
Each single nested dictonary is defaultdict with key
of ESP pump name and value is a dictionary with two keys:
‘Speed’ and ‘Performance’
‘Speed’ is a dictionary with two keys: ‘Frequncies’ and ‘Additional’.
‘Frequencies’ is a dictionay, the keys are frequncy values(‘Freq=45’, ‘Freq=40’,…)
The values each contain two dictionaries. One for the flowrate and one for Head.
Each of these curves is a dictionary with two keys: ‘Unit’ and Values’ Units is a string for the unit symbol.
‘Values’ is an array of doubles.
‘Performance’ is a dictionary with four keys. Each key is a name describing the curve: Flowrate, Head, Power and Efficiency.
Each of these curves is a dictionary with two keys: ‘Unit’ and Values’ Units is a string for the unit symbol.
‘Values’ is an array of doubles.

Return type:
dictionary

Examples

```
    >>> esp_results = result.esp_curves[result.cases[0]]
    >>> \# get frequency curves
    >>> for freq_name, speed_curve_xy in esp_results['B-ESP'][EspCurvesVariables.SPEED][EspCurvesVariables.FREQUENCIES].items():
            for name,curve in speed_curve_xy.items():
                print(curve[EspCurvesVariables.UNIT])
                print(curve[EspCurvesVariables.VALUES])
                print(freq_name)
```

property profile_units
Units of simulation profile result.

Returns:
The key is the profile variable name and value is the corresponding unit.

Return type:
Dict

Examples

```
    >>> print(result.profile_units)
    >>> {'BranchEquipment': '',
         'Elevation': 'ft',
         'Pressure': 'psia',
         'Temperature': 'degF',
         'TotalDistance': 'ft'}
```

property cases
Case names for single branch simulation.

Returns:
The case names of single branch simulation. The order is the same as
the sequence shown in Pipesim UI.

Return type:
List

Examples

```
    >>> print(result.cases)
    >>> ['PWSTATIC=2000 psia Flowrate=4035.663 sbbl/day',
         'PWSTATIC=3000 psia Flowrate=6423.735 sbbl/day',
         'PWSTATIC=4000 psia Flowrate=8874.929 sbbl/day']
```

property messages
Console messages from engine for the simulation.
The messages are the same as those shown under Engine console tab when
running simulation in Pipesim UI.

Returns:
A list of engine console messages

Return type:
List[str]

Examples

```
    >>> result.messages
```

property summary
Summary of simulation status.
The summary contains general information as well as warnings and errors, which are the same
messages shown in message center in Pipesim UI after running simulation.

Returns:
summary[‘Info’] is a list of information messages about simulation status.
summary[‘Error’] is a list of error messages about simulation status.
summary[‘Warning’] is a list of warning messages about simulation status.

Return type:
Dict

Examples

```
    >>> result.summary['Info']
    >>> result.summary['Error']
    >>> result.summary['Warning']
```

property state
Simulation state, which can be SimulationState.RUNNING, SimulationState.COMPLETED or
SimulationState.FAILED.

Returns:
The state of simulation

Return type:
str

Examples

```
    >>> result.state
```

class sixgill.simulation_result.NodalAnalysisResult(*units_mgr*, *web_api_result*, *simulation*, *state*)
Bases: SimulationResult

property inflow_curves
Inflow curves of nodal analysis simulation.

Returns:
A list of curve objects. Each curve object contains case name, curve data and units.
The curve data has the results for inflow gas flowrate, mass flowrate and liquid
flowrate and nodal point pressure as well their units. Fluid base from results
can be used to select which phase of inflow curve data is desired.

For simulation with multiple inflow curves, the order of the list is the same as the
sequence shown in Pipesim UI.

Return type:
List(Curve)

Examples

```
    >>> \# the case name of first inflow curve data
    >>> result.inflow_curves[0].case
    >>> \# inflow curve data in the first case
    >>> curve = result.inflow_curves[0].curve_data
    >>> \# inflow curve data of liquid flowrate in the first case
    >>> curve[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
    >>> \# inflow curve data of mass flowrate in the first case
    >>> curve[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
    >>> \# inflow curve data of gas flowrate in the first case
    >>> curve[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
    >>> \# inflow curve data of pressure in the first case
    >>> curve[SystemVariables.NODAL_POINT_PRESSURE]
    >>> \# inflow curve units
    >>> units = result.inflow_curves[0].units
    >>> \# the unit of liquid flowrate
    >>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
    >>> \# the unit of mass flowrate
    >>> units[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
    >>> \# the unit of gas flowrate
    >>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
    >>> \# the unit of pressure
    >>> units[SystemVariables.NODAL_POINT_PRESSURE]
```

property outflow_curves
Outflow curves of nodal analysis simulation.

Returns:
A list of Curve objects. Each Curve object contains case name, curve data and units.
The curve data has the results for outflow gas flowrate, mass flowrate and liquid
flowrate and nodal point pressure as well their units. Fluid base from results
can be used to select which phase of outflow curve data is desired.

For simulation with multiple outflow curves, the order of the list is the same as the
sequence shown in Pipesim UI.

Return type:
List(Curve)

Examples

```
    >>> \# the case name of first outflow curve data
    >>> result.outflow_curves[0].case
    >>> \# outflow curve data in the first case
    >>> curve = result.outflow_curves[0].curve_data
    >>> \# outflow curve data of liquid flowrate in the first case
    >>> curve[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
    >>> \# outflow curve data of mass flowrate in the first case
    >>> curve[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
    >>> \# outflow curve data of gas flowrate in the first case
    >>> curve[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
    >>> \# outflow curve data of pressure in the first case
    >>> curve[SystemVariables.NODAL_POINT_PRESSURE]
    >>> \# outflow curve units
    >>> units = result.outflow_curves[0].units
    >>> \# the unit of liquid flowrate
    >>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
    >>> \# the unit of mass flowrate
    >>> units[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
    >>> \# the unit of gas flowrate
    >>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
    >>> \# the unit of pressure
    >>> units[SystemVariables.NODAL_POINT_PRESSURE]
```

property operating_envelope
Operating envelope of nodal analysis simulation.
The envelope is only generated for simulation with a single case.

Returns:
OperatingEnvelope object has total of six lines for max drawdown, reservoir
pressure, erosional velocity, aofp, inversion point and liquid loading, respectively.
Each line has coordinates and units for each phase, including gas flowrate and
corresponding pressure, liquid flowrate and corresponding pressure, mass
flowrate and corresponding pressure. Fluid base from results can be used to
select which phase of each envelope line is desired.

Return type:
OperatingEnvelope

Examples

```
    >>> \# max drawdown line for each phase and units.
    >>> max_drawdown = result.operating_envelope.max_drawdown
    >>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
    >>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
    >>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.LIQUIDFLOWRATE]
    >>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.LIQUIDFLOWRATEPRESSURE]
    >>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.MASSFLOWRATE]
    >>> max_drawdown[Parameters.NodalOperatingEnvelopePlot.MASSFLOWRATEPRESSURE]
    >>> units = result.operating_envelope.max_drawdown_units
    >>> units[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
    >>> units[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
    >>> units[Parameters.NodalOperatingEnvelopePlot.LIQUIDFLOWRATE]
    >>> units[Parameters.NodalOperatingEnvelopePlot.LIQUIDFLOWRATEPRESSURE]
    >>> units[Parameters.NodalOperatingEnvelopePlot.MASSFLOWRATE]
    >>> units[Parameters.NodalOperatingEnvelopePlot.MASSFLOWRATEPRESSURE]
    >>> \# gas phase reservoir pressure line
    >>> res_pres = result.operating_envelope.reservoir_pressure
    >>> res_pres[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
    >>> res_pres[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
    >>> \# gas phase erosional velocity line
    >>> ero_velocity = result.operating_envelope.erosional_velocity
    >>> ero_velocity[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
    >>> ero_velocity[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
    >>> \# gas phase aofp line
    >>> aofp = result.operating_envelope.aofp
    >>> aofp[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
    >>> aofp[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
    >>> \# gas phase inversion point line
    >>> inversion_point = result.operating_envelope.inversion_point
    >>> inversion_point[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
    >>> inversion_point[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
    >>> \# gas phase liuquid loading line
    >>> liquid_loading = result.operating_envelope.liquid_loading
    >>> liquid_loading[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATE]
    >>> liquid_loading[Parameters.NodalOperatingEnvelopePlot.GASFLOWRATEPRESSURE]
```

property operating_points
Operating points of nodal analysis simulation.

Returns:
A list of OperationPoint objects. Each OperationPoint object contains case name,
point data and units. The point data has the results for gas flowrate, mass flowrate,
liquid flowrate, nodal point pressure as well as their units. Fluid base from results
can be used to select which phase of operating point data is desired.

For simulation with multiple operating points, the order of the list is the same
as the sequence shown in Pipesim UI.

Return type:
List(OperationPoint)

Examples

```
    >>> \# operating point data for each phase and units in the first case
    >>> point = result.operating_points[0].point_data
    >>> point[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
    >>> point[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
    >>> point[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
    >>> point[SystemVariables.NODAL_POINT_PRESSURE]
    >>> units = result.operating_points[0].units
    >>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_LIQUID_STOCKTANK]
    >>> units[SystemVariables.NODAL_POINT_VOLUME_FLOWRATE_GAS_STOCKTANK]
    >>> units[SystemVariables.NODAL_POINT_MASS_FLOWRATE_FLUID]
    >>> units[SystemVariables.NODAL_POINT_PRESSURE]
```

property fluid_base
The fluid base of nodal simulation results.
The fliud base can be gas, mass or liquid, which can be used to select which phase of
flow curves, operating envelope and operating point data are desired.

### Returns:

str
The fluid base of nodal simulation results.

Examples

```
    >>> result.fluid_base
```

property inflow_cases
Case names for inflow curves.

Returns:
The case names of inflow curves. The order is the same as
the sequence shown in Pipesim UI.

Return type:
List

Examples

```
    >>> result.inflow_cases
```

property outflow_cases
Case names for outflow curves.

Returns:
The case names of outflow curves. The order is the same as
the sequence shown in Pipesim UI.

Return type:
List

Examples

```
    >>> result.outflow_cases
```

## sixgill.utilities module

The utilities submodule provides useful methods for working with Excel.

sixgill.utilities.active_sheet()
Return the currently active Excel worksheet

sixgill.utilities.range_to_dataframe(*excel_range=[]*, *entriesbyrow=False*)
Convert an excel range which is a list of lists to a panda DataFrame

sixgill.utilities.range_to_dictionary(*excel_range=[]*, *entriesbyrow=False*)
Convert an excel range which is a list of lists to a dictionary of dictionaries

sixgill.utilities.current_folder()
Return the folder (path) for the workbook

sixgill.utilities.worksheet_last_row(*worksheet=None*)
Return the last row with data given a specified column

sixgill.utilities.worksheet_last_column(*worksheet=None*)
Return the last row with data given a specified column

sixgill.utilities.get_refers_to_range(*rangeName*)
Return refers_to_range from specified range name

sixgill.utilities.clear_contents(*collection*)
Clean contents of specified collection(range or sheet)

sixgill.utilities.get_model_session(*filename*, *units='PIPESIM_FIELD'*)
Return the active model session that the workbook is connected to

sixgill.utilities.convert_tubing_bmd(*bmd: List*)
Convert tubing BMD to TMD and length

sixgill.utilities.is_lessthan_or_equal(*a*, *b*)

sixgill.utilities.is_greaterthan_or_equal(*a*, *b*)

sixgill.utilities.is_Nan_or_None(*a*, *b*)

## sixgill.vfp_tables_simulation module

The vfp_tables_simulation module maintains the high level VFP tables methods for the
Pipesim Python Toolkit.

class sixgill.vfp_tables_simulation.VfpTablesOperationSimulation(*model*, *sim_type*)
Bases: AbstractSingleBranchSimulation

Various methods supporting the VFP tables

get_conditions(*producer*, *study: str | None = None*) → Dict
Returns the VFP tables boundary conditions.

Returns the VFP tables boundary conditions for the specified study.
If the VFP tables simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the VFP tables simulation task
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The boundary condition for the study specified.

Return type:
dict

Examples

```
    >>> vfp_sim_conditions = model.tasks.vfptablessimulation.get_conditions("Well 1")
    >>> vfp_sim_conditions = model.tasks.vfptablessimulation.get_conditions("Well 1", "Study 1")
    >>> vfp_sim_conditions = model.tasks.vfptablessimulation.get_conditions("Well 1", study="Study 1")
```

set_conditions(*producer*, *parameters={}*, *study: str | None = None*)
Sets the VFP tables boundary conditions.

Sets the VFP tables boundary conditions for the study specified.
If the VFP tables simulation task does not exist in the study, a new one will be created.

Parameters:

- **parameters** (*dict*) – Required. The conditions for VFP tables task to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The existing or created VFP tables simulation operation.

Return type:
VFP tables simulation operation

Examples

```
    >>> model.tasks.vfptablessimulation.set_conditions("Well 1",
                parameters={
                    Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
                    Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
                    Parameters.VfpTablesSimulation.TABLENUMBER:2,
                    Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
                    Parameters.VfpTablesSimulation.BRANCHTERMINATOR:"J-1",
                            })
    >>> model.tasks.vfptablessimulation.set_conditions("Source 1",
                parameters={
                    Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
                    Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
                    Parameters.VfpTablesSimulation.TABLENUMBER:2,
                    Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
                    Parameters.VfpTablesSimulation.VFPTABLETYPE:Constants.VfpTablesType.PRODUCTION,
                            }, study = "Study 1")
```

run(*producer*, *parameters: dict | None = None*, *study: str | None = None*)
Runs a VFP tables task

Runs a VFP tables task for the specified study.
If the VFP tables simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the VFP tables simulation task.
- **parameters** (*dict*) – Optional. The parameters and respective values on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.
- **Returns** (*dict*) – Results of a VFP tables simulation run.


Examples

```
    >>> model.tasks.vfptablessimulation.run("Well 1",
                parameters={
                    Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
                    Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
                    Parameters.VfpTablesSimulation.TABLENUMBER:2,
                    Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
                    Parameters.VfpTablesSimulation.VFPTABLETYPE:Constants.VfpTablesType.PRODUCTION,
                            })
    >>> model.tasks.vfptablessimulation.run("Well 1",
                parameters={
                    Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
                    Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
                    Parameters.VfpTablesSimulation.TABLENUMBER:2,
                    Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
                    Parameters.VfpTablesSimulation.VFPTABLETYPE:Constants.VfpTablesType.PRODUCTION,
                            }, study = "Study 1")
```

start(*producer*, *parameters: dict | None = None*, *study: str | None = None*)
Starts running a simulation of the specified type, returning the simulation id
immediately which can be used later to check the status and get the results.
If the VFP tables simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the VFP tables simulation task.
- **parameters** (*dict*) – Optional. The boundary conditions to be set on the study.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The simulation id, which can be used to access simulation status and get the results.

Return type:
str

Examples

```
    >>> model.tasks.vfptablessimulation.start("Source 1",
                parameters={
                    Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
                    Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
                    Parameters.VfpTablesSimulation.TABLENUMBER:2,
                    Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
                    Parameters.VfpTablesSimulation.VFPTABLETYPE:Constants.VfpTablesType.PRODUCTION,
                            })
    >>> model.tasks.vfptablessimulation.start("Source 1",
                parameters={
                    Parameters.VfpTablesSimulation.RESERVOIRSIMULATOR:Constants.VFPTablesOperationTable.ECLIPSE,
                    Parameters.VfpTablesSimulation.BOTTOMHOLEDATUMDEPTH:150.2,
                    Parameters.VfpTablesSimulation.TABLENUMBER:2,
                    Parameters.VfpTablesSimulation.INCLUDETEMPERATURE:True,
                    Parameters.VfpTablesSimulation.VFPTABLETYPE:Constants.VfpTablesType.PRODUCTION,
                            }, study = "Study 1")
```

generate_engine_files(*producer*, *folder_path: str | None = None*, *study: str | None = None*) → List[str]
Create engine files for the specified study.

Generate the engine file(s) for the requested study. The files are written
to the specified folder, or to the current model folder if one is not given.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the VFP tables simulation task.
- **folder_path** (*str*) – Optional. The folder location where the generated files are written to.
If not specified, the files will be written to current Pipesim model folder.
- **study** (*str*) – Optional. The study name.


Returns:
The list of engine files generated.

Return type:
List[str]

Examples

```
    >>> engine_files = model.tasks.vfptablessimulation.generate_engine_files(
                                producer="Well 1")
    >>> engine_files = model.tasks.vfptablessimulation.generate_engine_files(
                                producer="Well 1", folder_path="D:/Temp")
    >>> engine_files = model.tasks.vfptablessimulation.generate_engine_files(
                                producer="Well 1", folder_path="D:/Temp",
                                study="Study 1")
```

get_artificial_lift_variables(*producer*, *study: str | None = None*) → List[str]
Get the available artificial lift sensitivity variable list.

If the VFP tables simulation task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the VFP tables simulation task.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
a list of sensitivity variables names that can be applied to this task.

Return type:
list

Examples

```
    >>> model.tasks.vfptablessimulation.get_artificial_lift_variables("Well 1")
    >>> model.tasks.vfptablessimulation.get_artificial_lift_variables("Well 1",
                      study="Study 2")
```

## sixgill.validation module

Definition of the ValidationIssue class

class sixgill.validation.ValidationIssue(*issue*, *model*)
Bases: `object`

A class to describe a validation issue

property path
The path to the issue

property message
The error message

property property_name
The name of the property causing the error

## sixgill.wellcalibration_simulation_result module

Well Calibration Simulation Result class.

class sixgill.wellcalibration_simulation_result.WellCalibrationResult(*units_mgr*, *web_api_result*, *simulation*, *state*)
Bases: SimulationResult

Result class for Well Calibration simulations.

Extends SimulationResult with calibration-specific properties:

- cases: List of test case names
- converged_cases: List of converged test case names (excludes Normalized and unconverged)
- matching_quality: Matching quality data for each case
- tuning_parameters: Tuning parameter data for each case


property cases
List of test case names from the calibration results.

Returns:
A list of case names from the calibration results.

Return type:
list

Examples

```
    >>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
    >>> print(results.cases)
    ['Test 21Feb25', 'Test 01Jan20-1', 'Test 01Jan20-2', 'Normalized']
```

property matching_quality
Matching quality results for each test case.

Returns a dictionary keyed by case name, where each value contains
the matching quality data (measured vs calibrated values) for that case.

Returns:
Dictionary keyed by case name with matching quality data.
Each case contains a list of parameter results with:

- ParameterName: Name of the test parameter
- Unit: Unit of measurement
- Measured: Measured value
- OriginalModel: Original model value before calibration
- OriginalModelDiff: Absolute difference between original model and measured (in session units)
- Calibrated: Calibrated value
- CalibratedDiff: Absolute difference between calibrated and measured (in session units)
- Normalized: Normalized value (weighted across tests)
- NormalizedDiff: Absolute difference between normalized and measured (in session units)


Return type:
dict

Examples

```
    >>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
    >>> \# Get matching quality for first case
    >>> case_mq = results.matching_quality[results.cases[0]]
    >>> for row in case_mq:
    ...     print(f"{row['ParameterName']}: Measured={row['Measured']}, Calibrated={row['Calibrated']}")
```

property tuning_parameters
Tuning parameter results for each test case.

Returns a dictionary keyed by case name, where each value contains
the tuning parameter data (initial vs optimized values) for that case.

Returns:
Dictionary keyed by case name with tuning parameter data.
Each case contains a list of parameter results with:

- ParameterName: Name of the calibration parameter
- Unit: Unit of measurement
- Initial: Initial value before calibration
- Optimized: Optimized value after calibration
- OptimizedDiff: Absolute difference between initial and optimized (in session units)
- Normalized: Normalized value (weighted across tests)
- NormalizedDiff: Absolute difference between initial and normalized (in session units)


Return type:
dict

Examples

```
    >>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
    >>> \# Get tuning parameters for first case
    >>> case_tp = results.tuning_parameters[results.cases[0]]
    >>> for row in case_tp:
    ...     print(f"{row['ParameterName']}: Initial={row['Initial']}, Optimized={row['Optimized']}")
```

property profile
Well calibration profile results organized by case, profile type, and parameter.

Returns:
Nested dict: case_name, profile_type, parameter, values.

Profile types:

- Original
- Calibrated
- Normalized


Parameters:

- Pressure
- Temperature
- Elevation
- MeasuredDepth


Return type:
dict

Examples

```
    >>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
    >>> results.profile["Test 21Feb25"][Constants.WellCalibration.Profile.CALIBRATED]["Pressure"]
    [4000, 4000, 3972.476, ...]
```

property converged_cases
List of converged test case names from the calibration results.

Filters out the ‘Normalized’ case and any unconverged cases
(names ending with ‘[UNCV.]’).

Returns:
A list of converged case names.

Return type:
list

Examples

```
    >>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
    >>> print(results.converged_cases)
    ['Test 21Feb25', 'Test 01Jan20-1']
```

## sixgill.Tasks.well_calibration_task module

The well_calibration_task module maintains the high level well calibration methods for the
Pipesim Python Toolkit.

class sixgill.Tasks.well_calibration_task.WellCalibrationTask(*model*, *sim_type*)
Bases: AbstractSingleBranchSimulation

Well Calibration simulation task.

get_conditions(*producer*, *study: str | None = None*)
Returns the well calibration conditions.

Returns the well calibration test data for the specified study.
If the well calibration task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the well calibration task
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
Dictionary containing ‘TestData’ for the well calibration.

Return type:
dict

Examples

```
    >>> wc_conditions = model.tasks.wellcalibration.get_conditions("Well 1")
    >>> wc_conditions = model.tasks.wellcalibration.get_conditions("Well 1", "Study 2")
```

set_conditions(*producer*, *conditions*, *study: str | None = None*)
Sets the well calibration conditions.

Updates the well calibration test data for the specified study.
If the well calibration task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the well calibration task
- **conditions** (*dict*) – Required. Dictionary with ‘TestData’ key containing a list of test data dictionaries.
Should match the structure returned by get_conditions.
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Return type:
None

Examples

```
    >>> conditions = model.tasks.wellcalibration.get_conditions("Well 1")
    >>> \# Modify conditions as needed
    >>> conditions['TestData'][0]['IsActive'] = False
    >>> model.tasks.wellcalibration.set_conditions("Well 1", conditions)
```

generate_engine_files(*producer*, *folder_path: str | None = None*, *study: str | None = None*) → List[str]
Create engine files for the well calibration task.

Generate the engine file(s) for the requested study. One PST file is generated
per active test data entry. The files are written to the specified folder,
or to the current model folder if one is not given.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the well calibration task.
- **folder_path** (*str*) – Optional. The folder location where the generated files are written to.
If not specified, the files will be written to current Pipesim model file folder.
- **study** (*str*) – Optional. The study name.


Returns:
The list of engine files generated.

Return type:
List[str]

Examples

```
    >>> engine_files = model.tasks.wellcalibration.generate_engine_files(
    ...                     producer="Well 1")
    >>> engine_files = model.tasks.wellcalibration.generate_engine_files(
    ...                     producer="Well 1", folder_path="D:/Temp")
    >>> engine_files = model.tasks.wellcalibration.generate_engine_files(
    ...                     producer="Well 1", folder_path="D:/Temp",
    ...                     study="Study 1")
```

run(*producer*, *profile_variables=None*, *system_variables=None*, *study: str | None = None*)
Runs the well calibration simulation.

Runs the well calibration simulation for the specified producer and study.
If the well calibration task does not exist in the study, a new one will be created.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the well calibration simulation task
- **profile_variables** (*list*) – Optional. List of profile variables to output
- **system_variables** (*list*) – Optional. List of system variables to output
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
A simulation result object containing the results, including:

- cases: List of test case names (e.g., [‘Test 21Feb25’, ‘Test 01Jan20’, ‘Normalized’])
- matching_quality: Dict keyed by case name with matching quality data
- tuning_parameters: Dict keyed by case name with tuning parameter data
- system: Standard system results
- profile: Standard profile results
- messages: Engine console messages


Return type:
WellCalibrationResult

Examples

```
    >>> results = model.tasks.wellcalibration.run(producer="Well 1", study="Study 1")
    >>> print(results.cases)
    ['Test 21Feb25', 'Test 01Jan20', 'Normalized']
    >>> \# Access matching quality for first case
    >>> for row in results.matching_quality[results.cases[0]]:
    ...     print(f"{row['ParameterName']}: Measured={row['Measured']}, Calibrated={row['Calibrated']}")
    >>> \# Access tuning parameters for first case
    >>> for row in results.tuning_parameters[results.cases[0]]:
    ...     print(f"{row['ParameterName']}: Initial={row['Initial']}, Optimized={row['Optimized']}")
```

start(*producer*, *profile_variables=None*, *system_variables=None*, *study: str | None = None*)
Starts the well calibration simulation asynchronously.

Parameters:

- **producer** (*str*) – Required. The name of the producer for the well calibration simulation task
- **profile_variables** (*list*) – Optional. List of profile variables to output
- **system_variables** (*list*) – Optional. List of system variables to output
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The operation id, which can be used to access operation status and get the results.

Return type:
str

Examples

```
    >>> op_id = model.tasks.wellcalibration.start(producer="Well 1")
```

get_test_parameters(*producer*, *study: str | None = None*)
Gets the applicable test parameters for the well calibration operation.

Returns a list of parameter names that can be used for well calibration.
The applicable parameters depend on the well configuration (e.g., equipment types,
fluid type, completion setup).

Parameters:

- **producer** (*str*) – Required. The name of the producer (well) for the well calibration task
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
A list of test parameter name strings.

Example: `["Weight",`` ``"Wellhead`` ``pressure",`` ``...]`

Return type:
list

Examples

```
    >>> params = model.tasks.wellcalibration.get_test_parameters(producer="Well 1")
    >>> print(params)
    ['Weight', 'Wellhead pressure', 'Wellhead temperature', ...]
```

get_calibration_parameters(*producer*, *study: str | None = None*)
Gets the applicable calibration parameters for the well calibration operation.

Returns a list of calibration parameters with their names and calibrate flags.
The applicable parameters depend on the well configuration. Each parameter has
a ‘calibrate’ flag indicating whether it’s enabled for calibration by default.

Parameters:

- **producer** (*str*) – Required. The name of the producer (well) for the well calibration task
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
A list of dictionaries containing calibration parameter info with ParameterName and Calibrate keys.

Example: `[{'ParameterName':`` ``'Vertical`` ``friction`` ``factor',`` ``'Calibrate':`` ``True},`` ``...]`

Return type:
list

Examples

```
    >>> params = model.tasks.wellcalibration.get_calibration_parameters(producer="Well 1")
    >>> print(params)
    [{'ParameterName': 'Vertical friction factor', 'Calibrate': True}, ...]
    >>> \# Access using constants
    >>> param_name = params[0][Constants.WellCalibration.PARAMETERNAME]
    >>> calibrate_flag = params[0][Constants.WellCalibration.CALIBRATE]
```

set_calibration_parameters(*producer*, *calibration_parameters*, *study: str | None = None*)
Sets the calibrate flag for calibration parameters in the well calibration operation.

Updates which calibration parameters should be included in the calibration process.
Only the parameters specified in the input will be modified; others remain unchanged.

Parameters:

- **producer** (*str*) – Required. The name of the producer (well) for the well calibration task
- **calibration_parameters** (*list* *or* *dict*) –
Required. Calibration parameters to update. Can be:
  - List of dicts: [{PARAMETERNAME: ‘param_name’, CALIBRATE: True/False}, …]
  - Dict: {‘param_name’: True/False, …}

- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Return type:
None

Examples

```
    >>> \# Using list of dicts (recommended - uses constants)
    >>> params = [
    ...     {Constants.WellCalibration.PARAMETERNAME: 'Vertical friction factor',
    ...      Constants.WellCalibration.CALIBRATE: True},
    ...     {Constants.WellCalibration.PARAMETERNAME: 'GOR',
    ...      Constants.WellCalibration.CALIBRATE: False}
    ... ]
    >>> model.tasks.wellcalibration.set_calibration_parameters("Well 1", params)
```

```
    >>> \# Using dict (parameter name to boolean mapping)
    >>> params = {
    ...     'Vertical friction factor': True,
    ...     'GOR': False
    ... }
    >>> model.tasks.wellcalibration.set_calibration_parameters("Well 1", params)
```

add_test_data(*producer*, *test_data*, *study: str | None = None*)
Adds a new test data entry to the well calibration operation.

Creates a new test data entry with the specified properties. The test data
will be added to the well calibration operation for the specified producer and study.
The test name is automatically generated from the date.

**IMPORTANT**: Maximum of 30 test data entries allowed per well calibration operation.
If the limit is reached, a ValueError will be raised. Delete existing test data
before adding new ones.

Parameters:

- **producer** (*str*) – Required. The name of the producer (well) for the well calibration task
- **test_data** (*dict*) –
Required. Dictionary containing the test data properties:
  - ’Date’: str - Test date in ‘dd-MMM-yyyy’ format (e.g., ‘15-Jan-2024’).
If not specified, current date/time will be used.
  - ’IsActive’: bool - Whether the test is active (default: True)
  - ’Comments’: str - Optional comments
  - ’TestValues’: list - Optional list of test data point dictionaries.
Each entry should have ‘ParameterName’ and ‘Value’ keys.
  - ’ParameterFactors’: list - Optional list of parameter factor dictionaries.
Each entry should have ‘ParameterName’, ‘MinValue’, ‘MaxValue’ keys.

- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
The newly created WellCalibrationTestData domain object. Use the returned object’s
‘id’ property to uniquely identify the test data.

Return type:
object

Raises:
**ValueError** – If the maximum limit of 30 test data entries is reached

Examples

```
    >>> \# Add test with specific date
    >>> test_data = {
    ...     'Date': '15-Jan-2024',
    ...     'IsActive': True,
    ...     'Comments': 'New test data',
    ...     'TestValues': [
    ...         {'ParameterName': 'Wellhead pressure', 'Value': 1500.0},
    ...         {'ParameterName': 'Wellhead temperature', 'Value': 80.0}
    ...     ]
    ... }
    >>> new_test = model.tasks.wellcalibration.add_test_data("Well 1", test_data)
    >>> print(f"Created test with ID: {new_test.id}")
```

```
    >>> \# Add test with current date/time (Date not specified)
    >>> test_data = {
    ...     'IsActive': True,
    ...     'Comments': 'Test added with current date/time'
    ... }
    >>> new_test = model.tasks.wellcalibration.add_test_data("Well 1", test_data)
    >>> print(f"Created test with ID: {new_test.id}")
```

delete_test_data(*producer*, *test_name*, *study: str | None = None*)
Deletes a test data entry from the well calibration operation.

Removes the specified test data from the well calibration operation.
The test data is identified by its name.

**IMPORTANT**: At least 1 test data entry must remain. Attempting to delete
the last test data will raise a ValueError.

Parameters:

- **producer** (*str*) – Required. The name of the producer (well) for the well calibration task
- **test_name** (*str*) – Required. The name of the test data to delete
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
True if the test data was successfully deleted, False otherwise

Return type:
bool

Raises:
**ValueError** – If the test data with the specified name is not found, or if attempting
to delete the last remaining test data (minimum 1 test data required)

Examples

```
    >>> \# Delete a test by name
    >>> success = model.tasks.wellcalibration.delete_test_data("Well 1", "Test 01-Jan-2024")
    >>> print(f"Deletion successful: {success}")
```

```
    >>> \# Delete within a specific study
    >>> success = model.tasks.wellcalibration.delete_test_data("Well 1", "Test 01-Jan-2024", study="Study 2")
```

reset_well_test_data(*producer*, *test_name*, *study: str | None = None*)
Resets boundary conditions for a specific test data entry.

Resets the TestDataPoints and ParameterFactors to their default values for
the specified test data. TestWeight and Inlet/Outlet Pressure/Temperature
are excluded from the reset.

Parameters:

- **producer** (*str*) – Required. The name of the producer (well) for the well calibration task
- **test_name** (*str*) – Required. The name of the test data to reset
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
True if the reset was successful

Return type:
bool

Raises:
**RuntimeError** – If the reset operation fails on the server

Examples

```
    >>> success = model.tasks.wellcalibration.reset_well_test_data("Well 1", "Test 15-Jan-2024")
    >>> print(f"Reset successful: {success}")
```

```
    >>> \# Reset within a specific study
    >>> success = model.tasks.wellcalibration.reset_well_test_data("Well 1", "Test 15-Jan-2024", study="Study 2")
```

get_terminators(*producer*, *study: str | None = None*)
Gets the list of valid branch end components for the well calibration operation.

Returns the names of all valid branch terminator equipment (wells, flowlines and risers)
that can be used as the downstream endpoint for the calibration branch.

Parameters:

- **producer** (*str*) – Required. The name of the producer (well) for the well calibration task
- **study** (*str*) – Optional. The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
A list of valid terminator equipment name strings

Return type:
list

Examples

```
    >>> terminators = model.tasks.wellcalibration.get_terminators("Well 1")
    >>> print(terminators)
    ['Well 1', 'Flowline 1']
```

publish_calibration(*producer: str*, *case_name: str*, *study: str | None = None*)
Publishes calibration results to the model.

Applies the calibrated parameters (friction factors, holdup factors, PI, pressure, etc.)
from the well calibration results back to the well equipment. Flow correlations are also
published to wells, flowlines and risers.

This method requires that a well calibration simulation has been run first and the
specified test case has converged results.

Parameters:

- **producer** (*str*) – Required. The name of the producer (well)
- **case_name** (*str*) – Required. The name of the test case to publish, or use Constants.WellCalibration.NORMALIZED
to publish the normalized (weighted average) results across all test cases
- **study** (*str,* *optional*) – The name of the study. If no name is specified and there is one default study,
the default study will be used. If there are multiple studies in the model, study name is required.


Returns:
True if publish was successful

Return type:
bool

Raises:

- **RuntimeError** – If the simulation has not been run or results are not available
- **ValueError** – If the specified test case is not found or has not converged


Examples

```
    >>> \# Publish results for a specific test case
    >>> model.tasks.wellcalibration.publish_calibration(producer="Well 1", case_name="Test 08Jul25", study="Study 1")
```

```
    >>> \# Publish normalized results (weighted average across all tests)
    >>> model.tasks.wellcalibration.publish_calibration(producer="Well 1", case_name=Constants.WellCalibration.NORMALIZED, study="Study 1")
```