9#ifndef WARPX_INJECTOR_DENSITY_H_
10#define WARPX_INJECTOR_DENSITY_H_
96#if (AMREX_SPACEDIM < 3)
99#if (AMREX_SPACEDIM == 1)
101#elif defined(WARPX_DIM_RZ)
103#elif defined(WARPX_DIM_XZ)
142 object(t,a_file_name,a_F_name,a_geom,a_distributed)
182 return object.parser.getDensity(x,y,z);
186 return object.constant.getDensity(x,y,z);
190 return object.fromfile.getDensity(x,y,z);
214 :
fromfile(a_file_name, a_F_name, a_geom, a_distributed) {}
220#if defined(AMREX_USE_OMP) && !defined(AMREX_USE_GPU)
#define AMREX_GPU_HOST_DEVICE
Definition ExternalField.H:183
__host__ __device__ void ignore_unused(const Ts &...)
void Abort(const std::string &msg)
Companion class for ExternalFieldReader.
Definition ExternalField.H:84
Definition InjectorDensity.H:30
InjectorDensityConstant(amrex::Real a_rho) noexcept
Definition InjectorDensity.H:31
amrex::Real m_rho
Definition InjectorDensity.H:42
AMREX_GPU_HOST_DEVICE amrex::Real getDensity(amrex::Real, amrex::Real, amrex::Real) const noexcept
Definition InjectorDensity.H:36
Definition InjectorDensity.H:228
void operator()(InjectorDensity *p) const
Definition InjectorDensity.H:229
Definition InjectorDensity.H:64
ExternalFieldReader * m_external_field_reader
Definition InjectorDensity.H:112
bool distributed() const
Definition InjectorDensity.cpp:144
AMREX_GPU_HOST_DEVICE amrex::Real getDensity(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition InjectorDensity.H:94
InjectorDensityFromFile(std::string const &a_file_name, std::string const &a_F_name, amrex::Geometry const &a_geom, bool a_distributed)
Definition InjectorDensity.cpp:101
void prepare(amrex::BoxArray const &grids, amrex::DistributionMapping const &dmap, amrex::IntVect const &ngrow, std::function< amrex::Real(amrex::Real)> const &get_zlab)
Definition InjectorDensity.cpp:117
void clear()
Definition InjectorDensity.cpp:111
ExternalFieldView m_external_field_view
Definition InjectorDensity.H:111
Definition InjectorDensity.H:124
amrex::Vector< InjectorDensity * > inj_rho_omp
Definition InjectorDensity.H:222
~InjectorDensity()=default
Type type
Definition InjectorDensity.H:202
Type
Definition InjectorDensity.H:201
@ parser
Definition InjectorDensity.H:201
@ constant
Definition InjectorDensity.H:201
@ fromfile
Definition InjectorDensity.H:201
void operator=(InjectorDensity const &)=delete
AMREX_GPU_HOST_DEVICE amrex::Real getDensity(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition InjectorDensity.H:176
InjectorDensity(InjectorDensityFromFile *t, std::string const &a_file_name, std::string const &a_F_name, amrex::Geometry const &a_geom, bool a_distributed)
Definition InjectorDensity.H:138
InjectorDensity(InjectorDensityConstant *t, amrex::Real a_rho)
Definition InjectorDensity.H:126
std::unique_ptr< void, amrex::DataDeleter > inj_rho_data
Definition InjectorDensity.H:221
Object object
Definition InjectorDensity.H:219
void prepare(amrex::BoxArray const &grids, amrex::DistributionMapping const &dmap, amrex::IntVect const &ngrow, std::function< amrex::Real(amrex::Real)> const &get_zlab)
Definition InjectorDensity.cpp:32
InjectorDensity(InjectorDensityParser *t, amrex::ParserExecutor< 3 > const &a_parser)
Definition InjectorDensity.H:132
bool needPreparation() const
Definition InjectorDensity.cpp:87
InjectorDensity(InjectorDensity const &)=delete
void clear()
Definition InjectorDensity.cpp:14
bool distributed() const
Definition InjectorDensity.cpp:92
InjectorDensity(InjectorDensity &&)=delete
Definition InjectorDensity.H:47
InjectorDensityParser(amrex::ParserExecutor< 3 > const &a_parser) noexcept
Definition InjectorDensity.H:48
amrex::ParserExecutor< 3 > m_parser
Definition InjectorDensity.H:59
AMREX_GPU_HOST_DEVICE amrex::Real getDensity(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition InjectorDensity.H:54
Definition InjectorDensity.H:206
InjectorDensityConstant constant
Definition InjectorDensity.H:215
Object(InjectorDensityParser *, amrex::ParserExecutor< 3 > const &a_parser) noexcept
Definition InjectorDensity.H:209
InjectorDensityFromFile fromfile
Definition InjectorDensity.H:217
Object(InjectorDensityFromFile *, std::string const &a_file_name, std::string const &a_F_name, amrex::Geometry const &a_geom, bool a_distributed)
Definition InjectorDensity.H:211
InjectorDensityParser parser
Definition InjectorDensity.H:216
Object(InjectorDensityConstant *, amrex::Real a_rho) noexcept
Definition InjectorDensity.H:207