DOLFIN-X
DOLFIN-X C++ interface
|
This class manages coordinate mappings for isoparametric cells. More...
#include <CoordinateElement.h>
Public Member Functions | |
CoordinateElement (mesh::CellType cell_type, int topological_dimension, int geometric_dimension, const std::string &signature, const ElementDofLayout &dof_layout, bool is_affine, const std::function< int(double *, int, int, const double *)> &evaluate_basis_derivatives) | |
Create a coordinate element. More... | |
virtual | ~CoordinateElement ()=default |
Destructor. | |
std::string | signature () const |
String identifying the finite element. More... | |
mesh::CellType | cell_shape () const |
Cell shape. More... | |
int | topological_dimension () const |
Return the topological dimension of the cell shape. | |
int | geometric_dimension () const |
Return the geometric dimension of the cell shape. | |
const ElementDofLayout & | dof_layout () const |
Return the dof layout. | |
void | push_forward (Eigen::Ref< Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >> x, const Eigen::Ref< const Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >> &X, const Eigen::Ref< const Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >> &cell_geometry) const |
Compute physical coordinates x for points X in the reference configuration. More... | |
void | compute_reference_geometry (Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > &X, Eigen::Tensor< double, 3, Eigen::RowMajor > &J, Eigen::Ref< Eigen::Array< double, Eigen::Dynamic, 1 >> detJ, Eigen::Tensor< double, 3, Eigen::RowMajor > &K, const Eigen::Ref< const Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >> &x, const Eigen::Ref< const Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >> &cell_geometry) const |
Compute reference coordinates X, and J, detJ and K for physical coordinates x. | |
This class manages coordinate mappings for isoparametric cells.
CoordinateElement::CoordinateElement | ( | mesh::CellType | cell_type, |
int | topological_dimension, | ||
int | geometric_dimension, | ||
const std::string & | signature, | ||
const ElementDofLayout & | dof_layout, | ||
bool | is_affine, | ||
const std::function< int(double *, int, int, const double *)> & | evaluate_basis_derivatives | ||
) |
Create a coordinate element.
[in] | cell_type | Cell type |
[in] | topological_dimension | Topological dimension |
[in] | geometric_dimension | Geometric dimension |
[in] | signature | Signature string description of coordinate map |
[in] | dof_layout | Layout of the geometry degrees-of-freedom |
[in] | is_affine | Boolean flag indicating affine mapping |
[in] | evaluate_basis_derivatives |
mesh::CellType CoordinateElement::cell_shape | ( | ) | const |
Cell shape.
void CoordinateElement::push_forward | ( | Eigen::Ref< Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >> | x, |
const Eigen::Ref< const Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >> & | X, | ||
const Eigen::Ref< const Eigen::Array< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor >> & | cell_geometry | ||
) | const |
Compute physical coordinates x for points X in the reference configuration.
[in,out] | x | The physical coordinates of the reference points X |
[in] | X | The coordinates on the reference cells |
[in] | cell_geometry | The cell node coordinates (physical) |
std::string CoordinateElement::signature | ( | ) | const |
String identifying the finite element.