MechanicalFemPhysics
The GeMA Mechanical FEM Physics Plugin
Mechanical Fem Plugin options

The Mechanical FEM physics plugin implementation is divided in the following plugin options:

Plugin object types

The Mechanical Fem Physic plugin publishes four objects type depending on the nature of the element formulation: Continuum element, Interface element,composite element and Large deformation.

a) Continuum element plugin options

b) Interface element plugin options

c) "Composite element plugin options".

d) "Large deformation plugin options".

State variables

The Mechanical Fem Physic plugin requires the model to contain the displacement state variable 'u', which is a vector with size equal to the node coordinate dimension. Both formulation, continuum and interface elements, require the same state variable 'u'.

Example:

StateVar{id = 'u', description = 'Displacements in the X, Y and Z directions', dim = 2, unit = 'm'}

Material types

The Mechanical Fem Physic plugin uses different materials according to the element formulation adopted: continnum, interface, Composite, and large deformation.

a) Continuum material reference.

b) Interface material reference.

Physics attributes

When defining plugin object of Mechanical fem Physic, 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 defines the plugin name according to the type name such as 'planeStress','planeStrain', etc. String Yes -
Example: typeName = 'MechanicalFemPhysics.3D'
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'}
materials Table filled with the names of the materials associated with this analysis. String table Yes -
Example: materials = {'elastic', 'vonMises', 'elasticInterface'}
enabledGravity Boolean value to enable or disable the gravity. String table No -
Example: enabledGravity = 'true'
enabledBodyForce Boolean value to enable or disable the Body Force. String table No -
Example: enabledBodyForce = 'true'
externalLoads For staggered solution, either in a one way or in a two way schema, results from hydraulic physics can be accounted as external load. The mechanical Fem physics supports pore pressure "P" as external load. Table No nil
Example: externalLoads = { pressureLoad = "P" }
externalLoadRegions Sometimes, the provided external loads should not be applied to the whole spatial domain, but instead to a mesh sub-domain. Like elementGorups, this attribute allows for specifying the set of elements over which an external load will be applied. Table No nil
Example: externalLoadRegions = { pressureLoad = { "cellGroup1", "cellGroup3", disjoint = 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 GeMA Common Fem Porocess.

Example for problems using Continuum Elements:

PhysicalMethod {
id = 'Plate',
typeName = 'MechanicalFemPhysics.PlaneStrain',
type = 'fem',
mesh = 'mesh',
ruleSet = 1,
boundaryConditions = {'bc2'},
materials = {'elastic', 'von Mises'},
}

Example for problems using Interface Elements:

PhysicalMethod {
id = 'Fracture',
typeName = 'MechanicalFemPhysics.Interface',
type = 'fem',
mesh = 'mesh',
ruleSet = 1,
boundaryConditions = {'bc1','bc2','bc4','bc5','bc6'},
materials = {'elasticInterface','cohesiveLinearSoftening'},
}

Boundary conditions

The plugin of Mechanical Fem physics supports the followin Boundary conditions.

a) Fixed displacements

The Mechanical Fem Physic sets a fixed displacement and prescribed value.

Example:

BoundaryCondition {
id = 'bc1',
type = 'node displacements',
mesh = 'mesh',
properties = {
{id = 'ux', description = 'Fixed node displacement in the X direction', defVal = -9999},
{id = 'uy', description = 'Fixed node displacement in the Y direction', defVal = -9999},
{id = 'uz', description = 'Fixed node displacement in the Z direction', defVal = -9999},
},
nodeValues = {
-- {node, ux, uy, uz}
{ 1 , 0.0, 0.0, nil}, -- fixed displacements ux = 0.0 and uy = 0.0
{ 2 , 0.0, 0.0, 0.4}, -- prescribed displacement uz = 0.4
{ 3 , 0.0, 0.0, nil},
{ 4 , 0.0, 0.0, nil},
}
}

b) Node concentrated forces

The Mechanical Fem Physic sets node concentrated forces as detailed below.

Example:

BoundaryCondition {
id = 'bc2',
type = 'node concentrated forces',
mesh = 'mesh',
properties = {
{id = 'f', description = 'External force applied on the node', dim = 3,unit = 'kN'},
},
nodeValues = {
--{ node, {{fx, fy}},
{ 3, {0.0, 0.0, -25.00}},
{ 54, {0.0, 0.0, -50.00}},
{ 55, {0.0, 0.0, -25.00}},
}
}

c) Pressure load

The pressure is applied to the model by defining a pressure value on the edge (2D) or face (3D). Pressure is definied in kPa, Positive signal means that the pressure is entering into the model.

Example:

BoundaryCondition {
id = 'bc3',
type = 'pressure load',
mesh = 'mesh',
properties = {
{id = 'pl', description = 'pressure loading aplied at top border', unit = 'kPa'},
},
edgeValues = {
-- {edge, Pl}
{ 'top border', 1000},
}
}

Supported elements

The Mechanical Fem Physic plugin supports different elements according to the element formulation adopted: continnum, interface, Composite, and large deformation.

a) Continuum supported element

b) Interface supported element

c) "Composite element plugin options".

d) "Large deformation plugin options".

Unit system

The Mechanical Fem physics uses internally the international system of units for its calculations, as can be seen above by the default units for properties and attributes. The whole unit system can be replaced through the unitSystem physics attribute, as described at the gemaFemProcessCommonFemPhysicsOptions page.

When making the substitution, the units on the follwoing table should be replaced by the desired units, forming a coherent unit system. The unit system of the material should be also replaced.

local newUnitSystem = {
time = 's',
coord = 'm',
u = 'm',
F = 'kN',
E = 'kPa',
pressure = 'kPa',
Sws = 'kN/m3',
gr = 'm/2',
pl = 'kPa',
}

GeMA project main page