SpECTRE  v2024.04.12
amr::Actions::EvaluateRefinementCriteria Struct Reference

Evaluates the refinement criteria in order to set the amr::Info 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 >
static void apply (db::DataBox< DbTagList > &box, Parallel::GlobalCache< Metavariables > &cache, const ElementId< Metavariables::volume_dim > &element_id)
 

Detailed Description

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

DataBox:

  • Uses:
  • Modifies:
    • amr::Tags::Info<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).
  • If necessary, changes the refinement decision in order to satisfy the amr::Policies
  • 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: