![]() |
PRISMS-PF Manual
|
The class handles the generation and application of boundary conditions based on the user-inputs. More...
#include <constraint_manager.h>
Public Member Functions | |
| ConstraintManager ()=default | |
| Constructor. | |
| void | init (const BoundaryParameters &_boundary_parameters, const SpatialDiscretization< dim > &_spatial_discretization, const DoFManager< dim, degree > &_dof_manager, const PDEOperatorBase< dim, degree, number > &_pde_operator, const SimulationTimer &_sim_timer) |
| Initialize the constraint manager. | |
| std::vector< const dealii::AffineConstraints< number > * > | get_field_constraints () const |
| Getter function for the constraints. | |
| const dealii::AffineConstraints< number > & | get_field_constraint (Types::Index index) const |
| Getter function for the constraint of an index. | |
| const std::array< dealii::AffineConstraints< number >, 2 > & | get_generic_constraints () const |
| Getter function for the constraints. | |
| const dealii::AffineConstraints< number > & | get_generic_constraint (unsigned int rank) const |
| Getter function for the constraint of an index. | |
| const std::vector< std::vector< dealii::AffineConstraints< number > > > & | get_mg_field_constraints_levels () const |
| Getter function for a selection of the constraints. | |
| std::vector< const dealii::AffineConstraints< number > * > | get_mg_field_constraints (unsigned int relative_level) const |
| Getter function for the constraints. | |
| const dealii::AffineConstraints< number > & | get_mg_field_constraint (Types::Index index, unsigned int relative_level) const |
| Getter function for the constraint of an index (constant reference). | |
| const std::vector< std::array< dealii::AffineConstraints< number >, 2 > > & | get_mg_generic_constraints_levels () const |
| Getter function for the constraints. | |
| const std::array< dealii::AffineConstraints< number >, 2 > & | get_mg_generic_constraints (unsigned int relative_level) const |
| Getter function for the constraints. | |
| const dealii::AffineConstraints< number > & | get_mg_generic_constraint (unsigned int rank, unsigned int relative_level) const |
| Getter function for the constraint of an index (constant reference). | |
| void | reinit (const std::vector< FieldAttributes > &field_attributes) |
| Make constraints based on the inputs of the constructor. | |
| void | update_time_dependent_constraints (const std::vector< FieldAttributes > &field_attributes) |
| Update time-dependent constraints. For now this only updates the Dirichlet constraints. | |
Static Public Attributes | |
| static const std::array< dealii::ComponentMask, dim > | vector_component_mask |
| Create a component mask. | |
| static const dealii::ComponentMask | scalar_empty_mask |
Private Member Functions | |
| void | make_constraints_for_single_field (dealii::AffineConstraints< number > &constraint, const dealii::DoFHandler< dim > &dof_handler, const BoundaryConditionSet &_field_constraints, TensorRank tensor_rank, Types::Index field_index, unsigned int relative_level=-1) |
| Construct constraints for a single field based on the boundary conditions. | |
| void | make_bc_constraints (dealii::AffineConstraints< number > &constraint, const dealii::DoFHandler< dim > &dof_handler, const BoundaryConditionSet &boundary_condition, TensorRank tensor_rank, Types::Index field_index) |
| Add boundary conditions to a single constraint. | |
| void | make_one_boundary_constraint (dealii::AffineConstraints< number > &_constraints, unsigned int boundary_id, unsigned int component, Condition boundary_type, const dealii::DoFHandler< dim > &dof_handler, TensorRank tensor_rank, Types::Index field_index) const |
| Apply constraints for common boundary conditions. | |
| void | make_dirichlet_constraints (dealii::AffineConstraints< number > &_constraints, const dealii::DoFHandler< dim > &dof_handler, const unsigned int &boundary_id, const unsigned int &field_index, const bool &is_vector_field, const dealii::ComponentMask &mask) const |
| Make dirichlet constraints. | |
Private Attributes | |
| const BoundaryParameters * | boundary_parameters = nullptr |
| User-inputs constraint parameters. | |
| const SpatialDiscretization< dim > * | spatial_discretization = nullptr |
| User-inputs discretization. | |
| const DoFManager< dim, degree > * | dof_manager = nullptr |
| Dof manager pointer. | |
| const PDEOperatorBase< dim, degree, number > * | pde_operator = nullptr |
| PDE operator. | |
| const SimulationTimer * | sim_timer = nullptr |
| Simulation time for time-dependent constraints. | |
| std::vector< dealii::AffineConstraints< number > > | field_constraints |
| Constraints. Outer vector is indexed by field index. | |
| std::array< dealii::AffineConstraints< number >, 2 > | generic_constraints |
| Constraints not specific to any field. We need this for invm. | |
| std::vector< std::vector< dealii::AffineConstraints< number > > > | mg_field_constraints |
| Constraints. Outer vector is indexed by field index. Inner vector is indexed by relative mg level. | |
| std::vector< std::array< dealii::AffineConstraints< number >, 2 > > | mg_generic_constraints |
| Constraints not specific to any field. We need this for invm. | |
The class handles the generation and application of boundary conditions based on the user-inputs.
|
default |
Constructor.
|
nodiscard |
Getter function for the constraint of an index.
|
nodiscard |
Getter function for the constraints.
|
nodiscard |
Getter function for the constraint of an index.
|
nodiscard |
Getter function for the constraints.
|
nodiscard |
Getter function for the constraint of an index (constant reference).
|
nodiscard |
Getter function for the constraints.
|
nodiscard |
Getter function for a selection of the constraints.
|
nodiscard |
Getter function for the constraint of an index (constant reference).
|
nodiscard |
Getter function for the constraints.
|
nodiscard |
Getter function for the constraints.
| PRISMS_PF_BEGIN_NAMESPACE void ConstraintManager< dim, degree, number >::init | ( | const BoundaryParameters & | _boundary_parameters, |
| const SpatialDiscretization< dim > & | _spatial_discretization, | ||
| const DoFManager< dim, degree > & | _dof_manager, | ||
| const PDEOperatorBase< dim, degree, number > & | _pde_operator, | ||
| const SimulationTimer & | _sim_timer ) |
Initialize the constraint manager.
|
private |
Add boundary conditions to a single constraint.
|
private |
Construct constraints for a single field based on the boundary conditions.
|
private |
Make dirichlet constraints.
|
private |
Apply constraints for common boundary conditions.
| void ConstraintManager< dim, degree, number >::reinit | ( | const std::vector< FieldAttributes > & | field_attributes | ) |
Make constraints based on the inputs of the constructor.
| void ConstraintManager< dim, degree, number >::update_time_dependent_constraints | ( | const std::vector< FieldAttributes > & | field_attributes | ) |
Update time-dependent constraints. For now this only updates the Dirichlet constraints.
|
private |
User-inputs constraint parameters.
|
private |
Dof manager pointer.
|
private |
Constraints. Outer vector is indexed by field index.
|
private |
Constraints not specific to any field. We need this for invm.
|
private |
Constraints. Outer vector is indexed by field index. Inner vector is indexed by relative mg level.
|
private |
Constraints not specific to any field. We need this for invm.
|
private |
PDE operator.
|
static |
|
private |
Simulation time for time-dependent constraints.
|
private |
User-inputs discretization.
|
static |
Create a component mask.