Commit fdbecd47 authored by Chris Cantwell's avatar Chris Cantwell
Browse files

Explicit point keys for GetJac.

parent 55e7e029
......@@ -302,8 +302,6 @@ namespace expt
template<typename Expression>
static typename Expression::ResultType Evaluate(const Expression& expression)
{
typedef typename Expression::Indices Indices;
// Perform the optimizations on the parse three.
typedef typename RemoveUnecessaryTemporaries<Expression>::TransformedNodeType OptimizedParseTree;
typedef typename RemoveUnecessaryTemporaries<Expression>::TransformedIndicesType TransformedIndicesType;
......@@ -320,8 +318,6 @@ namespace expt
template<typename Expression>
static void Evaluate(const Expression& expression, typename Expression::ResultType& accum)
{
typedef typename Expression::Indices Indices;
// Perform the optimizations on the parse three.
typedef typename RemoveUnecessaryTemporaries<Expression>::TransformedNodeType OptimizedParseTree;
typedef typename RemoveUnecessaryTemporaries<Expression>::TransformedIndicesType TransformedIndicesType;
......@@ -341,8 +337,6 @@ namespace expt
template<typename Expression>
static void EvaluateWithoutAliasingCheck(const Expression& expression, typename Expression::ResultType& accum)
{
typedef typename Expression::Indices Indices;
// Perform the optimizations on the parse three.
typedef typename RemoveUnecessaryTemporaries<Expression>::TransformedNodeType OptimizedParseTree;
typedef typename RemoveUnecessaryTemporaries<Expression>::TransformedIndicesType TransformedIndicesType;
......
......@@ -143,14 +143,15 @@ namespace Nektar
{
unsigned int nqtot = GetTotPoints();
SpatialDomains::GeomType type = m_metricinfo->GetGtype();
LibUtilities::PointsKeyVector p = GetPointsKeys();
if (type == SpatialDomains::eRegular ||
type == SpatialDomains::eMovingRegular)
{
m_metrics[MetricQuadrature] = Array<OneD, NekDouble>(nqtot, m_metricinfo->GetJac()[0]);
m_metrics[MetricQuadrature] = Array<OneD, NekDouble>(nqtot, m_metricinfo->GetJac(p)[0]);
}
else
{
m_metrics[MetricQuadrature] = m_metricinfo->GetJac();
m_metrics[MetricQuadrature] = m_metricinfo->GetJac(p);
}
MultiplyByStdQuadratureMetric(m_metrics[MetricQuadrature],
......
......@@ -118,7 +118,7 @@ namespace Nektar
int nquad0 = m_base[0]->GetNumPoints();
int nquad1 = m_base[1]->GetNumPoints();
int nquad2 = m_base[2]->GetNumPoints();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac(GetPointsKeys());
NekDouble returnVal;
Array<OneD,NekDouble> tmp(nquad0*nquad1*nquad2);
......@@ -1346,7 +1346,7 @@ namespace Nektar
const SpatialDomains::GeomFactorsSharedPtr & geomFactors = GetGeom()->GetMetricInfo();
SpatialDomains::GeomType type = geomFactors->GetGtype();
const Array<TwoD, const NekDouble> & df = geomFactors->GetDerivFactors();
const Array<OneD, const NekDouble> & jac = geomFactors->GetJac();
const Array<OneD, const NekDouble> & jac = geomFactors->GetJac(GetPointsKeys());
int nqe0 = m_base[0]->GetNumPoints();
int nqe1 = m_base[1]->GetNumPoints();
......@@ -1714,7 +1714,7 @@ namespace Nektar
DNekScalMatSharedPtr HexExp::CreateMatrix(const MatrixKey &mkey)
{
DNekScalMatSharedPtr returnval;
LibUtilities::PointsKeyVector ptsKeys = GetPointsKeys();
ASSERTL2(m_metricinfo->GetGtype() != SpatialDomains::eNoGeomType,
"Geometric information is not set up");
......@@ -1733,7 +1733,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat
= GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>
......@@ -1756,7 +1756,8 @@ namespace Nektar
}
else
{
NekDouble fac = 1.0/(m_metricinfo->GetJac())[0];
cout << ptsKeys.size() << endl;
NekDouble fac = 1.0/(m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat
= GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>
......@@ -1779,7 +1780,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> df
= m_metricinfo->GetDerivFactors();
int dir = 0;
......@@ -1858,7 +1859,7 @@ namespace Nektar
DNekMat &lap12 = *GetStdMatrix(lap12key);
DNekMat &lap22 = *GetStdMatrix(lap22key);
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> gmat
= m_metricinfo->GetGmat();
......@@ -1911,7 +1912,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(jac,mat);
}
......
......@@ -99,7 +99,7 @@ namespace Nektar
{
int nquad0 = m_base[0]->GetNumPoints();
int nquad1 = m_base[1]->GetNumPoints();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac(GetPointsKeys());
NekDouble ival;
Array<OneD,NekDouble> tmp(nquad0*nquad1);
......@@ -702,6 +702,7 @@ namespace Nektar
DNekScalMatSharedPtr NodalTriExp::CreateMatrix(const MatrixKey &mkey)
{
DNekScalMatSharedPtr returnval;
LibUtilities::PointsKeyVector ptsKeys = GetPointsKeys();
ASSERTL2(m_metricinfo->GetGtype() != SpatialDomains::eNoGeomType,"Geometric information is not set up");
......@@ -719,7 +720,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(jac,mat);
}
......@@ -739,7 +740,7 @@ namespace Nektar
}
else
{
NekDouble fac = 1.0/(m_metricinfo->GetJac())[0];
NekDouble fac = 1.0/(m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(fac,mat);
}
......@@ -768,7 +769,7 @@ namespace Nektar
DNekMat &lap01 = *GetStdMatrix(lap01key);
DNekMat &lap11 = *GetStdMatrix(lap11key);
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> gmat = m_metricinfo->GetGmat();
int rows = lap00.GetRows();
......@@ -954,7 +955,7 @@ namespace Nektar
const SpatialDomains::GeomType type = geomFactors->GetGtype();
const Array<TwoD, const NekDouble> & df = geomFactors->GetDerivFactors();
const Array<OneD, const NekDouble> & jac = geomFactors->GetJac();
const Array<OneD, const NekDouble> & jac = geomFactors->GetJac(GetPointsKeys());
int nqe = m_base[0]->GetNumPoints();
int dim = GetCoordim();
......
......@@ -110,7 +110,7 @@ namespace Nektar
int nquad0 = m_base[0]->GetNumPoints();
int nquad1 = m_base[1]->GetNumPoints();
int nquad2 = m_base[2]->GetNumPoints();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac(GetPointsKeys());
Array<OneD, NekDouble> tmp(nquad0*nquad1*nquad2);
// Multiply inarray with Jacobian
......@@ -967,7 +967,7 @@ namespace Nektar
GetGeom()->GetMetricInfo();
SpatialDomains::GeomType type = geomFactors->GetGtype();
const Array<TwoD, const NekDouble> &df = geomFactors->GetDerivFactors();
const Array<OneD, const NekDouble> &jac = geomFactors->GetJac();
const Array<OneD, const NekDouble> &jac = geomFactors->GetJac(GetPointsKeys());
// Number of quadrature points in face expansion.
int nq = m_base[0]->GetNumPoints()*m_base[0]->GetNumPoints();
......@@ -1386,6 +1386,7 @@ namespace Nektar
DNekScalMatSharedPtr PrismExp::CreateMatrix(const MatrixKey &mkey)
{
DNekScalMatSharedPtr returnval;
LibUtilities::PointsKeyVector ptsKeys = GetPointsKeys();
ASSERTL2(m_metricinfo->GetGtype() != SpatialDomains::eNoGeomType,
"Geometric information is not set up");
......@@ -1402,7 +1403,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(jac,mat);
}
......@@ -1422,7 +1423,7 @@ namespace Nektar
}
else
{
NekDouble fac = 1.0/(m_metricinfo->GetJac())[0];
NekDouble fac = 1.0/(m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(fac,mat);
}
......@@ -1442,7 +1443,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> df = m_metricinfo->GetDerivFactors();
int dir = 0;
......@@ -1518,7 +1519,7 @@ namespace Nektar
DNekMat &lap12 = *GetStdMatrix(lap12key);
DNekMat &lap22 = *GetStdMatrix(lap22key);
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> gmat
= m_metricinfo->GetGmat();
......@@ -1602,7 +1603,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(jac,mat);
}
......
......@@ -112,7 +112,7 @@ namespace Nektar
int nquad0 = m_base[0]->GetNumPoints();
int nquad1 = m_base[1]->GetNumPoints();
int nquad2 = m_base[2]->GetNumPoints();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac(GetPointsKeys());
Array<OneD, NekDouble> tmp(nquad0*nquad1*nquad2);
// multiply inarray with Jacobian
......@@ -279,7 +279,7 @@ namespace Nektar
int nquad0 = m_base[0]->GetNumPoints();
int nquad1 = m_base[1]->GetNumPoints();
int nquad2 = m_base[2]->GetNumPoints();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac(GetPointsKeys());
Array<OneD, NekDouble> tmp(nquad0*nquad1*nquad2);
// multiply inarray with Jacobian
......@@ -546,6 +546,7 @@ namespace Nektar
DNekScalMatSharedPtr PyrExp::CreateMatrix(const MatrixKey &mkey)
{
DNekScalMatSharedPtr returnval;
LibUtilities::PointsKeyVector ptsKeys = GetPointsKeys();
ASSERTL2(m_metricinfo->GetGtype() != SpatialDomains::eNoGeomType,"Geometric information is not set up");
......@@ -561,7 +562,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(jac,mat);
}
......@@ -580,7 +581,7 @@ namespace Nektar
}
else
{
NekDouble fac = 1.0/(m_metricinfo->GetJac())[0];
NekDouble fac = 1.0/(m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(fac,mat);
}
......@@ -618,7 +619,7 @@ namespace Nektar
DNekMat &lap22 = *GetStdMatrix(lap22key);
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> gmat = m_metricinfo->GetGmat();
int rows = lap00.GetRows();
......
......@@ -86,7 +86,7 @@ namespace Nektar
{
int nquad0 = m_base[0]->GetNumPoints();
int nquad1 = m_base[1]->GetNumPoints();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac(GetPointsKeys());
NekDouble ival;
Array<OneD,NekDouble> tmp(nquad0*nquad1);
......@@ -961,7 +961,7 @@ namespace Nektar
int nquad0 = m_base[0]->GetNumPoints();
int nquad1 = m_base[1]->GetNumPoints();
const Array<OneD, const NekDouble>& jac = m_metricinfo->GetJac();
const Array<OneD, const NekDouble>& jac = m_metricinfo->GetJac(GetPointsKeys());
const Array<TwoD, const NekDouble>& df = m_metricinfo->GetDerivFactors();
Array<OneD, NekDouble> j (max(nquad0, nquad1), 0.0);
......@@ -1219,7 +1219,7 @@ namespace Nektar
GetGeom()->GetMetricInfo();
SpatialDomains::GeomType type = geomFactors->GetGtype();
const Array<TwoD, const NekDouble> & df = geomFactors->GetDerivFactors();
const Array<OneD, const NekDouble> & jac = geomFactors->GetJac();
const Array<OneD, const NekDouble> & jac = geomFactors->GetJac(GetPointsKeys());
int nqe = m_base[0]->GetNumPoints();
int vCoordDim = GetCoordim();
......@@ -1859,6 +1859,7 @@ namespace Nektar
DNekScalMatSharedPtr QuadExp::CreateMatrix(const MatrixKey &mkey)
{
DNekScalMatSharedPtr returnval;
LibUtilities::PointsKeyVector ptsKeys = GetPointsKeys();
ASSERTL2(m_metricinfo->GetGtype() != SpatialDomains::eNoGeomType,
"Geometric information is not set up");
......@@ -1877,7 +1878,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::
AllocateSharedPtr(jac,mat);
......@@ -1900,7 +1901,7 @@ namespace Nektar
}
else
{
NekDouble fac = 1.0/(m_metricinfo->GetJac())[0];
NekDouble fac = 1.0/(m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::
AllocateSharedPtr(fac,mat);
......@@ -1922,7 +1923,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> df =
m_metricinfo->GetDerivFactors();
int dir = 0;
......@@ -1988,7 +1989,7 @@ namespace Nektar
DNekMat &lap01 = *GetStdMatrix(lap01key);
DNekMat &lap11 = *GetStdMatrix(lap11key);
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble>
gmat = m_metricinfo->GetGmat();
......@@ -2065,7 +2066,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::
AllocateSharedPtr(jac,mat);
......@@ -2085,7 +2086,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
const Array<TwoD, const NekDouble>& df =
m_metricinfo->GetDerivFactors();
int dir = 0;
......@@ -2218,7 +2219,7 @@ namespace Nektar
}
else
{
factor = (m_metricinfo->GetJac())[0];
factor = (m_metricinfo->GetJac(GetPointsKeys()))[0];
goto UseStdRegionsMatrix;
}
break;
......
......@@ -117,7 +117,7 @@ namespace Nektar
const Array<OneD, const NekDouble>& inarray)
{
int nquad0 = m_base[0]->GetNumPoints();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac(GetPointsKeys());
NekDouble ival;
Array<OneD,NekDouble> tmp(nquad0);
......@@ -241,7 +241,7 @@ namespace Nektar
PhysTensorDeriv(inarray,diff);
//get dS/de= (Jac)^-1
Array<OneD, NekDouble> Jac = m_metricinfo->GetJac();
Array<OneD, NekDouble> Jac = m_metricinfo->GetJac(GetPointsKeys());
if(m_metricinfo->GetGtype() == SpatialDomains::eDeformed)
{
//calculate the derivative as (dU/de)*(Jac)^-1
......@@ -538,7 +538,7 @@ cout<<"deps/dx ="<<inarray_d0[i]<<" deps/dy="<<inarray_d1[i]<<endl;
int coll_check)
{
int nquad0 = m_base[0]->GetNumPoints();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac(GetPointsKeys());
Array<OneD,NekDouble> tmp(nquad0);
......@@ -1414,6 +1414,7 @@ cout<<"deps/dx ="<<inarray_d0[i]<<" deps/dy="<<inarray_d1[i]<<endl;
{
DNekScalMatSharedPtr returnval;
NekDouble fac;
LibUtilities::PointsKeyVector ptsKeys = GetPointsKeys();
ASSERTL2(m_metricinfo->GetGtype() !=
SpatialDomains::eNoGeomType,
......@@ -1431,7 +1432,7 @@ cout<<"deps/dx ="<<inarray_d0[i]<<" deps/dy="<<inarray_d1[i]<<endl;
}
else
{
fac = (m_metricinfo->GetJac())[0];
fac = (m_metricinfo->GetJac(ptsKeys))[0];
goto UseStdRegionsMatrix;
}
}
......@@ -1452,7 +1453,7 @@ cout<<"deps/dx ="<<inarray_d0[i]<<" deps/dy="<<inarray_d1[i]<<endl;
}
else
{
fac = 1.0/(m_metricinfo->GetJac())[0];
fac = 1.0/(m_metricinfo->GetJac(ptsKeys))[0];
goto UseStdRegionsMatrix;
}
}
......@@ -1498,7 +1499,7 @@ cout<<"deps/dx ="<<inarray_d0[i]<<" deps/dy="<<inarray_d1[i]<<endl;
DNekMatSharedPtr WeakDerivStd = GetStdMatrix(deriv0key);
fac = m_metricinfo->GetDerivFactors()[dir][0]*
m_metricinfo->GetJac()[0];
m_metricinfo->GetJac(ptsKeys)[0];
returnval = MemoryManager<DNekScalMat>::
AllocateSharedPtr(fac,WeakDerivStd);
......@@ -1521,7 +1522,7 @@ cout<<"deps/dx ="<<inarray_d0[i]<<" deps/dy="<<inarray_d1[i]<<endl;
fac += m_metricinfo->GetDerivFactors()[i][0]*
m_metricinfo->GetDerivFactors()[i][0];
}
fac *= m_metricinfo->GetJac()[0];
fac *= m_metricinfo->GetJac(ptsKeys)[0];
goto UseStdRegionsMatrix;
}
}
......
......@@ -117,7 +117,7 @@ namespace Nektar
int nquad0 = m_base[0]->GetNumPoints();
int nquad1 = m_base[1]->GetNumPoints();
int nquad2 = m_base[2]->GetNumPoints();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac(GetPointsKeys());
NekDouble retrunVal;
Array<OneD,NekDouble> tmp(nquad0*nquad1*nquad2);
......@@ -879,7 +879,7 @@ namespace Nektar
GetGeom()->GetMetricInfo();
SpatialDomains::GeomType type = geomFactors->GetGtype();
const Array<TwoD, const NekDouble> &df = geomFactors->GetDerivFactors();
const Array<OneD, const NekDouble> &jac = geomFactors->GetJac();
const Array<OneD, const NekDouble> &jac = geomFactors->GetJac(GetPointsKeys());
int nq = m_base[0]->GetNumPoints()*m_base[0]->GetNumPoints();
int vCoordDim = GetCoordim();
......@@ -1192,6 +1192,7 @@ namespace Nektar
DNekScalMatSharedPtr TetExp::CreateMatrix(const MatrixKey &mkey)
{
DNekScalMatSharedPtr returnval;
LibUtilities::PointsKeyVector ptsKeys = GetPointsKeys();
ASSERTL2(m_metricinfo->GetGtype() != SpatialDomains::eNoGeomType,"Geometric information is not set up");
......@@ -1208,7 +1209,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(jac,mat);
}
......@@ -1227,7 +1228,7 @@ namespace Nektar
}
else
{
NekDouble fac = 1.0/(m_metricinfo->GetJac())[0];
NekDouble fac = 1.0/(m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(fac,mat);
}
......@@ -1248,7 +1249,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> df
= m_metricinfo->GetDerivFactors();
int dir = 0;
......@@ -1326,7 +1327,7 @@ namespace Nektar
DNekMat &lap12 = *GetStdMatrix(lap12key);
DNekMat &lap22 = *GetStdMatrix(lap22key);
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> gmat
= m_metricinfo->GetGmat();
......@@ -1377,7 +1378,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(jac,mat);
}
......
......@@ -83,7 +83,7 @@ namespace Nektar
{
int nquad0 = m_base[0]->GetNumPoints();
int nquad1 = m_base[1]->GetNumPoints();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac();
Array<OneD, const NekDouble> jac = m_metricinfo->GetJac(GetPointsKeys());
NekDouble ival;
Array<OneD,NekDouble> tmp(nquad0*nquad1);
......@@ -745,7 +745,7 @@ namespace Nektar
const SpatialDomains::GeomFactorsSharedPtr & geomFactors = GetGeom()->GetMetricInfo();
const SpatialDomains::GeomType type = geomFactors->GetGtype();
const Array<TwoD, const NekDouble> & df = geomFactors->GetDerivFactors();
const Array<OneD, const NekDouble> & jac = geomFactors->GetJac();
const Array<OneD, const NekDouble> & jac = geomFactors->GetJac(GetPointsKeys());
int nqe = m_base[0]->GetNumPoints();
int dim = GetCoordim();
......@@ -1232,6 +1232,7 @@ namespace Nektar
DNekScalMatSharedPtr TriExp::CreateMatrix(const MatrixKey &mkey)
{
DNekScalMatSharedPtr returnval;
LibUtilities::PointsKeyVector ptsKeys = GetPointsKeys();
ASSERTL2(m_metricinfo->GetGtype() != SpatialDomains::eNoGeomType,"Geometric information is not set up");
......@@ -1248,7 +1249,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(jac,mat);
}
......@@ -1268,7 +1269,7 @@ namespace Nektar
}
else
{
NekDouble fac = 1.0/(m_metricinfo->GetJac())[0];
NekDouble fac = 1.0/(m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(fac,mat);
......@@ -1288,7 +1289,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> df = m_metricinfo->GetDerivFactors();
int dir = 0;
switch(mkey.GetMatrixType())
......@@ -1347,7 +1348,7 @@ namespace Nektar
DNekMat &lap01 = *GetStdMatrix(lap01key);
DNekMat &lap11 = *GetStdMatrix(lap11key);
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
Array<TwoD, const NekDouble> gmat = m_metricinfo->GetGmat();
int rows = lap00.GetRows();
......@@ -1414,7 +1415,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
DNekMatSharedPtr mat = GetStdMatrix(mkey);
returnval = MemoryManager<DNekScalMat>::AllocateSharedPtr(jac,mat);
}
......@@ -1432,7 +1433,7 @@ namespace Nektar
}
else
{
NekDouble jac = (m_metricinfo->GetJac())[0];
NekDouble jac = (m_metricinfo->GetJac(ptsKeys))[0];
const Array<TwoD, const NekDouble>& df = m_metricinfo->GetDerivFactors();
int dir = 0;
......@@ -1511,6 +1512,7 @@ namespace Nektar
DNekScalBlkMatSharedPtr TriExp::CreateStaticCondMatrix(const MatrixKey &mkey)
{
DNekScalBlkMatSharedPtr returnval;
LibUtilities::PointsKeyVector ptsKeys = GetPointsKeys();
ASSERTL2(m_metricinfo->GetGtype() != SpatialDomains::eNoGeomType,"Geometric information is not set up");
</