8 #ifndef WARPX_INJECTOR_MOMENTUM_H_
9 #define WARPX_INJECTOR_MOMENTUM_H_
20 #include <AMReX_Config.H>
64 amrex::Real a_uz_m, amrex::Real a_ux_th,
65 amrex::Real a_uy_th, amrex::Real a_uz_th) noexcept
101 amrex::Real a_uz_m, amrex::Real a_ux_th,
102 amrex::Real a_uy_th, amrex::Real a_uz_th,
103 int a_flux_normal_axis,
int a_flux_direction) noexcept
117 using namespace amrex::literals;
120 amrex::Real u_m = 0, u_th = 0;
131 amrex::Real u = generateGaussianFluxDist(u_m, u_th, engine);
164 amrex::Real a_uz_min, amrex::Real a_ux_max,
165 amrex::Real a_uy_max, amrex::Real a_uz_max) noexcept
166 : m_ux_min(a_ux_min), m_uy_min(a_uy_min), m_uz_min(a_uz_min),
167 m_ux_max(a_ux_max), m_uy_max(a_uy_max), m_uz_max(a_uz_max),
168 m_Dux(m_ux_max - m_ux_min),
169 m_Duy(m_uy_max - m_uy_min),
170 m_Duz(m_uz_max - m_uz_min),
171 m_ux_h(amrex::Real(0.5) * (m_ux_max + m_ux_min)),
172 m_uy_h(amrex::Real(0.5) * (m_uy_max + m_uy_min)),
173 m_uz_h(amrex::Real(0.5) * (m_uz_max + m_uz_min))
210 : velocity(b), temperature(t)
216 getMomentum (amrex::Real
const x, amrex::Real
const y, amrex::Real
const z,
219 using namespace amrex::literals;
223 amrex::Real
const theta = temperature(
x,y,z);
225 amrex::Abort(
"Negative temperature parameter theta encountered, which is not allowed");
228 amrex::Real
const beta = velocity(
x,y,z);
229 if (beta <= -1._rt || beta >= 1._rt) {
230 amrex::Abort(
"beta = v/c magnitude greater than or equal to 1");
233 amrex::Real
const vave = std::sqrt(theta);
234 int const dir = velocity.direction();
240 amrex::Real
const gamma = std::sqrt(1._rt + u[0]*u[0]+u[1]*u[1]+u[2]*u[2]);
269 getBulkMomentum (amrex::Real
const x, amrex::Real
const y, amrex::Real
const z)
const noexcept
271 using namespace amrex::literals;
273 for (
auto& el : u) { el = 0.0_rt; }
274 const amrex::Real
beta = velocity(
x,y,z);
275 int const dir = velocity.direction();
295 : velocity(b), temperature(t)
301 getMomentum (amrex::Real
const x, amrex::Real
const y, amrex::Real
const z,
304 using namespace amrex::literals;
309 amrex::Real
const theta = temperature(
x,y,z);
312 if (theta < 0.1_rt) {
313 amrex::Abort(
"Temeprature parameter theta is less than minimum 0.1 allowed for Maxwell-Juttner");
316 amrex::Real
const beta = velocity(
x,y,z);
317 if (beta <= -1._rt || beta >= 1._rt) {
318 amrex::Abort(
"beta = v/c magnitude greater than or equal to 1");
320 int const dir = velocity.direction();
321 x1 =
static_cast<amrex::Real
>(0._rt);
322 gamma =
static_cast<amrex::Real
>(0._rt);
323 u[dir] =
static_cast<amrex::Real
>(0._rt);
330 gamma = std::sqrt(1._rt+u[dir]*u[dir]);
339 u[(dir+1)%3] = 2._rt*u[dir]*std::sqrt(
x1*(1._rt-
x1))*std::sin(2._rt*MathConst::pi*x2);
340 u[(dir+2)%3] = 2._rt*u[dir]*std::sqrt(
x1*(1._rt-
x1))*std::cos(2._rt*MathConst::pi*x2);
342 u[dir] = u[dir]*(2._rt*
x1-1._rt);
372 getBulkMomentum (amrex::Real
const x, amrex::Real
const y, amrex::Real
const z)
const noexcept
374 using namespace amrex::literals;
376 for (
auto& el : u) { el = 0.0_rt; }
377 amrex::Real
const beta = velocity(
x,y,z);
378 int const dir = velocity.direction();
399 : u_over_r(a_u_over_r)
408 return {
x*u_over_r, y*u_over_r, z*u_over_r};
416 return {
x*u_over_r, y*u_over_r, z*u_over_r};
429 : m_ux_parser(a_ux_parser), m_uy_parser(a_uy_parser),
430 m_uz_parser(a_uz_parser) {}
438 return amrex::XDim3{m_ux_parser(
x,y,z),m_uy_parser(
x,y,z),m_uz_parser(
x,y,z)};
446 return amrex::XDim3{m_ux_parser(
x,y,z),m_uy_parser(
x,y,z),m_uz_parser(
x,y,z)};
461 : m_ux_m_parser(a_ux_m_parser), m_uy_m_parser(a_uy_m_parser), m_uz_m_parser(a_uz_m_parser),
462 m_ux_th_parser(a_ux_th_parser), m_uy_th_parser(a_uy_th_parser), m_uz_th_parser(a_uz_th_parser) {}
470 amrex::Real
const ux_m = m_ux_m_parser(
x,y,z);
471 amrex::Real
const uy_m = m_uy_m_parser(
x,y,z);
472 amrex::Real
const uz_m = m_uz_m_parser(
x,y,z);
473 amrex::Real
const ux_th = m_ux_th_parser(
x,y,z);
474 amrex::Real
const uy_th = m_uy_th_parser(
x,y,z);
475 amrex::Real
const uz_th = m_uz_th_parser(
x,y,z);
486 return amrex::XDim3{m_ux_m_parser(
x,y,z), m_uy_m_parser(
x,y,z), m_uz_m_parser(
x,y,z)};
508 amrex::Real a_ux, amrex::Real a_uy, amrex::Real a_uz)
510 object(t, a_ux, a_uy, a_uz)
519 object(t, a_ux_parser, a_uy_parser, a_uz_parser)
531 object(t, a_ux_m_parser, a_uy_m_parser, a_uz_m_parser,
532 a_ux_th_parser, a_uy_th_parser, a_uz_th_parser)
537 amrex::Real a_ux_m, amrex::Real a_uy_m, amrex::Real a_uz_m,
538 amrex::Real a_ux_th, amrex::Real a_uy_th, amrex::Real a_uz_th)
540 object(t,a_ux_m,a_uy_m,a_uz_m,a_ux_th,a_uy_th,a_uz_th)
545 amrex::Real a_ux_m, amrex::Real a_uy_m, amrex::Real a_uz_m,
546 amrex::Real a_ux_th, amrex::Real a_uy_th, amrex::Real a_uz_th,
547 int a_flux_normal_axis,
int a_flux_direction)
549 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)
554 amrex::Real a_ux_min, amrex::Real a_uy_min, amrex::Real a_uz_min,
555 amrex::Real a_ux_max, amrex::Real a_uy_max, amrex::Real a_uz_max)
557 object(t,a_ux_min,a_uy_min,a_uz_min,a_ux_max,a_uy_max,a_uz_max)
563 object(t, temperature, velocity)
570 object(t, temperature, velocity)
575 amrex::Real u_over_r)
604 return object.parser.getMomentum(
x,y,z,engine);
608 return object.gaussian.getMomentum(
x,y,z,engine);
610 case Type::gaussianparser:
612 return object.gaussianparser.getMomentum(
x,y,z,engine);
614 case Type::gaussianflux:
616 return object.gaussianflux.getMomentum(
x,y,z,engine);
620 return object.uniform.getMomentum(
x,y,z,engine);
622 case Type::boltzmann:
624 return object.boltzmann.getMomentum(
x,y,z,engine);
628 return object.juttner.getMomentum(
x,y,z,engine);
632 return object.constant.getMomentum(
x,y,z,engine);
634 case Type::radial_expansion:
636 return object.radial_expansion.getMomentum(
x,y,z,engine);
641 return {0.0,0.0,0.0};
657 return object.parser.getBulkMomentum(
x,y,z);
661 return object.gaussian.getBulkMomentum(
x,y,z);
663 case Type::gaussianparser:
665 return object.gaussianparser.getBulkMomentum(
x,y,z);
667 case Type::gaussianflux:
669 return object.gaussianflux.getBulkMomentum(
x,y,z);
673 return object.uniform.getBulkMomentum(
x,y,z);
675 case Type::boltzmann:
677 return object.boltzmann.getBulkMomentum(
x,y,z);
681 return object.juttner.getBulkMomentum(
x,y,z);
685 return object.constant.getBulkMomentum(
x,y,z);
687 case Type::radial_expansion:
689 return object.radial_expansion.getBulkMomentum(
x,y,z);
694 return {0.0,0.0,0.0};
699 enum struct Type {
constant, gaussian, gaussianflux, uniform, boltzmann, juttner, radial_expansion,
parser, gaussianparser };
709 amrex::Real a_ux, amrex::Real a_uy, amrex::Real a_uz) noexcept
712 amrex::Real a_ux_m, amrex::Real a_uy_m,
713 amrex::Real a_uz_m, amrex::Real a_ux_th,
714 amrex::Real a_uy_th, amrex::Real a_uz_th) noexcept
715 : gaussian(a_ux_m,a_uy_m,a_uz_m,a_ux_th,a_uy_th,a_uz_th) {}
717 amrex::Real a_ux_m, amrex::Real a_uy_m,
718 amrex::Real a_uz_m, amrex::Real a_ux_th,
719 amrex::Real a_uy_th, amrex::Real a_uz_th,
720 int a_flux_normal_axis,
int a_flux_direction) noexcept
721 : 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) {}
723 amrex::Real a_ux_min, amrex::Real a_uy_min,
724 amrex::Real a_uz_min, amrex::Real a_ux_max,
725 amrex::Real a_uy_max, amrex::Real a_uz_max) noexcept
726 : uniform(a_ux_min,a_uy_min,a_uz_min,a_ux_max,a_uy_max,a_uz_max) {}
734 amrex::Real u_over_r) noexcept
735 : radial_expansion(u_over_r) {}
740 :
parser(a_ux_parser, a_uy_parser, a_uz_parser) {}
748 : gaussianparser(a_ux_m_parser, a_uy_m_parser, a_uz_m_parser,
749 a_ux_th_parser, a_uy_th_parser, a_uz_th_parser) {}
#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:205
GetTemperature temperature
Definition: InjectorMomentum.H:283
GetVelocity velocity
Definition: InjectorMomentum.H:282
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:216
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real const x, amrex::Real const y, amrex::Real const z) const noexcept
Definition: InjectorMomentum.H:269
InjectorMomentumBoltzmann(GetTemperature const &t, GetVelocity const &b) noexcept
Definition: InjectorMomentum.H:209
Definition: InjectorMomentum.H:34
amrex::Real m_uy
Definition: InjectorMomentum.H:56
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real, amrex::Real, amrex::Real) const noexcept
Definition: InjectorMomentum.H:50
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real, amrex::Real, amrex::Real, amrex::RandomEngine const &) const noexcept
Definition: InjectorMomentum.H:41
amrex::Real m_ux
Definition: InjectorMomentum.H:56
InjectorMomentumConstant(amrex::Real a_ux, amrex::Real a_uy, amrex::Real a_uz) noexcept
Definition: InjectorMomentum.H:35
amrex::Real m_uz
Definition: InjectorMomentum.H:56
Definition: InjectorMomentum.H:765
Definition: InjectorMomentum.H:99
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real, amrex::Real, amrex::Real) const noexcept
Definition: InjectorMomentum.H:146
amrex::Real m_uy_m
Definition: InjectorMomentum.H:152
int m_flux_normal_axis
Definition: InjectorMomentum.H:154
amrex::Real m_ux_m
Definition: InjectorMomentum.H:152
amrex::Real m_uz_th
Definition: InjectorMomentum.H:153
amrex::Real m_ux_th
Definition: InjectorMomentum.H:153
amrex::Real m_uy_th
Definition: InjectorMomentum.H:153
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:100
amrex::Real m_uz_m
Definition: InjectorMomentum.H:152
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real, amrex::Real, amrex::Real, amrex::RandomEngine const &engine) const noexcept
Definition: InjectorMomentum.H:114
int m_flux_direction
Definition: InjectorMomentum.H:155
Definition: InjectorMomentum.H:62
amrex::Real m_uz_m
Definition: InjectorMomentum.H:90
amrex::Real m_ux_m
Definition: InjectorMomentum.H:90
amrex::Real m_ux_th
Definition: InjectorMomentum.H:91
amrex::Real m_uy_th
Definition: InjectorMomentum.H:91
amrex::Real m_uy_m
Definition: InjectorMomentum.H:90
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:63
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real, amrex::Real, amrex::Real, amrex::RandomEngine const &engine) const noexcept
Definition: InjectorMomentum.H:73
amrex::Real m_uz_th
Definition: InjectorMomentum.H:91
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real, amrex::Real, amrex::Real) const noexcept
Definition: InjectorMomentum.H:84
Definition: InjectorMomentum.H:454
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:455
amrex::ParserExecutor< 3 > m_ux_th_parser
Definition: InjectorMomentum.H:490
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition: InjectorMomentum.H:484
amrex::ParserExecutor< 3 > m_ux_m_parser
Definition: InjectorMomentum.H:489
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:467
Definition: InjectorMomentum.H:505
InjectorMomentum(InjectorMomentumRadialExpansion *t, amrex::Real u_over_r)
Definition: InjectorMomentum.H:574
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:597
Type type
Definition: InjectorMomentum.H:700
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:514
void clear()
Definition: InjectorMomentum.cpp:12
InjectorMomentum(InjectorMomentumConstant *t, amrex::Real a_ux, amrex::Real a_uy, amrex::Real a_uz)
Definition: InjectorMomentum.H:507
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:536
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:553
Type
Definition: InjectorMomentum.H:699
Object object
Definition: InjectorMomentum.H:760
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition: InjectorMomentum.H:651
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:544
InjectorMomentum(InjectorMomentumBoltzmann *t, GetTemperature const &temperature, GetVelocity const &velocity)
Definition: InjectorMomentum.H:560
InjectorMomentum(InjectorMomentumJuttner *t, GetTemperature const &temperature, GetVelocity const &velocity)
Definition: InjectorMomentum.H:567
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:523
Definition: InjectorMomentum.H:290
GetVelocity velocity
Definition: InjectorMomentum.H:385
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real const x, amrex::Real const y, amrex::Real const z) const noexcept
Definition: InjectorMomentum.H:372
GetTemperature temperature
Definition: InjectorMomentum.H:386
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:301
InjectorMomentumJuttner(GetTemperature const &t, GetVelocity const &b) noexcept
Definition: InjectorMomentum.H:294
Definition: InjectorMomentum.H:425
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real x, amrex::Real y, amrex::Real z, amrex::RandomEngine const &) const noexcept
Definition: InjectorMomentum.H:435
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:426
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition: InjectorMomentum.H:444
amrex::ParserExecutor< 3 > m_ux_parser
Definition: InjectorMomentum.H:449
struct whose getMomentum returns momentum for 1 particle, for radial expansion.
Definition: InjectorMomentum.H:397
InjectorMomentumRadialExpansion(amrex::Real a_u_over_r) noexcept
Definition: InjectorMomentum.H:398
amrex::Real u_over_r
Definition: InjectorMomentum.H:420
AMREX_GPU_HOST_DEVICE amrex::XDim3 getMomentum(amrex::Real x, amrex::Real y, amrex::Real z, amrex::RandomEngine const &) const noexcept
Definition: InjectorMomentum.H:405
AMREX_GPU_HOST_DEVICE amrex::XDim3 getBulkMomentum(amrex::Real x, amrex::Real y, amrex::Real z) const noexcept
Definition: InjectorMomentum.H:414
Definition: InjectorMomentum.H:707
InjectorMomentumGaussian gaussian
Definition: InjectorMomentum.H:751
InjectorMomentumUniform uniform
Definition: InjectorMomentum.H:753
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:716
Object(InjectorMomentumBoltzmann *, GetTemperature const &t, GetVelocity const &b) noexcept
Definition: InjectorMomentum.H:727
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:736
InjectorMomentumGaussianParser gaussianparser
Definition: InjectorMomentum.H:758
InjectorMomentumJuttner juttner
Definition: InjectorMomentum.H:755
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:722
InjectorMomentumRadialExpansion radial_expansion
Definition: InjectorMomentum.H:756
InjectorMomentumBoltzmann boltzmann
Definition: InjectorMomentum.H:754
InjectorMomentumGaussianFlux gaussianflux
Definition: InjectorMomentum.H:752
Object(InjectorMomentumJuttner *, GetTemperature const &t, GetVelocity const &b) noexcept
Definition: InjectorMomentum.H:730
Object(InjectorMomentumRadialExpansion *, amrex::Real u_over_r) noexcept
Definition: InjectorMomentum.H:733
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:711
InjectorMomentumParser parser
Definition: InjectorMomentum.H:757
InjectorMomentumConstant constant
Definition: InjectorMomentum.H:750
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:741
Object(InjectorMomentumConstant *, amrex::Real a_ux, amrex::Real a_uy, amrex::Real a_uz) noexcept
Definition: InjectorMomentum.H:708