SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::discretization::backend::mfem::ElementCoordinates Class Referencefinal

One element's native orientation and its supported full/reduced coefficient coordinates. More...

#include <element_coordinates.hpp>

Collaboration diagram for serif::discretization::backend::mfem::ElementCoordinates:
[legend]

Public Member Functions

 ElementCoordinates (const DofMap::Elements &elements, int element)
 Read local coordinates from a binding validated for the current traversal.
 
int size () const noexcept
 Return the number of native element coefficients.
 
int reduced_dof (int local) const
 Return a supported coefficient index, or -1 outside the binding support.
 
template<typename Visitor>
void for_each_coefficient (const int local, Visitor &&visit) const
 Visit independent weights for one native coefficient after dual orientation.
 
int local_dof (int reduced) const
 Locate a supported coefficient among this element's native coordinates.
 
void unit_direction (int column, ::mfem::Vector &direction) const
 Express one native local basis direction, including its primal orientation. On constrained spaces, callers distribute its contribution through the hanging-node weights.
 
void element_values (const ::mfem::Vector &reduced, ::mfem::Vector &values) const
 Restrict coefficients and apply their primal orientation.
 
void orient_dual (::mfem::Vector &values) const
 Convert integrated native coefficients to global dual orientation.
 
void add_element (::mfem::Vector &values, ::mfem::Vector &full) const
 Orient and add integrated coefficients into the full-space vector.
 

Private Member Functions

void orient_primal (::mfem::Vector &values) const
 Apply MFEM's nontrivial primal transformation, when present.
 

Private Attributes

const DofMap & m_binding
 
bool m_supported
 
::mfem::Array< int > m_dofs
 
::mfem::DofTransformation m_transformation
 

Detailed Description

One element's native orientation and its supported full/reduced coefficient coordinates.

Constructor & Destructor Documentation

◆ ElementCoordinates()

serif::discretization::backend::mfem::ElementCoordinates::ElementCoordinates ( const DofMap::Elements & elements,
int element )

Read local coordinates from a binding validated for the current traversal.

Member Function Documentation

◆ add_element()

void serif::discretization::backend::mfem::ElementCoordinates::add_element ( ::mfem::Vector & values,
::mfem::Vector & full ) const

Orient and add integrated coefficients into the full-space vector.

◆ element_values()

void serif::discretization::backend::mfem::ElementCoordinates::element_values ( const ::mfem::Vector & reduced,
::mfem::Vector & values ) const

Restrict coefficients and apply their primal orientation.

◆ for_each_coefficient()

template<typename Visitor>
void serif::discretization::backend::mfem::ElementCoordinates::for_each_coefficient ( const int local,
Visitor && visit ) const
inline

Visit independent weights for one native coefficient after dual orientation.

◆ local_dof()

int serif::discretization::backend::mfem::ElementCoordinates::local_dof ( int reduced) const
nodiscard

Locate a supported coefficient among this element's native coordinates.

◆ orient_dual()

void serif::discretization::backend::mfem::ElementCoordinates::orient_dual ( ::mfem::Vector & values) const

Convert integrated native coefficients to global dual orientation.

◆ orient_primal()

void serif::discretization::backend::mfem::ElementCoordinates::orient_primal ( ::mfem::Vector & values) const
private

Apply MFEM's nontrivial primal transformation, when present.

◆ reduced_dof()

int serif::discretization::backend::mfem::ElementCoordinates::reduced_dof ( int local) const
nodiscard

Return a supported coefficient index, or -1 outside the binding support.

◆ size()

int serif::discretization::backend::mfem::ElementCoordinates::size ( ) const
inlinenodiscardnoexcept

Return the number of native element coefficients.

◆ unit_direction()

void serif::discretization::backend::mfem::ElementCoordinates::unit_direction ( int column,
::mfem::Vector & direction ) const

Express one native local basis direction, including its primal orientation. On constrained spaces, callers distribute its contribution through the hanging-node weights.

Member Data Documentation

◆ m_binding

const DofMap& serif::discretization::backend::mfem::ElementCoordinates::m_binding
private

◆ m_dofs

::mfem::Array<int> serif::discretization::backend::mfem::ElementCoordinates::m_dofs
private

◆ m_supported

bool serif::discretization::backend::mfem::ElementCoordinates::m_supported
private

◆ m_transformation

::mfem::DofTransformation serif::discretization::backend::mfem::ElementCoordinates::m_transformation
private

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