Proto
3.2
|
#include <Proto_MBMapOp.H>
Public Member Functions | |
MBMapOp () | |
Trivial Constructor. More... | |
MBMapOp (Array< double, DIM > a_dx, unsigned int a_block, unsigned int a_focalBlock=0) | |
Constructor. More... | |
void | define (Array< double, DIM > a_dx, unsigned int a_block, unsigned int a_focalBlock=0) |
Lazy Constructor. More... | |
virtual void | init () |
User Defined Initialization. More... | |
virtual void | apply (BoxData< double, DIM, MEM > &a_X, BoxData< double, 1, MEM > &a_J) |
Compute Map. More... | |
virtual void | apply (BoxData< double, DIM, MEM > &a_X, BoxData< double, 1, MEM > &a_J, FluxBoxData< double, DIM, MEM > &a_NT) |
Compute Map (With Metrics) More... | |
virtual Array< double, DIM > | apply (const Array< double, DIM > &a_xi) |
Analytic Map. More... | |
virtual void | inverse (BoxData< double, DIM, MEM > &a_XMap, const BoxData< double, DIM, MEM > &a_XCart) |
virtual Array< double, DIM > | inverse (const Array< double, DIM > &a_x) |
Analytic Inverse Map. More... | |
void | _apply (BoxData< double, DIM, MEM > &a_X, BoxData< double, 1, MEM > &a_J) |
void | _apply (BoxData< double, DIM, MEM > &a_X, BoxData< double, 1, MEM > &a_J, FluxBoxData< double, DIM, MEM > &a_NT) |
const Array< double, DIM > & | dx () const |
Get Mapped Grid Spacing. More... | |
unsigned int | block () const |
Get Block. More... | |
BoxData< double, DIM, MEM > | X (const Box &a_box, const Array< double, DIM > &a_dx) const |
Get Mapped Coordinate Values. More... | |
void | setFocalBlock (unsigned int a_block) |
unsigned int | focalBlock () const |
Private Attributes | |
Array< double, DIM > | m_dx |
Grid spacing in mapped space. More... | |
Stencil< double > | m_c2c |
Cached corners-to-cells Stencil. More... | |
unsigned int | m_block |
Block in which this map is applied. More... | |
unsigned int | m_focalBlock |
Block on which this map is focused (often unused) More... | |
|
inline |
Trivial Constructor.
References Proto::MBMapOp< MEM >::define().
|
inline |
Constructor.
|
inline |
Lazy Constructor.
Referenced by Proto::MBMapOp< MEM >::MBMapOp().
|
inlinevirtual |
User Defined Initialization.
Users should override this function with any code they would like to run when the map is constructed.
Referenced by Proto::MBMapOp< MEM >::setFocalBlock().
|
inlinevirtual |
Compute Map.
Users should override this function when defining their map if they do not want to explicitly define the metric tensor (NT). The domains of the coordinate and Jacobian quantities are assumed to be defined before they are input to this function. Note that the ghost values used to define the map during construction have absolutely no bearing on the valid domains for this function, so long as the relevant analytic functions are defined.
a_X | Coordinates at nodes [input/output] |
a_J | Cell averaged jacobian [input/output] |
Referenced by Proto::MBMapOp< MEM >::_apply().
|
inlinevirtual |
Compute Map (With Metrics)
Users should override this function when defining their map if they want to explicitly define the metric tensor (NT). The domains of the coordinate and Jacobian quantities are assumed to be defined before they are input to this function. Note that the ghost values used to define the map during construction have absolutely no bearing on the valid domains for this function, so long as the relevant analytic functions are defined.
a_X | Coordinates at nodes [input/output] |
a_J | Cell averaged jacobian [input/output] |
a_NT | Face averaged metric terms in each coordinate direction [output] |
|
inlinevirtual |
|
inlinevirtual |
References PROTO_ASSERT.
|
inlinevirtual |
Analytic Inverse Map.
Users should override this function if the inverse map is needed
References PROTO_ASSERT.
|
inline |
References Proto::MBMapOp< MEM >::apply().
|
inline |
|
inline |
Get Mapped Grid Spacing.
Referenced by Proto::MBMapOp< MEM >::_apply().
|
inline |
Get Block.
Referenced by Proto::MBMapOp< MEM >::_apply().
|
inline |
Get Mapped Coordinate Values.
Given a node-centered box and grid spacing, generate the node centered mapped coordinates. This assumes that the origin corresponds to the point (0,0,...,0) and that the input box already accounts for node centering (e.g. Box::grow(PR_NODE) is assumed to already have been called.)
/param a_box A box that already accounts for node centering /param a_dx Grid spacing
Referenced by Proto::MBMapOp< MEM >::_apply().
|
inline |
References Proto::MBMapOp< MEM >::init(), and Proto::MBMapOp< MEM >::m_focalBlock.
|
inline |
References Proto::MBMapOp< MEM >::m_focalBlock.
|
private |
Grid spacing in mapped space.
|
private |
Cached corners-to-cells Stencil.
|
private |
Block in which this map is applied.
|
private |
Block on which this map is focused (often unused)
Referenced by Proto::MBMapOp< MEM >::focalBlock(), and Proto::MBMapOp< MEM >::setFocalBlock().