69 void setup(
int dim_,
int num_dofs_scalar_,
int num_scalars_ = 0)
75 eq_scalar0 = (num_scalars_ > 0 ? (dim_ + 2) : -1);
79 for (
int d = 0; d < 3; ++d)
81 eq_mom[d] = (d < dim_) ? (1 + d) : -1;
87 StateLayout(
int dim_,
int num_dofs_scalar_,
int num_scalars_ = 0)
88 {
setup(dim_, num_dofs_scalar_, num_scalars_);}
95 MFEM_HOST_DEVICE
inline int validate(
int equation,
int dof)
const
98 equation > -1 && dof > -1) ? 0 : 1);
102 MFEM_HOST_DEVICE
inline int index(
int equation,
int dof)
const
104 assert(
validate(equation, dof) == 0);
128 const mfem::real_t*
U;
136 return (
U !=
nullptr);
142 const mfem::real_t rho =
U[ L.
eq_mass ];
199 assert((k >= 0 && k < L.
num_scalars) &&
"Invalid scalar index");
228 return (
U !=
nullptr);
234 const mfem::real_t rho =
U[ L.
eq_mass ];
310 assert((k >= 0 && k < L.
num_scalars) &&
"Invalid scalar index");
318 assert((k >= 0 && k < L.
num_scalars) &&
"Invalid scalar index");
340 const mfem::real_t*
U;
349 return (
U !=
nullptr);
355 const mfem::real_t rho =
U[ L.
eq_mass ];
395 assert((k >= 0 && k < L.
num_scalars) &&
"Invalid scalar index");
424 return (
U !=
nullptr);
430 const mfem::real_t rho =
U[ L.
eq_mass ];
489 assert((k >= 0 && k < L.
num_scalars) &&
"Invalid scalar index");
497 assert((k >= 0 && k < L.
num_scalars) &&
"Invalid scalar index");
521 const mfem::real_t*
U;
532 return (
U !=
nullptr);
595 assert(k >= 0 && k < L.
num_scalars &&
"Invalid scalar index");
616 return (
data !=
nullptr);
620 MFEM_HOST_DEVICE
inline mfem::real_t&
u(
const StateLayout &layout,
int equation,
int dof)
const
622 return data[ layout.
index(equation, dof) ];
628 return u(layout, layout.
eq_mass, dof);
633 return u(layout, layout.
eq_mom[component], dof);
638 return u(layout, layout.
eq_mom[0], dof);
643 return u(layout, layout.
eq_mom[1], dof);
648 return u(layout, layout.
eq_mom[2], dof);
653 return momentum(layout, component, dof) /
mass(layout, dof);
679 assert(k >= 0 && k < layout.
num_scalars &&
"Invalid scalar index");
Definition AxisymmetricGeometry.hpp:15
int offset_scalars(const Theseus::StateLayout &L)
Definition GasState.hpp:687
int offset_energy(const Theseus::StateLayout &L)
Definition GasState.hpp:686
int offset_mass(const Theseus::StateLayout &L)
Definition GasState.hpp:684
int offset_momentum(const Theseus::StateLayout &L)
Definition GasState.hpp:685
Definition GasState.hpp:520
MFEM_HOST_DEVICE mfem::real_t velocity_y(const StateLayout &L) const
Definition GasState.hpp:575
MFEM_HOST_DEVICE mfem::real_t momentum_y(const StateLayout &L) const
Definition GasState.hpp:554
MFEM_HOST_DEVICE mfem::real_t momentum_z(const StateLayout &L) const
Definition GasState.hpp:559
MFEM_HOST_DEVICE mfem::real_t velocity(const StateLayout &L, int d) const
Definition GasState.hpp:565
MFEM_HOST_DEVICE mfem::real_t momentum(const StateLayout &L, int d) const
Definition GasState.hpp:543
int dof
Definition GasState.hpp:522
MFEM_HOST_DEVICE mfem::real_t momentum_x(const StateLayout &L) const
Definition GasState.hpp:549
MFEM_HOST_DEVICE mfem::real_t velocity_z(const StateLayout &L) const
Definition GasState.hpp:580
MFEM_HOST_DEVICE DofStateView(const mfem::real_t *U_, int dof_)
Definition GasState.hpp:525
const mfem::real_t * U
Definition GasState.hpp:521
MFEM_HOST_DEVICE mfem::real_t energy(const StateLayout &L) const
Definition GasState.hpp:586
MFEM_HOST_DEVICE mfem::real_t scalar(const StateLayout &L, int k) const
Definition GasState.hpp:592
MFEM_HOST_DEVICE mfem::real_t mass(const StateLayout &L) const
Definition GasState.hpp:536
MFEM_HOST_DEVICE bool is_valid() const
Definition GasState.hpp:530
MFEM_HOST_DEVICE mfem::real_t velocity_x(const StateLayout &L) const
Definition GasState.hpp:570
Definition GasState.hpp:608
MFEM_HOST_DEVICE mfem::real_t & momentum(const StateLayout &layout, int component, int dof) const
Definition GasState.hpp:631
MFEM_HOST_DEVICE mfem::real_t & momentum_y(const StateLayout &layout, int dof) const
Definition GasState.hpp:641
MFEM_HOST_DEVICE mfem::real_t velocity_x(const StateLayout &layout, int dof) const
Definition GasState.hpp:656
MFEM_HOST_DEVICE FieldStateView(mfem::real_t *data_)
Definition GasState.hpp:612
MFEM_HOST_DEVICE mfem::real_t & scalar(const StateLayout &layout, int k, int dof) const
Definition GasState.hpp:676
MFEM_HOST_DEVICE mfem::real_t & momentum_z(const StateLayout &layout, int dof) const
Definition GasState.hpp:646
MFEM_HOST_DEVICE bool is_valid() const
Definition GasState.hpp:614
MFEM_HOST_DEVICE mfem::real_t & energy(const StateLayout &layout, int dof) const
Definition GasState.hpp:671
MFEM_HOST_DEVICE mfem::real_t & momentum_x(const StateLayout &layout, int dof) const
Definition GasState.hpp:636
MFEM_HOST_DEVICE mfem::real_t velocity_y(const StateLayout &layout, int dof) const
Definition GasState.hpp:661
mfem::real_t * data
Definition GasState.hpp:609
MFEM_HOST_DEVICE mfem::real_t & mass(const StateLayout &layout, int dof) const
Definition GasState.hpp:626
MFEM_HOST_DEVICE mfem::real_t velocity_z(const StateLayout &layout, int dof) const
Definition GasState.hpp:666
MFEM_HOST_DEVICE mfem::real_t & u(const StateLayout &layout, int equation, int dof) const
Definition GasState.hpp:620
MFEM_HOST_DEVICE mfem::real_t velocity(const StateLayout &layout, int component, int dof) const
Definition GasState.hpp:651
Definition GasState.hpp:416
MFEM_HOST_DEVICE mfem::real_t velocity(const StateLayout &L, int d) const
Definition GasState.hpp:447
MFEM_HOST_DEVICE bool is_valid() const
Definition GasState.hpp:422
MFEM_HOST_DEVICE void set_mass(const StateLayout &L, mfem::real_t val)
Definition GasState.hpp:435
MFEM_HOST_DEVICE PointPrimitiveViewRW(mfem::real_t *U_)
Definition GasState.hpp:420
MFEM_HOST_DEVICE mfem::real_t velocity_y(const StateLayout &L) const
Definition GasState.hpp:465
MFEM_HOST_DEVICE mfem::real_t velocity_x(const StateLayout &L) const
Definition GasState.hpp:460
MFEM_HOST_DEVICE mfem::real_t pressure(const StateLayout &L) const
Definition GasState.hpp:475
MFEM_HOST_DEVICE void set_velocity(const StateLayout &L, int d, mfem::real_t val)
Definition GasState.hpp:454
MFEM_HOST_DEVICE void set_scalar(const StateLayout &L, int k, mfem::real_t val)
Definition GasState.hpp:494
MFEM_HOST_DEVICE int velocity_loc(const StateLayout &L) const
Definition GasState.hpp:441
MFEM_HOST_DEVICE mfem::real_t mass(const StateLayout &L) const
Definition GasState.hpp:428
MFEM_HOST_DEVICE mfem::real_t scalar(const StateLayout &L, int k) const
Definition GasState.hpp:486
MFEM_HOST_DEVICE void set_pressure(const StateLayout &L, mfem::real_t val)
Definition GasState.hpp:480
MFEM_HOST_DEVICE mfem::real_t velocity_z(const StateLayout &L) const
Definition GasState.hpp:470
mfem::real_t * U
Definition GasState.hpp:417
Definition GasState.hpp:339
MFEM_HOST_DEVICE mfem::real_t pressure(const StateLayout &L) const
Definition GasState.hpp:386
MFEM_HOST_DEVICE mfem::real_t velocity_x(const StateLayout &L) const
Definition GasState.hpp:371
MFEM_HOST_DEVICE mfem::real_t mass(const StateLayout &L) const
Definition GasState.hpp:353
const mfem::real_t * U
Definition GasState.hpp:340
MFEM_HOST_DEVICE mfem::real_t velocity_z(const StateLayout &L) const
Definition GasState.hpp:381
MFEM_HOST_DEVICE PointPrimitiveView(const mfem::real_t *U_)
Definition GasState.hpp:343
MFEM_HOST_DEVICE mfem::real_t velocity(const StateLayout &L, int d) const
Definition GasState.hpp:365
MFEM_HOST_DEVICE bool is_valid() const
Definition GasState.hpp:347
MFEM_HOST_DEVICE int velocity_loc(const StateLayout &L) const
Definition GasState.hpp:360
MFEM_HOST_DEVICE mfem::real_t scalar(const StateLayout &L, int k) const
Definition GasState.hpp:392
MFEM_HOST_DEVICE mfem::real_t velocity_y(const StateLayout &L) const
Definition GasState.hpp:376
Definition GasState.hpp:218
MFEM_HOST_DEVICE void set_mass(const StateLayout &L, mfem::real_t val)
Definition GasState.hpp:239
mfem::real_t * U
Definition GasState.hpp:219
MFEM_HOST_DEVICE mfem::real_t velocity_y(const StateLayout &L) const
Definition GasState.hpp:284
MFEM_HOST_DEVICE mfem::real_t velocity(const StateLayout &L, int d) const
Definition GasState.hpp:274
MFEM_HOST_DEVICE mfem::real_t energy(const StateLayout &L) const
Definition GasState.hpp:295
MFEM_HOST_DEVICE mfem::real_t mass(const StateLayout &L) const
Definition GasState.hpp:232
MFEM_HOST_DEVICE void set_momentum(const StateLayout &L, int d, mfem::real_t val)
Definition GasState.hpp:252
MFEM_HOST_DEVICE bool is_valid() const
Definition GasState.hpp:226
MFEM_HOST_DEVICE mfem::real_t scalar(const StateLayout &L, int k) const
Definition GasState.hpp:307
MFEM_HOST_DEVICE mfem::real_t momentum_z(const StateLayout &L) const
Definition GasState.hpp:268
MFEM_HOST_DEVICE mfem::real_t momentum_y(const StateLayout &L) const
Definition GasState.hpp:263
MFEM_HOST_DEVICE void set_energy(const StateLayout &L, mfem::real_t val)
Definition GasState.hpp:301
MFEM_HOST_DEVICE void set_scalar(const StateLayout &L, int k, mfem::real_t val)
Definition GasState.hpp:315
MFEM_HOST_DEVICE mfem::real_t velocity_x(const StateLayout &L) const
Definition GasState.hpp:279
MFEM_HOST_DEVICE mfem::real_t momentum_x(const StateLayout &L) const
Definition GasState.hpp:258
MFEM_HOST_DEVICE mfem::real_t momentum(const StateLayout &L, int d) const
Definition GasState.hpp:245
MFEM_HOST_DEVICE PointStateViewRW(mfem::real_t *U_)
Definition GasState.hpp:222
MFEM_HOST_DEVICE mfem::real_t velocity_z(const StateLayout &L) const
Definition GasState.hpp:289
Definition GasState.hpp:127
MFEM_HOST_DEVICE bool is_valid() const
Definition GasState.hpp:134
MFEM_HOST_DEVICE mfem::real_t energy(const StateLayout &L) const
Definition GasState.hpp:190
MFEM_HOST_DEVICE mfem::real_t momentum(const StateLayout &L, int d) const
Definition GasState.hpp:147
MFEM_HOST_DEVICE mfem::real_t velocity(const StateLayout &L, int d) const
Definition GasState.hpp:169
MFEM_HOST_DEVICE mfem::real_t momentum_y(const StateLayout &L) const
Definition GasState.hpp:158
MFEM_HOST_DEVICE PointStateView(const mfem::real_t *U_)
Definition GasState.hpp:130
MFEM_HOST_DEVICE mfem::real_t scalar(const StateLayout &L, int k) const
Definition GasState.hpp:196
MFEM_HOST_DEVICE mfem::real_t velocity_z(const StateLayout &L) const
Definition GasState.hpp:184
MFEM_HOST_DEVICE mfem::real_t velocity_x(const StateLayout &L) const
Definition GasState.hpp:174
const mfem::real_t * U
Definition GasState.hpp:128
MFEM_HOST_DEVICE mfem::real_t velocity_y(const StateLayout &L) const
Definition GasState.hpp:179
MFEM_HOST_DEVICE mfem::real_t mass(const StateLayout &L) const
Definition GasState.hpp:140
MFEM_HOST_DEVICE mfem::real_t momentum_x(const StateLayout &L) const
Definition GasState.hpp:153
MFEM_HOST_DEVICE mfem::real_t momentum_z(const StateLayout &L) const
Definition GasState.hpp:163
Definition GasState.hpp:37
int num_dofs_scalar
Definition GasState.hpp:39
MFEM_HOST_DEVICE int validate(int equation, int dof) const
Definition GasState.hpp:95
MFEM_HOST_DEVICE int nequations() const
Definition GasState.hpp:91
int eq_energy
Definition GasState.hpp:45
int eq_scalar0
Definition GasState.hpp:48
int eq_mom[3]
Definition GasState.hpp:44
int num_scalars
Definition GasState.hpp:49
int dim
Definition GasState.hpp:38
int eq_mom0
Definition GasState.hpp:43
MFEM_HOST_DEVICE int index(int equation, int dof) const
Definition GasState.hpp:102
MFEM_HOST_DEVICE StateLayout()=default
void setup(int dim_, int num_dofs_scalar_, int num_scalars_=0)
Definition GasState.hpp:69
int eq_mass
Definition GasState.hpp:42
StateLayout(int dim_, int num_dofs_scalar_, int num_scalars_=0)
Definition GasState.hpp:87