Chombo + EB + MF
3.2
|
#include <IndexedMoments.H>
Public Member Functions | |
IndexedMoments () | |
constructor—make statics first time called More... | |
~IndexedMoments () | |
Destructor. More... | |
Real & | operator[] (int a_i) |
const Real & | operator[] (int a_i) const |
Real & | operator[] (const IndexTM< int, Dim > &a_index) |
const Real & | operator[] (const IndexTM< int, Dim > &a_index) const |
IndexedMoments< Dim, P > & | operator+= (const IndexedMoments< Dim, P > &increment) |
add compoenentwise More... | |
IndexedMoments< Dim, P > & | operator*= (const Real &a_factor) |
multiply each component by constant More... | |
void | linearOut (void *const a_outbuf) const |
void | linearIn (const void *const a_inbuf) |
void | setRegular (const Real a_dx) |
set to a regular IndexTM More... | |
void | setToRegular (const Real a_dx) |
bool | isRegular () const |
IndexedMoments< Dim, P > & | operator= (const map< IndexTM< int, Dim >, Real > &a_mapin) |
for use with irregnode More... | |
IndexedMoments< Dim, P > & | operator= (const IndexedMoments< Dim, P > &a_input) |
void | shift (const IndexTM< Real, Dim > &a_distance) |
shift moment by the input distance. More... | |
void | setToZero () |
void | spout () const |
outputs the current state to pout() (a la parstream.H) More... | |
void | setToTruncatedMultiply (const IndexedMoments< Dim, P > &a_CA, const IndexedMoments< Dim, P > &a_CB) |
void | divideByFactorial () |
divides each entry by p! More... | |
void | multiplyByFactorial () |
multiply each entry by p! More... | |
Static Public Member Functions | |
static int | size () |
number of reals in the vector More... | |
static size_t | linearSize () |
for linearization More... | |
static const Vector< IndexTM< int, Dim > > & | getMonomialPowers () |
monomial powers More... | |
static int | indexOf (IndexTM< int, Dim > a_index) |
Calculate what linear index this multi-index is. More... | |
static IndexTM< int, Dim > | getIndex (const int &a_linearIndex) |
Protected Member Functions | |
Real | getMoment (const IndexTM< int, Dim > &a_mono, const map< IndexTM< int, Dim >, Real > &a_mapin) const |
Static Protected Member Functions | |
static void | setStatics () |
static void | setMultiIndicies () |
static void | setSize () |
Static Protected Attributes | |
static bool | s_staticsSet = false |
static int | s_size = 0 |
static Vector< IndexTM< int, Dim > > | s_multiIndicies = Vector<IndexTM<int, Dim> >() |
Private Attributes | |
int | m_isRegular |
Vector< Real > | m_moms |
Static Private Attributes | |
static const int | s_max_sizes [][CH_IM_MAX_POWER+1] |
Vector-like container for multi-indexed Real values up to some max multi-index P (sum of indicies <= P). Layout is 0th dim first, then 1st, etc.
D | The Dimension of the container |
IndexedMoments< Dim, P >::IndexedMoments | ( | ) |
constructor—make statics first time called
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::setStatics().
|
inline |
Destructor.
|
inline |
Retrieve the moment from the index a_index The lexigraphical index to the data
|
inline |
Retrieve the moment from the index a_index The lexigraphical index to the data
|
inline |
Retrieve the moment from the index a_index The multi-index that's needed
|
inline |
Retrieve the moment from the index a_index The multi-index that's needed
IndexedMoments< Dim, P > & IndexedMoments< Dim, P >::operator+= | ( | const IndexedMoments< Dim, P > & | increment | ) |
add compoenentwise
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::operator*=(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::operator[]().
IndexedMoments< Dim, P > & IndexedMoments< Dim, P >::operator*= | ( | const Real & | a_factor | ) |
multiply each component by constant
multiply each component by factor
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::getMoment(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::operator[]().
|
inlinestatic |
number of reals in the vector
Referenced by getIndMomSize(), IndexedMoments< SpaceDim, CH_EBIS_ORDER >::linearIn(), IndexedMoments< SpaceDim, CH_EBIS_ORDER >::linearOut(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::linearSize().
|
inlinestatic |
for linearization
|
inline |
|
inline |
void IndexedMoments< Dim, P >::setRegular | ( | const Real | a_dx | ) |
set to a regular IndexTM
Only moments with an even multi-index are non-zero
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::IndexedMoments(), IndexedMoments< SpaceDim, CH_EBIS_ORDER >::linearIn(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::setToRegular().
|
inline |
|
inlinestatic |
monomial powers
Referenced by MomentIterator< D, P >::MomentIterator(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::setRegular().
|
inline |
IndexedMoments< Dim, P > & IndexedMoments< Dim, P >::operator= | ( | const map< IndexTM< int, Dim >, Real > & | a_mapin | ) |
for use with irregnode
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::isRegular(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::shift().
|
inline |
void IndexedMoments< Dim, P >::shift | ( | const IndexTM< Real, Dim > & | a_distance | ) |
shift moment by the input distance.
shift moment by the input vector distance. this changes the current object from integral(x^p) to integral((x+x0)^p), where x0 = a_distance
Referenced by checkMoments(), IndexedMoments< SpaceDim, CH_EBIS_ORDER >::operator+=(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::operator=().
|
inline |
|
static |
Calculate what linear index this multi-index is.
Referenced by allPositive(), getIndMomLinearIndex(), IndexedMoments< SpaceDim, CH_EBIS_ORDER >::operator[](), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::setToZero().
|
inlinestatic |
Referenced by getIndMomMultiIndex().
void IndexedMoments< Dim, P >::spout | ( | ) | const |
outputs the current state to pout() (a la parstream.H)
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::getIndex(), IndexedMoments< SpaceDim, CH_EBIS_ORDER >::operator=(), and IrregNode::spout().
void IndexedMoments< Dim, P >::setToTruncatedMultiply | ( | const IndexedMoments< Dim, P > & | a_CA, |
const IndexedMoments< Dim, P > & | a_CB | ||
) |
Say = sum_p(CA m^p), and = sum_q(CB m^q).
This sets the current data to the set of coefficents M such that <AB> = sum_r(M m^r) + O(h^P+1).
We drop all coefficents for powers s.t. p + q > P.
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::getIndex(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::setMultiIndicies().
void IndexedMoments< Dim, P >::divideByFactorial | ( | ) |
divides each entry by p!
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::getIndex(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::setToTruncatedMultiply().
void IndexedMoments< Dim, P >::multiplyByFactorial | ( | ) |
multiply each entry by p!
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::divideByFactorial(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::getIndex().
|
protected |
Referenced by checkMoments(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::getIndex().
|
staticprotected |
|
staticprotected |
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::setSize().
|
staticprotected |
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::setRegular().
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
private |
|
private |
|
staticprivate |