![]() |
Xfem
The Xfem Plugin
|
The XFEM plugin publishes two objects type depending on the nature of the problem (Mechanical or Hydromechanical) and so references to the plugin name while creating a physics object don't need to include a type name.
objects type | Mechanical problems | hydromechanical problems |
---|---|---|
PlaneStrain | Yes | No |
HydroMechanic | No | Yes |
The XFEM plugin requires the model to contain the following state variables for mechanical or hydromechanical problems:
State variables | Mechanical problems | hydromechanical problems |
---|---|---|
u | Yes | Yes |
a | Yes | Yes |
P | No | Yes |
Pa | No | Yes |
Pf | No | Yes |
Example:
The XFEM plugin uses the concept of a metrial type since it features multiple constitutive laws. The Mechanical and Hydromechanical material behavior are fully described by the material properties below.
The following material properties are supported (required) by the XFEM plugin:
Property | Description | Type | Def. Unit | Mechanical problems | hydromechanical problems |
---|---|---|---|---|---|
E | Elasticity modulus | Scalar | kPa | Yes | Yes |
nu | Poisson ratio | Scalar | – | Yes | Yes |
K | Hydraulic permeability (1) | Scalar or matrix | m/s | No | Yes |
gw | Specific weight of water | Scalar | kN/m3 | No | Yes |
Pht | Porosity | Scalar | – | No | Yes |
SPMax | Maximum principal stress | Scalar | kPa | Yes | Yes |
Gap | Initial gap opening | Scalar | m | Yes | Yes |
Ufw | Dynamic fluid viscosity | Scalar | kPa*s | No | Yes |
Lkt | Leakoff at top | Scalar | m/(kPa*s) | No | Yes |
Lkb | Leakoff at bottom | Scalar | m/(kPa*s) | No | Yes |
elastic | Mechanical XFEM material type | String | – | Yes | No |
poroElastic | Hydromechanical XFEM material type | String | – | No | Yes |
(1) The hydraulic conductivity tensor is a 'dxd' matrix, where 'd' is either 2 or 3 depending on the model dimension. It can be replaced by a vector or a scalar instead. If a vector with size 'd' is given, the tensor matrix is formed with the vector values in its diagonal, with other elements set to 0. For a scalar value, the matrix will be isotropic with the given value at the diagonal.
Material properties are normally read from a property set. If a property is not found at the mesh property sets, it will also be searched in the mesh list of cell attributes. This second option is handy if one wants to create individual materials for each cell (working with a stochastic distribution for a material property, for example).
If, for any reason, the model contains compatible material properties with names other than the expected values above, a renaming table can be included in the set of physics attributes to perform the required name translations.
Example:
When defining a XFEM plugin Physics object, the following fields are available for usage during the definition:
Attribute | Description | Type | Required | Def. Value |
---|---|---|---|---|
id | The physics name. | String | Yes | - |
Example: id = 'myPhysicsName' | ||||
typeName | Physics plugin name. Should be equal to 'Xfem.HydroMechanic'. | String | Yes | - |
Required value: typeName = 'Xfem.HydroMechanic' | ||||
type | Type of physics object. Should be equal to 'fem'. | String | Yes | - |
Required value: type= 'fem' | ||||
ruleSet | Integration rule set selected for simulation elements. | String | No | Empty |
Example: ruleSet = 1 | ||||
mesh | The mesh name. | String | Yes | - |
Example: mesh = 'myMeshName' | ||||
boundaryConditions | Table filled with the names of the boundary conditions associated with this physics. | String table | Yes | - |
Example: boundaryConditions = {'myBc1', 'myBc2', 'myBc3'} | ||||
Like other Fem physics, stateVar, property and attribute renaming fields are supported. Likewise, restricting the physics application domain to a set of cell groups, setting the desired integration rule and unit system remapping are also available. Those common optional fields are detailed at the gemaFemProcessCommonFemPhysicsOptions page.
Example for mechanical problems:
Example for hydromechanical problems:
The XFEM plugin physics supports both Dirichlet and Neumann conditions. The injection process is applied to the model by defining a fluid flow rate as a boudary condition. Injection Flow Rate definition m3/s, negative signal means that flow is entering into the model
Example:
Here this condition is defined in a standard mesh node (model file), then in the solution file is changed to the crack mouth node or injection point. This is done because initially no crack nodes are defined in the mesh, they only appear after the preprocessing (crack geometrical treatment) when crack nodes are added to the mesh
Example:
The XFEM plugin has several options used to solve the equation system for mechanical or hydromechanical problems.
Solver type | Mechanical problems | hydromechanical problems |
---|---|---|
static linear | Yes | No |
transient nonlinear | No | Yes |
The static linear solver has some strategies for incrementalization and iterations in order to facilitate convergence.
Increment strategies | ID |
---|---|
load_control_increment | 0 |
cylindrical_arc_length_increment | 1 |
spherical_arc_length_increment | 2 |
external_work_increment | 3 |
displacement_control_increment | 4 |
dissipated_energy_increment | 5 |
combined_arc_dissipated_energy_increment | 6 |
Iteration strategies | ID |
---|---|
load_control | 0 |
linear_arc_length | 1 |
cylindrical_arc_length | 2 |
spherical_arc_length | 3 |
minimal_norm | 4 |
orthogonal_residue | 5 |
displacement_control | 6 |
dissipated_energy | 7 |
combined_arc_dissipated_energy | 8 |
The static linear solver has two options for the Newton-Raphson method.
Newton Raphson Mode | ID |
---|---|
Modified | 0 |
Full | 1 |
Example for mechanical problems:
Example for hydromechanical problems:
The XFEM plugin has some specific options to treat fracture propagation.
Example:
Besides calculating Displacement and porepressure values, the XFEM plugin can also recover stress and strain values on Gauss points. Additionaly, fracture pressures are calculated on fracture nodes.
If, for any reason, the model contains compatible node and/or Gauss attributes with names other than 'q', a renaming table can be included in the set of physics attributes to perform the required name translations.
The XFEM plugin supports 2D elements. Supported elements are:
E = 'kPa'
nu = –
K = 'm/s'
gw = 'kN/m3'
Pht = –
SPMax = 'kPa'
Gap = 'm'
Ufw = 'kPa*s'
Lkt = 'm/(kPa*s)'
Lkb = 'm/(kPa*s)'