32 template <
typename T,
unsigned int C_STATE,
unsigned int C_AUX, MemType MEM = MEMTYPE_DEFAULT>
43 inline static constexpr
unsigned int numState() {
return C_STATE; }
49 inline static constexpr
unsigned int numAux() {
return C_AUX; }
93 inline virtual void init(){}
113 const StateData& a_state,
114 const AuxData& a_aux,
115 T a_scale = 1.0)
const;
127 const StateData& a_state,
128 T a_scale = 1.0)
const;
142 const StateData& a_state,
143 const AuxData& a_aux,
144 T a_scale = 1.0)
const;
157 const StateData& a_state,
158 T a_scale = 1.0)
const;
168 inline virtual StateData
170 const StateData& a_state,
171 const AuxData& a_aux,
173 T a_scale = 1.0)
const;
182 inline virtual StateData
184 const StateData& a_state,
186 T a_scale = 1.0)
const;
192 const StateData& a_state)
const;
200 const StateData& a_state,
201 Face a_face)
const {}
212 inline virtual void flux(
214 const StateData& a_state,
215 const AuxData& a_aux,
226 inline virtual void flux(
228 const StateData& a_state,
239 inline virtual void source(
241 const StateData& a_state,
242 const AuxData& a_aux)
const;
253 const StateData& a_state)
const;
263 inline virtual void diag(
265 const StateData& a_state,
266 const AuxData& a_aux)
const;
275 inline virtual void diag(
277 const StateData& a_state)
const;
288 const StateData& a_state)
const;
293 const StateData& a_state,
331 inline T
dxMin()
const;
334 inline T
dxMax()
const;
374 inline virtual void matchFlux(
379 Point a_localDir)
const;
382 inline void matchFluxAverage(
386 Point a_localDir)
const;
406 #include "implem/Proto_BoxOpImplem.H" 409 #endif // end include guard unsigned int m_RKStage
Definition: Proto_BoxOp.H:393
Definition: Proto_Face.H:122
virtual void init()
Initialize.
Definition: Proto_BoxOp.H:93
Abstract Box-Scope Operator.
Definition: Proto_BoxOp.H:33
virtual void flux(StateData &a_flux, const StateData &a_state, const AuxData &a_aux, int a_dir) const
User Defined Flux.
Definition: Proto_BoxOp.H:269
T dxMin() const
Get Min Grid Spacing.
Definition: Proto_BoxOp.H:405
Array< T, DIM > dx() const
Get Grid Spacing.
Definition: Proto_BoxOp.H:395
const LevelIndex & index() const
Get Index.
Definition: Proto_BoxOp.H:337
T time() const
Get Time.
Definition: Proto_BoxOp.H:325
LevelIndex m_index
Definition: Proto_BoxOp.H:394
Multidimensional Rectangular Array.
Definition: Proto_BoxData.H:314
Disjoint Box Layout.
Definition: Proto_DisjointBoxLayout.H:30
bool m_definedSrce
Definition: Proto_BoxOp.H:397
T m_scaleDiag
Definition: Proto_BoxOp.H:390
virtual T spectralRadius() const
Spectral Radius (User Defined)
Definition: Proto_BoxOp.H:100
BoxOp()
Default Constructor.
Definition: Proto_BoxOp.H:6
An interval in DIM dimensional space.
Definition: Proto_Box.H:29
BoxOp< T, C_STATE, C_AUX, MEM > & operator=(BoxOp< T, C_STATE, C_AUX, MEM > &&a_bop)=default
void setFluxScale(T a_value)
Set Flux Term Scaling.
Definition: Proto_BoxOp.H:365
BoxData< T, 1, MEM > jacobian(const BoxData< T, DIM, MEM > &a_X, const FluxBoxData< T, DIM, MEM > &a_NT)
Definition: Proto_Operator.H:1269
static constexpr unsigned int numState()
Get Number of State Variables.
Definition: Proto_BoxOp.H:43
static constexpr unsigned int numAux()
Get Number of Auxiliary Variables.
Definition: Proto_BoxOp.H:49
BoxData< T, C_STATE, MEM > StateData
Definition: Proto_BoxOp.H:36
unsigned int RKStage() const
Read Flux Term Scaling.
Definition: Proto_BoxOp.H:322
void define(const DisjointBoxLayout &a_layout, const LevelIndex &a_index, T a_dx)
Lazy Isotropic Constructor.
Definition: Proto_BoxOp.H:38
T diagScale() const
Read Diagonal Term Scaling.
Definition: Proto_BoxOp.H:316
void setRKStage(unsigned int a_stage)
Set Runge Kutta Stage.
Definition: Proto_BoxOp.H:385
DisjointBoxLayout m_layout
Definition: Proto_BoxOp.H:395
T fluxScale() const
Read Flux Term Scaling.
Definition: Proto_BoxOp.H:319
Definition: Proto_Array.H:17
virtual void applyBC(Array< StateData, DIM > &a_fluxes, const StateData &a_state, Face a_face) const
Apply User Specified Boundary Condition.
Definition: Proto_BoxOp.H:198
void applyBC(Array< StateData, DIM > &a_fluxes, const StateData &a_state) const
Apply All Boundary Conditions.
Definition: Proto_BoxOp.H:251
virtual void diag(StateData &a_diag, const StateData &a_state, const AuxData &a_aux) const
User Defined Diagonal.
Definition: Proto_BoxOp.H:329
Integer Valued Vector.
Definition: Proto_Point.H:24
Array< T, DIM > m_dx
Definition: Proto_BoxOp.H:400
void setTime(T a_time)
Set Time.
Definition: Proto_BoxOp.H:375
virtual void operator()(StateData &a_output, const StateData &a_state, const AuxData &a_aux, T a_scale=1.0) const
Apply (In Place)
Definition: Proto_BoxOp.H:184
T m_scaleFlux
Definition: Proto_BoxOp.H:391
BoxData< T, C_AUX, MEM > AuxData
Definition: Proto_BoxOp.H:37
T dxMax() const
Get Max Grid Spacing.
Definition: Proto_BoxOp.H:420
T m_time
Definition: Proto_BoxOp.H:392
virtual void operator()(StateData &a_output, Array< StateData, DIM > &a_fluxes, const StateData &a_state, T a_scale=1.0) const
Apply (In Place, Flux Output)
Definition: Proto_BoxOp.H:131
bool m_definedFlux
Definition: Proto_BoxOp.H:398
const Box & box() const
Get Box.
Definition: Proto_BoxOp.H:343
virtual void source(StateData &a_source, const StateData &a_state, const AuxData &a_aux) const
User Defined Source.
Definition: Proto_BoxOp.H:300
const DisjointBoxLayout & layout() const
Get Layout.
Definition: Proto_BoxOp.H:340
void setDiagScale(T a_value)
TODO: not implemented (see MMB version which has this implemented)
Definition: Proto_BoxOp.H:355