| 
    DOLFINx
    0.1.0
    
   DOLFINx C++ interface 
   | 
 
 
 
 
    9 #include "ElementDofLayout.h" 
   11 #include <dolfinx/common/array2d.h> 
   12 #include <dolfinx/mesh/cell_types.h> 
   16 #include <xtensor/xtensor.hpp> 
   17 #include <xtl/xspan.hpp> 
   59   xt::xtensor<double, 4> 
tabulate(
int n, 
const xt::xtensor<double, 2>& X) 
const;
 
   71                         const xt::xtensor<double, 2>& cell_geometry,
 
   72                         xt::xtensor<double, 3>& J) 
const;
 
   83                                 xt::xtensor<double, 3>& K) 
const;
 
   93                                     xt::xtensor<double, 1>& detJ) 
const;
 
  104                            const xt::xtensor<double, 2>& cell_geometry,
 
  105                            const xt::xtensor<double, 2>& phi);
 
  109   void pull_back(xt::xtensor<double, 2>& X, xt::xtensor<double, 3>& J,
 
  110                  xt::xtensor<double, 1>& detJ, xt::xtensor<double, 3>& K,
 
  111                  const xt::xtensor<double, 2>& x,
 
  112                  const xt::xtensor<double, 2>& cell_geometry) 
const;
 
  116                     const std::uint32_t cell_perm) 
const;
 
  120                       const std::uint32_t cell_perm) 
const;
 
  137   std::shared_ptr<basix::FiniteElement> _element;
 
  
ElementDofLayout dof_layout() const
Return the dof layout.
Definition: CoordinateElement.cpp:180
 
void compute_jacobian(const xt::xtensor< double, 4 > &dphi, const xt::xtensor< double, 2 > &cell_geometry, xt::xtensor< double, 3 > &J) const
Compute Jacobian for a cell with given geometry using the basis functions and first order derivatives...
Definition: CoordinateElement.cpp:81
 
CellType
Cell type identifier.
Definition: cell_types.h:21
 
void compute_jacobian_determinant(const xt::xtensor< double, 3 > &J, xt::xtensor< double, 1 > &detJ) const
Compute the determinant of the Jacobian. If the coordinate element is affine, it computes the determi...
Definition: CoordinateElement.cpp:159
 
void compute_jacobian_inverse(const xt::xtensor< double, 3 > &J, xt::xtensor< double, 3 > &K) const
Compute the inverse of the Jacobian. If the coordinate element is affine, it computes the inverse at ...
Definition: CoordinateElement.cpp:122
 
static void push_forward(xt::xtensor< double, 2 > &x, const xt::xtensor< double, 2 > &cell_geometry, const xt::xtensor< double, 2 > &phi)
Compute physical coordinates x for points X in the reference configuration.
Definition: CoordinateElement.cpp:197
 
int non_affine_max_its
Maximum number of iterations for non-affine Newton solver.
Definition: CoordinateElement.h:130
 
double non_affine_atol
Absolute increment stopping criterium for non-affine Newton solver.
Definition: CoordinateElement.h:127
 
virtual ~CoordinateElement()=default
Destructor.
 
CoordinateElement(std::shared_ptr< basix::FiniteElement > element)
Create a coordinate element from a Basix element.
Definition: CoordinateElement.cpp:36
 
void pull_back(xt::xtensor< double, 2 > &X, xt::xtensor< double, 3 > &J, xt::xtensor< double, 1 > &detJ, xt::xtensor< double, 3 > &K, const xt::xtensor< double, 2 > &x, const xt::xtensor< double, 2 > &cell_geometry) const
Compute reference coordinates X, and J, detJ and K for physical coordinates x.
Definition: CoordinateElement.cpp:212
 
xt::xtensor< double, 4 > tabulate(int n, const xt::xtensor< double, 2 > &X) const
Compute basis values and derivatives at set of points.
Definition: CoordinateElement.cpp:76
 
The class represents the degree-of-freedom (dofs) for an element. Dofs are associated with a mesh ent...
Definition: ElementDofLayout.h:35
 
void unpermute_dofs(xtl::span< std::int32_t > dofs, const std::uint32_t cell_perm) const
Reverses a DOF permutation.
Definition: CoordinateElement.cpp:306
 
Finite element method functionality.
Definition: assemble_matrix_impl.h:22
 
bool needs_permutation_data() const
Indicates whether the coordinate map needs permutation data passing in (for higher order geometries)
Definition: CoordinateElement.cpp:313
 
int topological_dimension() const
Return the topological dimension of the cell shape.
Definition: CoordinateElement.cpp:70
 
void permute_dofs(xtl::span< std::int32_t > dofs, const std::uint32_t cell_perm) const
Permutes a list of DOF numbers on a cell.
Definition: CoordinateElement.cpp:299
 
mesh::CellType cell_shape() const
Cell shape.
Definition: CoordinateElement.cpp:52
 
This class manages coordinate mappings for isoparametric cells.
Definition: CoordinateElement.h:30