Initializer< ICOp > Class Template Reference

SPADES API: spades::ic::Initializer< ICOp > Class Template Reference
SPADES API
spades::ic::Initializer< ICOp > Class Template Reference

Initial condition class. More...

#include <IC.H>

Inheritance diagram for spades::ic::Initializer< ICOp >:
[legend]
Collaboration diagram for spades::ic::Initializer< ICOp >:
[legend]

Public Types

using ICDeviceOp = typename ICOp::DeviceType
 

Public Member Functions

 Initializer (const ICOp ic_op, amrex::MultiFab &state)
 
 ~Initializer () override=default
 
void initialize (amrex::GeometryData const &geom) override
 Initialize m_state using the initial condition operator.
 
- Public Member Functions inherited from spades::ic::InitializerBase
 InitializerBase ()=default
 
virtual ~InitializerBase ()=default
 

Public Attributes

const ICOp m_op
 Initial condition operator.
 
amrex::MultiFab & m_state
 State that will be filled with the initial condition operator.
 

Detailed Description

template<typename ICOp>
class spades::ic::Initializer< ICOp >

Initial condition class.

Member Typedef Documentation

◆ ICDeviceOp

template<typename ICOp >
using spades::ic::Initializer< ICOp >::ICDeviceOp = typename ICOp::DeviceType

Constructor & Destructor Documentation

◆ Initializer()

template<typename ICOp >
spades::ic::Initializer< ICOp >::Initializer ( const ICOp ic_op,
amrex::MultiFab & state )
inline
62 : m_op(ic_op), m_state(state)
63 {}
amrex::MultiFab & m_state
State that will be filled with the initial condition operator.
Definition IC.H:91
const ICOp m_op
Initial condition operator.
Definition IC.H:88

◆ ~Initializer()

template<typename ICOp >
spades::ic::Initializer< ICOp >::~Initializer ( )
overridedefault

Member Function Documentation

◆ initialize()

template<typename ICOp >
void spades::ic::Initializer< ICOp >::initialize ( amrex::GeometryData const & geom)
inlineoverridevirtual

Initialize m_state using the initial condition operator.

Parameters
geom[in] geometry information

Implements spades::ic::InitializerBase.

72 {
73 auto const& s_arrs = m_state.arrays();
74 ICDeviceOp ic(m_op.device_instance());
75 amrex::ParallelFor(
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;
80 ic(iv, geom, state);
81
82 s_arrs[nbx](i, j, k, n) = state;
83 });
84 amrex::Gpu::streamSynchronize();
85 }
typename ICOp::DeviceType ICDeviceOp
Definition IC.H:59
static constexpr int N_STATES
Number of states.
Definition Constants.H:10

Member Data Documentation

◆ m_op

template<typename ICOp >
const ICOp spades::ic::Initializer< ICOp >::m_op

Initial condition operator.

◆ m_state

template<typename ICOp >
amrex::MultiFab& spades::ic::Initializer< ICOp >::m_state

State that will be filled with the initial condition operator.


The documentation for this class was generated from the following file:
  • /home/runner/work/spades/spades/Source/IC.H