5#include <AMReX_RealVect.H>
6#include <AMReX_ParmParse.H>
7#include <AMReX_MultiFab.H>
24 const amrex::IntVect& ,
25 amrex::GeometryData
const& ,
26 amrex::Real& state)
const
36 static std::string
identifier() {
return "ic_constant"; }
51 virtual void initialize(amrex::GeometryData
const& geom) = 0;
55template <
typename ICOp>
71 void initialize(amrex::GeometryData
const& geom)
override
73 auto const& s_arrs =
m_state.arrays();
77 [=] AMREX_GPU_DEVICE(
int nbx,
int i,
int j,
int k,
int n)
noexcept {
78 const amrex::IntVect iv(AMREX_D_DECL(i, j, k));
79 amrex::Real state = 0.0;
82 s_arrs[nbx](i, j, k, n) = state;
84 amrex::Gpu::streamSynchronize();
Base class for initial conditions.
Definition IC.H:45
virtual ~InitializerBase()=default
virtual void initialize(amrex::GeometryData const &geom)=0
InitializerBase()=default
Initial condition class.
Definition IC.H:57
amrex::MultiFab & m_state
State that will be filled with the initial condition operator.
Definition IC.H:91
typename ICOp::DeviceType ICDeviceOp
Definition IC.H:59
Initializer(const ICOp ic_op, amrex::MultiFab &state)
Definition IC.H:61
~Initializer() override=default
const ICOp m_op
Initial condition operator.
Definition IC.H:88
void initialize(amrex::GeometryData const &geom) override
Initialize m_state using the initial condition operator.
Definition IC.H:71
static constexpr int N_STATES
Number of states.
Definition Constants.H:10
SPADES initial conditions.
Definition IC.cpp:2
Device functor for the Constant initial condition.
Definition IC.H:20
AMREX_GPU_DEVICE void operator()(const amrex::IntVect &, amrex::GeometryData const &, amrex::Real &state) const
Definition IC.H:23
Constant initial condition.
Definition IC.H:17
DeviceType device_instance() const
Definition IC.H:38
Constant()
Definition IC.cpp:4
static std::string identifier()
Definition IC.H:36
DeviceOp m_op
Definition IC.H:40