21 #ifndef FUB_AMREX_GRIDDING_ALGORITHM_HPP 
   22 #define FUB_AMREX_GRIDDING_ALGORITHM_HPP 
   31 #include <AMReX_AmrCore.H> 
   32 #include <AMReX_MultiFabUtil.H> 
  128   [[nodiscard]] std::ptrdiff_t 
GetCycles() const noexcept {
 
  169   void ErrorEst(
int level, ::amrex::TagBoxArray& tags, 
double time_point,
 
  173       int level, 
double time_point, const ::amrex::BoxArray& box_array,
 
  174       const ::amrex::DistributionMapping& distribution_mapping) 
override;
 
  177       int level, 
double time_point, const ::amrex::BoxArray& box_array,
 
  178       const ::amrex::DistributionMapping& distribution_mapping) 
override;
 
  181       int level, 
double time_point, const ::amrex::BoxArray& box_array,
 
  182       const ::amrex::DistributionMapping& distribution_mapping) 
override;
 
This is a polymorphic value type that wraps any BoundaryCondition object.
Definition: AnyBoundaryCondition.hpp:55
 
This class is a polymoprhic value type which stores components to initialize a gridding algorithm dur...
Definition: AnyInitialData.hpp:53
 
This class is a polymorphic value type that stores objects which satisfies the TaggingMethod<Gridding...
Definition: AnyTaggingMethod.hpp:48
 
This class modifies and initializes a PatchLevel in a PatchHierarchy.
Definition: AMReX/GriddingAlgorithm.hpp:60
 
AnyBoundaryCondition boundary_condition_
Definition: AMReX/GriddingAlgorithm.hpp:189
 
GriddingAlgorithm & operator=(const GriddingAlgorithm &other)
The copy assignment makes a deep copy of the all data for each MPI rank.
 
AnyInitialData initial_data_
Definition: AMReX/GriddingAlgorithm.hpp:187
 
GriddingAlgorithm(PatchHierarchy hier, AnyInitialData initial_data, AnyTaggingMethod tagging, AnyBoundaryCondition boundary=AnyBoundaryCondition())
Constructs a gridding algorithm and defines all customization points.
 
const AnyBoundaryCondition & GetBoundaryCondition() const noexcept
 
Duration GetTimePoint() const noexcept
Returns the current time point on the coarsest refinement level.
Definition: AMReX/GriddingAlgorithm.hpp:133
 
GriddingAlgorithm()
Constructs an empty and invalid GriddingAlgorithm.
 
const PatchHierarchy & GetPatchHierarchy() const noexcept
Definition: AMReX/GriddingAlgorithm.hpp:109
 
AnyTaggingMethod tagging_
Definition: AMReX/GriddingAlgorithm.hpp:188
 
void MakeNewLevelFromScratch(int level, double time_point, const ::amrex::BoxArray &box_array, const ::amrex::DistributionMapping &distribution_mapping) override
 
GriddingAlgorithm(const GriddingAlgorithm &other)
The copy constructor makes a deep copy of the all data for each MPI rank.
 
void FillMultiFabFromLevel(::amrex::MultiFab &mf, int level_number)
Fill the ghost layer boundary specified of the specifed MultiFab mf.
 
std::ptrdiff_t GetCycles() const noexcept
Returns the number of time steps taken on the coarsest refinement level.
Definition: AMReX/GriddingAlgorithm.hpp:128
 
~GriddingAlgorithm() noexcept override=default
Constructs an empty and invalid GriddingAlgorithm.
 
void ErrorEst(int level, ::amrex::TagBoxArray &tags, double time_point, int) override
 
GriddingAlgorithm(GriddingAlgorithm &&other) noexcept=default
The move constructor moves a gridding algorithm without allocating any memory.
 
int RegridAllFinerlevels(int which_level)
Attempt to regrid all finer level than the specified which_level.
 
void FillMultiFabFromLevel(::amrex::MultiFab &mf, int level_number, AnyBoundaryCondition &bc)
Fill the ghost layer boundary specified of the specifed MultiFab mf.
 
const AnyTaggingMethod & GetTagging() const noexcept
 
PatchHierarchy & GetPatchHierarchy() noexcept
Definition: AMReX/GriddingAlgorithm.hpp:108
 
void ClearLevel([[maybe_unused]] int level) override
 
GriddingAlgorithm & operator=(GriddingAlgorithm &&other) noexcept=default
The move assignment moves a gridding algorithm without allocating any memory.
 
void MakeNewLevelFromCoarse(int level, double time_point, const ::amrex::BoxArray &box_array, const ::amrex::DistributionMapping &distribution_mapping) override
 
PatchHierarchy hierarchy_
Definition: AMReX/GriddingAlgorithm.hpp:186
 
void RemakeLevel(int level, double time_point, const ::amrex::BoxArray &box_array, const ::amrex::DistributionMapping &distribution_mapping) override
 
void InitializeHierarchy(double level_time=0.0)
Initializes the underlying patch hierarchy using the stored initial data method.
 
const AnyInitialData & GetInitialCondition() const noexcept
 
The PatchHierarchy holds simulation data on multiple refinement levels.
Definition: AMReX/PatchHierarchy.hpp:156
 
std::ptrdiff_t GetCycles(int level=0) const
 
Duration GetTimePoint(int level=0) const
 
::fub::AnyBoundaryCondition< GriddingAlgorithm > AnyBoundaryCondition
Definition: AMReX/GriddingAlgorithm.hpp:54
 
The fub namespace.
Definition: AnyBoundaryCondition.hpp:31
 
std::chrono::duration< double > Duration
Definition: Duration.hpp:31
 
::amrex::MultiFab & DataReference
Definition: AMReX/GriddingAlgorithm.hpp:48
 
::amrex::TagBoxArray & TagDataHandle
Definition: AMReX/GriddingAlgorithm.hpp:47
 
The PatchLevel represents a distributed grid containing plain simulation data without a ghost cell la...
Definition: AMReX/PatchHierarchy.hpp:90