DOLFIN-X
DOLFIN-X C++ interface
Public Member Functions | List of all members
dolfinx::fem::CoordinateElement Class Reference

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 ElementDofLayoutdof_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, double eps=1.0e-16) const
 Compute reference coordinates X, and J, detJ and K for physical coordinates x.
 

Detailed Description

This class manages coordinate mappings for isoparametric cells.

Constructor & Destructor Documentation

◆ CoordinateElement()

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.

Parameters
[in]cell_typeCell type
[in]topological_dimensionTopological dimension
[in]geometric_dimensionGeometric dimension
[in]signatureSignature string description of coordinate map
[in]dof_layoutLayout of the geometry degrees-of-freedom
[in]is_affineBoolean flag indicating affine mapping
[in]evaluate_basis_derivatives

Member Function Documentation

◆ cell_shape()

mesh::CellType CoordinateElement::cell_shape ( ) const

Cell shape.

Returns
The cell shape

◆ push_forward()

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.

Parameters
[in,out]xThe physical coordinates of the reference points X
[in]XThe coordinates on the reference cells
[in]cell_geometryThe cell node coordinates (physical)

◆ signature()

std::string CoordinateElement::signature ( ) const

String identifying the finite element.

Returns
The signature

The documentation for this class was generated from the following files: