Commit e2001640 authored by Douglas Serson's avatar Douglas Serson

Merge branch 'feature/IncNS_DGKernel' into 'master'

Feature/inc ns dg kernel

Closes #60

See merge request !851
parents 4e36b131 3eaeea6a
...@@ -69,6 +69,7 @@ v5.0.0 ...@@ -69,6 +69,7 @@ v5.0.0
**IncNavierStokesSolver** **IncNavierStokesSolver**
- Replace steady-state check based on difference of norms by check based on - Replace steady-state check based on difference of norms by check based on
norm of the difference, to be consistent with the compressible solver (!832) norm of the difference, to be consistent with the compressible solver (!832)
- Updated SVV to allow for the DGKernel extension (!851)
**CompressibleFlowSolver** **CompressibleFlowSolver**
- Add 3D regression tests (!567) - Add 3D regression tests (!567)
......
...@@ -542,6 +542,7 @@ namespace Nektar ...@@ -542,6 +542,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
{ {
...@@ -573,7 +574,7 @@ namespace Nektar ...@@ -573,7 +574,7 @@ namespace Nektar
// Solve the system // Solve the system
GlobalLinSysKey key(StdRegions::eHelmholtz, GlobalLinSysKey key(StdRegions::eHelmholtz,
m_locToGloMap,factors,varcoeff); m_locToGloMap,factors,varcoeff,varfactors);
if(flags.isSet(eUseGlobal)) if(flags.isSet(eUseGlobal))
{ {
......
...@@ -208,6 +208,7 @@ namespace Nektar ...@@ -208,6 +208,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
......
...@@ -874,6 +874,7 @@ namespace Nektar ...@@ -874,6 +874,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
...@@ -923,7 +924,7 @@ namespace Nektar ...@@ -923,7 +924,7 @@ namespace Nektar
// Add weak boundary conditions to forcing // Add weak boundary conditions to forcing
Vmath::Vadd(contNcoeffs, wsp, 1, gamma, 1, wsp, 1); Vmath::Vadd(contNcoeffs, wsp, 1, gamma, 1, wsp, 1);
GlobalLinSysKey key(StdRegions::eHelmholtz,m_locToGloMap,factors,varcoeff); GlobalLinSysKey key(StdRegions::eHelmholtz,m_locToGloMap,factors,varcoeff,varfactors);
if(flags.isSet(eUseGlobal)) if(flags.isSet(eUseGlobal))
{ {
......
...@@ -247,6 +247,7 @@ namespace Nektar ...@@ -247,6 +247,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
......
...@@ -580,6 +580,7 @@ namespace Nektar ...@@ -580,6 +580,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
{ {
...@@ -626,7 +627,7 @@ namespace Nektar ...@@ -626,7 +627,7 @@ namespace Nektar
Vmath::Vadd(contNcoeffs, wsp, 1, gamma, 1, wsp, 1); Vmath::Vadd(contNcoeffs, wsp, 1, gamma, 1, wsp, 1);
// Solve the system // Solve the system
GlobalLinSysKey key(StdRegions::eHelmholtz, m_locToGloMap, factors,varcoeff); GlobalLinSysKey key(StdRegions::eHelmholtz, m_locToGloMap, factors,varcoeff,varfactors);
if(flags.isSet(eUseGlobal)) if(flags.isSet(eUseGlobal))
{ {
......
...@@ -184,6 +184,7 @@ namespace Nektar ...@@ -184,6 +184,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
virtual void v_GeneralMatrixOp( virtual void v_GeneralMatrixOp(
......
...@@ -254,6 +254,7 @@ namespace Nektar ...@@ -254,6 +254,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
{ {
...@@ -304,7 +305,7 @@ namespace Nektar ...@@ -304,7 +305,7 @@ namespace Nektar
m_planes[n]->HelmSolve(wfce, m_planes[n]->HelmSolve(wfce,
e_out = outarray + cnt1, e_out = outarray + cnt1,
flags, new_factors, varcoeff, flags, new_factors, varcoeff,
dirForcing, varfactors, dirForcing,
PhysSpaceForcing); PhysSpaceForcing);
} }
......
...@@ -97,6 +97,7 @@ namespace Nektar ...@@ -97,6 +97,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
......
...@@ -161,6 +161,7 @@ namespace Nektar ...@@ -161,6 +161,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
{ {
...@@ -202,7 +203,8 @@ namespace Nektar ...@@ -202,7 +203,8 @@ namespace Nektar
wfce = (PhysSpaceForcing)? fce+cnt:fce+cnt1; wfce = (PhysSpaceForcing)? fce+cnt:fce+cnt1;
m_lines[l]->HelmSolve(wfce, m_lines[l]->HelmSolve(wfce,
e_out = outarray + cnt1, e_out = outarray + cnt1,
flags, new_factors, varcoeff, dirForcing, flags, new_factors, varcoeff, varfactors,
dirForcing,
PhysSpaceForcing); PhysSpaceForcing);
cnt += m_lines[l]->GetTotPoints(); cnt += m_lines[l]->GetTotPoints();
......
...@@ -92,6 +92,7 @@ namespace Nektar ...@@ -92,6 +92,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
......
...@@ -1184,6 +1184,7 @@ namespace Nektar ...@@ -1184,6 +1184,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
{ {
......
...@@ -263,6 +263,7 @@ namespace Nektar ...@@ -263,6 +263,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
......
...@@ -1859,6 +1859,7 @@ namespace Nektar ...@@ -1859,6 +1859,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
......
...@@ -232,6 +232,7 @@ namespace Nektar ...@@ -232,6 +232,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
virtual void v_GeneralMatrixOp( virtual void v_GeneralMatrixOp(
......
...@@ -2003,6 +2003,7 @@ using namespace boost::assign; ...@@ -2003,6 +2003,7 @@ using namespace boost::assign;
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
{ {
......
...@@ -191,6 +191,7 @@ namespace Nektar ...@@ -191,6 +191,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
......
...@@ -266,6 +266,7 @@ namespace Nektar ...@@ -266,6 +266,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
{ {
...@@ -303,7 +304,8 @@ namespace Nektar ...@@ -303,7 +304,8 @@ namespace Nektar
m_planes[n]->HelmSolve( m_planes[n]->HelmSolve(
wfce, wfce,
e_out = outarray + cnt1, e_out = outarray + cnt1,
flags, new_factors, varcoeff, dirForcing, flags, new_factors, varcoeff, varfactors,
dirForcing,
PhysSpaceForcing); PhysSpaceForcing);
} }
......
...@@ -278,6 +278,7 @@ namespace Nektar ...@@ -278,6 +278,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
......
...@@ -215,6 +215,7 @@ namespace Nektar ...@@ -215,6 +215,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
{ {
...@@ -255,7 +256,7 @@ namespace Nektar ...@@ -255,7 +256,7 @@ namespace Nektar
m_lines[n]->HelmSolve(wfce, m_lines[n]->HelmSolve(wfce,
e_out = outarray + cnt1, e_out = outarray + cnt1,
flags, new_factors, flags, new_factors,
varcoeff, dirForcing, varcoeff, varfactors,dirForcing,
PhysSpaceForcing); PhysSpaceForcing);
cnt += m_lines[n]->GetTotPoints(); cnt += m_lines[n]->GetTotPoints();
......
...@@ -140,6 +140,7 @@ namespace Nektar ...@@ -140,6 +140,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
......
...@@ -2537,6 +2537,7 @@ namespace Nektar ...@@ -2537,6 +2537,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
{ {
...@@ -2926,8 +2927,8 @@ namespace Nektar ...@@ -2926,8 +2927,8 @@ namespace Nektar
Array<OneD, NekDouble> &bnd) Array<OneD, NekDouble> &bnd)
{ {
int n, cnt; int n, cnt;
Array<OneD, NekDouble> tmp1, tmp2; Array<OneD, NekDouble> tmp1;
LocalRegions::ExpansionSharedPtr elmt; StdRegions::StdExpansionSharedPtr elmt;
Array<OneD, int> ElmtID,EdgeID; Array<OneD, int> ElmtID,EdgeID;
GetBoundaryToElmtMap(ElmtID,EdgeID); GetBoundaryToElmtMap(ElmtID,EdgeID);
...@@ -2952,8 +2953,8 @@ namespace Nektar ...@@ -2952,8 +2953,8 @@ namespace Nektar
elmt = GetExp(ElmtID[cnt+n]); elmt = GetExp(ElmtID[cnt+n]);
elmt->GetTracePhysVals(EdgeID[cnt+n], elmt->GetTracePhysVals(EdgeID[cnt+n],
GetBndCondExpansions()[i]->GetExp(n), GetBndCondExpansions()[i]->GetExp(n),
tmp1 = phys + offsetPhys, phys + offsetPhys,
tmp2 = bnd + offsetBnd); tmp1 = bnd + offsetBnd);
} }
} }
......
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
#include <MultiRegions/MultiRegions.hpp> #include <MultiRegions/MultiRegions.hpp>
#include <MultiRegions/GlobalMatrix.h> #include <MultiRegions/GlobalMatrix.h>
#include <MultiRegions/GlobalMatrixKey.h> #include <MultiRegions/GlobalMatrixKey.h>
#include <MultiRegions/GlobalLinSysKey.h>
#include <MultiRegions/GlobalOptimizationParameters.h> #include <MultiRegions/GlobalOptimizationParameters.h>
#include <MultiRegions/AssemblyMap/AssemblyMap.h> #include <MultiRegions/AssemblyMap/AssemblyMap.h>
#include <tinyxml.h> #include <tinyxml.h>
...@@ -283,6 +284,8 @@ namespace Nektar ...@@ -283,6 +284,8 @@ namespace Nektar
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff = const StdRegions::VarCoeffMap &varcoeff =
StdRegions::NullVarCoeffMap, StdRegions::NullVarCoeffMap,
const MultiRegions::VarFactorsMap &varfactors =
MultiRegions::NullVarFactorsMap,
const Array<OneD, const NekDouble> &dirForcing = const Array<OneD, const NekDouble> &dirForcing =
NullNekDouble1DArray, NullNekDouble1DArray,
const bool PhysSpaceForcing = true); const bool PhysSpaceForcing = true);
...@@ -1193,6 +1196,7 @@ namespace Nektar ...@@ -1193,6 +1196,7 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing); const bool PhysSpaceForcing);
...@@ -1740,12 +1744,13 @@ namespace Nektar ...@@ -1740,12 +1744,13 @@ namespace Nektar
const FlagList &flags, const FlagList &flags,
const StdRegions::ConstFactorMap &factors, const StdRegions::ConstFactorMap &factors,
const StdRegions::VarCoeffMap &varcoeff, const StdRegions::VarCoeffMap &varcoeff,
const MultiRegions::VarFactorsMap &varfactors,
const Array<OneD, const NekDouble> &dirForcing, const Array<OneD, const NekDouble> &dirForcing,
const bool PhysSpaceForcing) const bool PhysSpaceForcing)
{ {
v_HelmSolve(inarray, outarray, flags, factors, varcoeff, v_HelmSolve(inarray, outarray, flags, factors, varcoeff,
dirForcing, PhysSpaceForcing); varfactors, dirForcing, PhysSpaceForcing);
} }
......
...@@ -213,7 +213,8 @@ namespace Nektar ...@@ -213,7 +213,8 @@ namespace Nektar
* *
* @param asmMap Assembly map used to construct the global system. * @param asmMap Assembly map used to construct the global system.
*/ */
PreconditionerSharedPtr GlobalLinSys::CreatePrecon(AssemblyMapSharedPtr asmMap) PreconditionerSharedPtr GlobalLinSys::CreatePrecon(AssemblyMapSharedPtr
asmMap)
{ {
PreconditionerType pType = asmMap->GetPreconType(); PreconditionerType pType = asmMap->GetPreconType();
std::string PreconType = MultiRegions::PreconditionerTypeMap[pType]; std::string PreconType = MultiRegions::PreconditionerTypeMap[pType];
...@@ -233,43 +234,96 @@ namespace Nektar ...@@ -233,43 +234,96 @@ namespace Nektar
return m_expList.lock()->GetExpSize(); return m_expList.lock()->GetExpSize();
} }
/**
* @brief Retrieves the block matrix from n-th expansion using the /**
* matrix key provided by the #m_linSysKey. Assemble the matrix key for each block n
* **/
* @param n Number of the expansion.
* @return Block matrix for the specified expansion. LocalRegions::MatrixKey GlobalLinSys::GetBlockMatrixKey(unsigned int n)
*/ {
DNekScalMatSharedPtr GlobalLinSys::v_GetBlock(unsigned int n)
{
std::shared_ptr<MultiRegions::ExpList> expList = m_expList.lock(); std::shared_ptr<MultiRegions::ExpList> expList = m_expList.lock();
int cnt = 0; int cnt = 0;
DNekScalMatSharedPtr loc_mat;
LocalRegions::ExpansionSharedPtr vExp = expList->GetExp( n );
LocalRegions::ExpansionSharedPtr vExp =
std::dynamic_pointer_cast<LocalRegions::Expansion>(
expList->GetExp(n));
// need to be initialised with zero size for non variable // need to be initialised with zero size for non variable
// coefficient case // coefficient case
StdRegions::VarCoeffMap vVarCoeffMap; StdRegions::VarCoeffMap vVarCoeffMap;
StdRegions::ConstFactorMap vConstFactorMap =
m_linSysKey.GetConstFactors();
// setup variable factors
if(m_linSysKey.GetNVarFactors() > 0)
{
if(m_linSysKey.GetVarFactors().
count(StdRegions::eFactorSVVDiffCoeff) != 0)
{
vConstFactorMap[StdRegions::eFactorSVVDiffCoeff] =
m_linSysKey.GetVarFactors(
StdRegions::eFactorSVVDiffCoeff)[n];
ASSERTL1(m_linSysKey.GetConstFactors().
count(StdRegions::eFactorSVVCutoffRatio),
"VarCoeffSVVCuroffRatio is set but "
" not FactorSVVCutoffRatio");
vConstFactorMap[StdRegions::eFactorSVVCutoffRatio] =
m_linSysKey.GetVarFactors(
StdRegions::eFactorSVVCutoffRatio)[n];
}
if(m_linSysKey.GetVarFactors().
count(StdRegions::eFactorSVVPowerKerDiffCoeff) != 0)
{
vConstFactorMap[StdRegions::eFactorSVVPowerKerDiffCoeff] =
m_linSysKey.GetVarFactors(
StdRegions::eFactorSVVPowerKerDiffCoeff)[n];
}
if(m_linSysKey.GetVarFactors().
count(StdRegions::eFactorSVVDGKerDiffCoeff) != 0)
{
vConstFactorMap[StdRegions::eFactorSVVDGKerDiffCoeff] =
m_linSysKey.GetVarFactors(
StdRegions::eFactorSVVDGKerDiffCoeff)[n];
}
}
// retrieve variable coefficients // retrieve variable coefficients
if(m_linSysKey.GetNVarCoeffs() > 0) if(m_linSysKey.GetNVarCoeffs() > 0)
{ {
cnt = expList->GetPhys_Offset(n); cnt = expList->GetPhys_Offset(n);
for (auto &x : m_linSysKey.GetVarCoeffs()) for (auto &x : m_linSysKey.GetVarCoeffs())
{ {
vVarCoeffMap[x.first] = x.second + cnt; vVarCoeffMap[x.first] = x.second + cnt;