|
SpECTRE
v2025.08.19
|
Items for adaptive mesh refinement. More...
Namespaces | |
| namespace | Actions |
| Actions for adaptive mesh refinement | |
| namespace | Criteria |
| Criteria for deciding how a mesh should be adapted. | |
| namespace | Events |
| Events for adaptive mesh refinement | |
| namespace | Initialization |
| Mutators used for initialization of adaptive mesh refinement | |
| namespace | OptionTags |
| Option tags for AMR polocies. | |
| namespace | projectors |
| AMR projectors. | |
| namespace | protocols |
| AMR protocols. | |
| namespace | Tags |
| Tags for adaptive mesh refinement | |
Classes | |
| struct | Component |
| A singleton parallel component to manage adaptive mesh refinement. More... | |
| class | Criterion |
| Base class for something that determines how an adaptive mesh should be changed. More... | |
| struct | Info |
| Information about an element that is communicated by AMR actions. More... | |
| class | Limits |
| The limits on refinement level and resolution for AMR. More... | |
| class | Policies |
| A set of runtime policies controlling adaptive mesh refinement. More... | |
Enumerations | |
| enum class | Flag { Flag::Undefined , Flag::Join , Flag::DecreaseResolution , Flag::DoNothing , Flag::IncreaseResolution , Flag::Split } |
| Flags that represent decisions about mesh refinement. More... | |
| enum class | Isotropy { Isotropy::Anisotropic , Isotropy::Isotropic } |
| Isotropy of adaptive mesh refinement. More... | |
Functions | |
| std::ostream & | operator<< (std::ostream &os, const Flag &flag) |
| Output operator for a Flag. | |
| template<size_t VolumeDim> | |
| std::array< size_t, VolumeDim > | desired_refinement_levels (const ElementId< VolumeDim > &id, const std::array< Flag, VolumeDim > &flags) |
Computes the desired refinement level of the Element with ElementId id given the desired amr::Flags flags | |
| template<size_t VolumeDim> | |
| std::array< size_t, VolumeDim > | desired_refinement_levels_of_neighbor (const ElementId< VolumeDim > &neighbor_id, const std::array< Flag, VolumeDim > &neighbor_flags, const OrientationMap< VolumeDim > &orientation) |
Computes the desired refinement level of a neighboring Element with ElementId neighbor_id given its desired amr::Flags neighbor_flags taking into account the OrientationMap orientation of the neighbor. More... | |
| template<size_t VolumeDim> | |
| boost::rational< size_t > | fraction_of_block_volume (const ElementId< VolumeDim > &element_id) |
| Fraction of the logical volume of a block covered by an element. More... | |
| template<size_t VolumeDim> | |
| bool | has_potential_sibling (const ElementId< VolumeDim > &element_id, const Direction< VolumeDim > &direction) |
Whether or not the Element with element_id can have a sibling in the given direction | |
| template<size_t VolumeDim> | |
| ElementId< VolumeDim > | id_of_parent (const ElementId< VolumeDim > &element_id, const std::array< Flag, VolumeDim > &flags) |
Returns the ElementId of the parent of the Element with element_id using the refinement flags associated with element_id More... | |
| template<size_t VolumeDim> | |
| std::vector< ElementId< VolumeDim > > | ids_of_children (const ElementId< VolumeDim > &element_id, const std::array< Flag, VolumeDim > &flags, const std::optional< size_t > &child_grid_index=std::nullopt) |
Returns the ElementIds of the children of the Element with element_id using the refinement flags associated with element_id More... | |
| template<size_t VolumeDim> | |
| std::deque< ElementId< VolumeDim > > | ids_of_joining_neighbors (const Element< VolumeDim > &element, const std::array< Flag, VolumeDim > &flags) |
The ElementIds of the neighbors of element that will join with it given refinement flags More... | |
| template<size_t VolumeDim> | |
| bool | is_child_that_creates_parent (const ElementId< VolumeDim > &element_id, const std::array< Flag, VolumeDim > &flags) |
| Whether or not the Element is the child that should create the parent Element when joining elements. More... | |
| template<size_t VolumeDim> | |
| bool | prevent_element_from_joining_while_splitting (gsl::not_null< std::array< Flag, VolumeDim > * > flags) |
| Prevent an Element from splitting in one dimension, while joining in another. More... | |
| template<size_t VolumeDim> | |
| std::ostream & | operator<< (std::ostream &os, const Info< VolumeDim > &info) |
| Output operator for an Info. | |
| template<size_t VolumeDim> | |
| bool | operator== (const Info< VolumeDim > &lhs, const Info< VolumeDim > &rhs) |
| template<size_t VolumeDim> | |
| bool | operator!= (const Info< VolumeDim > &lhs, const Info< VolumeDim > &rhs) |
| template<size_t VolumeDim> | |
| std::pair< DirectionMap< VolumeDim, Neighbors< VolumeDim, ElementId< VolumeDim > > >, DirectionalIdMap< VolumeDim, Mesh< VolumeDim > > > | neighbors_of_child (const Element< VolumeDim > &parent, const Info< VolumeDim > &parent_info, const std::unordered_map< ElementId< VolumeDim >, Info< VolumeDim > > &parent_neighbor_info, const ElementId< VolumeDim > &child_id) |
| Determine the new neighbors of an element during AMR, and the neighbors' meshes. More... | |
| template<size_t VolumeDim> | |
| std::pair< DirectionMap< VolumeDim, Neighbors< VolumeDim, ElementId< VolumeDim > > >, DirectionalIdMap< VolumeDim, Mesh< VolumeDim > > > | neighbors_of_parent (const ElementId< VolumeDim > &parent_id, const std::vector< std::tuple< const Element< VolumeDim > &, const std::unordered_map< ElementId< VolumeDim >, Info< VolumeDim > > & > > &children_elements_and_neighbor_info) |
returns the neighbors and their Meshes of the Element with ElementId parent_id, that is created from its children_elements_and_neighbor_info | |
| template<size_t VolumeDim> | |
| std::unordered_map< ElementId< VolumeDim >, Mesh< VolumeDim > > | new_neighbor_ids (const ElementId< VolumeDim > &my_id, const Direction< VolumeDim > &direction, const Neighbors< VolumeDim, ElementId< VolumeDim > > &previous_neighbors_in_direction, const std::unordered_map< ElementId< VolumeDim >, Info< VolumeDim > > &previous_neighbors_amr_info) |
returns the ElementId and Mesh of the new neighbors in the given direction of the Element whose ElementId is my_id given the previous_neighbors_in_direction and their amr::Info. More... | |
| template<size_t VolumeDim> | |
| bool | update_amr_decision (gsl::not_null< std::array< Flag, VolumeDim > * > my_current_amr_flags, const Element< VolumeDim > &element, const ElementId< VolumeDim > &neighbor_id, const std::array< Flag, VolumeDim > &neighbor_amr_flags, bool enforce_two_to_one_balance_in_normal_direction) |
Updates the AMR decisions my_current_amr_flags of the Element element based on the AMR decisions neighbor_amr_flags of a neighbor Element with ElementId neighbor_id. More... | |
| template<typename Metavariables , typename Component > | |
| void | register_callbacks () |
| template<size_t Dim> | |
| void | enforce_policies (gsl::not_null< std::array< Flag, Dim > * > amr_decision, const amr::Policies &amr_policies, const ElementId< Dim > &element_id, const Mesh< Dim > &mesh) |
| Updates amr_decision so that it satisfies amr_policies. More... | |
| std::ostream & | operator<< (std::ostream &os, const Isotropy &isotropy) |
| Output operator for isotropy. | |
| bool | operator== (const Limits &lhs, const Limits &rhs) |
| bool | operator!= (const Limits &lhs, const Limits &rhs) |
| bool | operator== (const Policies &lhs, const Policies &rhs) |
| bool | operator!= (const Policies &lhs, const Policies &rhs) |
Items for adaptive mesh refinement.
| void amr::enforce_policies | ( | gsl::not_null< std::array< Flag, Dim > * > | amr_decision, |
| const amr::Policies & | amr_policies, | ||
| const ElementId< Dim > & | element_id, | ||
| const Mesh< Dim > & | mesh | ||
| ) |
Updates amr_decision so that it satisfies amr_policies.
amr_decision tried to go beyond the amr::Limits in any direction, this function will error if amr::Limits::error_beyond_limits() is true.