IFM Classes
ifm.Budget
- class ifm.Budget
ifm.BudgetResultEx
- class ifm.BudgetResultEx
ifm.FemMesh
- class ifm.FemMesh
The FemMesh class provides methods for the type “mesh”. The mesh type can be derived from an existing model or a mesh created from a cross-section.
See also
ifm.FeflowDoc.getFemMesh
,ifm.FeflowDoc.createMeshFromSurfaceLine
,ifm.FeflowDoc.createMeshFromPlane
- getCoor(node)
Retrieve the coordinates of node
- Parameters:
node (int) – Node ID
- Returns:
X, Y, Z coordinates Physical unit is [m]
- Return type:
float (x3)
- getDualNodes()
get list of Dual node IDs
- Returns:
list of Dual node IDs
- Return type:
list[int]
- getExtent()
get extent of the new mesh
- Returns:
xmin,xmax,ymin,ymax,zmin,zmax Physical unit is [m]
- Return type:
double (x6)
- getLayerOffset(layer)
get the first element ID of a specific layer
- Parameters:
layer (int) – layer no. (0-based)
- Returns:
element ID of first element in layer
- Return type:
int
- getNodeFromDual(node)
get Base node ID from Dual node ID
- Parameters:
node (int) – Dual node ID (Dual node ID’s are appended to node IDs, therefore they usually occupy the end of the lsit of nodes)
- Returns:
Base node ID
- Return type:
int
- getNodes(element)
get node numbers of an element in new mesh
- Parameters:
element (int) – Element ID
- Returns:
list of adjacent nodes
- Return type:
list
- getNumberOfDimensions()
get Number of dimensions of the mesh (2D or 3D)
- Returns:
dimensions
- Return type:
int
- getNumberOfDualNodes()
get number of Dual nodes in present model
- Returns:
number of Dual nodes
- Return type:
int
- getNumberOfElementNodes(element)
get number of adjacent nodes per element
- Parameters:
element (int) – Element ID
- Returns:
number of nodes
- Return type:
int
- getNumberOfElementNodes2D(element)
get number of adjacent nodes per element in 2D
- Parameters:
element (int) – Element ID
- Returns:
number of nodes
- Return type:
int
- getNumberOfElements()
get number of elements in the whole mesh
- Returns:
number of elements
- Return type:
int
- getNumberOfElementsPerLayer()
retrieve number of elements per layer in layered models
- Returns:
number of elements
- Return type:
int
- getNumberOfLayers()
retrieve number of layers in layered models
- Returns:
number of layers
- Return type:
int
- getNumberOfNodes()
retrieve number of nodes in the whole mesh
- Returns:
number of nodes
- Return type:
int
- getNumberOfNodesPerElement(element)
get the number of adjacent nodes of a specific element
- Parameters:
element (int) – Element ID
- Returns:
number of adjacent nodes
- Return type:
int
- getNumberOfNodesPerElement2D(element)
get the number of adjacent nodes of a specific element
- Parameters:
element (int) – Element ID
- Returns:
number of adjacent nodes in 2D
- Return type:
int
- getNumberOfNodesPerSlice()
number of nodes per slice
- Returns:
number of nodes per slice
- Return type:
int
- getNumberOfSlices()
number of slices
- Returns:
number of slices
- Return type:
int
- getOrigin()
get origin of local coordinate system in global coordinates
- Returns:
x, y, z coordinates of the local origin
- Return type:
float (x3)
- getSliceOffset(slice)
get the first node ID of a specific slice
- Parameters:
slice (int) – slice no. (0-based)
- Returns:
node ID of first element in slice
- Return type:
int
- hasHexahedra()
returns True if the mesh contains hexahedra
- Return type:
bool
- hasMixedElementTypes(xxx)
- Parameters:
parameters) ((list of) – (explanation of parameter)
- Returns:
(explanation of returns)
- Return type:
(list of returns)
- hasTetrahedra()
returns True if the mesh contains tetrahedra
- Return type:
bool
- isContinuous(xxx)
- Parameters:
parameters) ((list of) – (explanation of parameter)
- Returns:
(explanation of returns)
- Return type:
(list of returns)
- isParabolic(xxx)
- Parameters:
parameters) ((list of) – (explanation of parameter)
- Returns:
(explanation of returns)
- Return type:
(list of returns)
- isPrismatic()
returns True if the mesh consists only of prisms (only layered meshes)
- Return type:
bool
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.
See also
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.
See also
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.
See also
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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:
- 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.
See also
- 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.
- 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.
- 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.
See also
- 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:
(optional) (MeshGenerator gen) –
- 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:
(optional) (SuperElement parent) –
- Returns:
SuperElement[]
- Return type:
Array of SuperElements
- getExtent()
Method of supermesh objects to get the extent of the supermesh.
- 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.
- 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.
- 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}
- 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) –
- 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.
See also
- applyOperations(True)
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()
- getOverwriteConflicts()
Method of Well Manager. Returns True if the Well Manager is allowed to overwrite boundary conditions in conflict with Well position, False otherwise.
- Returns:
True if BC can be overwritten, False otherwise.
- Return type:
bool
- 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
- putOverwriteConflicts(bool)
Method of Well Manager to set if the Well Manager is allowed to overwrite boundary conditions in conflict with Well position, or not.
- Parameters:
bool – True to set that BC can be overwritten, False otherwise.
- 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