9#ifndef WARPX_INJECTOR_DENSITY_H_
10#define WARPX_INJECTOR_DENSITY_H_
95#if (AMREX_SPACEDIM < 3)
98#if (AMREX_SPACEDIM == 1)
100#elif defined(WARPX_DIM_RZ)
102#elif defined(WARPX_DIM_XZ)
140 object(t,a_file_name,a_geom,a_distributed)
180 return object.parser.getDensity(x,y,z);
184 return object.constant.getDensity(x,y,z);
188 return object.fromfile.getDensity(x,y,z);
211 :
fromfile(a_file_name, a_geom, a_distributed) {}
217#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:225
void operator()(InjectorDensity *p) const
Definition InjectorDensity.H:226
Definition InjectorDensity.H:64
ExternalFieldReader * m_external_field_reader
Definition InjectorDensity.H:111
bool distributed() const
Definition InjectorDensity.cpp:143
AMREX_GPU_HOST_DEVICE amrex::Real getDensity(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition InjectorDensity.H:93
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:116
void clear()
Definition InjectorDensity.cpp:110
InjectorDensityFromFile(std::string const &a_file_name, amrex::Geometry const &a_geom, bool a_distributed)
Definition InjectorDensity.cpp:101
ExternalFieldView m_external_field_view
Definition InjectorDensity.H:110
Definition InjectorDensity.H:123
amrex::Vector< InjectorDensity * > inj_rho_omp
Definition InjectorDensity.H:219
~InjectorDensity()=default
Type type
Definition InjectorDensity.H:200
InjectorDensity(InjectorDensityFromFile *t, std::string const &a_file_name, amrex::Geometry const &a_geom, bool a_distributed)
Definition InjectorDensity.H:137
Type
Definition InjectorDensity.H:199
@ parser
Definition InjectorDensity.H:199
@ constant
Definition InjectorDensity.H:199
@ fromfile
Definition InjectorDensity.H:199
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:174
InjectorDensity(InjectorDensityConstant *t, amrex::Real a_rho)
Definition InjectorDensity.H:125
std::unique_ptr< void, amrex::DataDeleter > inj_rho_data
Definition InjectorDensity.H:218
Object object
Definition InjectorDensity.H:216
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:131
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:204
InjectorDensityConstant constant
Definition InjectorDensity.H:212
Object(InjectorDensityParser *, amrex::ParserExecutor< 3 > const &a_parser) noexcept
Definition InjectorDensity.H:207
InjectorDensityFromFile fromfile
Definition InjectorDensity.H:214
Object(InjectorDensityFromFile *, std::string const &a_file_name, amrex::Geometry const &a_geom, bool a_distributed)
Definition InjectorDensity.H:209
InjectorDensityParser parser
Definition InjectorDensity.H:213
Object(InjectorDensityConstant *, amrex::Real a_rho) noexcept
Definition InjectorDensity.H:205