IFM Classes

ifm.Budget

class ifm.Budget

ifm.BudgetResultEx

class ifm.BudgetResultEx

ifm.FemMesh

class ifm.FemMesh

The FemMesh class provides a mesh to build a FEFLOW cross-section. Such mesh does not coincide with the mesh already saved in the FEFLOW model. It can be obtained by calling the ifm.FeflowDoc.createMeshFromSurfaceLine method.

Examples

>>> femmesh = doc.createMeshFromSurfaceLine()
getCoor(int node)

Retrieve the coordinates of nodes in newly created mesh

Parameters:node (int) – Node ID to process
Returns:X, Y, Z coordinates Physical unit is [m]
Return type:float (x3)
getDualNodes(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getExtent()

(Help)

Returns:xmin,xmax,ymin,ymax,zmin,zmax Physical unit is [m]
Return type:double (x6)
getLayerOffset(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNodeFromDual(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNodes(element)

(Help)

Parameters:int – Element number
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfDimensions(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfDualNodes(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfElementNodes(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfElementNodes2D(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfElements(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfElementsPerLayer(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfLayers(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfNodes(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfNodesPerElement(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfNodesPerElement2D(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfNodesPerSlice(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getNumberOfSlices(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getOrigin(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getSliceOffset(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getValue(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
getValues(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
hasHexahedra(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
hasMixedElementTypes(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
hasTetrahedra(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
isContinuous(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
isParabolic(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>
isPrismatic(xxx)

(Help)

Parameters:of parameters) ((list) – (explanation of parameter)
Returns:(explanation of returns)
Return type:(list of returns)

Examples

>>>
>>>

ifm.LookupTable

class ifm.LookupTable

The LookupTable class provides access to the LookupTable of a FEFLOW model (fem or dac file). It can be obtained by calling the ifm.FeflowDoc.getLookupTable method.

Examples

>>> lookup = doc.getLookupTable()
addMaterial(material_name)

Adds a material (=row) to the Lookup Table.

Parameters:material_name (str) – the name of the material
Returns:The material_id of the material created.
Return type:int

Examples

>>> lookup.addMaterial("Sand")
>>> lookup.addMaterial("Clay")
>>> lookup.addMaterial("Bedrock")
findMaterial(material_name)

Returns the material_id of the material with the given name.

Parameters:material_name (str) – the name of the material
Returns:the material ID, or -1 if material was not found.
Return type:int

Examples

>>> mat_id = lookup.findMaterial("Sand")
>>> print(mat_id)
>>> 1
getMaterialName(material_id)

Returns the name of the material given by the material_id.

Parameters:material_id (int) – The material id
Returns:The name of the material
Return type:str
getMaterials()

Returns a dictionary with all material names and material ids.

Returns:dictionary { str : int } with name : id pairs
Return type:dict

Examples

>>> print(lookup.getMaterials())
>>> {'Sand': 1, 'Clay': 2, 'Bedrock': 3}
getProperties(material_id)

Returns a dictionary with all properties defined for the material with the given ID. The key of each entry is the parameter ID (ifm.Enum.P_*) and the value of the parameter.

Parameters:material_id (int) – The material id
Returns:dictionary { int : float } with parameter_id : parameter_value pairs, where the parameter_id corresponds to the constants of ifm.Enum.P_*.
Return type:dict

Examples

>>> print(lookup.getProperties(lookup.findMaterial("Clay")))
>>> {100: 1e-06}
getPropertyValue(material_id, parameter)

Returns the value of a parameter given by the material_id and the parameter ID (ifm.Enum.P_*).

Parameters:
  • material_id (int) – The material id
  • parameter (int) – The parameter identifier (as defined in ifm.Enum.P_*)
Returns:

the parameter value.

Return type:

float

Examples

>>> value = lookup.getPropertyValue(lookup.findMaterial("Clay"), ifm.Enum.P_COND)
>>> print(value)
>>> 1e-06
hasProperty(material_id, parameter)

Checks if the value of a parameter given by the material_id and the parameter ID (ifm.Enum.P_*) exists in the table.

Parameters:
  • material_id (int) – The material id
  • parameter (int) – The parameter identifier (as defined in ifm.Enum.P_*)
Returns:

True if value exists, False otherwise.

Return type:

bool

moveMaterial(material_id, new_position)

Moves a material to a new position in the lookup table.

Parameters:
  • material_id (int) – The material id
  • new_position (int) – The new position of the material in the table. Indexing starts with zero.
removeMaterial(material_id)

Removes a material (=row of the lookup table).

Parameters:material_id (int) – The material id

Examples

>>> lookup.removeMaterial(1)
>>> lookup.removeMaterial(lookup.findMaterial("Sand"))
removeProperty(material_id, parameter)

Removes a property of a material from the table.

Parameters:
  • material_id (int) – The material id
  • parameter (int) – The parameter identifier (as defined in ifm.Enum.P_*)

Examples

>>> lookup.removeProperty(lookup.findMaterial("Clay"),  ifm.Enum.P_COND)
setMaterialId(material_id, new_material_id)

Sets a new material_id for a specified material.

Parameters:
  • material_id (int) – The material id
  • new_material_id (int) – The material id

Examples

>>> lookup.setMaterialId(lookup.findMaterial("Sand"), 10)
setPropertyValue(material_id, parameter, values)

Sets or overwrites a new property value for a given material and parameter.

Parameters:
  • material_id (int) – The material id
  • parameter (int) – The parameter identifier (as defined in ifm.Enum.P_*)
  • value (float) – The value to be set.

Examples

>>> lookup.setPropertyValue(lookup.findMaterial("Clay"), ifm.Enum.P_COND, 1e-6)

ifm.MLWInfo

class ifm.MLWInfo
getBottomElevation()

Get Bottom elevation of multi-layer well [].

Returns:bottom elevation in [m]
Return type:float
getBottomNode()

Biggest node index with z[n] > topElevation

Returns:index of bottom node
Return type:int
getId()

get index of multi-layer well

Returns:index of multi-layer well
Return type:int
getName()

Name attribute of multi-layer well

Returns:name of multi-layer well
Return type:str
getRadius()

Radius of multi-layer well [m]

Returns:radius of multi-layer well
Return type:float
getTopElevation()

Top elevation of multi-layer well [m]

Returns:top elevation of multi-layer well
Return type:float
getTopNode()

Smallest node index with z[n] < topElevation

Returns:top node of multi-layer well
Return type:int

ifm.NodalBudget

class ifm.NodalBudget
getBorderIn()

Border budget component (1st + 2nd + 3rd kind BCs)

Returns:flow rate, mass flux or heat flux
Return type:float
getBorderOut()

Border budget component (1st + 2nd + 3rd kind BCs)

Returns:flow rate, mass flux or heat flux
Return type:float
getBulkIn()

Distributed source/sink budget component

Returns:flow rate, mass flux or heat flux
Return type:float
getBulkOut()

Distributed source/sink budget component

Returns:flow rate, mass flux or heat flux
Return type:float
getCauchyIn()

BC Cauchy budget component (3rd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getCauchyOut()

BC Cauchy budget component (3rd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getConvIn()

Convective part

Returns:flow rate, mass flux or heat flux
Return type:float
getConvOut()

Convective part

Returns:flow rate, mass flux or heat flux
Return type:float
getDirichletIn()

BC Dirichlet budget component (1st kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getDirichletOut()

BC Dirichlet budget component (1st kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getNetIn()

Net imbalance: border + wells + bulk + stor

Returns:flow rate, mass flux or heat flux
Return type:float
getNetOut()

Net imbalance: border + wells + bulk + stor

Returns:flow rate, mass flux or heat flux
Return type:float
getNeumannIn()

BC Neumann budget component (2nd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getNeumannOut()

BC Neumann budget component (2nd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getNodalValues()

Nodal budget values

Returns:flow rate, mass flux or heat flux
Return type:float
getStorIn()

Storage change (Storativity/Compressibility/Capacity budget component)

Returns:flow rate, mass flux or heat flux
Return type:float
getStorOut()

Storage change (Storativity/Compressibility/Capacity budget component)

Returns:flow rate, mass flux or heat flux
Return type:float
getWellIn()

Well budget component (4th kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getWellOut()

Well budget component (4th kind)

Returns:flow rate, mass flux or heat flux
Return type:float

ifm.Parameter

class ifm.Parameter

Class representing a FEFLOW Parameter.

The class does not provide functionality but can be used as a parameter type for a number of IFM API functions.

Examples

>>> par = doc.getParameter(ifm.Enum.P_CONC, "Potassium") # get the concentration of the species Potassium.
>>> values = doc.getParamValues(par)  # use the object as argument

ifm.ParticleTracer

class ifm.ParticleTracer

Class providing access to FEFLOW’s particle Tracing functionality.

generatePathLine(x, y[, z])

Generate pathline from seed point using current settings.

Parameters:
  • x (float) – x-coordinate of the seed point.
  • y (float) – y-coordinate of the seed point.
  • z (float) – z-coordinate of the seed point. 3D problems only.
Returns:

The trajectory of the particle as a list of (x, y, [z], Tau) tuples. z is returned for 3D problems only. Travel time Tau is relative to current time step for streamlines / random walks (tracking mode = ifm.Enum.PT_MODE_STEADY) and relative to start time set by ParticleTracer.setInitialTime() for pathlines / random walk peridos (tracking mode = ifm.Enum.PT_MODE_UNSTEADY) Returns None if track is empty.

Return type:

list or None

getAAxis_pitchParameter()

Get Axisymmetry axis pitch angle as a parameter (for random-walk tracking)

Returns:Axisymmetry axis pitch angle
Return type:ifm.Parameter
getAAxis_pitchValue()

Get Axisymmetry axis pitch angle (homogeneous, for random-walk tracking)

Returns:Axisymmetry axis pitch angle
Return type:float
getAAxis_yawParameter()

Get Axisymmetry axis yaw angle as a parameter (for random-walk tracking)

Returns:Axisymmetry axis yaw angle
Return type:ifm.Parameter
getAAxis_yawValue()

Get Axisymmetry axis yaw angle (homogeneous, for random-walk tracking)

Returns:Axisymmetry axis yaw angle
Return type:float
getAquiferThickness()

Get Aquifer thickness (homogeneous)

Returns:Aquifer thickness
Return type:float
getCompressionEnabled()

Get Compression of pathline points enabled

Returns:Compression Setting
Return type:bool
getDiffCoeffParameter()

Get Molecular-diffusion coefficient as a parameter (for random-walk tracking)

Returns:Molecular-diffusion coefficient
Return type:ifm.Parameter
getDiffCoeffValue()

Get Molecular-diffusion coefficient (homogeneous, for random-walk tracking)

Returns:Molecular-diffusion coefficient
Return type:float
getFinalTime()

Get Pathline final time [d].

Returns:final time
Return type:float
getInitialTime()

Get Pathline start time [d].

Returns:start time
Return type:float
getLongDispParameter()

Get Longitudinal dispersivity as a parameter (for random-walk tracking)

Returns:Longitudinal dispersivity
Return type:ifm.Parameter
getLongDispValue()

Get Longitudinal dispersivity (homogeneous, for random-walk tracking)

Returns:Longitudinal dispersivity
Return type:float
getLongDisp_mParameter()

Get Longitudinal dispersivity (minimum) as a parameter (for random-walk tracking)

Returns:Longitudinal dispersivity (minimum)
Return type:ifm.Parameter
getLongDisp_mValue()

Get Longitudinal dispersivity (minimum, homogeneous, for random-walk tracking)

Returns:Longitudinal dispersivity (minimum)
Return type:float
getPorosityParameter()

Get Porosity as a parameter (porosity, storativity, refdist)

Returns:Porosity
Return type:ifm.Parameter
getPorosityValue()

Get Porosity (homogeneous)

Returns:Porosity
Return type:float
getRandomWalkMethod()

Get random walk method.

Returns:random walk method
Return type:{ifm.Enum.PT_RW_BACKWARDITO, ifm.Enum.PT_RW_FORWARDITO, ifm.Enum.PT_RW_RK3ITO, ifm.Enum.PT_RW_STRATONOVICH}
getRkAccuracy()

Get Runge-Kutta integration accuracy

Returns:Runge-Kutta integration accuracy
Return type:float
getRkMaxElementSwitches()

Get Runge-Kutta max. number of element switches

Returns:Runge-Kutta max. number of element switches
Return type:int
getRkMaxStepsPerElement()

Get Runge-Kutta max. steps per element

Returns:Runge-Kutta max. steps per element
Return type:int
getRkMinStepSizeFactor()

Get Runge-Kutta min. step size factor

Returns:Runge-Kutta min. step size factor
Return type:float
getRkMinStepTime()

Get Runge-Kutta min. step time

Returns:Runge-Kutta min. step time
Return type:float
getScaleDepDispDref()

Get ScaleDepDispDref

getScaleDepDispTref()

Get ScaleDepDispTref

getSorptionParameter()

Get Henry-sorption parameter

getTrackingDirection()

Get pathline tracking direction

Returns:pathline tracking direction
Return type:{Enum.PT_DIR_FORWARD, Enum.PT_DIR_BACKWARD}
getTrackingMode()

Get pathline tracking mode

Returns:pathline tracking mode
Return type:{Enum.PT_MODE_STEADY, Enum.PT_MODE_UNSTEADY}
getTrackingType()

Get pathline tracking type

Returns:pathline tracking type
Return type:{Enum.PT_TYPE_ADVECTIVE, Enum.PT_TYPE_RW}
getTransvDispParameter()

Get Transverse dispersivity as a parameter (for random-walk tracking)

Returns:Transverse dispersivity
Return type:ifm.Parameter
getTransvDispValue()

Get Transverse dispersivity (homogeneous, for random-walk tracking)

Returns:Transverse dispersivity
Return type:float
getTransvDisp_mParameter()

Get Transverse dispersivity (minimum) as a parameter (for random-walk tracking)

Returns:Transverse dispersivity (minimum)
Return type:ifm.Parameter
getTransvDisp_mValue()

Get Transverse dispersivity (minimum, homogeneous, for random-walk tracking)

Returns:Transverse dispersivity (minimum)
Return type:float
setAAxis_pitchParameter(pitch)

Set Axisymmetry axis pitch angle as a parameter (for random-walk tracking)

Parameters:pitch (ifm.Parameter) – Axisymmetry axis pitch angle
setAAxis_pitchValue()

Set Axisymmetry axis pitch angle (homogeneous, for random-walk tracking)

Parameters:pitch (float) – Axisymmetry axis pitch angle
setAAxis_yawParameter(angle)

Set Axisymmetry axis yaw angle as a parameter (for random-walk tracking)

Parameters:angle (ifm.Parameter) – Axisymmetry axis yaw angle
setAAxis_yawValue(angle)

Set Axisymmetry axis yaw angle (homogeneous, for random-walk tracking)

Parameters:angle (float) – Axisymmetry axis yaw angle
setAquiferThickness(thickness)

Set Aquifer thickness (homogeneous)

Parameters:thickness (float) – Aquifer thickness
setCompressionEnabled(enable)

Set Compression of pathline points enabled

Parameters:enable (bool) – Compression
setDefaults()

Reset to default settings

setDiffCoeffParameter(coefficient)

Set Molecular-diffusion coefficient as a parameter (for random-walk tracking)

Parameters:coefficient (ifm.Parameter) – Molecular-diffusion coefficient
setDiffCoeffValue()

setDiffCoeffValuecoefficient(coefficient)

Set Molecular-diffusion coefficient (homogeneous, for random-walk tracking)

Parameters:coefficient (float) – Molecular-diffusion coefficient
setFinalTime(time)

Set the Pathline final time (absolute simulation time in days).

Required for unsteady calculations only (pathlines / random walk periods).

For forward tracking, choose value greater than initial time. For backward tracking, choose value smaller than initial time.

Parameters:time (float) – final Pathline time
setInitialTime(time)

Set the Pathline start time (absolute simulation time in days).

For forward tracking, choose value smaller than final time. For backward tracking, choose value greater than initial time.

Parameters:time (float) – initial Pathline time
setLongDispParameter(dispersivity)

Set Longitudinal dispersivity as a parameter (for random-walk tracking)

Parameters:dispersivity (ifm.Parameter) – Longitudinal dispersivity
setLongDispValue(dispersivity)

Set Longitudinal dispersivity (homogeneous, for random-walk tracking)

Parameters:dispersivity (float) – Longitudinal dispersivity
setLongDisp_mParameter(dispersivity)

Set Longitudinal dispersivity (minimum) as a parameter (for random-walk tracking)

Parameters:dispersivity (ifm.Parameter) – Longitudinal dispersivity (minimum)
setLongDisp_mValue(dispersivity)

Set Longitudinal dispersivity (minimum, homogeneous, for random-walk tracking)

Parameters:dispersivity (float) – Longitudinal dispersivity (minimum)
setPorosityParameter(porosity)

Set Porosity as a parameter (porosity,storativity,refdist)

Parameters:porosity (ifm.Parameter) – Porosity
setPorosityValue(porosity)

Set Porosity (homogeneous)

Parameters:porosity (float) – Porosity
setRandomWalkMethod(rwmethod)

Set random walk method.

Parameters:rwmethod ({ifm.Enum.PT_RW_BACKWARDITO, ifm.Enum.PT_RW_STRATONOVICH, ifm.Enum.PT_RW_RK3ITO, PT_RW_FORWARDITO}) – Random walk computation method.
setRkAccuracy(accuracy)

Set Runge-Kutta integration accuracy

Parameters:accuracy (float) – Runge-Kutta integration accuracy
setRkMaxElementSwitches(n_switches)

Set Runge-Kutta max. number of element switches

Parameters:n_switches (int) – Runge-Kutta max. number of element switches
setRkMaxStepsPerElement(n_steps)

Set Runge-Kutta max. steps per element

Parameters:n_steps (int) – Runge-Kutta max. steps per element
setRkMinStepSizeFactor(factor)

Set Runge-Kutta min. step size factor

Parameters:factor (float) – Runge-Kutta min. step size factor
setRkMinStepTime(time)

Set Runge-Kutta min. step time

Parameters:time (float) – Runge-Kutta min. step time
setScaleDepDispDref()

Set ScaleDepDispDref

setScaleDepDispTref()

Set ScaleDepDispTref

setSorptionParameter()

Set Henry-sorption parameter

setTrackingDirection(tracking_direction)

Set pathline tracking direction

Parameters:tracking_direction ({Enum.PT_DIR_FORWARD, Enum.PT_DIR_BACKWARD}) – The tracking direction to be set.
setTrackingMode(tracking_mode)

Set pathline tracking mode (steady = streamlines, unsteady = pathlines)

Parameters:tracking_mode ({Enum.PT_MODE_STEADY, Enum.PT_MODE_UNSTEADY}) – Tracking mode to be set. Enum.PT_MODE_STEADY enables calculation on a steady flow field at currently loaded time step, resulting in streamlines/random walks. Enum.PT_MODE_UNSTEADY enables calculation on the transient flow field, resulting in pathlines/random walks perids.
setTrackingType(tracking_type)

Set pathline tracking type (advective = classic streamline/pathline computation; rw = Random Walk method)

Parameters:tracking_type ({Enum.PT_TYPE_ADVECTIVE, Enum.PT_TYPE_RW}) – Tracking type to be set. Enum.PT_TYPE_ADVECTIVE sets classic streamline/pathline computation on purely advective flow field, Enum.PT_TYPE_RW set the Random Walk method considering dispersive and diffusive effects.
setTransvDispParameter(disp)

Set Transverse dispersivity as a parameter (for random-walk tracking)

Parameters:disp (ifm.Parameter) – Transverse dispersivity
setTransvDispValue(disp)

Set Transverse dispersivity (homogeneous, for random-walk tracking)

Parameters:disp (float) – Transverse dispersivity
setTransvDisp_mParameter(disp)

Set Transverse dispersivity (minimum) as a parameter (for random-walk tracking)

Parameters:disp (ifm.Parameter) – Transverse dispersivity (minimum)
setTransvDisp_mValue(disp)

Set Transverse dispersivity (minimum, homogeneous, for random-walk tracking)

Parameters:disp (float) – Transverse dispersivity (minimum)

ifm.ProblemDefinition

class ifm.ProblemDefinition

Class providing access to FEFLOW Problem Definition.

configureFreeSurface()

void pdf.configureFreeSurface(int phreatic[, int stat[nslices]])

Method of Problem Definition objects.

Parameters:
  • phreatic (int) – {ifm.Enum.PHR_CONFINED, ifm.Enum.PHR_UNCONFINED}
  • stat[] (int) – {ifm.Enum.SLC_PLANE, ifm.Enum.SLC_FIXED, ifm.Enum.SLC_UNSPECIFIED, ifm.Enum.SLC_MOVABLE, ifm.Enum.SLC_PHREATIC}

Examples

>>> pdf = doc.getProblemDefinition()
>>> pdf.setProblemClass(Enum.TYPE_SATURATED, Enum.PCLS_MASS_TRANSPORT, Enum.TCLS_ST_UNST)
>>> pdf.configureFreeSurface(Enum.PHR_UNCONFINED, [Enum.SLC_PHREATIC, Enum.SLC_UNSPECIFIED, Enum.SLC_UNSPECIFIED, Enum.SLC_FIXED])
getChemicalSpeciesCount()

int getChemicalSpeciesCount()

Method of Problem Definition objects that returns the number of species of the Mass transport problem class

Returns:int Ns
Return type:Number of species
getHysteresisFlag()

Method of Problem Definition objects.

getIterativeScheme()

Method of Problem Definition objects.

getProblemClass()

Method of Problem Definition objects.

Returns:
Return type:int problemClass
getProblemType()

Method of Problem Definition objects that returns if the model is using “Standard (saturated)” (0) or “Richards’ equation” (1).

Returns:{ifm.Enum.TYPE_SATURATED, ifm.Enum.TYPE_UNSATURATED}
Return type:int type
getProjection()

int pdf.getProjection()

Method of Problem Definition objects.

Returns:
Return type:int projection
getRichardsEqForm()

int pdf.getRichardsEqForm()

Method of Problem Definition objects.

getTimeClass()

Method of Problem Definition objects.

getTotalSpeciesCount()

int pdf.getTotalSpeciesCount()

Method of Problem Definition objects that returns the total number of species of the problem class (Age + Mass transport).

Returns:int Ns
Return type:Total number of species
getUpwinding()

Method of Problem Definition objects.

setProblemClass(int pcls[, int tcls[, int type]])

Method of Problem Definition objects to change problem class, time class and type of the model (steady, unsteady; saturated, unsaturated…)

Parameters:
  • pcls (int) – {ifm.Enum.PCLS_FLOW, ifm.Enum.PCLS_HEAT_TRANSPORT, ifm.Enum.PCLS_MASS_TRANSPORT, ifm.Enum.PCLS_THERMOHALINE}
  • tcls (int) – {ifm.Enum.TCLS_STEADY, ifm.Enum.TCLS_ST_UNST, ifm.Enum.TCLS_UNSTEADY}. ifm.Enum.TCLS_STEADY sets flow and transport both as steady state, ifm.Enum.TCLS_UNSTEADY both as transient, while ifm.Enum.TCLS_ST_UNST sets flow steady state and transport transient.
  • type (int) – {ifm.Enum.TYPE_SATURATED, ifm.Enum.TYPE_UNSATURATED}

Examples

>>> pdf = doc.getProblemDefinition()
>>> pdf.setProblemClass(Enum.PCLS_THERMOHALINE, Enum.TCLS_STEADY, Enum.TYPE_SATURATED )
setProjection2D(int proj)

Set Projection for current Problem Definition instance.

Parameters:proj (int) – {ifm.Enum.PROJ_AXISYM_2D, ifm.Enum.PROJ_CONFINED_2D, ifm.Enum.PROJ_PHREATIC_2D, ifm.Enum.PROJ_VERTICAL_2D}

ifm.SubdomainBudget

class ifm.SubdomainBudget
getBorderIn()

Border budget component (1st + 2nd + 3rd kind BCs)

Returns:flow rate, mass flux or heat flux
Return type:float
getBorderOut()

Border budget component (1st + 2nd + 3rd kind BCs)

Returns:flow rate, mass flux or heat flux
Return type:float
getBulkIn()

Distributed source/sink budget component

Returns:flow rate, mass flux or heat flux
Return type:float
getBulkOut()

Distributed source/sink budget component

Returns:flow rate, mass flux or heat flux
Return type:float
getCauchyIn()

BC Cauchy budget component (3rd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getCauchyOut()

BC Cauchy budget component (3rd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getConvIn()

Convective part

Returns:flow rate, mass flux or heat flux
Return type:float
getConvOut()

Convective part

Returns:flow rate, mass flux or heat flux
Return type:float
getDirichletIn()

BC Dirichlet budget component (1st kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getDirichletOut()

BC Dirichlet budget component (1st kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getInternalDFIn()

Discrete-feature contribution to transfer through internal subdomain boundary (including BCs on internal subdomain boundary)

Returns:flow rate, mass flux or heat flux
Return type:float
getInternalDFOut()

Discrete-feature contribution to transfer through internal subdomain boundary (including BCs on internal subdomain boundary)

Returns:flow rate, mass flux or heat flux
Return type:float
getInternalPMIn()

Porous-media contribution to transfer through internal subdomain boundary (including BCs on internal subdomain boundary)

Returns:flow rate, mass flux or heat flux
Return type:float
getInternalPMOut()

Porous-media contribution to transfer through internal subdomain boundary (including BCs on internal subdomain boundary)

Returns:flow rate, mass flux or heat flux
Return type:float
getNetIn()

Net imbalance: border + wells + bulk + stor

Returns:flow rate, mass flux or heat flux
Return type:float
getNetOut()

Net imbalance: border + wells + bulk + stor

Returns:flow rate, mass flux or heat flux
Return type:float
getNeumannIn()

BC Neumann budget component (2nd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getNeumannOut()

BC Neumann budget component (2nd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getStorIn()

Storage change (Storativity/Compressibility/Capacity budget component)

Returns:flow rate, mass flux or heat flux
Return type:float
getStorOut()

Storage change (Storativity/Compressibility/Capacity budget component)

Returns:flow rate, mass flux or heat flux
Return type:float
getWellIn()

Well budget component (4th kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getWellOut()

Well budget component (4th kind)

Returns:flow rate, mass flux or heat flux
Return type:float

ifm.SubdomainTransferBudget

class ifm.SubdomainTransferBudget

Class containing the result of a sub-domain transfer budget calculation. Create this object by calling ifm.FeflowDoc.budgetComputeSubdomainTransfer.

getBorderIn()

Border budget component (1st + 2nd + 3rd kind BCs)

Returns:flow rate, mass flux or heat flux
Return type:float
getBorderOut()

Border budget component (1st + 2nd + 3rd kind BCs)

Returns:flow rate, mass flux or heat flux
Return type:float
getCauchyIn()

BC Cauchy budget component (3rd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getCauchyOut()

BC Cauchy budget component (3rd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getConvIn()

Convective part

Returns:flow rate, mass flux or heat flux
Return type:float
getConvOut()

Convective part

Returns:flow rate, mass flux or heat flux
Return type:float
getDirichletIn()

BC Dirichlet budget component (1st kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getDirichletOut()

BC Dirichlet budget component (1st kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getInternalDFIn()

Discrete-feature contribution to transfer through internal subdomain boundary (including BCs on internal subdomain boundary)

Returns:flow rate, mass flux or heat flux
Return type:float
getInternalDFOut()

Discrete-feature contribution to transfer through internal subdomain boundary (including BCs on internal subdomain boundary)

Returns:flow rate, mass flux or heat flux
Return type:float
getInternalPMIn()

Porous-media contribution to transfer through internal subdomain boundary (including BCs on internal subdomain boundary)

Returns:flow rate, mass flux or heat flux
Return type:float
getInternalPMOut()

Porous-media contribution to transfer through internal subdomain boundary (including BCs on internal subdomain boundary)

Returns:flow rate, mass flux or heat flux
Return type:float
getNeumannIn()

BC Neumann budget component (2nd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getNeumannOut()

BC Neumann budget component (2nd kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getNodalValues()

Returns a vector of nodal fluxes of the masking domain if the compute_nodal_budget was set to True when this instance was created by calling ifm.FeflowDoc.budgetComputeSubdomainTransfer (otherwise, an empty list is returned).

The vector has length of the masking domain vector (parameter nodes).

Returns:flow rate, mass flux or heat flux
Return type:[float]

Examples

>>> md = [5,6,7,15,16,17]  # node indices of masking domain
>>> doi = [1,2,3,11,12,13]  # element indices of domain of interes
>>> budget = ifm.budgetComputeSubdomainTransfer(0, doi, md, True)
>>> nodal_flux = zip(md, budget.getNodalValues())
>>> print(budget)
getTransferIn()

Net subdomain transfer: border + wells + internal_pm + internal_df

Returns:flow rate, mass flux or heat flux
Return type:float
getTransferOut()

Net subdomain transfer: border + wells + internal_pm + internal_df

Returns:flow rate, mass flux or heat flux
Return type:float
getWellIn()

Well budget component (4th kind)

Returns:flow rate, mass flux or heat flux
Return type:float
getWellOut()

Well budget component (4th kind)

Returns:flow rate, mass flux or heat flux
Return type:float

ifm.SuperMesh

class ifm.SuperMesh

Class providing access to FEFLOW’s Supermesh.

addElement(int type, double(ndm) points[][, IfmSuperElement parent])

Add element to Supermesh instance.

Parameters:
  • type (int) – {ifm.Enum.SMH_SHAPE_COMPOSED, ifm.Enum.SMH_SHAPE_LINE, ifm.Enum.SMH_SHAPE_POINT, ifm.Enum.SMH_SHAPE_POLYGON}
  • points[] (double(ndm)) – list of x-y tuples (2D)
  • parent (IfmSuperElement) – optional parameter representing the parent Supermesh instance (see example below)
Returns:

model (Supermesh) to which elements are added

Return type:

IfmSuperElement parent

Examples

>>> model=smh.addElement(Enum.SMH_SHAPE_COMPOSED)
>>> model.setPropertyValue(Enum.SMH_PROP_ELEM_NAME, 'Model')
>>> model.addElement(Enum.SMH_SHAPE_POLYGON, [
>>>     ( -1367.663, 5148.085),
>>>     (  1043.806, 2229.747),
>>>     (  2260.424, 2679.999),
>>>     (  4037.446, 4728.510),
>>>     (  3092.925, 5465.932),
>>>     (  1568.908, 6655.788)
>>>     ])
>>> smh.addElement(Enum.SMH_SHAPE_POLYGON, [
>>>     ( 7387.993, 7202.014),
>>>     ( 5987.235, 8924.258),
>>>     ( 1568.908, 6655.788),
>>>     ( 3092.925, 5465.932),
>>>     ( 6055.706, 6663.499),
>>>     ( 7387.993, 7202.014)
>>>     ], model)
>>> e=smh.addElement(Enum.SMH_SHAPE_LINE, [
>>>     ( 3012.709, 1783.521),
>>>     ( 6084.442, 2817.569)
>>>     ])
>>> e.setPropertyValue(Enum.SMH_PROP_ELEM_NAME, 'DFE')
>>> e=smh.addElement(Enum.SMH_SHAPE_POINT, [
>>>     ( 4381.303, 6953.764)
>>>     ])
>>> e.setPropertyValue(Enum.SMH_PROP_ELEM_NAME, 'Obs')
>>> e=smh.addElement(Enum.SMH_SHAPE_POINT, [
>>>     (( 5000.0, 5000.0)
>>>     (])
>>> (e.setPropertyValue(Enum.SMH_PROP_ELEM_NAME, 'Well')
addSlice(int type, object args[, [Slice|int] template])

Add Slice to the Supermesh instance. Note that elevation can be defined as constant, as distance from top/bottom Slice or from Map. Only “.dat”, “.shp” maps can be used at the moment.

Parameters:type (int) – {ifm.Enum.SMH_ELEV_CONSTANT, ifm.Enum.SMH_ELEV_DISTBOTTOM, ifm.Enum.SMH_ELEV_DISTTOP, ifm.Enum.SMH_ELEV_MAP}

Examples

>>> smh=doc.getSuperMesh()
>>> interpol=smh.getInterpolation(ifm.Enum.SMH_REGIO_KRIGING)
>>> smh.addSlice(ifm.Enum.SMH_ELEV_CONSTANT, 10.)
>>> smh.addSlice(ifm.Enum.SMH_ELEV_DISTTOP, 1.)
>>> smh.addSlice(ifm.Enum.SMH_ELEV_MAP, ('elev.shp', interpol, 'Z'))
generateMesh()

FemMesh smh.generateMesh([MeshGenerator gen])

Method of Supermesh object to generate mesh.

Parameters:gen (optional) (MeshGenerator) –
Returns:
Return type:FemMesh object

Examples

>>> gen = smh.getMeshGenerator(Enum.SMH_GEN_TRIANGLE)
>>>
>>> # Option 1:
>>> smh.generateMesh(gen)
>>>
>>> # Option 2:
>>> root=smh.getRootElement()
>>> root.setPropertyValue(Enum.SMH_PROP_ELEM_MESHGEN, gen)
>>> root.setPropertyValue(Enum.SMH_PROP_ELEM_PROPOSED, 5000)
>>> smh.generateMesh()
getCoor(int node)

Method of supermesh objects to get coordinates of a Supermesh node.

Parameters:node (int) –
Returns:(x, y)
Return type:Coordinates of the node
getElement()

Method of supermesh objects to obtain a Supermesh Element.

Examples

>>> model = smh.getElement(0)  # obtain first composed element
>>> model.getChildElement(0).setPropertyValue(Enum.SMH_PROP_ELEM_MATERIAL, 'coarse sand')
>>> model.getChildElement(1).setPropertyValue('Material', 'fine sand')
getElements()

SuperElement[] elem.getElements([SuperElement parent])

Method of supermesh objects.

Parameters:parent (optional) (SuperElement) –
Returns:SuperElement[]
Return type:Array of SuperElements
getExtent()

Method of supermesh objects to get the extent of the supermesh.

Returns:
Return type:((xmin,ymin),(xmax,ymax))
getInterpolation(string method)

Method of supermesh objects which returns an IFM “Interpolation” object.

Parameters:method (string) – Name of the interpolation method to be returned.
Returns:
Return type:IFM Interpolation Object

Examples

>>> interp = smh.getInterpolation(str(ifm.Enum.SMH_REGIO_KRIGING))
>>> print(interp)
>>> Output:
>>> [ IFM Interpolation Object ]
>>> Name: Kriging
>>> Neighbors: 10
>>> Logarithmic: FALSE
>>> Type: Simple
getInterpolations()

Method of supermesh objects that returns a list of available interpolation methods.

Returns:
Return type:List of IFM Interpolation Objects

Examples

>>> print(smh.getInterpolations())
>>> Output:
>>> [
>>> [ IFM Interpolation Object ]
>>> Name: Inverse Distance
>>> Neighbors: 4
>>> Exponent: 2
>>> Logarithmic: FALSE
>>> ,
>>> [ IFM Interpolation Object ]
>>> Name: Akima
>>> Interpolation Type: Cubic
>>> Neighbors: 5
>>> Over-/Under Shooting: 50
>>> Logarithmic: FALSE
>>> ,
>>> [ IFM Interpolation Object ]
>>> Name: Kriging
>>> Neighbors: 10
>>> Logarithmic: FALSE
>>> Type: Simple
>>> ]
getMeshGenerator(int id)

Method of supermesh objects that returns a Mesh generator object.

Parameters:id (int) – {ifm.Enum.SMH_GEN_TRIANGLE, ifm.Enum.SMH_GEN_ADVANCING_FRONT, ifm.Enum.SMH_GEN_GRIDBUILDER}
Returns:
Return type:Mesh generator object

Examples

>>> gen=smh.getMeshGenerator(Enum.SMH_GEN_TRIANGLE)
>>> gen.setPropertyValue("Refine Lines", True)
>>> gen.setPropertyValue("Line Gradation", 7)
>>> gen.setPropertyValue("Line Target Size", 40.0)
>>> gen.setPropertyValue("Refine Points", True)
>>> gen.setPropertyValue("Point Gradation", 9)
>>> gen.setPropertyValue("Point Target Size", 25.0)
>>> gen.setPropertyValue("Minimum Angle", '30 [DEG]')
getMeshGenerators()

MeshGenerator[] smh.getMeshGenerators()

Method of supermesh objects.

Returns:MeshGenerator[]
Return type:Array of MeshGenerator objects
getNumberOfElements()

int smh.getNumberOfElements()

Method of supermesh objects.

Returns:int Ne
Return type:Number of Supermesh Elements (Polygons + Lines + Points)
getNumberOfLayers()

int smh.getNumberOfLayers()

Method of supermesh objects.

Returns:int Nl
Return type:Number of Layers of the supermesh
getNumberOfNodes()

int smh.getNumberOfNodes()

Method of supermesh objects.

Returns:int Nn
Return type:Number of Nodes of the supermesh
getNumberOfSlices()

Method of supermesh objects.

Returns:int Ns
Return type:Number of Slices of the supermesh
getOrigin()

Method of supermesh objects.

Returns:(xorg,yorg)
Return type:Origin coordinates
getRootElement()

Method of supermesh objects that returns the Supermesh Root Element, including all the other elements

Examples

>>> root = smh.getRootElement()
>>> root.setPropertyValue(Enum.SMH_PROP_ELEM_PROPOSED, 5000)
>>> root.setPropertyValue(Enum.SMH_PROP_ELEM_MATERIAL, 'coarse sand')
getSlice()

Slice smh.getSlice(int idx)

Method of supermesh objects.

Parameters:idx (int) –
Returns:
Return type:Slice object
getSlices()

Slice[] smh.getSlices()

Method of supermesh objects.

Returns:Slice[]
Return type:Array of Slice objects
insertSlice(int where, int type, object args[, Slice template]))

Method of supermesh instance.

Parameters:where (int) – Position where to insert the Slice. By default: positions go from 0 (top Slice) to nSlices-1 (bottom Slice)

Examples

>>> smh.addSlice(ifm.Enum.SMH_ELEV_CONSTANT, 20.0)
>>> smh.addSlice(ifm.Enum.SMH_ELEV_CONSTANT, 10.0)
>>> smh.insertSlice(1, ifm.Enum.SMH_ELEV_DISTBOTTOM, 3, 0)
>>> print(smh.getSlices())
>>> Output:
>>> [ IFM SmhSlice Object ]
>>> slice:   0
>>> type:    constant elevation: Z=20 [m]
>>> movable: 1
>>> ,
>>> [ IFM SmhSlice Object ]
>>> slice:   1
>>> type:    constant distance to bottom slice: DIST=3 [m]
>>> movable: 1
>>> ,
>>> [ IFM SmhSlice Object ]
>>> slice:   2
>>> type:    constant elevation: Z=10 [m]
>>> movable: 1
>>> ]
removeSlice(int slice)

Method of supermesh objects.

Parameters:slice (int) –
setOrigin(xorg, yorg)

Method of supermesh objects.

Parameters:
  • xorg (double) –
  • yorg (double) –

ifm.WellManager

class ifm.WellManager

Class providing access to FEFLOW’s Well Manager.

applyOperations()

Apply changes to the current Well Manager instance. If this function is not called, changes are discarded.

Parameters:True (bool) –

Examples

>>> if not (wm.applyOperations(True)):
>>>    msg = well.getError()
>>>    print(msg)
clearWells()

Delete all the wells of the current Well Manager istance.

createWell(well_type)

Create a well of a given well-type.

Parameters:well_type ({ifm.Enum.WM_WELL_BC, ifm.Enum.WM_WELL_BHE, ifm.Enum.WM_WELL_MLW}) – Once the object is created, its properties (e.g., X, Y, Well Type, …) can be changed with the function “well.putPropertyValue(…)”.
Returns:Well object of a given well-type
Return type:well

Examples

>>> wm = doc.createWellManager()
>>> wm.putSnapDistance(150)
>>> well = wm.createWell(ifm.Enum.WM_WELL_BHE)
>>> well.putPropertyValue("X", 34857.)
>>> well.putPropertyValue("Y", 58422.)
>>> if not (wm.applyOperations(True)):
>>>    msg = well.getError()
>>>    print(msg)
createWells(well_type, position)

Create wells at a given position.

Parameters:
  • well_type ({ifm.Enum.WM_WELL_BC, ifm.Enum.WM_WELL_BHE, ifm.Enum.WM_WELL_MLW}) – Once the object is created, its properties (e.g., X, Y, Well Type, …) can be changed with the function “putPropertyValue(…)”. For WM_WELL_BHE and WM_WELL_MLW: if the edges are disconnected, separate wells will be created
  • position ({list(int), list(3-float-tuple)}) – list(int) represents the list of nodes (for WM_WELL_BC) or edges (for WM_WELL_BHE and WM_WELL_MLW) indexes (0-based). list(3-float-tuple) represents a polyline described as 3-float-tuples (global x/y/zcoordinates) where wells are created.
Returns:

List of wells (Ifm Objects)

Return type:

wells (list)

Examples

>>> # Option 1: Create MLW from Edges selection
>>> edges = doc.getSelectionItems(ifm.Enum.SEL_EDGES, "MLWs")
>>> wm = doc.createWellManager()
>>> well = wm.createWells(Enum.WM_WELL_MLW, edges)
>>> well[0].putPropertyValue("Well Type", ifm.Enum.WMT_FLOW | ifm.Enum.WMT_HEAT_SOURCE_SINK | ifm.Enum.WMT_MASS_SOURCE_SINK)
>>> well[0].putPropertyValue("Name", "MLW from Edges")
>>> well[0].putPropertyValue("Rate (Flow)", 532.0)
>>> well[0].putPropertyValue("Mass BC Value", 50.0)
>>> well[0].putPropertyValue("Heat BC Value", 87.0)
>>> if not (wm.applyOperations(True)):
>>>    msg = well.getError()
>>>    print(msg)
>>>
>>>
>>> # Option 2: Create MLW from Polyline
>>> wm = doc.createWellManager()
>>> newMLW = wm.createWells(ifm.Enum.WM_WELL_MLW, [
>>> (float(117) + doc.getOriginX(), float(93) + doc.getOriginY(), float(0) + doc.getOriginZ()),
>>> (float(6) + doc.getOriginX(), float(-1) + doc.getOriginY(), float(0) + doc.getOriginZ())
>>>  ])
>>> wm.applyOperations(True)
deleteWell()

Method of well objects. Deletes the current well from the well manager.

exportXml()

Export Well Manager as Xml string.

Returns:Str – Well Manager in Xml format as string
Return type:String

Examples

>>> str = wm.exportXml()
>>> file = "Well_Manager.xml"
>>> f = open(file, "w")
>>> f.write(str)
>>> f.close()
getProperties()

Method of well objects. Returns a list of all properties (and their values) defined for the current well. This list is a sub-set of all available properties of the Well Manager object.

Returns:Property list – Dictionary of all available properties: Key = id, Value = Property value. To obtain the names of the properties, use the wm.getPropertyList() function.
Return type:dict(id, value)
getPropertyList()

Returns a list of all available well-properties in the Well Manager. The list is problem-class dependent.

Returns:Property list – Dictionary of all available properties: Key = id, Value = Property name.
Return type:dict(id, name)

Examples

>>> wm = doc.createWellManager()
>>> propertyList = wm.getPropertyList()
>>> print(propertyList)
>>> {0: 'Id', 2: 'Name', 3: 'X', 4: 'Y', 5: 'Z [Top]', 6: 'Z [Bottom]', 7: 'Well Type', 8: 'Rate (Flow)', 9: 'Radius'...}
getPropertyValue(property)

Method of well objects. Returns the value of a property of the well.

Parameters:property ({int, str}) – Name or id of the property for which the value will be returned.
Returns:Value of the property of the well. The type of the returned value depends on the property: {int, float, string, ifm.IfmEnumProperty, ifm.IfmUnitValue}.
Return type:Value

Examples

>>> wm = doc.createWellManager()
>>> wells = wm.getWells()
>>> rate = wells[0].getPropertyValue('Rate (Flow)')
>>> print("Rate (Flow): ", str(rate))
getSnapDistance()

Get Snap distance value for the Well Manager, i.e., Nearest Node Distance in Global Settings for Well Manager

Returns:dist – Snap distance
Return type:float
getType()

Method of well objects. Returns the type of an existing well.

Returns:Type – Type of the well containing base-type: {ifm.Enum.WM_WELL_BC, ifm.Enum.WM_WELL_BHE, ifm.Enum.WM_WELL_MLW} including including additional sub-types if set (ifm.Enum.WMT_MASS_TRANSPORT, …)
Return type:Int
getWarning()

Method of well objects. Returns warnings for the current well after operations were applied.

Returns:Message – Warning for the current well, empty if no warnings.
Return type:Str
getWells()

Get wells defined in the Well Manager

Returns:List of wells (Ifm Objects)
Return type:wells (list)

Examples

>>> wm = doc.createWellManager()
>>> wells = wm.getWells()
>>> wells[0].deleteWell()
>>> wm.applyOperations(True)
importXml(Str)

Import Well Manager from a string containing Xml format of Well Manager

Parameters:Str (String) – Well Manager in Xml format as string
putSnapDistance(dist)

Set Snap distance value for the Well Manager, i.e., Nearest Node Distance in Global Settings for Well Manager

Parameters:dist (float) – Snap distance to be set