gf_geotrans

Purpose

Return the handle of a geometric transformation object.

Synopsis

Description

The geometric transformation must be used when you are building a custom mesh convex by convex (see the 'add convex' sub-command of gf_mesh_set): it also defines the kind of convex (triangle, hexahedron, prism, etc..). The name argument contains the specification of the geometric transformation as a string, which may be:
'GT_PK(N,K)' geometric transformation of a simplex of dimension N , degree K
'GT_QK(N,K)' geometric transformation of a parallelepiped of dimension N, degree K
'GT_PRISM(N,K)' geometric transformation of a prism of dimension N, degree K
'GT_PRODUCT(a,b)' tensorial product of two geometric transformations a and b
'GT_LINEAR_PRODUCT(a,b)' linear tensorial product of two geometric transformations a and b
Geometric transformations of an existing mesh can be obtained with gf_mesh_get(M,'geotrans').

Examples

In order to get the geometric transformation for a prism of dimension 3, you could use
gt = gf_geotrans('GT_PRISM(3,1)')
or
gt = gf_geotrans('GT_PRODUCT(GT_PK(2,1),GT_PK(1,1))')
If you want the geometric transformation for a curved triangle, you might choose
gt = gf_geotrans('GT_PK(2,2)')  % 6-noded triangle
If you want to use a cartesian mesh, then it is preferable to use
gt = gf_geotrans('GT_LINEAR_PRODUCT(GT_PK(1,1), GT_PK(1,1))')
instead of gf_geotrans('GT_QK(2,1)') 
or gf_geotrans('GT_PRODUCT(GT_PK(1,1), GT_PK(1,1))'),
since the geometric transformation for parallelepipeds is linear, and getfem++ can take advantage of it (exact integration method, direct inversion of the geometrical transformation,...).

See Also

gf_mesh_set(M,'add convex'), gf_mesh_get(M,'geotrans'), gfGeoTrans