SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
nodal_rows.hpp File Reference
#include <array>
#include <cmath>
#include "serif/operators/backend/mfem/nodal_data.hpp"
Include dependency graph for nodal_rows.hpp:
This graph shows which files directly or indirectly include this file:

Namespaces

namespace  serif
 
namespace  serif::operators
 
namespace  serif::operators::backend
 
namespace  serif::operators::backend::mfem
 

Functions

template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
void serif::operators::backend::mfem::validate_nodal_output (const NodalData< EquationT, SchemaT > &data, const ::mfem::Vector &result)
 A frozen linearization still requires a current selection and a correctly sized output.
 
template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
void serif::operators::backend::mfem::apply_residual_rows (const NodalData< EquationT, SchemaT > &data, ::mfem::Vector &result)
 Replace only selected entries of an assembled residual with the accepted nodal residual.
 
template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
void serif::operators::backend::mfem::apply_jacobian_rows (const NodalData< EquationT, SchemaT > &data, const ::mfem::Vector &direction, ::mfem::Vector &result)
 Replace complete Jacobian rows, including every unconstrained coupling at the selected rows.
 
template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT, typename CoefficientsT>
requires requires(const CoefficientsT& direction) { direction.template get<typename EquationT::Test>(); }
void serif::operators::backend::mfem::apply_jacobian_rows (const NodalData< EquationT, SchemaT > &data, const CoefficientsT &direction, ::mfem::Vector &result)
 Select the nodal direction by its physical term and verify its coefficient ordering.
 
template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
void serif::operators::backend::mfem::mask_residual_dual (const NodalData< EquationT, SchemaT > &data, const ::mfem::Vector &dual, ::mfem::Vector &volume_dual)
 Remove constrained rows before applying the volume Jacobian transpose.
 
template<NodalValueEquation EquationT, discretization::domain::schema::IsSchema SchemaT>
void serif::operators::backend::mfem::add_jacobian_transpose_rows (const NodalData< EquationT, SchemaT > &data, const ::mfem::Vector &dual, ::mfem::Vector &result)
 Add the constrained-row transpose after applying the volume transpose to the masked dual.