46 mfem::ParFiniteElementSpace& space,
const std::optional<int> component = {});
56 void addEssential(
const mfem::Array<int>& local_dofs, std::shared_ptr<mfem::Coefficient> ess_bdr_coef,
57 mfem::ParFiniteElementSpace& space, std::optional<int> component = {});
66 void addEssentialByTrueDofs(
const mfem::Array<int>& true_dofs, std::shared_ptr<mfem::VectorCoefficient> ess_bdr_coef,
67 mfem::ParFiniteElementSpace& space);
75 if (!all_dofs_valid_) {
78 return all_true_dofs_;
87 if (!all_dofs_valid_) {
90 return all_local_dofs_;
108 std::vector<BoundaryCondition>&
essentials() {
return ess_bdr_; }
113 const std::vector<BoundaryCondition>&
essentials()
const {
return ess_bdr_; }
119 void updateAllDofs()
const;
124 const int num_attrs_;
129 std::vector<BoundaryCondition> ess_bdr_;
136 std::set<int> attrs_in_use_;
142 mutable mfem::Array<int> all_true_dofs_;
148 mutable mfem::Array<int> all_local_dofs_;
153 mutable bool all_dofs_valid_ =
false;
This file contains the declaration of the boundary condition class.
A container for the boundary condition information relating to a specific physics module.
BoundaryConditionManager(const mfem::ParMesh &mesh)
Construct a new Boundary Condition Manager object.
void addEssentialByTrueDofs(const mfem::Array< int > &true_dofs, std::shared_ptr< mfem::VectorCoefficient > ess_bdr_coef, mfem::ParFiniteElementSpace &space)
std::unique_ptr< mfem::HypreParMatrix > eliminateAllEssentialDofsFromMatrix(mfem::HypreParMatrix &matrix) const
Eliminates all essential BCs from a matrix.
const mfem::Array< int > & allEssentialLocalDofs() const
Returns all the local degrees of freedom associated with all the essential BCs.
const std::vector< BoundaryCondition > & essentials() const
Accessor for the essential BC objects.
void addEssential(const std::set< int > &ess_bdr, serac::GeneralCoefficient ess_bdr_coef, mfem::ParFiniteElementSpace &space, const std::optional< int > component={})
Set the essential boundary conditions from a list of boundary markers and a coefficient.
std::vector< BoundaryCondition > & essentials()
Accessor for the essential BC objects.
const mfem::Array< int > & allEssentialTrueDofs() const
Returns all the true degrees of freedom associated with all the essential BCs.
This file contains the declaration of structure that manages the MFEM objects that make up the state ...
Accelerator functionality.