21 #ifndef FUB_AMREX_CUT_CELL_GRIDDING_ALGORITHM_HPP
22 #define FUB_AMREX_CUT_CELL_GRIDDING_ALGORITHM_HPP
30 #include <AMReX_AmrCore.H>
121 [[nodiscard]] std::ptrdiff_t
GetCycles() const noexcept {
159 [[nodiscard]] ::amrex::DistributionMapping
161 const ::amrex::DistributionMapping& distribution_mapping)
const;
163 void ErrorEst(
int level, ::amrex::TagBoxArray& tags,
double time_point,
167 int level,
double time_point, const ::amrex::BoxArray& box_array,
168 const ::amrex::DistributionMapping& distribution_mapping)
override;
171 int level,
double time_point, const ::amrex::BoxArray& box_array,
172 const ::amrex::DistributionMapping& distribution_mapping)
override;
175 int level,
double time_point, const ::amrex::BoxArray& box_array,
176 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 cutcell::PatchLevel in a cutcell::PatchHierarchy.
Definition: AMReX/cutcell/GriddingAlgorithm.hpp:56
const AnyTaggingMethod & GetTagging() const noexcept
const AnyInitialData & GetInitialCondition() const noexcept
AnyTaggingMethod tagging_
Definition: AMReX/cutcell/GriddingAlgorithm.hpp:184
void ErrorEst(int level, ::amrex::TagBoxArray &tags, double time_point, int) override
PatchHierarchy hierarchy_
Definition: AMReX/cutcell/GriddingAlgorithm.hpp:182
::amrex::DistributionMapping LoadBalance(int level, const ::amrex::BoxArray &box_array, const ::amrex::DistributionMapping &distribution_mapping) const
GriddingAlgorithm(PatchHierarchy hier, AnyInitialData initial_data, AnyTaggingMethod tagging, AnyBoundaryCondition boundary)
Constructs a gridding algorithm and defines all customization points.
void MakeNewLevelFromScratch(int level, double time_point, const ::amrex::BoxArray &box_array, const ::amrex::DistributionMapping &distribution_mapping) override
void FillMultiFabFromLevel(::amrex::MultiFab &mf, int level_number)
Fill the ghost layer boundary specified of the specifed MultiFab mf.
void RemakeLevel(int level, double time_point, const ::amrex::BoxArray &box_array, const ::amrex::DistributionMapping &distribution_mapping) override
AnyBoundaryCondition boundary_condition_
Definition: AMReX/cutcell/GriddingAlgorithm.hpp:185
void ClearLevel(int level) override
const AnyBoundaryCondition & GetBoundaryCondition() const noexcept
int RegridAllFinerlevels(int which_level)
Attempt to regrid all finer level than the specified which_level.
GriddingAlgorithm(GriddingAlgorithm &&) noexcept=default
The move constructor 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
Duration GetTimePoint() const noexcept
Returns the current time point on the coarsest refinement level.
Definition: AMReX/cutcell/GriddingAlgorithm.hpp:126
const PatchHierarchy & GetPatchHierarchy() const noexcept
GriddingAlgorithm()
Constructs an empty and invalid GriddingAlgorithm.
GriddingAlgorithm(const GriddingAlgorithm &)
The copy constructor makes a deep copy of the all data for each MPI rank.
GriddingAlgorithm & operator=(const GriddingAlgorithm &)
The copy constructor makes a deep copy of the all data for each MPI rank.
std::ptrdiff_t GetCycles() const noexcept
Returns the number of time steps taken on the coarsest refinement level.
Definition: AMReX/cutcell/GriddingAlgorithm.hpp:121
AnyInitialData initial_condition_
Definition: AMReX/cutcell/GriddingAlgorithm.hpp:183
void PostProcessBaseGrids(::amrex::BoxArray &box_array) const override
void InitializeHierarchy(double level_time)
Initializes the underlying patch hierarchy using the stored initial data method.
Definition: AMReX/cutcell/PatchHierarchy.hpp:139
Duration GetTimePoint(int level=0) const
Returns the time point of a specified level number.
std::ptrdiff_t GetCycles(int level=0) const
Returns the number of cycles done for a specific level.
Definition: FillCutCellData.hpp:30
The fub namespace.
Definition: AnyBoundaryCondition.hpp:31
std::chrono::duration< double > Duration
Definition: Duration.hpp:31
::amrex::MultiFab & DataReference
Definition: AMReX/cutcell/GriddingAlgorithm.hpp:43
::amrex::TagBoxArray & TagDataHandle
Definition: AMReX/cutcell/GriddingAlgorithm.hpp:42
This class holds state data arrays for each refinement level of a patch hierarchy.
Definition: AMReX/cutcell/PatchHierarchy.hpp:57