IFM Classes¶
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.
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: 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.
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.
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.
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: 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.
See also
-
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
-