fedoo.lib_elements.CombinedElement

class CombinedElement(name, base_elm, **kargs)

Element type whose variables may use different interpolations.

The base element is used for the geometry and, by default, for every variable. set_variable_interpolation() assigns another element to one variable, typically a lower-order element built on the vertex nodes of the base element. The classical use is a Taylor-Hood pair, quadratic displacement and linear pressure, which satisfies the inf-sup (LBB) condition of mixed and undrained poromechanical formulations.

The new element type is registered globally under name when the object is created: create it before the assembly and pass name as elm_type to fedoo.Assembly.create(). The mesh keeps the element type of the base element. Creating another combined element with the same name replaces the previous one.

Parameters:
  • name (str) – Name of the new element type.

  • base_elm (str or element class) – Element used for the geometry and for the variables without a specific interpolation, e.g. "hex20".

  • **kargs – Advanced options: default_n_gp (number of integration points, default that of base_elm), n_nodes, local_csys, dict_elm_type and associated_variables.

Notes

The DOFs of a variable on nodes that its interpolation does not use (mid-side nodes for a linear pressure on a quadratic mesh) carry no physical value.

Examples

Quadratic displacement with a linear pore pressure:

>>> import fedoo as fd
>>> fd.ModelingSpace("3D")  
>>> elm = fd.lib_elements.CombinedElement("hex20lbb", "hex20")
>>> elm.set_variable_interpolation("PorePressure", "hex8")
>>> # assembly = fd.Assembly.create(wf, mesh_hex20, elm_type="hex20lbb")
__init__(name, base_elm, **kargs)

Methods

CombinedElement.get_all_elm_type()

Return the set of elements used by the variables, base included.

CombinedElement.get_elm_type(variable_name)

Return the element interpolating variable_name.

CombinedElement.set_variable_interpolation(...)

Use a specific element to interpolate one variable.