HydroFemPhysics
The GeMA Hydraulic FEM Physics Plugin
Plugin options

Plugin object types

The Hydro Fem Physics only publishes one object type (named "Pore pressure") and so references to the plugin name while creating a physics object don't need to include a type name.


State variables

The Hydraulic Fem physics requires the model to contain a single pressure state variable named P. It must be a scalar variable. The default unit is **'kPa'**.

Example:

StateVar{id = 'P', description = 'Pore pressure', unit = 'kPa'}

Material types

The Hydraulic Fem physics doesn't uses the concept of a metrial type since it doesn't feature multiple constitutive laws. The material behavior is fully described by the material properties below.


Material properties

The following material properties are supported (required) by the Hydraulic Fem physics:

Property Description Type Required Def. Unit
K Hydraulic permeability. Scalar, vector or matrix Yes m/s
Kww Bulk modulus of water. Scalar Yes kPa
gw Specific weight of water. Scalar Yes kN/m3
Pht Porosity. Scalar Yes
h Element thickness. Scalar Required for 2D elements m

1) The hydraulic permeability 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.

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

PropertySet
{
id = 'HydroProp',
typeName = 'GemaPropertySet',
description = 'Hydraulic properties',
properties = {
{id = 'K', description = 'Hydraulic permeability', unit = 'm/s'},
{id = 'Kww', description = 'Bulk modulus of water', unit = 'kPa'},
{id = 'gw', description = 'Specific weight of water', unit = 'kN/m3'},
{id = 'Pht', description = 'Porosity', unit = ''},
{id = 'Bp', description = 'Pore compressibility', unit = '1/kPa'},
{id = 'material', description = 'Hydraulic material type', constMap = constants.HydroFemPhysics.materialModels}
},
values = {
{K = 3.38e-06, Kww = 1.0e40, gw = 10, Pht = 0.25, Bp = 0.0, material = 'saturated'},
}
}

Physics attributes

When defining a Hydro Fem Physics object, the following fields are available for usage during the definition:

Attribute Description Type Required Def. Unit
id The physics name. String Yes -
Example: id = 'myPhysicsName'
typeName Physics plugin name. Should be equal to 'HydraulicPhysics'. String Yes -
Required value: typeName = 'HydraulicPhysics'
type Type of physics object. Should be equal to 'fem'. String Yes -
Required value: type= 'fem'
description An optional description for this physics role in the simulation. String No Empty
Example: description = 'Hydraulic calculation'
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'}
enableGeneration Boolean value to enable or disable internal heat generation. Boolean No false
Example: boundaryConditions = {'myBc1', 'myBc2', 'myBc3'}
isoParametric Boolean value to control whether the temperature will be calculated on every element node (true) or only on the element vertices (false). This flag is only effective for quadratic elements (quad8, for example). Boolean No true
Example: isoParametric = false
heatFluxMode The heat flux can be recovered at the Gauss points, at the mesh nodes, at both or not at all. This option controls the recovery mode. Accepted values are 'gauss', 'node', 'both' or 'none'. String No 'none'
Example: FlowMode = 'gauss'
directNodeEvaluation When recovering the flow at the nodes, defines if the calculation will be made directly on the nodes (true), or if it will be done on Gauss points with a further extrapolation to the nodes (false). Boolean false
Example: directNodeEvaluation = true

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 Common Fem physics plugin options page.

Example:

PhysicalMethod {
id = 'HydraulicPhysics',
typeName = 'HydroFemPhysics.Flow',
type = 'fem',
mesh = 'mesh',
materials = 'saturated',
boundaryConditions = {'bc1'},
ruleSet = 1,
}

Boundary conditions

The Hydro Fem physics supports both Dirichlet and Neumann conditions. The prescribe porepressure and prescibe flow are available for 2D and 3D elements. Available boundary condition types are:

1) node porepressure: Boundary condition type for prescribing porepressure. Always applied on element nodes. Supported attributes are:

Attribute Description Type Required Def. Unit
P Prescribe node pore pressure. Scalar Yes kPa

Example:

BoundaryCondition {
id = 'Border pore pressure',
type = 'node pore pressure',
mesh = 'mesh',
properties = {
{id = 'P', description = 'Fixed node pore pressure', unit = 'kPa'},
},
nodeValues = {
{ 'gridLeft', 55000.0}, -- Left border is a named border in the associated mesh.
{ 'gridBottom', 25000.0}, -- The 25000 kPa condition will be applied to all its nodes
{ 'gridRight', 0.0 },
{ 'gridTop', 55000.0},
}
}

2) node pore flow: Boundary condition type for prescribing node pore flow. Always applied on element nodes. Supported attributes are:

Attribute Description Type Required Def. Unit
qw Prescribe node pore flow. Scalar Yes m3/s

Example:

BoundaryCondition {
id = 'Border pore flow',
type = 'node pore flow',
mesh = 'mesh',
properties = {
{id = 'qw', description = 'Fixed node pore flow', unit = 'm3/s'},
},
nodeValues = {
{ 'gridLeft', 0.0 }, -- Left border is a named border in the associated mesh.
{ 'gridBottom', 0.0 },
{ 'gridRight', 0.0 },
{ 'gridTop', 100.0 }, -- The 100.0 m3/s condition will be applied to all its nodes
}
}

3) surface pore flow: Boundary condition type for prescribing node pore flow. Always applied on element edge face. Supported attributes are:

Attribute Description Type Required Def. Unit
SPF Surface in/out pore flow. Scalar Yes m3/s/m2

Example:

BoundaryCondition {
id = 'Border surface pore flow',
type = 'surface pore flow',
mesh = 'mesh',
properties = {
{id = 'SPF', description = 'Fixed surface pore flow', unit = 'm3/s/m2'},
},
nodeValues = {
{ 'gridTopSurface', 10.00 }, -- Left border is a named border in the associated mesh.
{ 'gridBottomSurface', 0.00 },-- The 10.0 m3/s/m2 condition will be applied to all its surface nodes
}
}

Constants

The Hydro Fem physics doesn't includes any constants in the constants.HidroFemPhysics table.

External loads

The Hydro Fem physics doesn't supports the concept of integration with other physics through external loads.

Derived results

Besides calculating pore pressure values, the Hydro Fem physics can also recover velocity flux values, either on mesh nodes or on Gauss points, depending on the value of the VelocityFluxMode physics attribute.

Recovered values will be stored on the 'v' nodal and/or Gauss attributes. If the needed attributes do not exist on the mesh, they will be created automatically by the physics with the following signature:

Attribute Description Type Required Def. Unit History
v Velocity Scalar or vetor Yes m/s Yes

If creating the Gauss attribute 'v' manually on the model, please make sure that its associated integration rule is the same as the configured rule for the physics.

If, for any reason, the model contains compatible node and/or Gauss attributes with names other than 'v', a renaming table can be included in the set of physics attributes to perform the required name translations.

Supported elements

The Hydro Fem physics supports 2D and 3D elements. Supported elements are:

  • quad4
  • quad8
  • quad9
  • tri3
  • tri6
  • hex8
  • hex20