Commit 91da1d19 by Michael Turner

Merge remote-tracking branch 'origin/master' into fix/BLPoints

parents 02dc977b 45ea4fe7
......@@ -76,7 +76,7 @@ v5.0.0
**IncNavierStokesSolver**
- 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)
- Updated SVV to allow for the DGKernel extension (!851)
- Updated SVV to allow for the DGKernel extension (!851)
**CompressibleFlowSolver**
- Add 3D regression tests (!567)
......@@ -98,9 +98,11 @@ v4.4.2
- Fix evaluation of points (e.g. HistoryPoints, Interpolation to pts) close to
the interface of two elements (!836)
- Fix deadlock in Hdf5 with homogeneous expansions (!858)
- Fix a few memory leaks in polylib (!863)
- Fix a crash when Interpolator is called on an empty field (!869)
- Fix petsc compile without MPI (!873)
- Fix calculation of BLPoints (!892)
- Fix deadlock in DiffusionLDG (!885)
- Fix uninitialised coefficients in DirectFull solver (!898)
**NekMesh**
......@@ -146,6 +148,7 @@ v4.4.1
IMEXGear, CNAB, 2nd order IMEX-DIRK, 3rd order IMEX-DIRK (!854)
- Fix bug due to subtractive cancellation in polylib routines (!778)
**FieldConvert:**
- Fix issue with field ordering in the interppointdatatofld module (!754)
- Fix issue with FieldConvert when range flag used (!761)
......
......@@ -265,9 +265,11 @@ namespace Nektar
// if Vn >= 0, uflux = uFwd at Neumann, i.e.,
// edge::eForward, if V*n<0 <=> V*n_F<0, pick uflux = uFwd
// edge::eBackward, if V*n<0 <=> V*n_B>=0, pick uflux = uFwd
Array<OneD, NekDouble > uplus(nTracePts);
fields[i]->ExtractTracePhys(ufield[i], uplus);
if(fields[0]->GetBndCondExpansions().num_elements())
{
v_WeakPenaltyforScalar(fields, i, ufield[i], fluxtemp);
v_WeakPenaltyforScalar(fields, i, ufield[i], uplus, fluxtemp);
}
for (j = 0; j < nDim; ++j)
......@@ -296,6 +298,7 @@ namespace Nektar
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const int var,
const Array<OneD, const NekDouble> &ufield,
const Array<OneD, const NekDouble> &uplus,
Array<OneD, NekDouble> &penaltyflux)
{
int i, e, id1, id2;
......@@ -304,10 +307,7 @@ namespace Nektar
int nBndEdgePts, nBndEdges;
int cnt = 0;
int nBndRegions = fields[var]->GetBndCondExpansions().num_elements();
int nTracePts = fields[0]->GetTrace()->GetTotPoints();
Array<OneD, NekDouble > uplus(nTracePts);
fields[var]->ExtractTracePhys(ufield, uplus);
for (i = 0; i < nBndRegions; ++i)
{
// Number of boundary expansion related to that region
......@@ -434,11 +434,14 @@ namespace Nektar
qfluxtemp, 1,
qfluxtemp, 1);
Array<OneD, NekDouble > qtemp(nTracePts);
fields[i]->ExtractTracePhys(qfield[j][i], qtemp);
// Imposing weak boundary condition with flux
if (fields[0]->GetBndCondExpansions().num_elements())
{
v_WeakPenaltyforVector(fields, i, j,
qfield[j][i],
qfield[j][i], qtemp,
qfluxtemp, C11);
}
......@@ -465,15 +468,13 @@ namespace Nektar
const int var,
const int dir,
const Array<OneD, const NekDouble> &qfield,
const Array<OneD, const NekDouble> &qtemp,
Array<OneD, NekDouble> &penaltyflux,
NekDouble C11)
{
int i, e, id1, id2;
int nBndEdges, nBndEdgePts;
int nBndRegions = fields[var]->GetBndCondExpansions().num_elements();
int nTracePts = fields[0]->GetTrace()->GetTotPoints();
Array<OneD, NekDouble > qtemp(nTracePts);
int cnt = 0;
/*
......@@ -486,8 +487,6 @@ namespace Nektar
fields[0]->GetTrace()->GetNormals(m_traceNormals);
*/
fields[var]->ExtractTracePhys(qfield, qtemp);
for (i = 0; i < nBndRegions; ++i)
{
nBndEdges = fields[var]->
......
......@@ -83,6 +83,7 @@ namespace Nektar
const Array<OneD, MultiRegions::ExpListSharedPtr> &fields,
const int var,
const Array<OneD, const NekDouble> &ufield,
const Array<OneD, const NekDouble> &uplus,
Array<OneD, NekDouble> &penaltyflux);
virtual void v_NumFluxforVector(
......@@ -96,6 +97,7 @@ namespace Nektar
const int var,
const int dir,
const Array<OneD, const NekDouble> &qfield,
const Array<OneD, const NekDouble> &qtemp,
Array<OneD, NekDouble> &penaltyflux,
NekDouble C11);
};
......
......@@ -2430,7 +2430,6 @@ namespace Nektar
}
else if(mkey.ConstFactorExists(eFactorSVVDGKerDiffCoeff)) // Rodrigo/Mansoor's DG Kernel
{
NekDouble cutoff = mkey.GetConstFactor(eFactorSVVCutoffRatio);
NekDouble SvvDiffCoeff =
mkey.GetConstFactor(eFactorSVVDGKerDiffCoeff)*
mkey.GetConstFactor(eFactorSVVDiffCoeff);
......
......@@ -2053,7 +2053,6 @@ namespace Nektar
}
else if(mkey.ConstFactorExists(eFactorSVVDGKerDiffCoeff)) // Rodrigo/Mansoor's DG Kernel
{
NekDouble cutoff = mkey.GetConstFactor(eFactorSVVCutoffRatio);
NekDouble SvvDiffCoeff =
mkey.GetConstFactor(eFactorSVVDGKerDiffCoeff)*
mkey.GetConstFactor(eFactorSVVDiffCoeff);
......
......@@ -1962,7 +1962,6 @@ namespace Nektar
}
else if(mkey.ConstFactorExists(eFactorSVVDGKerDiffCoeff)) // Rodrigo/Mansoor's DG Kernel
{
NekDouble cutoff = mkey.GetConstFactor(eFactorSVVCutoffRatio);
NekDouble SvvDiffCoeff =
mkey.GetConstFactor(eFactorSVVDGKerDiffCoeff)*
mkey.GetConstFactor(eFactorSVVDiffCoeff);
......
......@@ -1581,7 +1581,6 @@ namespace Nektar
}
else if(mkey.ConstFactorExists(eFactorSVVDGKerDiffCoeff)) // Rodrigo/mansoor's DG kernel
{
NekDouble cutoff = mkey.GetConstFactor(eFactorSVVCutoffRatio);
NekDouble SvvDiffCoeff =
mkey.GetConstFactor(eFactorSVVDGKerDiffCoeff)*
mkey.GetConstFactor(eFactorSVVDiffCoeff);
......
......@@ -2094,7 +2094,6 @@ namespace Nektar
}
else if(mkey.ConstFactorExists(eFactorSVVDGKerDiffCoeff)) // Rodrigo/Mansoor's DG Kernel
{
NekDouble cutoff = mkey.GetConstFactor(eFactorSVVCutoffRatio);
NekDouble SvvDiffCoeff =
mkey.GetConstFactor(eFactorSVVDGKerDiffCoeff)*
mkey.GetConstFactor(eFactorSVVDiffCoeff);
......
......@@ -1390,7 +1390,6 @@ namespace Nektar
int qb = m_base[1]->GetNumPoints();
int nmodes_a = m_base[0]->GetNumModes();
int nmodes_b = m_base[1]->GetNumModes();
int nmodes = min(nmodes_a,nmodes_b);
// Declare orthogonal basis.
LibUtilities::PointsKey pa(qa,m_base[0]->GetPointsType());
......@@ -1427,7 +1426,6 @@ namespace Nektar
}
else if(mkey.ConstFactorExists(eFactorSVVDGKerDiffCoeff)) // Rodrigo/mansoor's DG kernel
{
NekDouble cutoff = mkey.GetConstFactor(eFactorSVVCutoffRatio);
NekDouble SvvDiffCoeff =
mkey.GetConstFactor(eFactorSVVDGKerDiffCoeff)*
mkey.GetConstFactor(eFactorSVVDiffCoeff);
......
......@@ -696,13 +696,13 @@ namespace Nektar
*(exp3D->GetGeom3D()->GetEdge(i)->GetVertex(1))));
}
NekDouble p;
int p = 0;
for(int i = 0; i < 3; ++i)
{
p = max(p,exp3D->GetBasisNumModes(i)-1.0);
p = max(p,exp3D->GetBasisNumModes(i)-1);
}
diffcoeff[e] *= h/p;
diffcoeff[e] *= h/p;
}
}
else
......@@ -719,13 +719,13 @@ namespace Nektar
*(exp2D->GetGeom2D()->GetEdge(i)->GetVertex(1))));
}
NekDouble p;
int p = 0;
for(int i = 0; i < 2; ++i)
{
p = max(p,exp2D->GetBasisNumModes(i)-1.0);
p = max(p,exp2D->GetBasisNumModes(i)-1);
}
diffcoeff[e] *= h/p;
diffcoeff[e] *= h/p;
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment