SpECTRE  v2022.10.04
amr::Actions::EvaluateRefinementCriteria Struct Reference

Evaluates the refinement criteria in order to set the amr::domain::Flags of an Element and sends this information to the neighbors of the Element. More...

#include <EvaluateRefinementCriteria.hpp>

Static Public Member Functions

template<typename ParallelComponent , typename DbTagList , typename Metavariables , typename ArrayIndex >
static void apply (db::DataBox< DbTagList > &box, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &array_index)
 

Detailed Description

Evaluates the refinement criteria in order to set the amr::domain::Flags of an Element and sends this information to the neighbors of the Element.

DataBox:

  • Uses:
    • domain::Tags::Element<volume_dim>
    • amr::domain::Tags::NeighborFlags<volume_dim>
    • amr::Criteria::Tags::Criteria (from GlobalCache)
    • any tags requested by the refinement criteria
  • Modifies:
    • amr::domain::Tags::Flags<volume_dim>

Invokes:

Details

  • Evaluates each refinement criteria held by amr::Criteria::Tags::Criteria, and in each dimension selects the amr::domain::Flag with the highest priority (i.e the highest integral value).
  • Checks if any neighbors have sent their AMR decision, and if so, calls amr:domain::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: