Chombo + EB
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
|
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
References MomentIterator< D, P >::ok().
IndexedMoments< Dim, P > & IndexedMoments< Dim, P >::operator*= | ( | const Real & | a_factor | ) |
multiply each component by constant
multiply each component by factor
References MomentIterator< D, P >::ok().
|
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
References CH_assert, IndexedMoments< Dim, P >::getMonomialPowers(), POW(), Vector< T >::size(), and IndexTM< T, N >::sum().
Referenced by IndexedMoments< SpaceDim, CH_EBIS_ORDER >::setToRegular(), VolData::setToRegular(), and FaceData::setToRegular().
|
inline |
|
inlinestatic |
monomial powers
Referenced by MomentIterator< D, P >::MomentIterator(), and IndexedMoments< Dim, P >::setRegular().
|
inline |
IndexedMoments< Dim, P > & IndexedMoments< Dim, P >::operator= | ( | const map< IndexTM< int, Dim >, Real > & | a_mapin | ) |
for use with irregnode
References MomentIterator< D, P >::ok().
|
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
References CH_TIME, IndexTM< T, N >::componentwiseLE(), MomentIterator< D, P >::ok(), and POW().
Referenced by checkMoments().
|
inline |
|
static |
Calculate what linear index this multi-index is.
References allPositive(), CH_assert, and IndexTM< T, N >::sum().
Referenced by getIndMomLinearIndex(), and IndexedMoments< SpaceDim, CH_EBIS_ORDER >::operator[]().
|
inlinestatic |
Referenced by getIndMomMultiIndex().
void IndexedMoments< Dim, P >::spout | ( | ) | const |
outputs the current state to pout() (a la parstream.H)
References MomentIterator< D, P >::ok(), and pout().
Referenced by 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.
References MomentIterator< D, P >::ok(), and IndexTM< T, N >::sum().
void IndexedMoments< Dim, P >::divideByFactorial | ( | ) |
divides each entry by p!
References factorial(), MomentIterator< D, P >::ok(), and pfactorial().
void IndexedMoments< Dim, P >::multiplyByFactorial | ( | ) |
multiply each entry by p!
References factorial(), MomentIterator< D, P >::ok(), and pfactorial().
|
protected |
References MayDay::Abort(), and pout().
|
staticprotected |
|
staticprotected |
References IndexTM< T, N >::sum().
|
staticprotected |
References CH_assert, CH_IM_MAX_POWER, and SpaceDim.
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
private |
|
private |
|
staticprivate |