Name

gf_geotrans — Return the handle of a geometric transformation object

Calling Sequence

I = gf_geotrans(name)  

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) Transformation on simplexes, dim n, degree k.

  • GT_QK(n,k) Transformation on parallelepipeds, dim n, degree k.

  • GT_PRISM(n,k) Transformation on prisms, dim n, degree k.

  • GT_PRODUCT(A,B) Tensorial product of two transformations.

  • GT_LINEAR_PRODUCT(A,B) Linear tensorial product of two transformations

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')

Authors

Y. Collette