CRTP base class for interpolation and quadrature for a generic element in Cartesian coordinates.
More...
|
template<class T > |
void | update_x (const T &x) |
| Update the nodal positions. More...
|
|
auto | GradN () const -> const array_type::tensor< double, 4 > & |
| Shape function gradients (in global coordinates). More...
|
|
auto | dV () const -> const array_type::tensor< double, 2 > & |
| Integration volume. More...
|
|
template<class T > |
auto | InterpQuad_vector (const T &elemvec) const -> array_type::tensor< double, 3 > |
| Interpolate element vector and evaluate at each quadrature point. More...
|
|
template<class T , class R > |
void | interpQuad_vector (const T &elemvec, R &qvector) const |
| Same as InterpQuad_vector(), but writing to preallocated return. More...
|
|
template<class T > |
auto | GradN_vector (const T &elemvec) const -> array_type::tensor< double, 4 > |
| Element-by-element: dyadic product of the shape function gradients and a nodal vector. More...
|
|
template<class T , class R > |
void | gradN_vector (const T &elemvec, R &qtensor) const |
| Same as GradN_vector(), but writing to preallocated return. More...
|
|
template<class T > |
auto | GradN_vector_T (const T &elemvec) const -> array_type::tensor< double, 4 > |
| The transposed output of GradN_vector(). More...
|
|
template<class T , class R > |
void | gradN_vector_T (const T &elemvec, R &qtensor) const |
| Same as GradN_vector_T(), but writing to preallocated return. More...
|
|
template<class T > |
auto | SymGradN_vector (const T &elemvec) const -> array_type::tensor< double, 4 > |
| The symmetric output of GradN_vector(). More...
|
|
template<class T , class R > |
void | symGradN_vector (const T &elemvec, R &qtensor) const |
| Same as SymGradN_vector(), but writing to preallocated return. More...
|
|
template<class T > |
auto | Int_N_vector_dV (const T &qvector) const -> array_type::tensor< double, 3 > |
| Element-by-element: integral of a continuous vector-field. More...
|
|
template<class T , class R > |
void | int_N_vector_dV (const T &qvector, R &elemvec) const |
| Same as Int_N_vector_dV(), but writing to preallocated return. More...
|
|
template<class T > |
auto | Int_N_scalar_NT_dV (const T &qscalar) const -> array_type::tensor< double, 3 > |
| Element-by-element: integral of the scalar product of the shape function with a scalar. More...
|
|
template<class T , class R > |
void | int_N_scalar_NT_dV (const T &qscalar, R &elemmat) const |
| Same as Int_N_scalar_NT_dV(), but writing to preallocated return. More...
|
|
template<class T > |
auto | Int_gradN_dot_tensor2_dV (const T &qtensor) const -> array_type::tensor< double, 3 > |
| Element-by-element: integral of the dot product of the shape function gradients with a second order tensor. More...
|
|
template<class T , class R > |
void | int_gradN_dot_tensor2_dV (const T &qtensor, R &elemvec) const |
| Same as Int_gradN_dot_tensor2_dV(), but writing to preallocated return. More...
|
|
template<class T > |
auto | Int_gradN_dot_tensor4_dot_gradNT_dV (const T &qtensor) const -> array_type::tensor< double, 3 > |
| Element-by-element: integral of the dot products of the shape function gradients with a fourth order tensor. More...
|
|
template<class T , class R > |
void | int_gradN_dot_tensor4_dot_gradNT_dV (const T &qtensor, R &elemmat) const |
| Same as Int_gradN_dot_tensor4_dot_gradNT_dV(), but writing to preallocated return. More...
|
|
auto | nelem () const |
| Number of elements. More...
|
|
auto | nne () const |
| Number of nodes per element. More...
|
|
auto | ndim () const |
| Number of dimensions for node vectors. More...
|
|
auto | tdim () const |
| Number of dimensions for integration point tensors. More...
|
|
auto | nip () const |
| Number of integration points. More...
|
|
template<class T , class R > |
void | asTensor (const T &arg, R &ret) const |
| Convert "qscalar" to "qtensor" of certain rank. More...
|
|
template<size_t rank, class T > |
auto | AsTensor (const T &arg) const |
| Convert "qscalar" to "qtensor" of certain rank. More...
|
|
template<class T > |
auto | AsTensor (size_t rank, const T &arg) const |
| Convert "qscalar" to "qtensor" of certain rank. More...
|
|
auto | shape_elemvec () const -> std::array< size_t, 3 > |
| Get the shape of an "elemvec". More...
|
|
auto | shape_elemvec (size_t arg) const -> std::array< size_t, 3 > |
| Get the shape of an "elemvec". More...
|
|
auto | shape_elemmat () const -> std::array< size_t, 3 > |
| Get the shape of an "elemmat". More...
|
|
template<size_t rank = 0> |
auto | shape_qtensor () const -> std::array< size_t, 2+rank > |
| Get the shape of a "qtensor" of a certain rank (0 = scalar, 1, vector, 2 = 2nd-order tensor, etc.). More...
|
|
auto | shape_qtensor (size_t rank) const -> std::vector< size_t > |
| Get the shape of a "qtensor" of a certain rank (0 = scalar, 1, vector, 2 = 2nd-order tensor, etc.). More...
|
|
template<size_t trank> |
auto | shape_qtensor (size_t rank, size_t arg) const -> std::array< size_t, 2+trank > |
| Get the shape of a "qtensor" of a certain rank (0 = scalar, 1, vector, 2 = 2nd-order tensor, etc.). More...
|
|
auto | shape_qtensor (size_t rank, size_t arg) const -> std::vector< size_t > |
| Get the shape of a "qtensor" of a certain rank (0 = scalar, 1, vector, 2 = 2nd-order tensor, etc.). More...
|
|
auto | shape_qscalar () const -> std::array< size_t, 2 > |
| Get the shape of a "qscalar" (a "qtensor" of rank 0) More...
|
|
auto | shape_qvector () const -> std::array< size_t, 3 > |
| Get the shape of a "qvector" (a "qtensor" of rank 1) More...
|
|
auto | shape_qvector (size_t arg) const -> std::array< size_t, 3 > |
| Get the shape of a "qvector" (a "qtensor" of rank 1) More...
|
|
template<class R > |
auto | allocate_elemvec () const |
| Get an allocated array_type::tensor to store a "elemvec". More...
|
|
template<class R > |
auto | allocate_elemvec (R val) const |
| Get an allocated and initialised xt::xarray to store a "elemvec". More...
|
|
template<class R > |
auto | allocate_elemmat () const |
| Get an allocated array_type::tensor to store a "elemmat". More...
|
|
template<class R > |
auto | allocate_elemmat (R val) const |
| Get an allocated and initialised xt::xarray to store a "elemmat". More...
|
|
template<size_t rank = 0, class R > |
auto | allocate_qtensor () const |
| Get an allocated array_type::tensor to store a "qtensor" of a certain rank (0 = scalar, 1, vector, 2 = 2nd-order tensor, etc.). More...
|
|
template<size_t rank = 0, class R > |
auto | allocate_qtensor (R val) const |
| Get an allocated and initialised array_type::tensor to store a "qtensor" of a certain rank (0 = scalar, 1, vector, 2 = 2nd-order tensor, etc.). More...
|
|
template<class R > |
auto | allocate_qtensor (size_t rank) const |
| Get an allocated xt::xarray to store a "qtensor" of a certain rank (0 = scalar, 1, vector, 2 = 2nd-order tensor, etc.). More...
|
|
template<class R > |
auto | allocate_qtensor (size_t rank, R val) const |
| Get an allocated and initialised xt::xarray to store a "qtensor" of a certain rank (0 = scalar, 1, vector, 2 = 2nd-order tensor, etc.). More...
|
|
template<class R > |
auto | allocate_qscalar () const |
| Get an allocated array_type::tensor to store a "qscalar" (a "qtensor" of rank 0). More...
|
|
template<class R > |
auto | allocate_qscalar (R val) const |
| Get an allocated and initialised xt::xarray to store a "qscalar" (a "qtensor" of rank 0). More...
|
|
template<class D>
class GooseFEM::Element::QuadratureBaseCartesian< D >
CRTP base class for interpolation and quadrature for a generic element in Cartesian coordinates.
Naming convention:
elemmat
: matrices stored per element, [nelem, nne * ndim, nne * ndim]
elemvec
: nodal vectors stored per element, [nelem, nne, ndim]
qtensor
: integration point tensor, [nelem, nip, tdim, tdim]
qscalar
: integration point scalar, [nelem, nip]
Definition at line 543 of file Element.h.