8 #ifndef INJECTOR_MOMENTUM_H_
9 #define INJECTOR_MOMENTUM_H_
19 #include <AMReX_Config.H>
63 amrex::Real a_uz_m, amrex::Real a_ux_th,
64 amrex::Real a_uy_th, amrex::Real a_uz_th) noexcept
105 generateGaussianFluxDist( amrex::Real u_m, amrex::Real u_th,
amrex::RandomEngine const& engine ) {
107 using namespace amrex::literals;
110 amrex::Real u = 0._rt;
112 const amrex::Real abs_u_m = std::abs(u_m);
116 }
else if (abs_u_m < 0.6*u_th) {
122 const amrex::Real umsign = std::copysign(1._rt, u_m);
123 const amrex::Real approx_u_th = u_th/std::sqrt( 1._rt - abs_u_m/u_th );
124 const amrex::Real reject_prefactor = (abs_u_m/u_th)/(2._rt*u_th*u_th);
130 u = approx_u_th * std::sqrt(2._rt*std::log(1._rt/xrand));
133 if (xrand < std::exp(-reject_prefactor*(u - umsign*u_th)*(u - umsign*u_th))) { reject =
false; }
144 const amrex::Real approx_u_m = u_m + u_th*u_th/abs_u_m;
145 const amrex::Real inv_um = 1._rt/abs_u_m;
154 if (xrand < u*inv_um* std::exp(1._rt - u*inv_um)) { reject =
false; }
169 amrex::Real a_uz_m, amrex::Real a_ux_th,
170 amrex::Real a_uy_th, amrex::Real a_uz_th,
171 int a_flux_normal_axis,
int a_flux_direction) noexcept
185 using namespace amrex::literals;
188 amrex::Real u_m = 0, u_th = 0;
199 amrex::Real u = generateGaussianFluxDist(u_m, u_th, engine);
232 amrex::Real a_uz_min, amrex::Real a_ux_max,
233 amrex::Real a_uy_max, amrex::Real a_uz_max) noexcept
234 : m_ux_min(a_ux_min), m_uy_min(a_uy_min), m_uz_min(a_uz_min),
235 m_ux_max(a_ux_max), m_uy_max(a_uy_max), m_uz_max(a_uz_max),
236 m_Dux(m_ux_max - m_ux_min),
237 m_Duy(m_uy_max - m_uy_min),
238 m_Duz(m_uz_max - m_uz_min),
239 m_ux_h(amrex::Real(0.5) * (m_ux_max + m_ux_min)),
240 m_uy_h(amrex::Real(0.5) * (m_uy_max + m_uy_min)),
241 m_uz_h(amrex::Real(0.5) * (m_uz_max + m_uz_min))
278 : velocity(b), temperature(t)
284 getMomentum (amrex::Real
const x, amrex::Real
const y, amrex::Real
const z,
287 using namespace amrex::literals;
291 amrex::Real
const theta = temperature(x,y,z);
293 amrex::Abort(
"Negative temperature parameter theta encountered, which is not allowed");
296 amrex::Real
const beta = velocity(x,y,z);
297 if (beta <= -1._rt || beta >= 1._rt) {
298 amrex::Abort(
"beta = v/c magnitude greater than or equal to 1");
301 amrex::Real
const vave = std::sqrt(theta);
302 int const dir = velocity.direction();
308 amrex::Real
const gamma = std::sqrt(1._rt + u[0]*u[0]+u[1]*u[1]+u[2]*u[2]);
337 getBulkMomentum (amrex::Real
const x, amrex::Real
const y, amrex::Real
const z)
const noexcept
339 using namespace amrex::literals;
341 for (
auto& el : u) { el = 0.0_rt; }
342 const amrex::Real
beta = velocity(x,y,z);
343 int const dir = velocity.direction();
363 : velocity(b), temperature(t)
369 getMomentum (amrex::Real
const x, amrex::Real
const y, amrex::Real
const z,
372 using namespace amrex::literals;
377 amrex::Real
const theta = temperature(x,y,z);
380 if (theta < 0.1_rt) {
381 amrex::Abort(
"Temeprature parameter theta is less than minimum 0.1 allowed for Maxwell-Juttner");
384 amrex::Real
const beta = velocity(x,y,z);
385 if (beta <= -1._rt || beta >= 1._rt) {
386 amrex::Abort(
"beta = v/c magnitude greater than or equal to 1");
388 int const dir = velocity.direction();
389 x1 =
static_cast<amrex::Real
>(0._rt);
390 gamma =
static_cast<amrex::Real
>(0._rt);
391 u[dir] =
static_cast<amrex::Real
>(0._rt);
398 gamma = std::sqrt(1._rt+u[dir]*u[dir]);
407 u[(dir+1)%3] = 2._rt*u[dir]*std::sqrt(
x1*(1._rt-
x1))*std::sin(2._rt*MathConst::pi*x2);
408 u[(dir+2)%3] = 2._rt*u[dir]*std::sqrt(
x1*(1._rt-
x1))*std::cos(2._rt*MathConst::pi*x2);
410 u[dir] = u[dir]*(2._rt*
x1-1._rt);
440 getBulkMomentum (amrex::Real
const x, amrex::Real
const y, amrex::Real
const z)
const noexcept
442 using namespace amrex::literals;
444 for (
auto& el : u) { el = 0.0_rt; }
445 amrex::Real
const beta = velocity(x,y,z);
446 int const dir = velocity.direction();
467 : u_over_r(a_u_over_r)
476 return {x*u_over_r, y*u_over_r, z*u_over_r};
484 return {x*u_over_r, y*u_over_r, z*u_over_r};
497 : m_ux_parser(a_ux_parser), m_uy_parser(a_uy_parser),
498 m_uz_parser(a_uz_parser) {}
506 return amrex::XDim3{m_ux_parser(x,y,z),m_uy_parser(x,y,z),m_uz_parser(x,y,z)};
514 return amrex::XDim3{m_ux_parser(x,y,z),m_uy_parser(x,y,z),m_uz_parser(x,y,z)};
529 : m_ux_m_parser(a_ux_m_parser), m_uy_m_parser(a_uy_m_parser), m_uz_m_parser(a_uz_m_parser),
530 m_ux_th_parser(a_ux_th_parser), m_uy_th_parser(a_uy_th_parser), m_uz_th_parser(a_uz_th_parser) {}
538 amrex::Real
const ux_m = m_ux_m_parser(x,y,z);
539 amrex::Real
const uy_m = m_uy_m_parser(x,y,z);
540 amrex::Real
const uz_m = m_uz_m_parser(x,y,z);
541 amrex::Real
const ux_th = m_ux_th_parser(x,y,z);
542 amrex::Real
const uy_th = m_uy_th_parser(x,y,z);
543 amrex::Real
const uz_th = m_uz_th_parser(x,y,z);
554 return amrex::XDim3{m_ux_m_parser(x,y,z), m_uy_m_parser(x,y,z), m_uz_m_parser(x,y,z)};
576 amrex::Real a_ux, amrex::Real a_uy, amrex::Real a_uz)
578 object(t, a_ux, a_uy, a_uz)
587 object(t, a_ux_parser, a_uy_parser, a_uz_parser)
599 object(t, a_ux_m_parser, a_uy_m_parser, a_uz_m_parser,
600 a_ux_th_parser, a_uy_th_parser, a_uz_th_parser)
605 amrex::Real a_ux_m, amrex::Real a_uy_m, amrex::Real a_uz_m,
606 amrex::Real a_ux_th, amrex::Real a_uy_th, amrex::Real a_uz_th)
608 object(t,a_ux_m,a_uy_m,a_uz_m,a_ux_th,a_uy_th,a_uz_th)
613 amrex::Real a_ux_m, amrex::Real a_uy_m, amrex::Real a_uz_m,
614 amrex::Real a_ux_th, amrex::Real a_uy_th, amrex::Real a_uz_th,
615 int a_flux_normal_axis,
int a_flux_direction)
617 object(t,a_ux_m,a_uy_m,a_uz_m,a_ux_th,a_uy_th,a_uz_th,a_flux_normal_axis,a_flux_direction)
622 amrex::Real a_ux_min, amrex::Real a_uy_min, amrex::Real a_uz_min,
623 amrex::Real a_ux_max, amrex::Real a_uy_max, amrex::Real a_uz_max)
625 object(t,a_ux_min,a_uy_min,a_uz_min,a_ux_max,a_uy_max,a_uz_max)
631 object(t, temperature, velocity)
638 object(t, temperature, velocity)
643 amrex::Real u_over_r)
672 return object.parser.getMomentum(x,y,z,engine);
676 return object.gaussian.getMomentum(x,y,z,engine);
678 case Type::gaussianparser:
680 return object.gaussianparser.getMomentum(x,y,z,engine);
682 case Type::gaussianflux:
684 return object.gaussianflux.getMomentum(x,y,z,engine);
688 return object.uniform.getMomentum(x,y,z,engine);
690 case Type::boltzmann:
692 return object.boltzmann.getMomentum(x,y,z,engine);
696 return object.juttner.getMomentum(x,y,z,engine);
700 return object.constant.getMomentum(x,y,z,engine);
702 case Type::radial_expansion:
704 return object.radial_expansion.getMomentum(x,y,z,engine);
709 return {0.0,0.0,0.0};
725 return object.parser.getBulkMomentum(x,y,z);
729 return object.gaussian.getBulkMomentum(x,y,z);
731 case Type::gaussianparser:
733 return object.gaussianparser.getBulkMomentum(x,y,z);
735 case Type::gaussianflux:
737 return object.gaussianflux.getBulkMomentum(x,y,z);
741 return object.uniform.getBulkMomentum(x,y,z);
743 case Type::boltzmann:
745 return object.boltzmann.getBulkMomentum(x,y,z);
749 return object.juttner.getBulkMomentum(x,y,z);
753 return object.constant.getBulkMomentum(x,y,z);
755 case Type::radial_expansion:
757 return object.radial_expansion.getBulkMomentum(x,y,z);
762 return {0.0,0.0,0.0};
767 enum struct Type {
constant, gaussian, gaussianflux, uniform, boltzmann, juttner, radial_expansion,
parser, gaussianparser };
777 amrex::Real a_ux, amrex::Real a_uy, amrex::Real a_uz) noexcept
780 amrex::Real a_ux_m, amrex::Real a_uy_m,
781 amrex::Real a_uz_m, amrex::Real a_ux_th,
782 amrex::Real a_uy_th, amrex::Real a_uz_th) noexcept
783 : gaussian(a_ux_m,a_uy_m,a_uz_m,a_ux_th,a_uy_th,a_uz_th) {}
785 amrex::Real a_ux_m, amrex::Real a_uy_m,
786 amrex::Real a_uz_m, amrex::Real a_ux_th,
787 amrex::Real a_uy_th, amrex::Real a_uz_th,
788 int a_flux_normal_axis,
int a_flux_direction) noexcept
789 : gaussianflux(a_ux_m,a_uy_m,a_uz_m,a_ux_th,a_uy_th,a_uz_th,a_flux_normal_axis,a_flux_direction) {}
791 amrex::Real a_ux_min, amrex::Real a_uy_min,
792 amrex::Real a_uz_min, amrex::Real a_ux_max,
793 amrex::Real a_uy_max, amrex::Real a_uz_max) noexcept
794 : uniform(a_ux_min,a_uy_min,a_uz_min,a_ux_max,a_uy_max,a_uz_max) {}
802 amrex::Real u_over_r) noexcept
803 : radial_expansion(u_over_r) {}
808 :
parser(a_ux_parser, a_uy_parser, a_uz_parser) {}
816 : gaussianparser(a_ux_m_parser, a_uy_m_parser, a_uz_m_parser,
817 a_ux_th_parser, a_uy_th_parser, a_uz_th_parser) {}
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
Real RandomNormal(Real mean, Real stddev)
void Abort(const std::string &msg)
list x1
Definition: plot_particle_path.py:130
type
Definition: run_alltests_1node.py:72
beta
Definition: stencil.py:434
int gamma
boosted frame
Definition: stencil.py:431
parser
Definition: stencil.py:411
Get temperature at a point on the grid.
Definition: GetTemperature.H:23
Definition: GetVelocity.H:21
Definition: InjectorMomentum.H:273
GetTemperature temperature
Definition: InjectorMomentum.H:351
GetVelocity velocity
Definition: InjectorMomentum.H:350
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real const x, amrex::Real const y, amrex::Real const z, amrex::RandomEngine const &engine) const noexcept
Definition: InjectorMomentum.H:284
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real const x, amrex::Real const y, amrex::Real const z) const noexcept
Definition: InjectorMomentum.H:337
InjectorMomentumBoltzmann(GetTemperature const &t, GetVelocity const &b) noexcept
Definition: InjectorMomentum.H:277
Definition: InjectorMomentum.H:33
amrex::Real m_uy
Definition: InjectorMomentum.H:55
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real, amrex::Real, amrex::Real) const noexcept
Definition: InjectorMomentum.H:49
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real, amrex::Real, amrex::Real, amrex::RandomEngine const &) const noexcept
Definition: InjectorMomentum.H:40
amrex::Real m_ux
Definition: InjectorMomentum.H:55
InjectorMomentumConstant(amrex::Real a_ux, amrex::Real a_uy, amrex::Real a_uz) noexcept
Definition: InjectorMomentum.H:34
amrex::Real m_uz
Definition: InjectorMomentum.H:55
Definition: InjectorMomentum.H:833
Definition: InjectorMomentum.H:167
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real, amrex::Real, amrex::Real) const noexcept
Definition: InjectorMomentum.H:214
amrex::Real m_uy_m
Definition: InjectorMomentum.H:220
int m_flux_normal_axis
Definition: InjectorMomentum.H:222
amrex::Real m_ux_m
Definition: InjectorMomentum.H:220
amrex::Real m_uz_th
Definition: InjectorMomentum.H:221
amrex::Real m_ux_th
Definition: InjectorMomentum.H:221
amrex::Real m_uy_th
Definition: InjectorMomentum.H:221
InjectorMomentumGaussianFlux(amrex::Real a_ux_m, amrex::Real a_uy_m, amrex::Real a_uz_m, amrex::Real a_ux_th, amrex::Real a_uy_th, amrex::Real a_uz_th, int a_flux_normal_axis, int a_flux_direction) noexcept
Definition: InjectorMomentum.H:168
amrex::Real m_uz_m
Definition: InjectorMomentum.H:220
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real, amrex::Real, amrex::Real, amrex::RandomEngine const &engine) const noexcept
Definition: InjectorMomentum.H:182
int m_flux_direction
Definition: InjectorMomentum.H:223
Definition: InjectorMomentum.H:61
amrex::Real m_uz_m
Definition: InjectorMomentum.H:89
amrex::Real m_ux_m
Definition: InjectorMomentum.H:89
amrex::Real m_ux_th
Definition: InjectorMomentum.H:90
amrex::Real m_uy_th
Definition: InjectorMomentum.H:90
amrex::Real m_uy_m
Definition: InjectorMomentum.H:89
InjectorMomentumGaussian(amrex::Real a_ux_m, amrex::Real a_uy_m, amrex::Real a_uz_m, amrex::Real a_ux_th, amrex::Real a_uy_th, amrex::Real a_uz_th) noexcept
Definition: InjectorMomentum.H:62
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real, amrex::Real, amrex::Real, amrex::RandomEngine const &engine) const noexcept
Definition: InjectorMomentum.H:72
amrex::Real m_uz_th
Definition: InjectorMomentum.H:90
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real, amrex::Real, amrex::Real) const noexcept
Definition: InjectorMomentum.H:83
Definition: InjectorMomentum.H:522
InjectorMomentumGaussianParser(amrex::ParserExecutor< 3 > const &a_ux_m_parser, amrex::ParserExecutor< 3 > const &a_uy_m_parser, amrex::ParserExecutor< 3 > const &a_uz_m_parser, amrex::ParserExecutor< 3 > const &a_ux_th_parser, amrex::ParserExecutor< 3 > const &a_uy_th_parser, amrex::ParserExecutor< 3 > const &a_uz_th_parser) noexcept
Definition: InjectorMomentum.H:523
amrex::ParserExecutor< 3 > m_ux_th_parser
Definition: InjectorMomentum.H:558
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition: InjectorMomentum.H:552
amrex::ParserExecutor< 3 > m_ux_m_parser
Definition: InjectorMomentum.H:557
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real x, amrex::Real y, amrex::Real z, amrex::RandomEngine const &engine) const noexcept
Definition: InjectorMomentum.H:535
Definition: InjectorMomentum.H:573
InjectorMomentum(InjectorMomentumRadialExpansion *t, amrex::Real u_over_r)
Definition: InjectorMomentum.H:642
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real x, amrex::Real y, amrex::Real z, amrex::RandomEngine const &engine) const noexcept
Definition: InjectorMomentum.H:665
Type type
Definition: InjectorMomentum.H:768
InjectorMomentum(InjectorMomentum &&)=delete
~InjectorMomentum()=default
InjectorMomentum(InjectorMomentumParser *t, amrex::ParserExecutor< 3 > const &a_ux_parser, amrex::ParserExecutor< 3 > const &a_uy_parser, amrex::ParserExecutor< 3 > const &a_uz_parser)
Definition: InjectorMomentum.H:582
void clear()
Definition: InjectorMomentum.cpp:12
InjectorMomentum(InjectorMomentumConstant *t, amrex::Real a_ux, amrex::Real a_uy, amrex::Real a_uz)
Definition: InjectorMomentum.H:575
InjectorMomentum(InjectorMomentum const &)=delete
InjectorMomentum(InjectorMomentumGaussian *t, amrex::Real a_ux_m, amrex::Real a_uy_m, amrex::Real a_uz_m, amrex::Real a_ux_th, amrex::Real a_uy_th, amrex::Real a_uz_th)
Definition: InjectorMomentum.H:604
InjectorMomentum(InjectorMomentumUniform *t, amrex::Real a_ux_min, amrex::Real a_uy_min, amrex::Real a_uz_min, amrex::Real a_ux_max, amrex::Real a_uy_max, amrex::Real a_uz_max)
Definition: InjectorMomentum.H:621
Type
Definition: InjectorMomentum.H:767
Object object
Definition: InjectorMomentum.H:828
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition: InjectorMomentum.H:719
InjectorMomentum(InjectorMomentumGaussianFlux *t, amrex::Real a_ux_m, amrex::Real a_uy_m, amrex::Real a_uz_m, amrex::Real a_ux_th, amrex::Real a_uy_th, amrex::Real a_uz_th, int a_flux_normal_axis, int a_flux_direction)
Definition: InjectorMomentum.H:612
InjectorMomentum(InjectorMomentumBoltzmann *t, GetTemperature const &temperature, GetVelocity const &velocity)
Definition: InjectorMomentum.H:628
InjectorMomentum(InjectorMomentumJuttner *t, GetTemperature const &temperature, GetVelocity const &velocity)
Definition: InjectorMomentum.H:635
InjectorMomentum(InjectorMomentumGaussianParser *t, amrex::ParserExecutor< 3 > const &a_ux_m_parser, amrex::ParserExecutor< 3 > const &a_uy_m_parser, amrex::ParserExecutor< 3 > const &a_uz_m_parser, amrex::ParserExecutor< 3 > const &a_ux_th_parser, amrex::ParserExecutor< 3 > const &a_uy_th_parser, amrex::ParserExecutor< 3 > const &a_uz_th_parser)
Definition: InjectorMomentum.H:591
Definition: InjectorMomentum.H:358
GetVelocity velocity
Definition: InjectorMomentum.H:453
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real const x, amrex::Real const y, amrex::Real const z) const noexcept
Definition: InjectorMomentum.H:440
GetTemperature temperature
Definition: InjectorMomentum.H:454
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real const x, amrex::Real const y, amrex::Real const z, amrex::RandomEngine const &engine) const noexcept
Definition: InjectorMomentum.H:369
InjectorMomentumJuttner(GetTemperature const &t, GetVelocity const &b) noexcept
Definition: InjectorMomentum.H:362
Definition: InjectorMomentum.H:493
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real x, amrex::Real y, amrex::Real z, amrex::RandomEngine const &) const noexcept
Definition: InjectorMomentum.H:503
InjectorMomentumParser(amrex::ParserExecutor< 3 > const &a_ux_parser, amrex::ParserExecutor< 3 > const &a_uy_parser, amrex::ParserExecutor< 3 > const &a_uz_parser) noexcept
Definition: InjectorMomentum.H:494
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition: InjectorMomentum.H:512
amrex::ParserExecutor< 3 > m_ux_parser
Definition: InjectorMomentum.H:517
struct whose getMomentum returns momentum for 1 particle, for radial expansion.
Definition: InjectorMomentum.H:465
InjectorMomentumRadialExpansion(amrex::Real a_u_over_r) noexcept
Definition: InjectorMomentum.H:466
amrex::Real u_over_r
Definition: InjectorMomentum.H:488
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real x, amrex::Real y, amrex::Real z, amrex::RandomEngine const &) const noexcept
Definition: InjectorMomentum.H:473
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition: InjectorMomentum.H:482
Definition: InjectorMomentum.H:775
InjectorMomentumGaussian gaussian
Definition: InjectorMomentum.H:819
InjectorMomentumUniform uniform
Definition: InjectorMomentum.H:821
Object(InjectorMomentumGaussianFlux *, amrex::Real a_ux_m, amrex::Real a_uy_m, amrex::Real a_uz_m, amrex::Real a_ux_th, amrex::Real a_uy_th, amrex::Real a_uz_th, int a_flux_normal_axis, int a_flux_direction) noexcept
Definition: InjectorMomentum.H:784
Object(InjectorMomentumBoltzmann *, GetTemperature const &t, GetVelocity const &b) noexcept
Definition: InjectorMomentum.H:795
Object(InjectorMomentumParser *, amrex::ParserExecutor< 3 > const &a_ux_parser, amrex::ParserExecutor< 3 > const &a_uy_parser, amrex::ParserExecutor< 3 > const &a_uz_parser) noexcept
Definition: InjectorMomentum.H:804
InjectorMomentumGaussianParser gaussianparser
Definition: InjectorMomentum.H:826
InjectorMomentumJuttner juttner
Definition: InjectorMomentum.H:823
Object(InjectorMomentumUniform *, amrex::Real a_ux_min, amrex::Real a_uy_min, amrex::Real a_uz_min, amrex::Real a_ux_max, amrex::Real a_uy_max, amrex::Real a_uz_max) noexcept
Definition: InjectorMomentum.H:790
InjectorMomentumRadialExpansion radial_expansion
Definition: InjectorMomentum.H:824
InjectorMomentumBoltzmann boltzmann
Definition: InjectorMomentum.H:822
InjectorMomentumGaussianFlux gaussianflux
Definition: InjectorMomentum.H:820
Object(InjectorMomentumJuttner *, GetTemperature const &t, GetVelocity const &b) noexcept
Definition: InjectorMomentum.H:798
Object(InjectorMomentumRadialExpansion *, amrex::Real u_over_r) noexcept
Definition: InjectorMomentum.H:801
Object(InjectorMomentumGaussian *, amrex::Real a_ux_m, amrex::Real a_uy_m, amrex::Real a_uz_m, amrex::Real a_ux_th, amrex::Real a_uy_th, amrex::Real a_uz_th) noexcept
Definition: InjectorMomentum.H:779
InjectorMomentumParser parser
Definition: InjectorMomentum.H:825
InjectorMomentumConstant constant
Definition: InjectorMomentum.H:818
Object(InjectorMomentumGaussianParser *, amrex::ParserExecutor< 3 > const &a_ux_m_parser, amrex::ParserExecutor< 3 > const &a_uy_m_parser, amrex::ParserExecutor< 3 > const &a_uz_m_parser, amrex::ParserExecutor< 3 > const &a_ux_th_parser, amrex::ParserExecutor< 3 > const &a_uy_th_parser, amrex::ParserExecutor< 3 > const &a_uz_th_parser) noexcept
Definition: InjectorMomentum.H:809
Object(InjectorMomentumConstant *, amrex::Real a_ux, amrex::Real a_uy, amrex::Real a_uz) noexcept
Definition: InjectorMomentum.H:776