warp.fem.SymmetricTensorMapper#

class warp.fem.SymmetricTensorMapper(dtype, mapping=Mapping.VOIGT)[source]#

Orthonormal isomorphism from R^{n (n+1)} to nxn symmetric tensors, using usual L2 norm for vectors and half Frobenius norm, (tau : tau)/2 for tensors.

Parameters:
__init__(dtype, mapping=Mapping.VOIGT)[source]#
Parameters:

Methods

__init__(dtype[, mapping])

Attributes

class Mapping(*values)[source]#
VOIGT = 0#

Voigt ordering of vector coefficients: first the three diagonal terms, then off-diagonal coefficients

DB16 = 1#

Ordering that also separates normal from tangential coefficients: first trace, then other diagonal terms, then off-diagonal coefficients. See [Daviet and Bertails-Descoubes 2016]

dof_to_value_2d = <Function SymmetricTensorMapper__dof_to_value_2d(dof: vec3f)>#
Parameters:

dof (vec3f)

value_to_dof_2d = <Function SymmetricTensorMapper__value_to_dof_2d(val: mat22(f))>#
Parameters:

val (mat22f)

dof_to_value_2d_voigt = <Function SymmetricTensorMapper__dof_to_value_2d_voigt(dof: vec3f)>#
Parameters:

dof (vec3f)

value_to_dof_2d_voigt = <Function SymmetricTensorMapper__value_to_dof_2d_voigt(val: mat22(f))>#
Parameters:

val (mat22f)

dof_to_value_3d = <Function SymmetricTensorMapper__dof_to_value_3d(dof: vector(length=6, dtype=float32))>#
Parameters:

dof (vec_t)

value_to_dof_3d = <Function SymmetricTensorMapper__value_to_dof_3d(val: mat33(f))>#
Parameters:

val (mat33f)

dof_to_value_3d_voigt = <Function SymmetricTensorMapper__dof_to_value_3d_voigt(dof: vector(length=6, dtype=float32))>#
Parameters:

dof (vec_t)

value_to_dof_3d_voigt = <Function SymmetricTensorMapper__value_to_dof_3d_voigt(val: mat33(f))>#
Parameters:

val (mat33f)