DOLFIN-X
DOLFIN-X C++ interface
Public Member Functions | Public Attributes | 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 (int basix_element_handle, int geometric_dimension, const std::string &signature, const ElementDofLayout &dof_layout, bool needs_permutation_data, std::function< int(int *, const uint32_t)> permute_dofs, std::function< int(int *, const uint32_t)> unpermute_dofs)
 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 (array2d< double > &x, const array2d< double > &X, const array2d< double > &cell_geometry) const
 Compute physical coordinates x for points X in the reference configuration. More...
 
void compute_reference_geometry (array2d< double > &X, std::vector< double > &J, tcb::span< double > detJ, std::vector< double > &K, const array2d< double > &x, const array2d< double > &cell_geometry) const
 Compute reference coordinates X, and J, detJ and K for physical coordinates x.
 
void permute_dofs (int *dofs, const uint32_t cell_perm) const
 Permutes a list of DOF numbers on a cell.
 
void unpermute_dofs (int *dofs, const uint32_t cell_perm) const
 Reverses a DOF permutation.
 
bool needs_permutation_data () const
 Indicates whether the coordinate map needs permutation data passing in (for higher order geometries)
 

Public Attributes

double non_affine_atol = 1.0e-8
 Absolute increment stopping criterium for non-affine Newton solver.
 
int non_affine_max_its = 10
 Maximum number of iterations for non-affine Newton solver.
 

Detailed Description

This class manages coordinate mappings for isoparametric cells.

Constructor & Destructor Documentation

◆ CoordinateElement()

CoordinateElement::CoordinateElement ( int  basix_element_handle,
int  geometric_dimension,
const std::string &  signature,
const ElementDofLayout dof_layout,
bool  needs_permutation_data,
std::function< int(int *, const uint32_t)>  permute_dofs,
std::function< int(int *, const uint32_t)>  unpermute_dofs 
)

Create a coordinate element.

Parameters
[in]basix_element_handleElement handle from basix
[in]geometric_dimensionGeometric dimension
[in]signatureSignature string description of coordinate map
[in]dof_layoutLayout of the geometry degrees-of-freedom
[in]needs_permutation_dataIndicates whether or not the element needs permutation data (for higher order elements)
[in]permute_dofsFunction that permutes the DOF numbering
[in]unpermute_dofsFunction that reverses a DOF permutation

Member Function Documentation

◆ cell_shape()

mesh::CellType CoordinateElement::cell_shape ( ) const

Cell shape.

Returns
The cell shape

◆ push_forward()

void CoordinateElement::push_forward ( array2d< double > &  x,
const array2d< double > &  X,
const array2d< double > &  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: