Loading...
Searching...
No Matches
strong_algebraic_dirichlet_enforcement.hpp File Reference

Go to the source code of this file.

Namespaces

namespace  terra
 
namespace  terra::fe
 

Functions

template<typename ScalarType , linalg::OperatorLike OperatorType, typename FlagType >
void terra::fe::strong_algebraic_dirichlet_enforcement_poisson_like (OperatorType &A_neumann, OperatorType &A_neumann_diag, const linalg::VectorQ1Scalar< ScalarType > &g, linalg::VectorQ1Scalar< ScalarType > &tmp, linalg::VectorQ1Scalar< ScalarType > &b, const grid::Grid4DDataScalar< FlagType > &mask_data, const FlagType &dirichlet_boundary_mask)
 Helper function to modify the right-hand side vector accordingly for strong Dirichlet boundary condition enforcement.
 
template<typename ScalarType , linalg::OperatorLike OperatorType, typename FlagType >
void terra::fe::strong_algebraic_dirichlet_enforcement_vectorlaplace_like (OperatorType &A_neumann, OperatorType &A_neumann_diag, const linalg::VectorQ1Vec< ScalarType > &g, linalg::VectorQ1Vec< ScalarType > &tmp, linalg::VectorQ1Vec< ScalarType > &b, const grid::Grid4DDataScalar< FlagType > &mask_data, const FlagType &dirichlet_boundary_mask)
 
template<typename ScalarType , util::FlagLike FlagType>
void terra::fe::strong_algebraic_homogeneous_dirichlet_enforcement_poisson_like (linalg::VectorQ1Scalar< ScalarType > &b, const grid::Grid4DDataScalar< FlagType > &mask_data, const FlagType &dirichlet_boundary_mask)
 Same as strong_algebraic_dirichlet_enforcement_poisson_like() for homogenous boundary conditions ( \( g = 0 \)).
 
template<typename ScalarType , linalg::OperatorLike OperatorType, util::FlagLike FlagType>
void terra::fe::strong_algebraic_velocity_dirichlet_enforcement_stokes_like (OperatorType &K_neumann, OperatorType &K_neumann_diag, const linalg::VectorQ1IsoQ2Q1< ScalarType > &g, linalg::VectorQ1IsoQ2Q1< ScalarType > &tmp, linalg::VectorQ1IsoQ2Q1< ScalarType > &b, const grid::Grid4DDataScalar< FlagType > &mask_data, const FlagType &dirichlet_boundary_mask)
 Same as strong_algebraic_dirichlet_enforcement_poisson_like() for Stokes-like systems (with strong enforcement of velocity boundary conditions).
 
template<typename ScalarType , util::FlagLike FlagType>
void terra::fe::strong_algebraic_homogeneous_velocity_dirichlet_enforcement_stokes_like (linalg::VectorQ1IsoQ2Q1< ScalarType > &b, const grid::Grid4DDataScalar< FlagType > &mask_data, const FlagType &dirichlet_boundary_mask)
 Same as strong_algebraic_homogeneous_dirichlet_enforcement_poisson_like() for Stokes-like systems (with strong enforcement of zero velocity boundary conditions).