9 #ifndef INJECTOR_DENSITY_H_
10 #define INJECTOR_DENSITY_H_
32 getDensity (amrex::Real, amrex::Real, amrex::Real)
const noexcept
80 double z_start =
p[0];
81 double ramp_up =
p[1];
82 double plateau =
p[2];
83 double ramp_down =
p[3];
91 if ((
z-z_start)>=0 and
92 (
z-z_start)<ramp_up ) {
94 }
else if ((
z-z_start)>=ramp_up and
95 (
z-z_start)< ramp_up+plateau ) {
97 }
else if ((
z-z_start)>=ramp_up+plateau and
98 (
z-z_start)< ramp_up+plateau+ramp_down) {
99 n = 0.5*(1.+std::cos(
MathConst::pi*((
z-z_start)-ramp_up-plateau)/ramp_down));
104 n *= n0*(1.+4.*(
x*
x+
y*
y)/(kp*kp*rc*rc*rc*rc));
105 return static_cast<amrex::Real
>(
n);
108 amrex::Abort(
"InjectorDensityPredefined: how did we get here?");
109 return amrex::Real(0.0);
173 return object.parser.getDensity(
x,
y,
z);
177 return object.constant.getDensity(
x,
y,
z);
181 return object.custom.getDensity(
x,
y,
z);
185 return object.predefined.getDensity(
x,
y,
z);
207 :
custom(a_species_name) {}
#define AMREX_GPU_HOST_DEVICE
def y
Definition: Excitation_Flag_Generator.py:76
def x
Formats datastring to remove "+" at the end of the string #####.
Definition: Excitation_Flag_Generator.py:75
def z
Definition: Excitation_Flag_Generator.py:77
static constexpr auto c
vacuum speed of light [m/s]
Definition: constant.H:44
static constexpr auto ep0
vacuum permittivity: dielectric permittivity of vacuum [F/m]
Definition: constant.H:46
static constexpr auto m_e
electron mass [kg]
Definition: constant.H:52
static constexpr auto q_e
elementary charge [C]
Definition: constant.H:50
static constexpr amrex::Real pi
ratio of a circle's circumference to its diameter
Definition: constant.H:23
void Abort(const std::string &msg)
int n
Definition: run_libensemble_on_warpx.py:67
Definition: InjectorDensity.H:27
InjectorDensityConstant(amrex::Real a_rho) noexcept
Definition: InjectorDensity.H:28
amrex::Real m_rho
Definition: InjectorDensity.H:38
AMREX_GPU_HOST_DEVICE amrex::Real getDensity(amrex::Real, amrex::Real, amrex::Real) const noexcept
Definition: InjectorDensity.H:32
Definition: CustomDensityProb.H:23
Definition: InjectorDensity.H:220
void operator()(InjectorDensity *p) const
Definition: InjectorDensity.H:221
Definition: InjectorDensity.H:129
InjectorDensity(InjectorDensityCustom *t, std::string const &a_species_name)
Definition: InjectorDensity.H:143
Type type
Definition: InjectorDensity.H:197
InjectorDensity(InjectorDensityPredefined *t, std::string const &a_species_name)
Definition: InjectorDensity.H:149
Type
Definition: InjectorDensity.H:196
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:167
InjectorDensity(InjectorDensityConstant *t, amrex::Real a_rho)
Definition: InjectorDensity.H:131
Object object
Definition: InjectorDensity.H:215
InjectorDensity(InjectorDensityParser *t, amrex::ParserExecutor< 3 > const &a_parser)
Definition: InjectorDensity.H:137
InjectorDensity(InjectorDensity const &)=delete
void clear()
Definition: InjectorDensity.cpp:23
InjectorDensity(InjectorDensity &&)=delete
Definition: InjectorDensity.H:43
InjectorDensityParser(amrex::ParserExecutor< 3 > const &a_parser) noexcept
Definition: InjectorDensity.H:44
amrex::ParserExecutor< 3 > m_parser
Definition: InjectorDensity.H:54
AMREX_GPU_HOST_DEVICE amrex::Real getDensity(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition: InjectorDensity.H:49
Definition: InjectorDensity.H:59
InjectorDensityPredefined(std::string const &a_species_name) noexcept
Definition: InjectorDensity.cpp:46
Profile profile
Definition: InjectorDensity.H:115
Profile
Definition: InjectorDensity.H:114
amrex::GpuArray< amrex::Real, 6 > p
Definition: InjectorDensity.H:116
void clear()
Definition: InjectorDensity.cpp:76
AMREX_GPU_HOST_DEVICE amrex::Real getDensity(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition: InjectorDensity.H:66
Definition: InjectorDensity.H:201
InjectorDensityCustom custom
Definition: InjectorDensity.H:212
InjectorDensityConstant constant
Definition: InjectorDensity.H:210
Object(InjectorDensityParser *, amrex::ParserExecutor< 3 > const &a_parser) noexcept
Definition: InjectorDensity.H:204
InjectorDensityPredefined predefined
Definition: InjectorDensity.H:213
Object(InjectorDensityCustom *, std::string const &a_species_name) noexcept
Definition: InjectorDensity.H:206
InjectorDensityParser parser
Definition: InjectorDensity.H:211
Object(InjectorDensityPredefined *, std::string const &a_species_name) noexcept
Definition: InjectorDensity.H:208
Object(InjectorDensityConstant *, amrex::Real a_rho) noexcept
Definition: InjectorDensity.H:202