SpECTRE  v2021.11.01
amr Namespace Reference

Items for 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...
 

Functions

std::ostreamoperator<< (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< amr::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< amr::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>
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>
bool update_amr_decision (gsl::not_null< std::array< amr::Flag, VolumeDim > * > my_current_amr_flags, const Element< VolumeDim > &element, const ElementId< VolumeDim > &neighbor_id, const std::array< amr::Flag, VolumeDim > &neighbor_amr_flags)
 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...
 

Detailed Description

Items for adaptive mesh refinement.