There has recently been some developments of new type of exported variables. The motivation for these development comes from a need to sometimes save and treat data that is defined on elements or integration points. Even though we are seldom solving any such field with finite elements we may want to have dependency of data defined therein.
This should mainly concernt those doing some non-standard developments in Elmer. For example, you might be interpolating OpenFOAM results to integration points of Elmer, or storing fields on integration points needed for nonlinear hysteresis models
As often seen in the sif files of Elmer any Solver in Elmer can inherit its fields to similar fields using the "Exported Variable" declaration. For example,
Code: Select all
Exported Variable 1 = myvar
- -global : old one: Variable_global
-ip : variable existing on integration points: Variable_on_gauss_points
-elem : variable existing on elements: Variable_on_elements
-dg : discontinuous galerkin: Variable_on_nodes_on_elements
-nodal : nodal fields (standard FE fields) if primary field is not: Variable_on_nodes
The permutation for the different variable types is quite different than for standard ones.
- -ip : for element t and integration point p the global dof is Perm(t)+p
-elem : for element t the global dof is Perm(t)
-dg : for element t and node p the global dof is Perm(Element % DGIndexes(p))
The exported variable may now be masked such that it will be defined in a domain smaller than the primary variable. Note that the domain may not be larger! This is achieved with, for example,
Code: Select all
Exported Variable 1 Mask = String "secname: maskname"
Code: Select all
Exported Variable 1 = -ip absb
Exported Variable 1 Mask = String "material: b-h curve"
The new variable types may in most parts be used also in the ListGet operations. The main limitation is that the "-ip" variable can only have dependencies when the ListGetElementReal() function is used and the GaussPoint is given as the optional parameter. The ListGetReal() does not know how to use the Gaussian points to return nodal values. So to fully use the features one needs to change the calling routines.
Roughly this same text is available also on the ElmerSolver documentation when it is updated.
-Peter