2 #ifndef _PROTO_LEVEL_OP_ 3 #define _PROTO_LEVEL_OP_ 21 template<
typename, MemType>
class OpType,
23 template<
typename,
unsigned int, MemType, Centering>
class BCType =
PeriodicBC,
29 typedef OpType<T, MEM>
OP;
30 typedef BCType<T, OP::numState(), MEM, PR_CELL>
BC;
36 static constexpr
unsigned int numState() {
return OP::numState(); }
37 static constexpr
unsigned int numAux() {
return OP::numAux(); }
51 if (
numAux() > 0) {
return OP::auxGhost(); }
94 LevelStateData& a_output,
95 const LevelStateData& a_state,
96 const LevelAuxData& a_aux,
97 T a_scale = 1.0)
const;
108 LevelStateData& a_output,
109 const LevelStateData& a_state,
110 T a_scale = 1.0)
const;
116 inline void applyBC(LevelStateData& a_state)
const;
140 std::vector<std::shared_ptr<OP>>
m_ops;
144 #include "implem/Proto_LevelOpImplem.H" 146 #endif // end include guard BCType< T, OP::numState(), MEM, PR_CELL > BC
Definition: Proto_LevelOp.H:30
const OP & operator[](const LevelIndex &a_index) const
Definition: Proto_LevelOp.H:129
OpType< T, MEM > OP
Definition: Proto_LevelOp.H:29
std::vector< std::shared_ptr< OP > > m_ops
Definition: Proto_LevelOp.H:140
void setFluxScale(T a_value)
Definition: Proto_LevelOp.H:138
void setDiagScale(T a_value)
Definition: Proto_LevelOp.H:125
Array< T, DIM > dx() const
Definition: Proto_LevelOp.H:126
T time() const
Definition: Proto_LevelOp.H:124
Multidimensional Rectangular Array.
Definition: Proto_BoxData.H:314
static constexpr unsigned int numAux()
Definition: Proto_LevelOp.H:37
Disjoint Box Layout.
Definition: Proto_DisjointBoxLayout.H:30
T diagScale() const
Definition: Proto_LevelOp.H:122
LevelBoxData< T, OP::numAux(), MEM, PR_CELL > LevelAuxData
Definition: Proto_LevelOp.H:34
T spectralRadius() const
Spectral Radius.
Definition: Proto_LevelOp.H:82
MemType
Definition: Proto_MemType.H:7
DisjointBoxLayout m_layout
Definition: Proto_LevelOp.H:139
Level Box Data.
Definition: Proto_HDF5.H:17
static int order()
Definition: Proto_LevelOp.H:55
LevelOp< OpType, T, BCType, MEM > & operator=(LevelOp< OpType, T, BCType, MEM > &&a_op)=default
OP & operator[](const LevelIndex &a_index)
Definition: Proto_LevelOp.H:130
BC & bc()
Definition: Proto_LevelOp.H:127
Periodic Boundary Condition.
Definition: Proto_LevelBCLib.H:13
Level-Scope Operator.
Definition: Proto_LevelOp.H:25
unsigned int RKStage() const
Definition: Proto_LevelOp.H:125
static Point auxGhost()
Ghost Region Size (Auxiliary)
Definition: Proto_LevelOp.H:49
Array< T, DIM > m_dx
Definition: Proto_LevelOp.H:137
T fluxScale() const
Definition: Proto_LevelOp.H:123
T m_diagScale
Definition: Proto_LevelOp.H:133
void operator()(LevelStateData &a_output, const LevelStateData &a_state, T a_scale=1.0) const
Apply.
Definition: Proto_LevelOp.H:89
static ACCEL_DECORATION Point Zeros()
Get Zeros.
Definition: Proto_Array.H:17
void setRKStage(unsigned int a_stage)
Definition: Proto_LevelOp.H:165
LevelBoxData< T, OP::numState(), MEM, PR_CELL > LevelStateData
Definition: Proto_LevelOp.H:33
T m_fluxScale
Definition: Proto_LevelOp.H:134
void define(DisjointBoxLayout &a_layout, T a_dx)
Lazy Constructor.
Definition: Proto_LevelOp.H:31
BoxData< T, OP::numAux(), MEM > AuxData
Definition: Proto_LevelOp.H:32
Integer Valued Vector.
Definition: Proto_Point.H:24
static constexpr unsigned int numState()
Definition: Proto_LevelOp.H:36
T m_time
Definition: Proto_LevelOp.H:135
void applyBC(LevelStateData &a_state) const
Definition: Proto_LevelOp.H:116
LevelOp()
Default Constructor.
Definition: Proto_LevelOp.H:7
const DisjointBoxLayout & layout() const
Definition: Proto_LevelOp.H:128
BC m_bc
Definition: Proto_LevelOp.H:141
void setTime(T a_time)
Definition: Proto_LevelOp.H:151
unsigned int m_rkStage
Definition: Proto_LevelOp.H:136
BoxData< T, OP::numState(), MEM > StateData
Definition: Proto_LevelOp.H:31
#define MEMTYPE_DEFAULT
Definition: Proto_MemType.H:24
static Point ghost()
Ghost Region Size (State)
Definition: Proto_LevelOp.H:43
void operator()(LevelStateData &a_output, const LevelStateData &a_state, const LevelAuxData &a_aux, T a_scale=1.0) const
Apply.
Definition: Proto_LevelOp.H:63