46 loOffset.resize(nGroup);
55 linWeights.resize(nGroup);
58 for (
int g=0; g<
nGroup; g++) {
60 reconstCoeffs.push_back(ss);
62 for (
int g=0; g<
nGroup; g++) {
64 siCoeffsFirst.push_back(ss);
66 for (
int g=0; g<
nGroup; g++) {
68 siCoeffsSecond.push_back(ss);
126 reconstCoeffs[0].Copy(temp);
128 linWeights[0].push_back(0.1);
129 linWeights[0].push_back(0.6);
130 linWeights[0].push_back(0.3);
158 reconstCoeffs[1].Copy(temp);
160 linWeights[1].push_back(0.1);
161 linWeights[1].push_back(0.6);
162 linWeights[1].push_back(0.3);
187 siCoeffsFirst[0].Copy(temp);
202 siCoeffsFirst[1].Copy(temp);
239 siCoeffsSecond[0].Copy(temp);
253 siCoeffsSecond[1].Copy(temp);
261 return std::max(std::abs(loAll)+1, std::abs(hiAll));
269 return loGroup[group];
272 int Lo(
int group,
int sten) {
273 return loOffset[group][sten];
277 return linWeights[group][sten];
282 res.
Copy(reconstCoeffs[group]);
288 res.
Copy(siCoeffsFirst[group]);
294 res.
Copy(siCoeffsSecond[group]);
302 void Project(
int n,
int m,
double T[],
double vals[],
double res[]);
303 double EntropyFixEta(
int n,
double lambdaL[],
double lambdaR[]);
std::vector< int > loGroup
int * stencilSizes
The number of weights for each stencil.
std::vector< StencilSet > siCoeffsSecond
void ReconstPointVal(double vals[], CoeffsWENO &coeffs, int group, double &pVal)
std::vector< StencilSet > siCoeffsFirst
double EntropyFixEta(int n, double lambdaL[], double lambdaR[])
void Copy(const stencilset &inStencilSet)
Copy a stencil.
std::vector< StencilSet > reconstCoeffs
int * stencilStarts
The starting index into the stencilWeight and stencilOffset arrays for each stencil.
int * stencilOffsets
The offsets wrt the grid point at which the stencil is being applied.
std::vector< std::vector< int > > loOffset
StencilSet SmIndSecond(int group)
void ReconstPointValSten(double vals[], CoeffsWENO &coeffs, int group, int sten, double &pVal)
StencilSet SmIndFirst(int group)
void Project(int n, int m, double T[], double vals[], double res[])
Encapsulation for a collection of operator stencils.
int numValues
The total number of weights for all stencils (reqd for Fortran)
std::vector< std::vector< double > > linWeights
plascom2::operators::stencilset StencilSet
int Lo(int group, int sten)
bool ownData
Indicates whether this data structure owns the stencil memory.
StencilSet Reconst(int group)
double * stencilWeights
The stencil weights.
int numStencils
The number of stencils (e.g. interior + boundary)
void SmoothInd(double vals[], CoeffsWENO &coeffs, int group, int sten, double &si)
double LinWeight(int group, int sten)