Full API Reference#

This page is a detailed reference guide to ALFAsim-SDK API. It includes a catalog of all supported CaseDescription and ALFAcase capabilities.

Case#

class CaseDescription#

Definitions

class CaseDescription
    name: Optional[str] = None
    alfasim_version_info: Optional[AlfasimVersionInfo] = None
    comment: Optional[str] = None
    physics: PhysicsDescription = PhysicsDescription()
    time_options: TimeOptionsDescription = TimeOptionsDescription()
    numerical_options: NumericalOptionsDescription = NumericalOptionsDescription()
    plugins: List[PluginDescription] = []
    ipr_models: IPRModelsDescription = IPRModelsDescription()
    pvt_models: PvtModelsDescription = PvtModelsDescription()
    tracers: TracersDescription = TracersDescription()
    outputs: CaseOutputDescription = CaseOutputDescription()
    pipes: List[PipeDescription] = []
    nodes: List[NodeDescription] = []
    wells: List[WellDescription] = []
    materials: List[MaterialDescription] = []
    walls: List[WallDescription] = []
    multiple_runs: MultipleRunsDescription = MultipleRunsDescription()
name: string  # optional
alfasim_version_info: alfasim_version_info_schema # optional
comment: string  # optional
physics: physics_description_schema # optional
time_options: time_options_description_schema # optional
numerical_options: numerical_options_description_schema # optional
plugins:  # optional
    - plugin_description_schema
ipr_models: ipr_models_description_schema # optional
pvt_models: pvt_models_description_schema # optional
tracers: tracers_description_schema # optional
outputs: case_output_description_schema # optional
pipes:  # optional
    - pipe_description_schema
nodes:  # optional
    - node_description_schema
wells:  # optional
    - well_description_schema
materials:  # optional
    - material_description_schema
walls:  # optional
    - wall_description_schema
multiple_runs: multiple_runs_description_schema # optional
class AlfasimVersionInfo#

Information about the ALFAsim release used to generate the alfacase file.

Used for informational purposes only.

Definitions

class AlfasimVersionInfo
    platform: str
    version: str
    revision: str
    date: str
platform: string
version: string
revision: string
date: string
class ScalarExpression#

Represents a scalar value dynamically evaluated from a mathematical expression.

class FloatExpression#

Represents a float value dynamically evaluated from a mathematical expression.

class ArrayExpression#

An array where its values can be either an explicit float value or a string representing an expression dynamically evaluated.

Options#

class PhysicsDescription#

Definitions

class PhysicsDescription
    hydrodynamic_model: HydrodynamicModelType = HydrodynamicModelType.FourFields
    simulation_regime: SimulationRegimeType = SimulationRegimeType.Transient
    energy_model: EnergyModel = EnergyModel.NoModel
    solids_model: SolidsModelType = SolidsModelType.NoModel
    solids_model_plugin_id: str = ''
    initial_condition_strategy: InitialConditionStrategyType = InitialConditionStrategyType.Constant
    restart_filepath: Optional[Path] = None
    keep_former_results: bool = False
    emulsion_model_enabled: bool = True
    emulsion_relative_viscosity_model: EmulsionRelativeViscosityModelType = EmulsionRelativeViscosityModelType.Brinkman1952
    emulsion_pal_rhodes_phi_rel_100: Scalar| ScalarExpression = Scalar(0.765, '-', 'dimensionless')
    emulsion_woelflin_a: Scalar| ScalarExpression = Scalar(4.2, '-', 'dimensionless')
    emulsion_woelflin_b: Scalar| ScalarExpression = Scalar(2.5, '-', 'dimensionless')
    emulsion_table_based_rel_visc_curve: Curve = Curve(-, m3/m3)[(1.0, 0.0)]
    emulsion_relative_viscosity_tuning_factor: Curve = Curve(-, m3/m3)[(1.0, 0.0)]
    emulsion_droplet_size_model: EmulsionDropletSizeModelType = EmulsionDropletSizeModelType.Brauner2001
    emulsion_inversion_point_model: EmulsionInversionPointModelType = EmulsionInversionPointModelType.BraunerUllmann2002
    emulsion_inversion_water_cut: Scalar| ScalarExpression = Scalar(0.4, 'm3/m3', 'volume per volume')
    friction_factor_correlation_model: FrictionFactorCorrelationModelType = FrictionFactorCorrelationModelType.ModelDefault
    friction_factor_correlation_plugin_id: str = ''
    flash_model: FlashModel = FlashModel.HydrocarbonAndWater
    correlations_package: CorrelationPackageType = CorrelationPackageType.Classical
    fluid_material_convection_correlation: FluidMaterialConvectionCorrelation = FluidMaterialConvectionCorrelation.HasanKabir1994
    steady_state_guess_initialization: SteadyStateGuessInitializationType = SteadyStateGuessInitializationType.QuasiHydrostatic
hydrodynamic_model: HydrodynamicModelType # optional
simulation_regime: SimulationRegimeType # optional
energy_model: EnergyModel # optional
solids_model: SolidsModelType # optional
solids_model_plugin_id: string  # optional
initial_condition_strategy: InitialConditionStrategyType # optional
restart_filepath: string  # optional
keep_former_results: boolean  # optional
emulsion_model_enabled: boolean  # optional
emulsion_relative_viscosity_model: EmulsionRelativeViscosityModelType # optional
emulsion_pal_rhodes_phi_rel_100:  # optional
    number | expr
    unit: str
emulsion_woelflin_a:  # optional
    number | expr
    unit: str
emulsion_woelflin_b:  # optional
    number | expr
    unit: str
emulsion_table_based_rel_visc_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
emulsion_relative_viscosity_tuning_factor:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
emulsion_droplet_size_model: EmulsionDropletSizeModelType # optional
emulsion_inversion_point_model: EmulsionInversionPointModelType # optional
emulsion_inversion_water_cut:  # optional
    number | expr
    unit: str
friction_factor_correlation_model: FrictionFactorCorrelationModelType # optional
friction_factor_correlation_plugin_id: string  # optional
flash_model: FlashModel # optional
correlations_package: CorrelationPackageType # optional
fluid_material_convection_correlation: FluidMaterialConvectionCorrelation # optional
steady_state_guess_initialization: SteadyStateGuessInitializationType # optional
class TimeOptionsDescription#

Definitions

class TimeOptionsDescription
    stop_on_steady_state: bool = False
    automatic_restart_autosave_frequency: bool = True
    initial_time: Scalar| ScalarExpression = Scalar(0.0, 's', 'time')
    final_time: Scalar| ScalarExpression = Scalar(10.0, 's', 'time')
    initial_timestep: Scalar| ScalarExpression = Scalar(0.0001, 's', 'time')
    minimum_timestep: Scalar| ScalarExpression = Scalar(1e-12, 's', 'time')
    maximum_timestep: Scalar| ScalarExpression = Scalar(0.1, 's', 'time')
    restart_autosave_frequency: Scalar| ScalarExpression = Scalar(1.0, 'h', 'time')
    minimum_time_for_steady_state_stop: Scalar| ScalarExpression = Scalar(0.0, 's', 'time')
stop_on_steady_state: boolean  # optional
automatic_restart_autosave_frequency: boolean  # optional
initial_time:  # optional
    number | expr
    unit: str
final_time:  # optional
    number | expr
    unit: str
initial_timestep:  # optional
    number | expr
    unit: str
minimum_timestep:  # optional
    number | expr
    unit: str
maximum_timestep:  # optional
    number | expr
    unit: str
restart_autosave_frequency:  # optional
    number | expr
    unit: str
minimum_time_for_steady_state_stop:  # optional
    number | expr
    unit: str
class NumericalOptionsDescription#
Variables:

damp_slug_flow – Control whether the flow pattern transition involving slug flow should be dampened in a transient simulation. If it’s True, the flow pattern of the previous timestep will be copied to the current timestep in case the difference between the gas and liquid superficial velocities is close to that of the previous timestep.

Definitions

class NumericalOptionsDescription
    nonlinear_solver_type: NonlinearSolverType = NonlinearSolverType.AlfasimQuasiNewton
    tolerance: float | FloatExpression = 0.0001
    maximum_iterations: int = 5
    maximum_timestep_change_factor: Scalar| ScalarExpression = Scalar(2.0, '-', 'dimensionless')
    maximum_cfl_value: Scalar| ScalarExpression = Scalar(1.0, '-', 'dimensionless')
    relaxed_tolerance: float | FloatExpression = 0.0
    divergence_tolerance: float | FloatExpression = -1.0
    friction_factor_evaluation_strategy: EvaluationStrategyType = EvaluationStrategyType.TimeExplicit
    simulation_mode: SimulationModeType = SimulationModeType.Default
    enable_solver_caching: bool = True
    caching_rtol: float | FloatExpression = 0.01
    caching_atol: float | FloatExpression = 0.0001
    always_repeat_timestep: bool = False
    damp_slug_flow: bool = False
    enable_fast_compositional: bool = True
nonlinear_solver_type: NonlinearSolverType # optional
tolerance:  # optional
    number | expr
maximum_iterations: number  # optional
maximum_timestep_change_factor:  # optional
    number | expr
    unit: str
maximum_cfl_value:  # optional
    number | expr
    unit: str
relaxed_tolerance:  # optional
    number | expr
divergence_tolerance:  # optional
    number | expr
friction_factor_evaluation_strategy: EvaluationStrategyType # optional
simulation_mode: SimulationModeType # optional
enable_solver_caching: boolean  # optional
caching_rtol:  # optional
    number | expr
caching_atol:  # optional
    number | expr
always_repeat_timestep: boolean  # optional
damp_slug_flow: boolean  # optional
enable_fast_compositional: boolean  # optional

Outputs#

class CaseOutputDescription#

Definitions

class CaseOutputDescription
    automatic_trend_frequency: bool = True
    trends: TrendsOutputDescription = TrendsOutputDescription()
    trend_frequency: Scalar| ScalarExpression = Scalar(0.1, 's', 'time')
    automatic_profile_frequency: bool = True
    profiles: List[ProfileOutputDescription] = []
    profile_frequency: Scalar| ScalarExpression = Scalar(0.1, 's', 'time')
automatic_trend_frequency: boolean  # optional
trends: trends_output_description_schema # optional
trend_frequency:  # optional
    number | expr
    unit: str
automatic_profile_frequency: boolean  # optional
profiles:  # optional
    - profile_output_description_schema
profile_frequency:  # optional
    number | expr
    unit: str
class ProfileOutputDescription#

Definitions

class ProfileOutputDescription
    curve_names: List[str]
    location: OutputAttachmentLocation
    element_name: Optional[str] = None
curve_names:
    - str
location: OutputAttachmentLocation
element_name: string  # optional
class TrendsOutputDescription#

Definitions

class TrendsOutputDescription
    positional_pipe_trends: List[PositionalPipeTrendDescription] = []
    overall_pipe_trends: List[OverallPipeTrendDescription] = []
    global_trends: List[GlobalTrendDescription] = []
    equipment_trends: List[EquipmentTrendDescription] = []
    separator_trends: List[SeparatorTrendDescription] = []
    controller_trends: List[ControllerTrendDescription] = []
positional_pipe_trends:  # optional
    - positional_pipe_trend_description_schema
overall_pipe_trends:  # optional
    - overall_pipe_trend_description_schema
global_trends:  # optional
    - global_trend_description_schema
equipment_trends:  # optional
    - equipment_trend_description_schema
separator_trends:  # optional
    - separator_trend_description_schema
controller_trends:  # optional
    - controller_trend_description_schema
class SurgeVolumeOptionsDescription#

Definitions

class SurgeVolumeOptionsDescription
    time_mode: SurgeVolumeTimeMode = SurgeVolumeTimeMode.AllSimulation
    drainage_mode: DrainageRateMode = DrainageRateMode.Automatic
    start_time: Scalar| ScalarExpression = None
    end_time: Scalar| ScalarExpression = None
    maximum_drainage_rate: Scalar| ScalarExpression = None
time_mode: SurgeVolumeTimeMode # optional
drainage_mode: DrainageRateMode # optional
start_time:  # optional
    number | expr
    unit: str
end_time:  # optional
    number | expr
    unit: str
maximum_drainage_rate:  # optional
    number | expr
    unit: str
class PositionalPipeTrendDescription#

Definitions

class PositionalPipeTrendDescription
    name: Optional[str] = None
    curve_names: List[str]
    location: OutputAttachmentLocation
    position: Scalar
    element_name: Optional[str] = None
    surge_volume_options: SurgeVolumeOptionsDescription = SurgeVolumeOptionsDescription()
name: string  # optional
curve_names:
    - str
location: OutputAttachmentLocation
position:
    value: number
    unit: string
element_name: string  # optional
surge_volume_options: surge_volume_options_description_schema # optional
class EquipmentTrendDescription#

Definitions

class EquipmentTrendDescription
    name: Optional[str] = None
    curve_names: List[str]
    element_name: Optional[str] = None
name: string  # optional
curve_names:
    - str
element_name: string  # optional
class SeparatorTrendDescription#

Definitions

class SeparatorTrendDescription
    name: Optional[str] = None
    curve_names: List[str]
    element_name: Optional[str] = None
name: string  # optional
curve_names:
    - str
element_name: string  # optional
class GlobalTrendDescription#

Definitions

class GlobalTrendDescription
    name: Optional[str] = None
    curve_names: List[str]
name: string  # optional
curve_names:
    - str
class OverallPipeTrendDescription#

Definitions

class OverallPipeTrendDescription
    name: Optional[str] = None
    curve_names: List[str]
    location: OutputAttachmentLocation
    element_name: Optional[str] = None
name: string  # optional
curve_names:
    - str
location: OutputAttachmentLocation
element_name: string  # optional
class ControllerTrendDescription#

Definitions

class ControllerTrendDescription
    name: Optional[str] = None
    curve_names: List[str]
    element_name: Optional[str] = None
name: string  # optional
curve_names:
    - str
element_name: string  # optional

PVTs#

class PvtModelsDescription#

Holds a PVT which is used by the simulator to obtain fluid characteristics, such as density and viscosity, given a certain pressure and temperature.

This class is a holder for the different ways the user can enter PVT information in the application.

Variables:
  • correlations – Standard black-oil correlations found in the literature. The user can tune the parameters used by the correlations.

  • compositions – Molar fluid compositions with molecular weights and densities for each component. It be light components and/or heavy fractions to be lumped into pseudo-components.

  • tables

    Load a complete PVT table obtained (usually) from lab results and generated by various software. Currently the user can import the table directly from a .tab file or a .alfatable file.

    The table parameter must be filled with a dictionary where the keys informs the name of the PVT and the values informs Path to a file with the Pvt model.

    • The value which holds the Path can be either relative or absolute.

    • The name of the pvt model from the Path can contains a ‘pipe’ character in order to select one of the multiples PVT tables in the same .tab file.

    Example

    Absolute Path, using MyPvtModel

    >>> Path("/home/user/my_file.tab|MyPvtModel")
    

    Relative Path, using MyPvtModel

    >>> Path("./my_file.tab|MyPvtModel")
    

  • pt_table_parameters

    INTERNAL USE ONLY

    This attribute is populated when exporting a Study to a CaseDescription, and it holds a model representation of a PVT originated from a (.tab / .alfatable) file.

    Their usage is directly related to the export of a CaseDescription to a .alfacase/.alfatable file, where the original PVT file cannot be guaranteed to exist therefore the only reproducible way to recreate the PVT is trough the PvtModelPtTableParametersDescription.

  • ph_table_parameters

    INTERNAL USE ONLY

    This attribute is populated when exporting a Study to a CaseDescription, and it holds a model representation of a PVT originating from a (.tab / .alfatable) file. Also, it holds values from a Pressure-Enthalpy PVT table, in which temperature is one of the output/state variables.

    Their usage is directly related to the export of a CaseDescription to a .alfacase/.alfatable file, where the original PVT file cannot be guaranteed to exist therefore the only reproducible way to recreate the PVT is trough the PvtModelPhTableParametersDescription.

Definitions

class PvtModelsDescription
    default_model: Optional[str] = None
    tables: Dict[str, str | pathlib.Path] = {}
    correlations: Dict[str, PvtModelCorrelationDescription] = {}
    compositional: Dict[str, PvtModelCompositionalDescription] = {}
    combined: Dict[str, PvtModelCombinedDescription] = {}
    constant_properties: Dict[str, PvtModelConstantPropertiesDescription] = {}
default_model: string  # optional
tables:  # optional
    string: string | Path
correlations:  # optional
    string: pvt_model_correlation_description_schema
compositional:  # optional
    string: pvt_model_compositional_description_schema
combined:  # optional
    string: pvt_model_combined_description_schema
constant_properties:  # optional
    string: pvt_model_constant_properties_description_schema

Examples

PvtModelsDescription(
    default_model="PVT1",
    tables={"PVT1": Path("./my_tab_file.tab")},
)
pvt_models:
    default_model: PVT1
    tables:
        PVT1: ./my_tab_file.tab
class PvtModelCorrelationDescription#
Variables:
  • oil_density_std – default: Scalar(850.0, “kg/m3”)

  • gas_density_std – default: Scalar(0.9, “kg/m3”)

  • rs_sat – default: Scalar(150.0, “sm3/sm3”)

  • pvt_correlation_package – default: CorrelationPackage.Standing

  • h2s_mol_frac – default: Scalar(0.000001, “-“)

  • co2_mol_frac – default: Scalar(0.999999, “-“)

  • oil_viscosity – default: CorrelationsOilViscosity.Egbogah

  • gas_viscosity – default: CorrelationsGasViscosity.LeeGonzalezEakin

  • surface_tension – default: CorrelationsSurfaceTension.BakerSwerdloff

Definitions

class PvtModelCorrelationDescription
    oil_density_std: Scalar| ScalarExpression = Scalar(850.0, 'kg/m3', 'density')
    gas_density_std: Scalar| ScalarExpression = Scalar(0.9, 'kg/m3', 'density')
    rs_sat: Scalar| ScalarExpression = Scalar(150.0, 'sm3/sm3', 'standard volume per standard volume')
    pvt_correlation_package: CorrelationPackage = CorrelationPackage.Standing
    h2s_mol_frac: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
    co2_mol_frac: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
    oil_viscosity: CorrelationsOilViscosity = CorrelationsOilViscosity.Egbogah
    gas_viscosity: CorrelationsGasViscosity = CorrelationsGasViscosity.LeeGonzalezEakin
    surface_tension: CorrelationsSurfaceTension = CorrelationsSurfaceTension.BakerSwerdloff
oil_density_std:  # optional
    number | expr
    unit: str
gas_density_std:  # optional
    number | expr
    unit: str
rs_sat:  # optional
    number | expr
    unit: str
pvt_correlation_package: CorrelationPackage # optional
h2s_mol_frac:  # optional
    number | expr
    unit: str
co2_mol_frac:  # optional
    number | expr
    unit: str
oil_viscosity: CorrelationsOilViscosity # optional
gas_viscosity: CorrelationsGasViscosity # optional
surface_tension: CorrelationsSurfaceTension # optional

Examples

PvtModelCorrelationDescription(
    default_model="PVT1",
)
some_value:
    some_other_value: fooo
class PvtModelPtTableParametersDescription#
Variables:
  • pressure_values – Array like of sorted pressure values (m number of entries). [Pa]

  • temperature_values – Array like of sorted temperature values (n number of entries). [K]

  • table_variables – List of array like values for each property such as densities, specific heats, enthalpies, etc.

  • variable_names – List of property names

class PvtModelPhTableParametersDescription#
Variables:
  • pressure_values – Array like of sorted pressure values (m number of entries). [Pa]

  • enthalpy_values – Array like of sorted enthalpy values (n number of entries). [J/Kg]

  • table_variables – List of array like values for each property such as densities, specific heats, enthalpies, etc.

  • variable_names – List of property names

class PvtModelConstantPropertiesDescription#
Variables:
  • gas_density – default: Scalar(1.0, “kg/m3”)

  • oil_density – default: Scalar(1000.0, “kg/m3”)

  • water_density – default: Scalar(1000.0, “kg/m3”)

  • gas_viscosity – default: Scalar(5e-6, “Pa.s”)

  • oil_viscosity – default: Scalar(5e-2, “Pa.s”)

  • water_viscosity – default: Scalar(5e-2, “Pa.s”)

  • gas_specific_heat – default: Scalar(1010.0, “J/kg.K”)

  • oil_specific_heat – default: Scalar(4181.3, “J/kg.K”)

  • water_specific_heat – default: Scalar(4181.3, “J/kg.K”)

  • gas_thermal_conductivity – default: Scalar(2.4e-2, “W/m.K”)

  • oil_thermal_conductivity – default: Scalar(5.91e-1, “W/m.K”)

  • water_thermal_conductivity – default: Scalar(5.91e-1, “W/m.K”)

  • gas_oil_surface_tension – default: Scalar(7.197e-2, “N/m”)

  • gas_water_surface_tension – default: Scalar(7.197e-2, “N/m”)

  • oil_water_surface_tension – default: Scalar(7.197e-2, “N/m”)

  • gas_specific_enthalpy – default: Scalar(2.260e6, “J/kg”)

  • oil_specific_enthalpy – default: Scalar(104.86e3, “J/kg”)

Definitions

class PvtModelConstantPropertiesDescription
    gas_density: Scalar| ScalarExpression = Scalar(1.0, 'kg/m3', 'density')
    oil_density: Scalar| ScalarExpression = Scalar(1000.0, 'kg/m3', 'density')
    water_density: Scalar| ScalarExpression = Scalar(1000.0, 'kg/m3', 'density')
    gas_viscosity: Scalar| ScalarExpression = Scalar(5e-06, 'Pa.s', 'mass per time per length')
    oil_viscosity: Scalar| ScalarExpression = Scalar(0.05, 'Pa.s', 'mass per time per length')
    water_viscosity: Scalar| ScalarExpression = Scalar(0.05, 'Pa.s', 'mass per time per length')
    gas_specific_heat: Scalar| ScalarExpression = Scalar(1010.0, 'J/kg.K', 'specific heat capacity')
    oil_specific_heat: Scalar| ScalarExpression = Scalar(4181.3, 'J/kg.K', 'specific heat capacity')
    water_specific_heat: Scalar| ScalarExpression = Scalar(4181.3, 'J/kg.K', 'specific heat capacity')
    gas_thermal_conductivity: Scalar| ScalarExpression = Scalar(0.024, 'W/m.K', 'thermal conductivity')
    oil_thermal_conductivity: Scalar| ScalarExpression = Scalar(0.591, 'W/m.K', 'thermal conductivity')
    water_thermal_conductivity: Scalar| ScalarExpression = Scalar(0.591, 'W/m.K', 'thermal conductivity')
    gas_oil_surface_tension: Scalar| ScalarExpression = Scalar(0.07197, 'N/m', 'force per length')
    gas_water_surface_tension: Scalar| ScalarExpression = Scalar(0.07197, 'N/m', 'force per length')
    oil_water_surface_tension: Scalar| ScalarExpression = Scalar(0.07197, 'N/m', 'force per length')
    gas_specific_enthalpy: Scalar| ScalarExpression = Scalar(2260000.0, 'J/kg', 'specific energy')
    oil_specific_enthalpy: Scalar| ScalarExpression = Scalar(104860.0, 'J/kg', 'specific energy')
    has_water: bool = False
gas_density:  # optional
    number | expr
    unit: str
oil_density:  # optional
    number | expr
    unit: str
water_density:  # optional
    number | expr
    unit: str
gas_viscosity:  # optional
    number | expr
    unit: str
oil_viscosity:  # optional
    number | expr
    unit: str
water_viscosity:  # optional
    number | expr
    unit: str
gas_specific_heat:  # optional
    number | expr
    unit: str
oil_specific_heat:  # optional
    number | expr
    unit: str
water_specific_heat:  # optional
    number | expr
    unit: str
gas_thermal_conductivity:  # optional
    number | expr
    unit: str
oil_thermal_conductivity:  # optional
    number | expr
    unit: str
water_thermal_conductivity:  # optional
    number | expr
    unit: str
gas_oil_surface_tension:  # optional
    number | expr
    unit: str
gas_water_surface_tension:  # optional
    number | expr
    unit: str
oil_water_surface_tension:  # optional
    number | expr
    unit: str
gas_specific_enthalpy:  # optional
    number | expr
    unit: str
oil_specific_enthalpy:  # optional
    number | expr
    unit: str
has_water: boolean  # optional

PVT Combined#

class PvtModelCombinedDescription#
Variables:
  • reference_pvt_model – PVT model that will be used to calculate reference values such as properties at standard conditions.

  • fluids – default: {}

Definitions

class PvtModelCombinedDescription
    reference_pvt_model: Optional[str] = None
    fluids: Dict[str, CombinedFluidDescription] = {}
reference_pvt_model: string  # optional
fluids:  # optional
    string: combined_fluid_description_schema
class CombinedFluidDescription#

Definitions

class CombinedFluidDescription
    pvt_model: Optional[str] = None
pvt_model: string  # optional

PVT Compositional#

class PvtModelCompositionalDescription#
Variables:
  • equation_of_state_type – default: EquationOfStateType.PengRobinson

  • surface_tension_model_type – default: SurfaceTensionType.Weinaugkatz

  • viscosity_model – default: PVTCompositionalViscosityModel.CorrespondingStatesPrinciple

  • heavy_components – default: []

  • light_components – default: []

  • fluids – default: {}

Definitions

class PvtModelCompositionalDescription
    equation_of_state_type: EquationOfStateType = EquationOfStateType.PengRobinson
    surface_tension_model_type: SurfaceTensionType = SurfaceTensionType.Weinaugkatz
    viscosity_model: PVTCompositionalViscosityModel = PVTCompositionalViscosityModel.CorrespondingStatesPrinciple
    heavy_components: List[HeavyComponentDescription] = []
    light_components: List[LightComponentDescription] = []
    fluids: Dict[str, CompositionalFluidDescription] = {}
equation_of_state_type: EquationOfStateType # optional
surface_tension_model_type: SurfaceTensionType # optional
viscosity_model: PVTCompositionalViscosityModel # optional
heavy_components:  # optional
    - heavy_component_description_schema
light_components:  # optional
    - light_component_description_schema
fluids:  # optional
    string: compositional_fluid_description_schema
class HeavyComponentDescription#

Definitions

class HeavyComponentDescription
    name: str
    scn: int
    MW: Scalar| ScalarExpression = Scalar(0.0, 'kg/mol', 'mass per mol')
    rho: Scalar| ScalarExpression = Scalar(0.0, 'kg/m3', 'density')
name: string
scn: number
MW:  # optional
    number | expr
    unit: str
rho:  # optional
    number | expr
    unit: str
class LightComponentDescription#

Definitions

class LightComponentDescription
    name: str
    Pc: Scalar| ScalarExpression = Scalar(0.0, 'Pa', 'pressure')
    Tc: Scalar| ScalarExpression = Scalar(0.0, 'K', 'temperature')
    Vc: Scalar| ScalarExpression = Scalar(0.0, 'm3/mol', 'molar volume')
    omega: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
    MW: Scalar| ScalarExpression = Scalar(0.0, 'kg/mol', 'mass per mol')
    Tb: Scalar| ScalarExpression = Scalar(0.0, 'K', 'temperature')
    Parachor: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
    Cp_0: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
    Cp_1: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
    Cp_2: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
    Cp_3: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
    Cp_4: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
name: string
Pc:  # optional
    number | expr
    unit: str
Tc:  # optional
    number | expr
    unit: str
Vc:  # optional
    number | expr
    unit: str
omega:  # optional
    number | expr
    unit: str
MW:  # optional
    number | expr
    unit: str
Tb:  # optional
    number | expr
    unit: str
Parachor:  # optional
    number | expr
    unit: str
Cp_0:  # optional
    number | expr
    unit: str
Cp_1:  # optional
    number | expr
    unit: str
Cp_2:  # optional
    number | expr
    unit: str
Cp_3:  # optional
    number | expr
    unit: str
Cp_4:  # optional
    number | expr
    unit: str
class CompositionalFluidDescription#

Definitions

class CompositionalFluidDescription
    composition: List[CompositionDescription] = []
    fraction_pairs: List[BipDescription] = []
composition:  # optional
    - composition_description_schema
fraction_pairs:  # optional
    - bip_description_schema
class CompositionDescription#
Variables:

component

Name of the component available created on:

PvtModelCompositionalDescription.light_components PvtModelCompositionalDescription.heavy_components

Note

CompositionDescription can only refer to components created from the same PvtModelCompositionalDescription

Definitions

class CompositionDescription
    component: Optional[str] = None
    molar_fraction: Scalar| ScalarExpression = Scalar(0.0, 'mol/mol', 'mole per mole')
    reference_enthalpy: Scalar| ScalarExpression = Scalar(0.0, 'J/mol', 'molar thermodynamic energy')
component: string  # optional
molar_fraction:  # optional
    number | expr
    unit: str
reference_enthalpy:  # optional
    number | expr
    unit: str
class BipDescription#

Definitions

class BipDescription
    component_1: str
    component_2: str
    value: float | FloatExpression
component_1: string
component_2: string
value:
    number | expr

IPR#

class IPRModelsDescription#
Variables:
  • linear_models – A dictionary with the name of the IPR and the instance of the IPR Model.

  • vogel_models – A dictionary with the name of the IPR and the instance of the IPR Model.

  • fetkovich_models – A dictionary with the name of the IPR and the instance of the IPR Model.

  • forchheimer_models – A dictionary with the name of the IPR and the instance of the IPR Model.

  • table_models

Definitions

class IPRModelsDescription
    linear_models: Dict[str, LinearIPRDescription] = {}
    vogel_models: Dict[str, VogelIPRDescription] = {}
    fetkovich_models: Dict[str, FetkovichIPRDescription] = {}
    forchheimer_models: Dict[str, ForchheimerIPRDescription] = {}
    table_models: Dict[str, TableIPRDescription] = {}
linear_models:  # optional
    string: linear_ipr_description_schema
vogel_models:  # optional
    string: vogel_ipr_description_schema
fetkovich_models:  # optional
    string: fetkovich_ipr_description_schema
forchheimer_models:  # optional
    string: forchheimer_ipr_description_schema
table_models:  # optional
    string: table_ipr_description_schema
class LinearIPRDescription#

Definitions

class LinearIPRDescription
    well_index_phase: WellIndexPhaseType = WellIndexPhaseType.Oil
    min_pressure_difference: Scalar| ScalarExpression = Scalar(0.0, 'Pa', 'pressure')
    well_index_input_type: MultiInputType = MultiInputType.Constant
    well_index: Scalar| ScalarExpression = Scalar(24.0, 'm3/bar.d', 'productivity index')
    well_index_curve: Curve = Curve(m3/bar.d, s)[]
well_index_phase: WellIndexPhaseType # optional
min_pressure_difference:  # optional
    number | expr
    unit: str
well_index_input_type: MultiInputType # optional
well_index:  # optional
    number | expr
    unit: str
well_index_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
class VogelIPRDescription#

Definitions

class VogelIPRDescription
    well_index_phase: WellIndexPhaseType = WellIndexPhaseType.Oil
    min_pressure_difference: Scalar| ScalarExpression = Scalar(0.0, 'Pa', 'pressure')
    well_max_flow_rate_input_type: MultiInputType = MultiInputType.Constant
    well_max_flow_rate: Scalar| ScalarExpression = Scalar(1.0, 'sm3/d', 'standard volume per time')
    well_max_flow_rate_curve: Curve = Curve(sm3/d, s)[]
well_index_phase: WellIndexPhaseType # optional
min_pressure_difference:  # optional
    number | expr
    unit: str
well_max_flow_rate_input_type: MultiInputType # optional
well_max_flow_rate:  # optional
    number | expr
    unit: str
well_max_flow_rate_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
class FetkovichIPRDescription#

Definitions

class FetkovichIPRDescription
    well_index_phase: WellIndexPhaseType = WellIndexPhaseType.Oil
    min_pressure_difference: Scalar| ScalarExpression = Scalar(0.0, 'Pa', 'pressure')
    bubble_point_pressure: Scalar| ScalarExpression = Scalar(0.0, 'Pa', 'pressure')
    well_index_input_type: MultiInputType = MultiInputType.Constant
    well_index: Scalar| ScalarExpression = Scalar(24.0, 'm3/bar.d', 'productivity index')
    well_index_curve: Curve = Curve(m3/bar.d, s)[]
well_index_phase: WellIndexPhaseType # optional
min_pressure_difference:  # optional
    number | expr
    unit: str
bubble_point_pressure:  # optional
    number | expr
    unit: str
well_index_input_type: MultiInputType # optional
well_index:  # optional
    number | expr
    unit: str
well_index_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
class ForchheimerIPRDescription#

Definitions

class ForchheimerIPRDescription
    calculate_coeff_option: ForchheimerCoefficientsOption = ForchheimerCoefficientsOption.ReservoirParameters
    well_index_phase: WellIndexPhaseType = WellIndexPhaseType.Gas
    min_pressure_difference: Scalar| ScalarExpression = Scalar(0.0, 'Pa', 'pressure')
    gas_viscosity: Scalar| ScalarExpression = Scalar(0.0, 'Pa.s', 'dynamic viscosity')
    gas_z_factor: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
    reservoir_permeability: Scalar| ScalarExpression = Scalar(0.0, 'm2', 'permeability rock')
    drainage_radius: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    well_radius: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    well_skin_factor: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
    non_darcy_parameter: Scalar| ScalarExpression = Scalar(0.0, 'Pa.s/m6', 'nonDarcy flow coefficient')
    B_coeff: Scalar| ScalarExpression = Scalar(0.0, 'Pa2.s/scm', 'forchheimer linear productivity index')
    C_coeff: Scalar| ScalarExpression = Scalar(0.0, 'Pa2.s2/scm2', 'forchheimer quadratic productivity index')
calculate_coeff_option: ForchheimerCoefficientsOption # optional
well_index_phase: WellIndexPhaseType # optional
min_pressure_difference:  # optional
    number | expr
    unit: str
gas_viscosity:  # optional
    number | expr
    unit: str
gas_z_factor:  # optional
    number | expr
    unit: str
reservoir_permeability:  # optional
    number | expr
    unit: str
drainage_radius:  # optional
    number | expr
    unit: str
well_radius:  # optional
    number | expr
    unit: str
well_skin_factor:  # optional
    number | expr
    unit: str
non_darcy_parameter:  # optional
    number | expr
    unit: str
B_coeff:  # optional
    number | expr
    unit: str
C_coeff:  # optional
    number | expr
    unit: str
class TableIPRDescription#

Definitions

class TableIPRDescription
    well_index_phase: WellIndexPhaseType = WellIndexPhaseType.Oil
    table: IPRCurveDescription = IPRCurveDescription()
well_index_phase: WellIndexPhaseType # optional
table: ipr_curve_description_schema # optional
class IPRCurveDescription#

Definitions

class IPRCurveDescription
    pressure_difference: Array| ArrayExpression = Array(pressure, [0.0], Pa)
    flow_rate: Array| ArrayExpression = Array(standard volume per time, [0.0], sm3/d)
pressure_difference:  # optional
    values: [number | expr]
    unit: str
flow_rate:  # optional
    values: [number | expr]
    unit: str

Tracer#

class TracersDescription#

Definitions

class TracersDescription
    constant_coefficients: Dict[str, TracerModelConstantCoefficientsDescription] = {}
constant_coefficients:  # optional
    string: tracer_model_constant_coefficients_description_schema
class TracerModelConstantCoefficientsDescription#

Definitions

class TracerModelConstantCoefficientsDescription
    partition_coefficients: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {}
partition_coefficients:  # optional
    string: Scalar | ScalarExpression

Initial Conditions#

class InitialConditionsDescription#

Definitions

class InitialConditionsDescription
    pressures: InitialPressuresDescription = InitialPressuresDescription()
    volume_fractions: InitialVolumeFractionsDescription = InitialVolumeFractionsDescription()
    tracers_mass_fractions: InitialTracersMassFractionsDescription = InitialTracersMassFractionsDescription()
    velocities: InitialVelocitiesDescription = InitialVelocitiesDescription()
    temperatures: InitialTemperaturesDescription = InitialTemperaturesDescription()
    fluid: Optional[str] = None
pressures: initial_pressures_description_schema # optional
volume_fractions: initial_volume_fractions_description_schema # optional
tracers_mass_fractions: initial_tracers_mass_fractions_description_schema # optional
velocities: initial_velocities_description_schema # optional
temperatures: initial_temperatures_description_schema # optional
fluid: string  # optional
class InitialPressuresDescription#

Definitions

class InitialPressuresDescription
    position_input_type: TableInputType = TableInputType.length
    table_x: ReferencedPressureContainerDescription = ReferencedPressureContainerDescription()
    table_y: ReferencedPressureContainerDescription = ReferencedPressureContainerDescription()
    table_length: PressureContainerDescription = PressureContainerDescription()
position_input_type: TableInputType # optional
table_x: referenced_pressure_container_description_schema # optional
table_y: referenced_pressure_container_description_schema # optional
table_length: pressure_container_description_schema # optional
class ReferencedPressureContainerDescription#

Definitions

class ReferencedPressureContainerDescription
    reference_coordinate: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    positions: Array| ArrayExpression = Array(length, [0.0], m)
    pressures: Array| ArrayExpression = Array(pressure, [100000.0], Pa)
reference_coordinate:  # optional
    number | expr
    unit: str
positions:  # optional
    values: [number | expr]
    unit: str
pressures:  # optional
    values: [number | expr]
    unit: str
class PressureContainerDescription#

Definitions

class PressureContainerDescription
    positions: Array| ArrayExpression = Array(length, [0.0], m)
    pressures: Array| ArrayExpression = Array(pressure, [100000.0], Pa)
positions:  # optional
    values: [number | expr]
    unit: str
pressures:  # optional
    values: [number | expr]
    unit: str
class InitialVolumeFractionsDescription#

Definitions

class InitialVolumeFractionsDescription
    position_input_type: TableInputType = TableInputType.length
    table_x: ReferencedVolumeFractionsContainerDescription = ReferencedVolumeFractionsContainerDescription()
    table_y: ReferencedVolumeFractionsContainerDescription = ReferencedVolumeFractionsContainerDescription()
    table_length: VolumeFractionsContainerDescription = VolumeFractionsContainerDescription()
class ReferencedVolumeFractionsContainerDescription#

Definitions

class ReferencedVolumeFractionsContainerDescription
    reference_coordinate: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    positions: Array| ArrayExpression = Array(length, [], m)
    fractions: Dict[str, barril.units._array.Array | alfasim_sdk._internal.alfacase.case_description_attributes.ArrayExpression] = {}
reference_coordinate:  # optional
    number | expr
    unit: str
positions:  # optional
    values: [number | expr]
    unit: str
fractions:  # optional
    string: Array | ArrayExpression
class VolumeFractionsContainerDescription#

Definitions

class VolumeFractionsContainerDescription
    positions: Array| ArrayExpression = Array(length, [0.0], m)
    fractions: Dict[str, barril.units._array.Array | alfasim_sdk._internal.alfacase.case_description_attributes.ArrayExpression] = {'gas': Array(dimensionless, [0.1], -), 'oil': Array(dimensionless, [0.9], -)}
positions:  # optional
    values: [number | expr]
    unit: str
fractions:  # optional
    string: Array | ArrayExpression
class InitialTracersMassFractionsDescription#

Definitions

class InitialTracersMassFractionsDescription
    position_input_type: TableInputType = TableInputType.length
    table_x: ReferencedTracersMassFractionsContainerDescription = ReferencedTracersMassFractionsContainerDescription()
    table_y: ReferencedTracersMassFractionsContainerDescription = ReferencedTracersMassFractionsContainerDescription()
    table_length: TracersMassFractionsContainerDescription = TracersMassFractionsContainerDescription()
class ReferencedTracersMassFractionsContainerDescription#

Definitions

class ReferencedTracersMassFractionsContainerDescription
    reference_coordinate: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    positions: Array| ArrayExpression = Array(length, [], m)
    tracers_mass_fractions: List[Array | ArrayExpression] = []
reference_coordinate:  # optional
    number | expr
    unit: str
positions:  # optional
    values: [number | expr]
    unit: str
tracers_mass_fractions:  # optional
    - barril.units._array.Array | alfasim_sdk._internal.alfacase.case_description_attributes.ArrayExpression
class TracersMassFractionsContainerDescription#

Definitions

class TracersMassFractionsContainerDescription
    positions: Array| ArrayExpression = Array(length, [], m)
    tracers_mass_fractions: List[Array | ArrayExpression] = []
positions:  # optional
    values: [number | expr]
    unit: str
tracers_mass_fractions:  # optional
    - barril.units._array.Array | alfasim_sdk._internal.alfacase.case_description_attributes.ArrayExpression
class InitialVelocitiesDescription#

Definitions

class InitialVelocitiesDescription
    position_input_type: TableInputType = TableInputType.length
    table_x: ReferencedVelocitiesContainerDescription = ReferencedVelocitiesContainerDescription()
    table_y: ReferencedVelocitiesContainerDescription = ReferencedVelocitiesContainerDescription()
    table_length: VelocitiesContainerDescription = VelocitiesContainerDescription()
position_input_type: TableInputType # optional
table_x: referenced_velocities_container_description_schema # optional
table_y: referenced_velocities_container_description_schema # optional
table_length: velocities_container_description_schema # optional
class ReferencedVelocitiesContainerDescription#

Definitions

class ReferencedVelocitiesContainerDescription
    reference_coordinate: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    positions: Array| ArrayExpression = Array(length, [], m)
    velocities: Dict[str, barril.units._array.Array | alfasim_sdk._internal.alfacase.case_description_attributes.ArrayExpression] = {}
reference_coordinate:  # optional
    number | expr
    unit: str
positions:  # optional
    values: [number | expr]
    unit: str
velocities:  # optional
    string: Array | ArrayExpression
class VelocitiesContainerDescription#

Definitions

class VelocitiesContainerDescription
    positions: Array| ArrayExpression = Array(length, [0.0], m)
    velocities: Dict[str, barril.units._array.Array | alfasim_sdk._internal.alfacase.case_description_attributes.ArrayExpression] = {'gas': Array(velocity, [1e-08], m/s), 'oil': Array(velocity, [1e-08], m/s)}
positions:  # optional
    values: [number | expr]
    unit: str
velocities:  # optional
    string: Array | ArrayExpression
class InitialTemperaturesDescription#

Definitions

class InitialTemperaturesDescription
    position_input_type: TableInputType = TableInputType.length
    table_x: ReferencedTemperaturesContainerDescription = ReferencedTemperaturesContainerDescription()
    table_y: ReferencedTemperaturesContainerDescription = ReferencedTemperaturesContainerDescription()
    table_length: TemperaturesContainerDescription = TemperaturesContainerDescription()
class ReferencedTemperaturesContainerDescription#

Definitions

class ReferencedTemperaturesContainerDescription
    reference_coordinate: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    positions: Array| ArrayExpression = Array(length, [], m)
    temperatures: Array| ArrayExpression = Array(temperature, [], K)
reference_coordinate:  # optional
    number | expr
    unit: str
positions:  # optional
    values: [number | expr]
    unit: str
temperatures:  # optional
    values: [number | expr]
    unit: str
class TemperaturesContainerDescription#

Definitions

class TemperaturesContainerDescription
    positions: Array| ArrayExpression = Array(length, [0.0], m)
    temperatures: Array| ArrayExpression = Array(temperature, [288.6], K)
positions:  # optional
    values: [number | expr]
    unit: str
temperatures:  # optional
    values: [number | expr]
    unit: str

Pipe#

class PipeDescription#

Definitions

class PipeDescription
    name: str
    source: str
    target: str
    source_port: Optional[WellConnectionPort] = None
    target_port: Optional[WellConnectionPort] = None
    pvt_model: Optional[str] = None
    profile: ProfileDescription = ProfileDescription()
    equipment: EquipmentDescription = EquipmentDescription()
    environment: EnvironmentDescription = EnvironmentDescription()
    segments: PipeSegmentsDescription = PipeSegmentsDescription()
    initial_conditions: InitialConditionsDescription = InitialConditionsDescription()
    flow_pattern_model: FlowPatternModel = FlowPatternModel.UnitCell
    regime_capturing_mesh_threshold: Scalar| ScalarExpression = Scalar(0.0, '-', 'dimensionless')
name: string
source: string
target: string
source_port: well_connection_port_schema # optional
target_port: well_connection_port_schema # optional
pvt_model: string  # optional
profile: profile_description_schema # optional
equipment: equipment_description_schema # optional
environment: environment_description_schema # optional
segments: pipe_segments_description_schema # optional
initial_conditions: initial_conditions_description_schema # optional
flow_pattern_model: FlowPatternModel # optional
regime_capturing_mesh_threshold:  # optional
    number | expr
    unit: str
class PipeSegmentsDescription#

Definitions

class PipeSegmentsDescription
    start_positions: Array| ArrayExpression = None
    diameters: Array| ArrayExpression = None
    roughnesses: Array| ArrayExpression = None
    wall_names: Optional[List[Optional[str]]] = None
start_positions:  # optional
    values: [number | expr]
    unit: str
diameters:  # optional
    values: [number | expr]
    unit: str
roughnesses:  # optional
    values: [number | expr]
    unit: str
wall_names:  # optional
    - string

Node#

class NodeDescription#

Definitions

class NodeDescription
    name: str
    node_type: NodeCellType
    pvt_model: Optional[str] = None
    pressure_properties: PressureNodePropertiesDescription = PressureNodePropertiesDescription()
    mass_source_properties: MassSourceNodePropertiesDescription = MassSourceNodePropertiesDescription()
    internal_properties: InternalNodePropertiesDescription = InternalNodePropertiesDescription()
    separator_properties: SeparatorNodePropertiesDescription = SeparatorNodePropertiesDescription()
    controller_properties: ControllerNodePropertiesDescription = ControllerNodePropertiesDescription()
name: string
node_type: NodeCellType
pvt_model: string  # optional
pressure_properties: pressure_node_properties_description_schema # optional
mass_source_properties: mass_source_node_properties_description_schema # optional
internal_properties: internal_node_properties_description_schema # optional
separator_properties: separator_node_properties_description_schema # optional
controller_properties: controller_node_properties_description_schema # optional
class PressureNodePropertiesDescription#

Definitions

class PressureNodePropertiesDescription
    pressure_input_type: MultiInputType = MultiInputType.Constant
    pressure: Scalar| ScalarExpression = Scalar(100000.0, 'Pa', 'pressure')
    pressure_curve: Curve = Curve(Pa, s)[]
    temperature_input_type: MultiInputType = MultiInputType.Constant
    temperature: Scalar| ScalarExpression = Scalar(288.6, 'K', 'temperature')
    temperature_curve: Curve = Curve(K, s)[]
    fluid: Optional[str] = None
    tracer_mass_fraction: Array| ArrayExpression = Array(dimensionless, [], -)
    split_type: MassInflowSplitType = MassInflowSplitType.ConstantVolumeFraction
    mass_fractions_input_type: MultiInputType = MultiInputType.Constant
    mass_fractions: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {}
    mass_fractions_curve: Dict[str, <class 'barril.curve.curve.Curve'>] = {}
    volume_fractions_input_type: MultiInputType = MultiInputType.Constant
    volume_fractions: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {}
    volume_fractions_curve: Dict[str, <class 'barril.curve.curve.Curve'>] = {}
    gas_liquid_ratio_input_type: MultiInputType = MultiInputType.Constant
    gas_liquid_ratio: Scalar| ScalarExpression = Scalar(0.0, 'sm3/sm3', 'standard volume per standard volume')
    gas_liquid_ratio_curve: Curve = Curve(sm3/sm3, s)[]
    gas_oil_ratio_input_type: MultiInputType = MultiInputType.Constant
    gas_oil_ratio: Scalar| ScalarExpression = Scalar(0.0, 'sm3/sm3', 'standard volume per standard volume')
    gas_oil_ratio_curve: Curve = Curve(sm3/sm3, s)[]
    water_cut_input_type: MultiInputType = MultiInputType.Constant
    water_cut: Scalar| ScalarExpression = Scalar(0.0, '-', 'volume fraction')
    water_cut_curve: Curve = Curve(-, s)[]
pressure_input_type: MultiInputType # optional
pressure:  # optional
    number | expr
    unit: str
pressure_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
temperature_input_type: MultiInputType # optional
temperature:  # optional
    number | expr
    unit: str
temperature_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
fluid: string  # optional
tracer_mass_fraction:  # optional
    values: [number | expr]
    unit: str
split_type: MassInflowSplitType # optional
mass_fractions_input_type: MultiInputType # optional
mass_fractions:  # optional
    string: Scalar | ScalarExpression
mass_fractions_curve:  # optional
    string: Curve
volume_fractions_input_type: MultiInputType # optional
volume_fractions:  # optional
    string: Scalar | ScalarExpression
volume_fractions_curve:  # optional
    string: Curve
gas_liquid_ratio_input_type: MultiInputType # optional
gas_liquid_ratio:  # optional
    number | expr
    unit: str
gas_liquid_ratio_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
gas_oil_ratio_input_type: MultiInputType # optional
gas_oil_ratio:  # optional
    number | expr
    unit: str
gas_oil_ratio_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
water_cut_input_type: MultiInputType # optional
water_cut:  # optional
    number | expr
    unit: str
water_cut_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
class MassSourceNodePropertiesDescription#

Definitions

class MassSourceNodePropertiesDescription
    fluid: Optional[str] = None
    tracer_mass_fraction: Array| ArrayExpression = Array(dimensionless, [], -)
    temperature_input_type: MultiInputType = MultiInputType.Constant
    temperature: Scalar| ScalarExpression = Scalar(288.6, 'K', 'temperature')
    temperature_curve: Curve = Curve(K, s)[]
    source_type: MassSourceType = MassSourceType.MassFlowRates
    volumetric_flow_rates_std_input_type: MultiInputType = MultiInputType.Constant
    volumetric_flow_rates_std: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {}
    volumetric_flow_rates_std_curve: Dict[str, <class 'barril.curve.curve.Curve'>] = {}
    mass_flow_rates_input_type: MultiInputType = MultiInputType.Constant
    mass_flow_rates: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {}
    mass_flow_rates_curve: Dict[str, <class 'barril.curve.curve.Curve'>] = {}
    total_mass_flow_rate_input_type: MultiInputType = MultiInputType.Constant
    total_mass_flow_rate: Scalar| ScalarExpression = Scalar(1.0, 'kg/s', 'mass flow rate')
    total_mass_flow_rate_curve: Curve = Curve(kg/s, s)[]
    water_cut_input_type: MultiInputType = MultiInputType.Constant
    water_cut: Scalar| ScalarExpression = Scalar(0.0, '-', 'volume fraction')
    water_cut_curve: Curve = Curve(-, s)[]
    gas_oil_ratio_input_type: MultiInputType = MultiInputType.Constant
    gas_oil_ratio: Scalar| ScalarExpression = Scalar(0.0, 'sm3/sm3', 'standard volume per standard volume')
    gas_oil_ratio_curve: Curve = Curve(sm3/sm3, s)[]
fluid: string  # optional
tracer_mass_fraction:  # optional
    values: [number | expr]
    unit: str
temperature_input_type: MultiInputType # optional
temperature:  # optional
    number | expr
    unit: str
temperature_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
source_type: MassSourceType # optional
volumetric_flow_rates_std_input_type: MultiInputType # optional
volumetric_flow_rates_std:  # optional
    string: Scalar | ScalarExpression
volumetric_flow_rates_std_curve:  # optional
    string: Curve
mass_flow_rates_input_type: MultiInputType # optional
mass_flow_rates:  # optional
    string: Scalar | ScalarExpression
mass_flow_rates_curve:  # optional
    string: Curve
total_mass_flow_rate_input_type: MultiInputType # optional
total_mass_flow_rate:  # optional
    number | expr
    unit: str
total_mass_flow_rate_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
water_cut_input_type: MultiInputType # optional
water_cut:  # optional
    number | expr
    unit: str
water_cut_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
gas_oil_ratio_input_type: MultiInputType # optional
gas_oil_ratio:  # optional
    number | expr
    unit: str
gas_oil_ratio_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
class InternalNodePropertiesDescription#

Definitions

class InternalNodePropertiesDescription
    fluid: Optional[str] = None
fluid: string  # optional
class SeparatorNodePropertiesDescription#
Variables:

overall_heat_transfer_coefficient

η such that the overall heat transferred to the separator is

Q = η A (T_amb - T_sep)

Definitions

class SeparatorNodePropertiesDescription
    environment_temperature: Scalar| ScalarExpression = Scalar(25.0, 'degC', 'temperature')
    geometry: SeparatorGeometryType = SeparatorGeometryType.VerticalCylinder
    length: Scalar| ScalarExpression = Scalar(1.0, 'm', 'length')
    overall_heat_transfer_coefficient: Scalar| ScalarExpression = Scalar(0.0, 'W/m2.K', 'heat transfer coefficient')
    diameter: Scalar| ScalarExpression = Scalar(1.0, 'm', 'diameter')
    nozzles: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {}
    initial_phase_volume_fractions: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {'gas': Scalar(0.5, '-', 'volume fraction'), 'oil': Scalar(0.5, '-', 'volume fraction')}
    gas_separation_efficiency: Scalar| ScalarExpression = Scalar(1.0, '-', 'dimensionless')
    liquid_separation_efficiency: Scalar| ScalarExpression = Scalar(1.0, '-', 'dimensionless')
environment_temperature:  # optional
    number | expr
    unit: str
geometry: SeparatorGeometryType # optional
length:  # optional
    number | expr
    unit: str
overall_heat_transfer_coefficient:  # optional
    number | expr
    unit: str
diameter:  # optional
    number | expr
    unit: str
nozzles:  # optional
    string: Scalar | ScalarExpression
initial_phase_volume_fractions:  # optional
    string: Scalar | ScalarExpression
gas_separation_efficiency:  # optional
    number | expr
    unit: str
liquid_separation_efficiency:  # optional
    number | expr
    unit: str
class ControllerInputSignalPropertiesDescription#
Variables:
  • target_variable – Measured variable target of controller setpoint

  • unit – Measuring unit of target variable

  • input_trend_name – Name of input trend where target variable is measured

Definitions

class ControllerInputSignalPropertiesDescription
    target_variable: Optional[str] = None
    input_trend_name: Optional[str] = None
    unit: Optional[str] = None
target_variable: string  # optional
input_trend_name: string  # optional
unit: string  # optional
class ControllerOutputSignalPropertiesDescription#
Variables:
  • controlled_property – Property under control to make target variable reach setpoint

  • unit – Measuring unit of controlled property

  • network_element_name – Name of network element that has controlled property

  • min_value – Minimum value of output signal

  • max_value – Maximum value of output signal

  • max_rate_of_change – Maximum rate of change of output signal

Definitions

class ControllerOutputSignalPropertiesDescription
    controlled_property: Optional[str] = None
    unit: Optional[str] = None
    network_element_name: Optional[str] = None
    min_value: float | FloatExpression = -1e+50
    max_value: float | FloatExpression = 1e+50
    max_rate_of_change: float | FloatExpression = 1e+50
controlled_property: string  # optional
unit: string  # optional
network_element_name: string  # optional
min_value:  # optional
    number | expr
max_value:  # optional
    number | expr
max_rate_of_change:  # optional
    number | expr
class ControllerNodePropertiesDescription#
Variables:
  • type – Type of controlling model

  • gain – Proportional constant of PID controller

  • setpoint – Target value for input signal

  • integral_time – Integral constant of PID controller

  • derivative_time – Derivative constant of PID controller

  • input_signal_properties – Properties of input signal

  • output_signal_properties – Properties of output signal

Definitions

class ControllerNodePropertiesDescription
    type: ControllerType = ControllerType.PID
    gain: float | FloatExpression = 0.0001
    setpoint: float | FloatExpression = 0.0
    integral_time: Scalar| ScalarExpression = Scalar(10.0, 's', 'time')
    derivative_time: Scalar| ScalarExpression = Scalar(1.0, 's', 'time')
    input_signal_properties: ControllerInputSignalPropertiesDescription = ControllerInputSignalPropertiesDescription()
    output_signal_properties: ControllerOutputSignalPropertiesDescription = ControllerOutputSignalPropertiesDescription()
type: ControllerType # optional
gain:  # optional
    number | expr
setpoint:  # optional
    number | expr
integral_time:  # optional
    number | expr
    unit: str
derivative_time:  # optional
    number | expr
    unit: str
input_signal_properties: controller_input_signal_properties_description_schema # optional
output_signal_properties: controller_output_signal_properties_description_schema # optional

Well#

class WellDescription#

Definitions

class WellDescription
    name: str
    pvt_model: Optional[str] = None
    stagnant_fluid: Optional[str] = None
    profile: ProfileDescription = ProfileDescription()
    casing: CasingDescription = CasingDescription()
    annulus: AnnulusDescription = AnnulusDescription()
    formation: FormationDescription = FormationDescription()
    top_node: str
    bottom_node: str
    environment: EnvironmentDescription = EnvironmentDescription()
    initial_conditions: InitialConditionsDescription = InitialConditionsDescription()
    equipment: EquipmentDescription = EquipmentDescription()
name: string
pvt_model: string  # optional
stagnant_fluid: string  # optional
profile: profile_description_schema # optional
casing: casing_description_schema # optional
annulus: annulus_description_schema # optional
formation: formation_description_schema # optional
top_node: string
bottom_node: string
environment: environment_description_schema # optional
initial_conditions: initial_conditions_description_schema # optional
equipment: equipment_description_schema # optional
class CasingDescription#

Definitions

class CasingDescription
    casing_sections: List[CasingSectionDescription] = []
    tubings: List[TubingDescription] = []
    packers: List[PackerDescription] = []
    open_holes: List[OpenHoleDescription] = []
casing_sections:  # optional
    - casing_section_description_schema
tubings:  # optional
    - tubing_description_schema
packers:  # optional
    - packer_description_schema
open_holes:  # optional
    - open_hole_description_schema
class CasingSectionDescription#

Definitions

class CasingSectionDescription
    name: str
    hanger_depth: Scalar| ScalarExpression
    settings_depth: Scalar| ScalarExpression
    hole_diameter: Scalar| ScalarExpression
    outer_diameter: Scalar| ScalarExpression
    inner_diameter: Scalar| ScalarExpression
    inner_roughness: Scalar| ScalarExpression
    material: Optional[str] = None
    top_of_filler: Scalar| ScalarExpression
    filler_material: Optional[str] = None
    material_above_filler: Optional[str] = None
name: string
hanger_depth:
    number | expr
    unit: str
settings_depth:
    number | expr
    unit: str
hole_diameter:
    number | expr
    unit: str
outer_diameter:
    number | expr
    unit: str
inner_diameter:
    number | expr
    unit: str
inner_roughness:
    number | expr
    unit: str
material: string  # optional
top_of_filler:
    number | expr
    unit: str
filler_material: string  # optional
material_above_filler: string  # optional
class TubingDescription#

Definitions

class TubingDescription
    name: str
    length: Scalar| ScalarExpression
    outer_diameter: Scalar| ScalarExpression
    inner_diameter: Scalar| ScalarExpression
    inner_roughness: Scalar| ScalarExpression
    material: Optional[str] = None
name: string
length:
    number | expr
    unit: str
outer_diameter:
    number | expr
    unit: str
inner_diameter:
    number | expr
    unit: str
inner_roughness:
    number | expr
    unit: str
material: string  # optional
class PackerDescription#

Definitions

class PackerDescription
    name: str
    position: Scalar| ScalarExpression
    material_above: Optional[str] = None
name: string
position:
    number | expr
    unit: str
material_above: string  # optional
class OpenHoleDescription#

Definitions

class OpenHoleDescription
    name: str
    length: Scalar| ScalarExpression
    diameter: Scalar| ScalarExpression
    inner_roughness: Scalar| ScalarExpression
name: string
length:
    number | expr
    unit: str
diameter:
    number | expr
    unit: str
inner_roughness:
    number | expr
    unit: str
class AnnulusDescription#

Definitions

class AnnulusDescription
    has_annulus_flow: bool
    pvt_model: Optional[str] = None
    initial_conditions: InitialConditionsDescription = InitialConditionsDescription()
    equipment: AnnulusEquipmentDescription = AnnulusEquipmentDescription()
    top_node: str
has_annulus_flow: boolean
pvt_model: string  # optional
initial_conditions: initial_conditions_description_schema # optional
equipment: annulus_equipment_description_schema # optional
top_node: string
class GasLiftValveEquipmentDescription#

Definitions

class GasLiftValveEquipmentDescription
    position: Scalar| ScalarExpression
    diameter: Scalar| ScalarExpression
    valve_type: ValveType
    delta_p_min: Scalar| ScalarExpression
    discharge_coefficient: Scalar| ScalarExpression
position:
    number | expr
    unit: str
diameter:
    number | expr
    unit: str
valve_type: ValveType
delta_p_min:
    number | expr
    unit: str
discharge_coefficient:
    number | expr
    unit: str
class FormationDescription#

Definitions

class FormationDescription
    reference_y_coordinate: Scalar| ScalarExpression
    layers: List[FormationLayerDescription] = []
reference_y_coordinate:
    number | expr
    unit: str
layers:  # optional
    - formation_layer_description_schema
class FormationLayerDescription#

Definitions

class FormationLayerDescription
    name: str
    start: Scalar| ScalarExpression
    material: Optional[str] = None
name: string
start:
    number | expr
    unit: str
material: string  # optional

Material#

class MaterialDescription#

Definitions

class MaterialDescription
    name: str
    material_type: MaterialType = MaterialType.Solid
    density: Scalar| ScalarExpression = Scalar(1.0, 'kg/m3', 'density')
    thermal_conductivity: Scalar| ScalarExpression = Scalar(0.0, 'W/m.degC', 'thermal conductivity')
    heat_capacity: Scalar| ScalarExpression = Scalar(0.0, 'J/kg.degC', 'specific heat capacity')
    inner_emissivity: Scalar| ScalarExpression = Scalar(0.0, '-', 'emissivity')
    outer_emissivity: Scalar| ScalarExpression = Scalar(0.0, '-', 'emissivity')
    expansion: Scalar| ScalarExpression = Scalar(0.0, '1/K', 'volumetric thermal expansion')
    viscosity: Scalar| ScalarExpression = Scalar(0.0, 'cP', 'dynamic viscosity')
name: string
material_type: MaterialType # optional
density:  # optional
    number | expr
    unit: str
thermal_conductivity:  # optional
    number | expr
    unit: str
heat_capacity:  # optional
    number | expr
    unit: str
inner_emissivity:  # optional
    number | expr
    unit: str
outer_emissivity:  # optional
    number | expr
    unit: str
expansion:  # optional
    number | expr
    unit: str
viscosity:  # optional
    number | expr
    unit: str

Wall#

class WallDescription#

Definitions

class WallDescription
    name: str
    inner_roughness: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    wall_layer_container: List[WallLayerDescription] = []
name: string
inner_roughness:  # optional
    number | expr
    unit: str
wall_layer_container:  # optional
    - wall_layer_description_schema
class WallLayerDescription#

Defines one of the wall layers around a pipe.

Variables:
  • thickness

  • material_name

  • has_annulus_flow

Definitions

class WallLayerDescription
    thickness: Scalar| ScalarExpression
    material_name: Optional[str] = None
    has_annulus_flow: bool = False
thickness:
    number | expr
    unit: str
material_name: string  # optional
has_annulus_flow: boolean  # optional

Profile#

class ProfileDescription#

Describe a pipe by either length and inclination or by X and Y coordinates.

Variables:
  • length_and_elevation – A list of points with the length and elevation. The first item MUST always be (0, 0), otherwise a ValueError is raised.

  • x_and_y – A list of points (X, Y), describing the coordinates.

Note

x_and_y and length_and_elevation are mutually exclusive.

Definitions

class ProfileDescription
    x_and_y: Optional[XAndYDescription] = None
    length_and_elevation: Optional[LengthAndElevationDescription] = None
x_and_y: x_and_y_description_schema # optional
length_and_elevation: length_and_elevation_description_schema # optional
class XAndYDescription#

Describe a pipe with a sequence of coordinates.

Definitions

class XAndYDescription
    x: Array| ArrayExpression
    y: Array| ArrayExpression
x:
    values: [number | expr]
    unit: str
y:
    values: [number | expr]
    unit: str
class LengthAndElevationDescription#

Describe a pipe with length and elevation.

Definitions

class LengthAndElevationDescription
    length: Array| ArrayExpression
    elevation: Array| ArrayExpression
length:
    values: [number | expr]
    unit: str
elevation:
    values: [number | expr]
    unit: str

Environment#

class EnvironmentDescription#

Definitions

class EnvironmentDescription
    thermal_model: PipeThermalModelType = PipeThermalModelType.SteadyState
    position_input_mode: PipeThermalPositionInput = PipeThermalPositionInput.Md
    reference_y_coordinate: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    md_properties_table: List[EnvironmentPropertyDescription] = []
    tvd_properties_table: List[EnvironmentPropertyDescription] = []
thermal_model: PipeThermalModelType # optional
position_input_mode: PipeThermalPositionInput # optional
reference_y_coordinate:  # optional
    number | expr
    unit: str
md_properties_table:  # optional
    - environment_property_description_schema
tvd_properties_table:  # optional
    - environment_property_description_schema
class EnvironmentPropertyDescription#

Definitions

class EnvironmentPropertyDescription
    position: Scalar| ScalarExpression
    temperature: Scalar| ScalarExpression
    type: PipeEnvironmentHeatTransferCoefficientModelType
    heat_transfer_coefficient: Scalar| ScalarExpression = Scalar(0.0, 'W/m2.K', 'heat transfer coefficient')
    overall_heat_transfer_coefficient: Scalar| ScalarExpression = Scalar(0.0, 'W/m2.K', 'heat transfer coefficient')
    fluid_velocity: Scalar| ScalarExpression = Scalar(0.0, 'm/s', 'velocity')
position:
    number | expr
    unit: str
temperature:
    number | expr
    unit: str
type: PipeEnvironmentHeatTransferCoefficientModelType
heat_transfer_coefficient:  # optional
    number | expr
    unit: str
overall_heat_transfer_coefficient:  # optional
    number | expr
    unit: str
fluid_velocity:  # optional
    number | expr
    unit: str

Equipment#

class EquipmentDescription#

Definitions

class EquipmentDescription
    mass_sources: Dict[str, MassSourceEquipmentDescription] = {}
    pumps: Dict[str, PumpEquipmentDescription] = {}
    valves: Dict[str, ValveEquipmentDescription] = {}
    reservoir_inflows: Dict[str, ReservoirInflowEquipmentDescription] = {}
    heat_sources: Dict[str, HeatSourceEquipmentDescription] = {}
    compressors: Dict[str, CompressorEquipmentDescription] = {}
    leaks: Dict[str, LeakEquipmentDescription] = {}
    pigs: Dict[str, PigEquipmentDescription] = {}
mass_sources:  # optional
    string: mass_source_equipment_description_schema
pumps:  # optional
    string: pump_equipment_description_schema
valves:  # optional
    string: valve_equipment_description_schema
reservoir_inflows:  # optional
    string: reservoir_inflow_equipment_description_schema
heat_sources:  # optional
    string: heat_source_equipment_description_schema
compressors:  # optional
    string: compressor_equipment_description_schema
leaks:  # optional
    string: leak_equipment_description_schema
pigs:  # optional
    string: pig_equipment_description_schema
class AnnulusEquipmentDescription#

Definitions

class AnnulusEquipmentDescription
    leaks: Dict[str, LeakEquipmentDescription] = {}
    gas_lift_valves: Dict[str, GasLiftValveEquipmentDescription] = {}
leaks:  # optional
    string: leak_equipment_description_schema
gas_lift_valves:  # optional
    string: gas_lift_valve_equipment_description_schema
class MassSourceEquipmentDescription#

Definitions

class MassSourceEquipmentDescription
    fluid: Optional[str] = None
    tracer_mass_fraction: Array| ArrayExpression = Array(dimensionless, [], -)
    temperature_input_type: MultiInputType = MultiInputType.Constant
    temperature: Scalar| ScalarExpression = Scalar(288.6, 'K', 'temperature')
    temperature_curve: Curve = Curve(K, s)[]
    source_type: MassSourceType = MassSourceType.MassFlowRates
    volumetric_flow_rates_std_input_type: MultiInputType = MultiInputType.Constant
    volumetric_flow_rates_std: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {}
    volumetric_flow_rates_std_curve: Dict[str, <class 'barril.curve.curve.Curve'>] = {}
    mass_flow_rates_input_type: MultiInputType = MultiInputType.Constant
    mass_flow_rates: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {}
    mass_flow_rates_curve: Dict[str, <class 'barril.curve.curve.Curve'>] = {}
    total_mass_flow_rate_input_type: MultiInputType = MultiInputType.Constant
    total_mass_flow_rate: Scalar| ScalarExpression = Scalar(1.0, 'kg/s', 'mass flow rate')
    total_mass_flow_rate_curve: Curve = Curve(kg/s, s)[]
    water_cut_input_type: MultiInputType = MultiInputType.Constant
    water_cut: Scalar| ScalarExpression = Scalar(0.0, '-', 'volume fraction')
    water_cut_curve: Curve = Curve(-, s)[]
    gas_oil_ratio_input_type: MultiInputType = MultiInputType.Constant
    gas_oil_ratio: Scalar| ScalarExpression = Scalar(0.0, 'sm3/sm3', 'standard volume per standard volume')
    gas_oil_ratio_curve: Curve = Curve(sm3/sm3, s)[]
    position: Scalar| ScalarExpression
fluid: string  # optional
tracer_mass_fraction:  # optional
    values: [number | expr]
    unit: str
temperature_input_type: MultiInputType # optional
temperature:  # optional
    number | expr
    unit: str
temperature_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
source_type: MassSourceType # optional
volumetric_flow_rates_std_input_type: MultiInputType # optional
volumetric_flow_rates_std:  # optional
    string: Scalar | ScalarExpression
volumetric_flow_rates_std_curve:  # optional
    string: Curve
mass_flow_rates_input_type: MultiInputType # optional
mass_flow_rates:  # optional
    string: Scalar | ScalarExpression
mass_flow_rates_curve:  # optional
    string: Curve
total_mass_flow_rate_input_type: MultiInputType # optional
total_mass_flow_rate:  # optional
    number | expr
    unit: str
total_mass_flow_rate_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
water_cut_input_type: MultiInputType # optional
water_cut:  # optional
    number | expr
    unit: str
water_cut_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
gas_oil_ratio_input_type: MultiInputType # optional
gas_oil_ratio:  # optional
    number | expr
    unit: str
gas_oil_ratio_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
position:
    number | expr
    unit: str
class PumpEquipmentDescription#

Definitions

class PumpEquipmentDescription
    position: Scalar| ScalarExpression
    flow_direction: FlowDirection = FlowDirection.Forward
    thermal_efficiency: Scalar| ScalarExpression = Scalar(100.0, '%', 'dimensionless')
    thermal_efficiency_model: PumpThermalEfficiencyModel = PumpThermalEfficiencyModel.Constant
    type: PumpType = PumpType.ConstantPressure
    pressure_boost: Scalar| ScalarExpression = Scalar(100000.0, 'Pa', 'pressure')
    plunger_diameter: Scalar| ScalarExpression = Scalar(0.01, 'm', 'length')
    stroke_length: Scalar| ScalarExpression = Scalar(1.0, 'm', 'length')
    pump_speed: Scalar| ScalarExpression = Scalar(10.0, 'spm', 'stroke frequency')
    slip_coefficient: Scalar| ScalarExpression = Scalar(1e-12, 'm3/Pa.s', 'slip coefficient')
    volumetric_efficiency: Scalar| ScalarExpression = Scalar(1.0, '-', 'dimensionless')
    table: TablePumpDescription = TablePumpDescription()
    speed_curve: SpeedCurveDescription = SpeedCurveDescription()
    speed_curve_interpolation_type: InterpolationType = InterpolationType.Constant
    speed_type: PumpSpeedType = PumpSpeedType.Constant
    constant_speed: Scalar| ScalarExpression = Scalar(500.0, 'rpm', 'angle per time')
    pcp_reference_viscosity: Scalar| ScalarExpression = Scalar(0.001, 'Pa.s', 'dynamic viscosity')
    pcp_reference_density: Scalar| ScalarExpression = Scalar(1000.0, 'kg/m3', 'density')
    pcp_reference_temperature: Scalar| ScalarExpression = Scalar(60.0, 'degC', 'temperature')
    pcp_viscosity_correction_enabled: bool = False
    esp_table: TablePumpDescription = TablePumpDescription()
    esp_speed_input_type: MultiInputType = MultiInputType.Constant
    esp_speed: Scalar| ScalarExpression = Scalar(0.0, 'Hz', 'angle per time')
    esp_speed_curve: Curve = Curve(Hz, s)[]
    esp_number_of_stages: int = 1
    esp_reference_density: Scalar| ScalarExpression = Scalar(0.0, 'kg/m3', 'density')
    esp_manufacturer: Optional[str] = ''
    esp_model: str = ''
    esp_viscosity_model: PumpViscosityModel = PumpViscosityModel.NoModel
    density_correction_enabled: bool = False
position:
    number | expr
    unit: str
flow_direction: FlowDirection # optional
thermal_efficiency:  # optional
    number | expr
    unit: str
thermal_efficiency_model: PumpThermalEfficiencyModel # optional
type: PumpType # optional
pressure_boost:  # optional
    number | expr
    unit: str
plunger_diameter:  # optional
    number | expr
    unit: str
stroke_length:  # optional
    number | expr
    unit: str
pump_speed:  # optional
    number | expr
    unit: str
slip_coefficient:  # optional
    number | expr
    unit: str
volumetric_efficiency:  # optional
    number | expr
    unit: str
table: table_pump_description_schema # optional
speed_curve: speed_curve_description_schema # optional
speed_curve_interpolation_type: InterpolationType # optional
speed_type: PumpSpeedType # optional
constant_speed:  # optional
    number | expr
    unit: str
pcp_reference_viscosity:  # optional
    number | expr
    unit: str
pcp_reference_density:  # optional
    number | expr
    unit: str
pcp_reference_temperature:  # optional
    number | expr
    unit: str
pcp_viscosity_correction_enabled: boolean  # optional
esp_table: table_pump_description_schema # optional
esp_speed_input_type: MultiInputType # optional
esp_speed:  # optional
    number | expr
    unit: str
esp_speed_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
esp_number_of_stages: number  # optional
esp_reference_density:  # optional
    number | expr
    unit: str
esp_manufacturer: string  # optional
esp_model: string  # optional
esp_viscosity_model: PumpViscosityModel # optional
density_correction_enabled: boolean  # optional
class ValveEquipmentDescription#

Definitions

class ValveEquipmentDescription
    position: Scalar| ScalarExpression
    type: ValveType = ValveType.PerkinsValve
    diameter: Scalar| ScalarExpression = Scalar(0.01, 'm', 'diameter')
    flow_direction: FlowDirection = FlowDirection.Forward
    opening_type: ValveOpeningType = ValveOpeningType.ConstantOpening
    opening: Scalar| ScalarExpression = Scalar(100.0, '%', 'dimensionless')
    opening_curve_interpolation_type: InterpolationType = InterpolationType.Constant
    opening_curve: Curve = Curve(-, s)[]
    cv_table: CvTableDescription = CvTableDescription()
position:
    number | expr
    unit: str
type: ValveType # optional
diameter:  # optional
    number | expr
    unit: str
flow_direction: FlowDirection # optional
opening_type: ValveOpeningType # optional
opening:  # optional
    number | expr
    unit: str
opening_curve_interpolation_type: InterpolationType # optional
opening_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
cv_table: cv_table_description_schema # optional
class ReservoirInflowEquipmentDescription#

Definitions

class ReservoirInflowEquipmentDescription
    pressure_input_type: MultiInputType = MultiInputType.Constant
    pressure: Scalar| ScalarExpression = Scalar(100000.0, 'Pa', 'pressure')
    pressure_curve: Curve = Curve(Pa, s)[]
    temperature_input_type: MultiInputType = MultiInputType.Constant
    temperature: Scalar| ScalarExpression = Scalar(288.6, 'K', 'temperature')
    temperature_curve: Curve = Curve(K, s)[]
    fluid: Optional[str] = None
    tracer_mass_fraction: Array| ArrayExpression = Array(dimensionless, [], -)
    split_type: MassInflowSplitType = MassInflowSplitType.ConstantVolumeFraction
    mass_fractions_input_type: MultiInputType = MultiInputType.Constant
    mass_fractions: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {}
    mass_fractions_curve: Dict[str, <class 'barril.curve.curve.Curve'>] = {}
    volume_fractions_input_type: MultiInputType = MultiInputType.Constant
    volume_fractions: Dict[str, barril.units._scalar.Scalar | alfasim_sdk._internal.alfacase.case_description_attributes.ScalarExpression] = {}
    volume_fractions_curve: Dict[str, <class 'barril.curve.curve.Curve'>] = {}
    gas_liquid_ratio_input_type: MultiInputType = MultiInputType.Constant
    gas_liquid_ratio: Scalar| ScalarExpression = Scalar(0.0, 'sm3/sm3', 'standard volume per standard volume')
    gas_liquid_ratio_curve: Curve = Curve(sm3/sm3, s)[]
    gas_oil_ratio_input_type: MultiInputType = MultiInputType.Constant
    gas_oil_ratio: Scalar| ScalarExpression = Scalar(0.0, 'sm3/sm3', 'standard volume per standard volume')
    gas_oil_ratio_curve: Curve = Curve(sm3/sm3, s)[]
    water_cut_input_type: MultiInputType = MultiInputType.Constant
    water_cut: Scalar| ScalarExpression = Scalar(0.0, '-', 'volume fraction')
    water_cut_curve: Curve = Curve(-, s)[]
    start: Scalar| ScalarExpression
    length: Scalar| ScalarExpression
    productivity_ipr: Optional[str] = None
    injectivity_ipr: Optional[str] = None
pressure_input_type: MultiInputType # optional
pressure:  # optional
    number | expr
    unit: str
pressure_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
temperature_input_type: MultiInputType # optional
temperature:  # optional
    number | expr
    unit: str
temperature_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
fluid: string  # optional
tracer_mass_fraction:  # optional
    values: [number | expr]
    unit: str
split_type: MassInflowSplitType # optional
mass_fractions_input_type: MultiInputType # optional
mass_fractions:  # optional
    string: Scalar | ScalarExpression
mass_fractions_curve:  # optional
    string: Curve
volume_fractions_input_type: MultiInputType # optional
volume_fractions:  # optional
    string: Scalar | ScalarExpression
volume_fractions_curve:  # optional
    string: Curve
gas_liquid_ratio_input_type: MultiInputType # optional
gas_liquid_ratio:  # optional
    number | expr
    unit: str
gas_liquid_ratio_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
gas_oil_ratio_input_type: MultiInputType # optional
gas_oil_ratio:  # optional
    number | expr
    unit: str
gas_oil_ratio_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
water_cut_input_type: MultiInputType # optional
water_cut:  # optional
    number | expr
    unit: str
water_cut_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
start:
    number | expr
    unit: str
length:
    number | expr
    unit: str
productivity_ipr: string  # optional
injectivity_ipr: string  # optional
class HeatSourceEquipmentDescription#

Definitions

class HeatSourceEquipmentDescription
    start: Scalar| ScalarExpression
    length: Scalar| ScalarExpression
    power_input_type: MultiInputType = MultiInputType.Constant
    power: Scalar| ScalarExpression = Scalar(0.0, 'W', 'power')
    power_curve: Curve = Curve(W, s)[]
start:
    number | expr
    unit: str
length:
    number | expr
    unit: str
power_input_type: MultiInputType # optional
power:  # optional
    number | expr
    unit: str
power_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
class CompressorEquipmentDescription#

Definitions

class CompressorEquipmentDescription
    position: Scalar| ScalarExpression
    speed_curve: SpeedCurveDescription = SpeedCurveDescription()
    reference_pressure: Scalar| ScalarExpression = Scalar(1.0, 'bar', 'pressure')
    reference_temperature: Scalar| ScalarExpression = Scalar(25.0, 'degC', 'temperature')
    constant_speed: Scalar| ScalarExpression = Scalar(500.0, 'rpm', 'angle per time')
    compressor_type: CompressorSpeedType = CompressorSpeedType.SpeedCurve
    speed_curve_interpolation_type: InterpolationType = InterpolationType.Constant
    flow_direction: FlowDirection = FlowDirection.Forward
    table: CompressorPressureTableDescription = CompressorPressureTableDescription()
position:
    number | expr
    unit: str
speed_curve: speed_curve_description_schema # optional
reference_pressure:  # optional
    number | expr
    unit: str
reference_temperature:  # optional
    number | expr
    unit: str
constant_speed:  # optional
    number | expr
    unit: str
compressor_type: CompressorSpeedType # optional
speed_curve_interpolation_type: InterpolationType # optional
flow_direction: FlowDirection # optional
table: compressor_pressure_table_description_schema # optional
class SpeedCurveDescription#

Definitions

class SpeedCurveDescription
    time: Array| ArrayExpression = Array(time, [0], s)
    speed: Array| ArrayExpression = Array(frequency, [500], rpm)
time:  # optional
    values: [number | expr]
    unit: str
speed:  # optional
    values: [number | expr]
    unit: str
class CompressorPressureTableDescription#
Variables:

corrected_mass_flow_rate_entries – Equivalent to m * (T/T_ref)**0.5 / (P/P_ref)

Definitions

class CompressorPressureTableDescription
    speed_entries: Array| ArrayExpression = Array(frequency, [0], rpm)
    corrected_mass_flow_rate_entries: Array| ArrayExpression = Array(mass flow rate, [0], kg/s)
    pressure_ratio_table: Array| ArrayExpression = Array(dimensionless, [1.0], -)
    isentropic_efficiency_table: Array| ArrayExpression = Array(dimensionless, [1.0], -)
speed_entries:  # optional
    values: [number | expr]
    unit: str
corrected_mass_flow_rate_entries:  # optional
    values: [number | expr]
    unit: str
pressure_ratio_table:  # optional
    values: [number | expr]
    unit: str
isentropic_efficiency_table:  # optional
    values: [number | expr]
    unit: str
class LeakEquipmentDescription#

Definitions

class LeakEquipmentDescription
    position: Scalar| ScalarExpression
    location: OutputAttachmentLocation = OutputAttachmentLocation.Main
    model: LeakModel = LeakModel.Orifice
    type: LeakType = LeakType.Internal
    diameter: Scalar| ScalarExpression = Scalar(0.05, 'm', 'diameter')
    discharge_coefficient: Scalar| ScalarExpression = Scalar(0.85, '-', 'dimensionless')
    cv_table: CvTableDescription = CvTableDescription()
    gas_lift_valve_opening_type: GasLiftValveOpeningType = GasLiftValveOpeningType.MinimumPressureDifference
    minimum_pressure_difference: Scalar| ScalarExpression = Scalar(0.0, 'Pa', 'pressure')
    bellows_reference_pressure: Scalar| ScalarExpression = Scalar(10.0, 'bar', 'pressure')
    bellows_reference_temperature: Scalar| ScalarExpression = Scalar(15.0, 'degC', 'temperature')
    port_to_bellows_area_ratio: Scalar| ScalarExpression = Scalar(0.1, '-', 'dimensionless')
    opening_input_type: MultiInputType = MultiInputType.Constant
    opening: Scalar| ScalarExpression = Scalar(1.0, '-', 'dimensionless')
    opening_curve: Curve = Curve(-, s)[]
    target_pipe_name: Optional[str] = None
    target_position: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    target_location: OutputAttachmentLocation = OutputAttachmentLocation.Main
    backflow: bool = False
    backpressure: Scalar| ScalarExpression = Scalar(1.0, 'bar', 'pressure')
position:
    number | expr
    unit: str
location: OutputAttachmentLocation # optional
model: LeakModel # optional
type: LeakType # optional
diameter:  # optional
    number | expr
    unit: str
discharge_coefficient:  # optional
    number | expr
    unit: str
cv_table: cv_table_description_schema # optional
gas_lift_valve_opening_type: GasLiftValveOpeningType # optional
minimum_pressure_difference:  # optional
    number | expr
    unit: str
bellows_reference_pressure:  # optional
    number | expr
    unit: str
bellows_reference_temperature:  # optional
    number | expr
    unit: str
port_to_bellows_area_ratio:  # optional
    number | expr
    unit: str
opening_input_type: MultiInputType # optional
opening:  # optional
    number | expr
    unit: str
opening_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
target_pipe_name: string  # optional
target_position:  # optional
    number | expr
    unit: str
target_location: OutputAttachmentLocation # optional
backflow: boolean  # optional
backpressure:  # optional
    number | expr
    unit: str
class PigEquipmentDescription#

Definitions

class PigEquipmentDescription
    diameter: Scalar| ScalarExpression
    position: Scalar| ScalarExpression
    launch_times: Array| ArrayExpression = Array(time, [0.0], s)
    mass_input_type: MultiInputType = MultiInputType.Constant
    mass: Scalar| ScalarExpression = Scalar(140.0, 'kg', 'mass')
    mass_curve: Curve = Curve(kg, s)[]
    static_force_input_type: MultiInputType = MultiInputType.Constant
    static_force: Scalar| ScalarExpression = Scalar(1000.0, 'N', 'force')
    static_force_curve: Curve = Curve(N, s)[]
    wall_friction_input_type: MultiInputType = MultiInputType.Constant
    wall_friction: Scalar| ScalarExpression = Scalar(1000.0, 'N.s/m', 'force per velocity')
    wall_friction_curve: Curve = Curve(N.s/m, s)[]
    linear_friction_input_type: MultiInputType = MultiInputType.Constant
    linear_friction: Scalar| ScalarExpression = Scalar(10.0, 'N.s/m', 'force per velocity')
    linear_friction_curve: Curve = Curve(N.s/m, s)[]
    quadratic_friction_input_type: MultiInputType = MultiInputType.Constant
    quadratic_friction: Scalar| ScalarExpression = Scalar(0.0, 'N.s2/m2', 'force per velocity squared')
    quadratic_friction_curve: Curve = Curve(N.s2/m2, s)[]
    trap_mode: PigTrappingMode = PigTrappingMode.Automatic
    trap_position: Scalar| ScalarExpression = Scalar(0.0, 'm', 'length')
    trap_pipe_name: Optional[str] = None
    route_mode: PigRoutingMode = PigRoutingMode.Automatic
    pipe_route_names: Optional[List[str]] = None
diameter:
    number | expr
    unit: str
position:
    number | expr
    unit: str
launch_times:  # optional
    values: [number | expr]
    unit: str
mass_input_type: MultiInputType # optional
mass:  # optional
    number | expr
    unit: str
mass_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
static_force_input_type: MultiInputType # optional
static_force:  # optional
    number | expr
    unit: str
static_force_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
wall_friction_input_type: MultiInputType # optional
wall_friction:  # optional
    number | expr
    unit: str
wall_friction_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
linear_friction_input_type: MultiInputType # optional
linear_friction:  # optional
    number | expr
    unit: str
linear_friction_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
quadratic_friction_input_type: MultiInputType # optional
quadratic_friction:  # optional
    number | expr
    unit: str
quadratic_friction_curve:  # optional
    image:
        values: [number]
        unit: string
    domain:
        values: [number]
        unit: string
trap_mode: PigTrappingMode # optional
trap_position:  # optional
    number | expr
    unit: str
trap_pipe_name: string  # optional
route_mode: PigRoutingMode # optional
pipe_route_names:  # optional
    - str

Tables#

class TablePumpDescription#
Variables:
  • speeds – Pump rotational speed values

  • void_fractions – Pump void fraction values

  • flow_rates – Pump flow rate values

  • pressure_boosts – Pump pressure boost values

  • heads – Pump head values. Using SI units, H [m] = P [Pa] * Q [m^3/s] / rho_ref [kg/m^3] / g [m/s^2] rho_ref = 1000.0 [kg/m^3] g = 9.81 [m/s^2]

  • efficiencies – Pump efficiency values

  • powers – Pump power values. There a relation between other pump variables and power. In SI units: BHP [W] = P [Pa] * Q [m^3/s] / eff [%]

  • torques – Pump torque values. Used for PCP pumps.

Definitions

class TablePumpDescription
    speeds: Array| ArrayExpression = Array(frequency, [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 400.0, 400.0, 400.0, 400.0, 400.0, 400.0, 400.0, 400.0, 400.0, 400.0, 400.0, 400.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0], rpm)
    void_fractions: Array| ArrayExpression = Array(dimensionless, [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], -)
    flow_rates: Array| ArrayExpression = Array(volume flow rate, [0.0, 0.05, 0.1, 0.15, 0.2, 0.3, 0.0, 0.05, 0.1, 0.15, 0.2, 0.3, 0.0, 0.05, 0.1, 0.15, 0.2, 0.3, 0.0, 0.05, 0.1, 0.15, 0.2, 0.3, 0.0, 0.05, 0.1, 0.15, 0.2, 0.3, 0.0, 0.05, 0.1, 0.15, 0.2, 0.3], m3/s)
    pressure_boosts: Array| ArrayExpression = Array(pressure, [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 12.0, 10.0, 9.0, 7.5, 5.0, 0.0, 10.0, 9.0, 8.0, 6.0, 3.5, 0.0, 14.0, 12.0, 10.0, 8.0, 5.5, 0.0, 13.5, 11.2, 9.5, 7.6, 5.2, 0.0], bar)
    heads: Array| ArrayExpression = Array(length, [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 122.32415902140673, 101.9367991845056, 91.74311926605505, 76.4525993883792, 50.9683995922528, 0.0, 101.9367991845056, 91.74311926605505, 81.54943934760449, 61.162079510703364, 35.67787971457696, 0.0, 142.71151885830784, 122.32415902140673, 101.9367991845056, 81.54943934760449, 56.065239551478086, 0.0, 137.61467889908258, 114.16921508664628, 96.83995922528032, 77.47196738022426, 53.00713557594292, 0.0], m)
    efficiencies: Array| ArrayExpression = Array(dimensionless, [0.0, 0.311, 0.511, 0.6, 0.578, 0.2, 0.0, 0.28, 0.46, 0.54, 0.52, 0.18, 0.0, 0.311, 0.511, 0.6, 0.578, 0.2, 0.0, 0.28, 0.46, 0.54, 0.52, 0.18, 0.0, 0.311, 0.511, 0.6, 0.578, 0.2, 0.0, 0.28, 0.46, 0.54, 0.52, 0.18], %)
    powers: Array| ArrayExpression = Array(power, [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 160714.29, 160714.29, 176086.96, 187500.0, 173076.92, 0.0, 160714.29, 160714.29, 173913.04, 166666.67, 134615.38, 0.0, 192857.14, 192857.14, 195652.17, 200000.0, 190384.62, 0.0, 200000.0, 200000.0, 206521.74, 211111.11, 200000.0, 0.0], W)
    torques: Array| ArrayExpression = Array(moment of force, [], N.m)
speeds:  # optional
    values: [number | expr]
    unit: str
void_fractions:  # optional
    values: [number | expr]
    unit: str
flow_rates:  # optional
    values: [number | expr]
    unit: str
pressure_boosts:  # optional
    values: [number | expr]
    unit: str
heads:  # optional
    values: [number | expr]
    unit: str
efficiencies:  # optional
    values: [number | expr]
    unit: str
powers:  # optional
    values: [number | expr]
    unit: str
torques:  # optional
    values: [number | expr]
    unit: str
class CvTableDescription#

Definitions

class CvTableDescription
    opening: Array| ArrayExpression = Array(dimensionless, [], -)
    flow_coefficient: Array| ArrayExpression = Array(flow coefficient, [], (galUS/min)/(psi^0.5))
opening:  # optional
    values: [number | expr]
    unit: str
flow_coefficient:  # optional
    values: [number | expr]
    unit: str

Multiple Runs#

class MultipleRunsDescription#

The MultipleRunsDescription serves as a configuration schema for executing parametric analyses. It allows users to transform a static simulation into a dynamic one by defining a set of base variables and their corresponding variation.

For instance, if user define the following scenario in ALFACASE file:

multiple_runs:
    variables:
        A: 1.0
        B: 2.0
    runs:
        1:
            A: 1.1
            b: 2.1
        2:
            A: 3
            B: 4

physics_description:
    emulsion_woelflin_a: A
    emulsion_woelflin_b: B

Generates three simulation runs: a baseline using defined variable values, and two variants based on the values specified for parameter A and B.

Definitions

class MultipleRunsDescription
    variables: Dict[str, Any] = {}
    runs: Dict[str, dict[str, float]] = {}
variables:  # optional
    string: Any
runs:  # optional
    string: dict

Plugins#

Plugin support in ALFAcase is experimental and subject to change.

class PluginDescription#

Results#

class Results(alfacase_data_folder)#

Allows reading trend and profile curves from alfasim simulation results using network element names instead internal alfasim ids.

class ALFASimResultMetadata(profiles, trends, time_sets, time_sets_unit, time_steps_boundaries, time_set_info, app_version_info)#
Variables:
  • profiles – Map output keys (profile id and property id) to metadata entries.

  • trends – Map output keys (trend id and property id) to metadata entries.

  • time_sets – Map sourced time set keys (tuples of relevant base time sets) to a list of list of the time step values.

  • time_sets_unit – The unit used by all time sets.

  • time_steps_boundaries – The time step boundaries index where this metadata object is relevant. The first item is the starting time step index (including) and the second is the ending time step index (excluding).

  • time_set_info – Map output type to maps of base time steps to TimeSetInfoItem.

  • app_version_info – Map “base time steps” to the application version used in the simulation.