Evaluates the refinement criteria in order to set the amr::Flags of an Element and sends this information to the neighbors of the Element.
More...
#include <EvaluateRefinementCriteria.hpp>
|
template<typename ParallelComponent , typename DbTagList , typename Metavariables > |
static void | apply (db::DataBox< DbTagList > &box, Parallel::GlobalCache< Metavariables > &cache, const ElementId< Metavariables::volume_dim > &element_id) |
|
Evaluates the refinement criteria in order to set the amr::Flags of an Element and sends this information to the neighbors of the Element.
DataBox:
- Uses:
- domain::Tags::Element<volume_dim>
- amr::Tags::NeighborFlags<volume_dim>
- amr::Criteria::Tags::Criteria (from GlobalCache)
- any tags requested by the refinement criteria
- Modifies:
- amr::Tags::Flags<volume_dim>
Invokes:
Details
- Evaluates each refinement criteria held by amr::Criteria::Tags::Criteria, and in each dimension selects the amr::Flag with the highest priority (i.e the highest integral value).
- An Element that is splitting in one dimension is not allowed to join in another dimension. If this is requested by the refinement critiera, the decision to join is changed to do nothing
- Checks if any neighbors have sent their AMR decision, and if so, calls amr:update_amr_decision with the decision of each neighbor in order to see if the current decision needs to be updated
- Sends the (possibly updated) decision to all of the neighboring Elements
The documentation for this struct was generated from the following file:
- src/ParallelAlgorithms/Amr/Actions/EvaluateRefinementCriteria.hpp