SpECTRE  v2024.04.12
amr::projectors Namespace Reference

AMR projectors. More...

Classes

struct  CopyFromCreatorOrLeaveAsIs
 For h-refinement copy the items from the parent/child, while for p-refinement leave the items unchanged. More...
 
struct  DefaultInitialize
 Value initialize the items corresponding to Tags. More...
 
struct  ProjectTensors
 Update the Tensors corresponding to TensorTags after an AMR change. More...
 
struct  ProjectVariables
 Update the Variables corresponding to VariablesTags after an AMR change. More...
 

Functions

template<size_t Dim>
Mesh< Dim > mesh (const Mesh< Dim > &old_mesh, const std::array< amr::Flag, Dim > &flags)
 Given old_mesh returns a new Mesh based on the refinement flags
 
template<size_t Dim>
Mesh< Dim > parent_mesh (const std::vector< Mesh< Dim > > &children_meshes)
 Given the Meshes for a set of joining Elements, returns the Mesh for the newly created parent Element. More...
 
template<size_t Dim>
Mesh< Dim > new_mesh (const Mesh< Dim > &current_mesh, const std::array< Flag, Dim > &flags, const Element< Dim > &element, const std::unordered_map< ElementId< Dim >, Info< Dim > > &neighbors_info)
 Computes the new Mesh of an Element after AMR. More...
 

Detailed Description

AMR projectors.

Function Documentation

◆ new_mesh()

template<size_t Dim>
Mesh< Dim > amr::projectors::new_mesh ( const Mesh< Dim > &  current_mesh,
const std::array< Flag, Dim > &  flags,
const Element< Dim > &  element,
const std::unordered_map< ElementId< Dim >, Info< Dim > > &  neighbors_info 
)

Computes the new Mesh of an Element after AMR.

Details

The returned Mesh will be that of either element or its parent or children depending upon the flags. If an Element is joining, the returned Mesh will be that given by amr::projectors::parent_mesh; otherwise it will be given by amr::projectors::mesh

◆ parent_mesh()

template<size_t Dim>
Mesh< Dim > amr::projectors::parent_mesh ( const std::vector< Mesh< Dim > > &  children_meshes)

Given the Meshes for a set of joining Elements, returns the Mesh for the newly created parent Element.

Details

In each dimension the extent of the parent Mesh will be the maximum over the extents of each child Mesh