SpECTRE  v2023.01.13
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:
• src/ParallelAlgorithms/Amr/Actions/EvaluateRefinementCriteria.hpp