42 namespace Collections {
44 CoalescedGeomData::CoalescedGeomData(
void)
48 CoalescedGeomData::~CoalescedGeomData(
void)
53 vector<StdRegions::StdExpansionSharedPtr> &pCollExp)
56 if(m_oneDGeomData.count(
eJac) == 0)
60 int nElmts = pCollExp.size();
64 for (
int i = 0; i < ptsKeys.size(); ++i)
66 npts *= ptsKeys[i].GetNumPoints();
74 for(
int i = 0; i < nElmts; ++i)
77 pCollExp[i]->GetMetricInfo()->GetJac(ptsKeys);
79 if (pCollExp[i]->GetMetricInfo()->GetGtype() ==
92 m_oneDGeomData[
eJac] = newjac;
95 return m_oneDGeomData[
eJac];
101 vector<StdRegions::StdExpansionSharedPtr> &pCollExp)
106 int nElmts = pCollExp.size();
110 for (
int i = 0; i < ptsKeys.size(); ++i)
112 npts *= ptsKeys[i].GetNumPoints();
120 for(
int i = 0; i < nElmts; ++i)
123 pCollExp[i]->GetMetricInfo()->GetJac(ptsKeys);
125 if (pCollExp[i]->GetMetricInfo()->GetGtype() ==
135 pCollExp[0]->MultiplyByStdQuadratureMetric(newjac + cnt,
148 vector<StdRegions::StdExpansionSharedPtr> &pCollExp)
154 int nElmts = pCollExp.size();
155 const int coordim = pCollExp[0]->GetCoordim();
156 int dim = ptsKeys.size();
160 for (
int i = 0; i < dim; ++i)
162 npts *= ptsKeys[i].GetNumPoints();
170 for(
int i = 0; i < nElmts; ++i)
173 pCollExp[i]->GetMetricInfo()->GetDerivFactors(ptsKeys);
175 if (pCollExp[i]->GetMetricInfo()->GetGtype() ==
178 for (
int j = 0; j < dim*coordim; ++j)
180 Vmath::Vcopy(npts, &Dfac[j][0], 1, &newDFac[j][cnt], 1);
185 for (
int j = 0; j < dim*coordim; ++j)
187 Vmath::Fill(npts, Dfac[j][0], &newDFac[j][cnt], 1);
std::vector< PointsKey > PointsKeyVector
void Fill(int n, const T alpha, T *x, const int incx)
Fill a vector with a constant value.
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Geometry is curved or has non-constant factors.