gf_fem¶

Synopsis

F = gf_fem('interpolated_fem', mesh_fem mf_source, mesh_im mim_target, [ivec blocked_dofs[, bool caching]])
F = gf_fem('projected_fem', mesh_fem mf_source, mesh_im mim_target, int rg_source, int rg_target[, ivec blocked_dofs[, bool caching]])
F = gf_fem(string fem_name)


Description :

General constructor for fem objects.

This object represents a finite element method on a reference element.

Command list :

F = gf_fem('interpolated_fem', mesh_fem mf_source, mesh_im mim_target, [ivec blocked_dofs[, bool caching]])

Build a special fem which is interpolated from another mesh_fem.

Using this special finite element, it is possible to interpolate a given mesh_fem <literal>mf_source</literal> on another mesh, given the integration method <literal>mim_target</literal> that will be used on this mesh.

Note that this finite element may be quite slow or consume much memory depending if caching is used or not. By default <literal>caching</literal> is True

F = gf_fem('projected_fem', mesh_fem mf_source, mesh_im mim_target, int rg_source, int rg_target[, ivec blocked_dofs[, bool caching]])

Build a special fem which is interpolated from another mesh_fem.

Using this special finite element, it is possible to interpolate a given mesh_fem <literal>mf_source</literal> on another mesh, given the integration method <literal>mim_target</literal> that will be used on this mesh.

Note that this finite element may be quite slow or consume much memory depending if caching is used or not. By default <literal>caching</literal> is True

F = gf_fem(string fem_name)

The <literal>fem_name</literal> should contain a description of the finite element method. Please refer to the GetFEM manual (especially the description of finite element and integration methods) for a complete reference. Here is a list of some of them:

• FEM_PK(n,k) : classical Lagrange element Pk on a simplex of dimension <literal>n</literal>.
• FEM_PK_DISCONTINUOUS(n,k[,alpha]) : discontinuous Lagrange element Pk on a simplex of dimension <literal>n</literal>.
• FEM_QK(n,k) : classical Lagrange element Qk on quadrangles, hexahedrons etc.
• FEM_QK_DISCONTINUOUS(n,k[,alpha]) : discontinuous Lagrange element Qk on quadrangles, hexahedrons etc.
• FEM_Q2_INCOMPLETE(n) : incomplete Q2 elements with 8 and 20 dof (serendipity Quad 8 and Hexa 20 elements).
• FEM_PK_PRISM(n,k) : classical Lagrange element Pk on a prism of dimension <literal>n</literal>.
• FEM_PK_PRISM_DISCONTINUOUS(n,k[,alpha]) : classical discontinuous Lagrange element Pk on a prism.
• FEM_PK_WITH_CUBIC_BUBBLE(n,k) : classical Lagrange element Pk on a simplex with an additional volumic bubble function.
• FEM_P1_NONCONFORMING : non-conforming P1 method on a triangle.
• FEM_P1_BUBBLE_FACE(n) : P1 method on a simplex with an additional bubble function on face 0.
• FEM_P1_BUBBLE_FACE_LAG : P1 method on a simplex with an additional lagrange dof on face 0.
• FEM_PK_HIERARCHICAL(n,k) : PK element with a hierarchical basis.
• FEM_QK_HIERARCHICAL(n,k) : QK element with a hierarchical basis.
• FEM_PK_PRISM_HIERARCHICAL(n,k) : PK element on a prism with a hierarchical basis.
• FEM_STRUCTURED_COMPOSITE(fem f,k) : Composite fem <literal>f</literal> on a grid with <literal>k</literal> divisions.
• FEM_PK_HIERARCHICAL_COMPOSITE(n,k,s) : Pk composite element on a grid with <literal>s</literal> subdivisions and with a hierarchical basis.
• FEM_PK_FULL_HIERARCHICAL_COMPOSITE(n,k,s) : Pk composite element with <literal>s</literal> subdivisions and a hierarchical basis on both degree and subdivision.
• FEM_PRODUCT(A,B) : tensorial product of two polynomial elements.
• FEM_HERMITE(n) : Hermite element P3 on a simplex of dimension <literal>n = 1, 2, 3</literal>.
• FEM_ARGYRIS : Argyris element P5 on the triangle.
• FEM_HCT_TRIANGLE : Hsieh-Clough-Tocher element on the triangle (composite P3 element which is C1), should be used with IM_HCT_COMPOSITE() integration method.
• FEM_QUADC1_COMPOSITE : Quadrilateral element, composite P3 element and C1 (16 dof).
• FEM_REDUCED_QUADC1_COMPOSITE : Quadrilateral element, composite P3 element and C1 (12 dof).
• FEM_RT0(n) : Raviart-Thomas element of order 0 on a simplex of dimension <literal>n</literal>.
• FEM_NEDELEC(n) : Nedelec edge element of order 0 on a simplex of dimension <literal>n</literal>.

Of course, you have to ensure that the selected fem is compatible with the geometric transformation: a Pk fem has no meaning on a quadrangle.