Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_LevelBld.H
Go to the documentation of this file.
1
2#ifndef AMREX_LEVELBLD_H_
3#define AMREX_LEVELBLD_H_
4#include <AMReX_Config.H>
5
6#include <AMReX_REAL.H>
7#include <AMReX_Box.H>
8#include <AMReX_Geometry.H>
9#include <AMReX_Amr.H>
10#include <AMReX_AmrLevel.H>
11
17namespace amrex {
18
19
27{
28public:
29
31 virtual ~LevelBld () = default;
33 LevelBld () noexcept = default;
34 LevelBld (LevelBld const&) = default;
35 LevelBld (LevelBld &&) noexcept = default;
36 LevelBld& operator= (LevelBld const&) = default;
37 LevelBld& operator= (LevelBld &&) noexcept = default;
38
45 virtual void variableSetUp () = 0;
47 virtual void variableSetUpForNewCompProcs () { }
48
54 virtual void variableCleanUp () = 0;
55
63 virtual AmrLevel* operator() () = 0;
64
75 virtual AmrLevel* operator() (Amr& papa,
76 int lev,
77 const Geometry& geom_lev,
78 const BoxArray& ba,
79 const DistributionMapping& dm,
80 Real time) = 0;
81};
82
83}
84
85#endif /*_LEVELBLD_H_*/
Virtual base class that owns data and time-stepping logic for a single AMR level.
Driver that coordinates AmrLevel instances, time stepping, and output schedules.
Virtual base class for managing individual levels. AmrLevel functions both as a container for state d...
Definition AMReX_AmrLevel.H:44
Manage hierarchy of levels for time-dependent AMR computations.
Definition AMReX_Amr.H:41
A collection of Boxes stored in an Array.
Definition AMReX_BoxArray.H:568
Calculates the distribution of FABs to MPI processes.
Definition AMReX_DistributionMapping.H:43
Rectangular problem domain geometry.
Definition AMReX_Geometry.H:74
Builds problem-specific AmrLevels.
Definition AMReX_LevelBld.H:27
virtual ~LevelBld()=default
Polymorphic base classes need virtual destructors.
LevelBld() noexcept=default
Defaulted special members keep the factory trivially constructible/copyable.
virtual AmrLevel * operator()()=0
This is a virtual constructor for types derived from AmrLevel. The derived type is initialized with t...
virtual void variableCleanUp()=0
Perform any problem-dependent cleanup. This is a pure virtual function and hence MUST be implemented ...
virtual void variableSetUp()=0
Perform any problem-dependent setup such as physical boundary condition and derived quantities....
virtual void variableSetUpForNewCompProcs()
Optional hook invoked when new compute processes join (multi-job setups).
Definition AMReX_LevelBld.H:47
amrex_real Real
Floating Point Type for Fields.
Definition AMReX_REAL.H:79
Definition AMReX_Amr.cpp:49