ChemicalFemPhysics
The GeMA Standard Chemical FEM Physics Plugin
Plugin options

Plugin object types

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


State variables

The Chemical Fem physics requires the model to contain a single concentration state variable named C. It must be a scalar variable. The default unit is **'mol/m^3'**.

Example:

StateVar{id = 'C', description = 'concentration', unit = '', format='8.4g', groupName = 'chemical'}

Material types

The Chemical 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
D Diffusion. Scalar, vector or matrix Yes m^2/s
v Velocity. vector Yes m/s
k Retardation. Scalar or vector Yes
R Reaction. Scalar, vector or matrix Yes mol/m^3*s
Pht Porosity. Scalar Yes
h Element thickness. Scalar Required for 2D elements m

1) The diffusion 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 = 'MatProp',
typeName = 'GemaPropertySet',
description = 'Material parameters',
properties = {
{id = 'D', description = 'diffusion', unit = 'm^2/s'},
{id = 'phi', description = 'porosity', unit = ''},
{id = 'v', description = 'velocity', unit = 'm/s', dim = 2},
{id = 'k', description = 'retardation'},
{id = 'R', description = 'reaction rate', unit = 'mol/(m3.s)'},
},
values = {
{D = 3.56E-8, phi = 0.4, v = {0.70E-6, 0}, k = {1.00, 1.00}, R = {0.5, 0.75}}
}
}

Physics attributes

When defining a Chemical 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 'ChemistryPhysics'. String Yes -
Required value: typeName = 'ChemistryPhysics'
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 = 'Chemical 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 concentration 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
ChemicalMode The concentration can be recovered at the mesh nodes. This option controls the recovery mode. Accepted values are 'node' or 'none'. String No 'none'
Example: ChemicalMode = 'gauss'
directNodeEvaluation When recovering the concentration 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 = 'ChemistryPhysics',
typeName = 'ChemicalFemPhysics.linear',
type = 'fem',
mesh = 'mesh',
boundaryConditions = {'bc1'},
multiRetardation = true,
multiDispersion = true,
multiReaction = true,
}

Boundary conditions

The Chemical Fem physics supports both Dirichlet and Neumann conditions. The prescribe node concentration and prescribe concentration 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
C Prescribe node concentration. Scalar or vetor Yes mol/m^3

Example:

BoundaryCondition{
id = 'bc1',
type = 'node concentration',
mesh = 'mesh',
properties = {
{id = 'C', description = 'External concentration applied on the nodes', dim = 2, unit = 'mol/m3'},
},
nodeValues = {
{'gridLeft', {1.00, 0.0}},
}

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

Attribute Description Type Required Def. Unit
q Surface in/out concentration flow. Scalar or vetor Yes mol/(m^3.s)

Example:

BoundaryCondition{
id = 'bc2',
type = 'surface flux',
mesh = 'mesh',
properties = {
{id = 'q', description = 'flux concentration applied on the nodes', dim = 2, unit = 'mol/(m3.s)'},
},
nodeValues = {
{'gridRight', {0.00, 0.00}}
}
}

Constants

The Chemical Fem physics doesn't includes any constants in the constants.ChemicalFemPhysics table.


External loads

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


Derived results

The Chemical Fem physics doesn't supports derived results.


Supported elements

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

quad4 quad8 quad9 tri3 tri6 hex8 hex20