Nektar++
|
#include <DiffusionLDGNS.h>
Static Public Member Functions | |
static DiffusionSharedPtr | create (std::string diffType) |
Static Public Attributes | |
static std::string | type |
Protected Member Functions | |
DiffusionLDGNS () | |
virtual void | v_InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields) |
virtual void | v_Diffuse (const std::size_t nConvective, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd) |
Calculate weak DG Diffusion in the LDG form for the Navier-Stokes (NS) equations: More... | |
void | NumericalFluxO1 (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &numericalFluxO1, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd) |
Builds the numerical flux for the 1st order derivatives. More... | |
void | ApplyBCsO1 (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd, Array< OneD, Array< OneD, NekDouble > > &flux01) |
Imposes appropriate bcs for the 1st order derivatives. More... | |
void | NumericalFluxO2 (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &qfield, Array< OneD, Array< OneD, NekDouble > > &qflux, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd) |
Build the numerical flux for the 2nd order derivatives. More... | |
void | ApplyBCsO2 (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const std::size_t var, const std::size_t dir, const Array< OneD, const NekDouble > &qfield, const Array< OneD, const NekDouble > &qFwd, const Array< OneD, const NekDouble > &qBwd, Array< OneD, NekDouble > &penaltyflux) |
Imposes appropriate bcs for the 2nd order derivatives. More... | |
virtual void | v_SetHomoDerivs (Array< OneD, Array< OneD, NekDouble > > &deriv) |
virtual Array< OneD, Array< OneD, Array< OneD, NekDouble > > > & | v_GetFluxTensor () |
Protected Attributes | |
NekDouble | m_C11 |
Penalty coefficient for LDGNS. More... | |
Array< OneD, NekDouble > | m_traceOneOverH |
h scaling for penalty term More... | |
Array< OneD, Array< OneD, NekDouble > > | m_traceVel |
Array< OneD, Array< OneD, NekDouble > > | m_traceNormals |
LibUtilities::SessionReaderSharedPtr | m_session |
NekDouble | m_Twall |
EquationOfStateSharedPtr | m_eos |
Equation of system for computing temperature. More... | |
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > | m_viscTensor |
Array< OneD, Array< OneD, NekDouble > > | m_homoDerivs |
std::size_t | m_spaceDim |
std::size_t | m_diffDim |
![]() | |
DiffusionFluxVecCB | m_fluxVector |
DiffusionFluxVecCBNS | m_fluxVectorNS |
DiffusionFluxPenaltyNS | m_fluxPenaltyNS |
Definition at line 50 of file DiffusionLDGNS.h.
|
protected |
Definition at line 49 of file DiffusionLDGNS.cpp.
|
protected |
Imposes appropriate bcs for the 1st order derivatives.
Definition at line 357 of file DiffusionLDGNS.cpp.
References Nektar::SpatialDomains::eDirichlet, Nektar::SpatialDomains::eNeumann, Nektar::SpatialDomains::ePeriodic, m_eos, m_traceNormals, m_Twall, Vmath::Smul(), Vmath::Vadd(), Vmath::Vcopy(), Vmath::Vdiv(), Vmath::Vmul(), Vmath::Vvtvp(), and Vmath::Zero().
Referenced by NumericalFluxO1().
|
protected |
Imposes appropriate bcs for the 2nd order derivatives.
Definition at line 664 of file DiffusionLDGNS.cpp.
References ASSERTL0, Nektar::SpatialDomains::eDirichlet, Nektar::SpatialDomains::eNeumann, Nektar::SpatialDomains::ePeriodic, m_spaceDim, m_traceNormals, Vmath::Vmul(), and Vmath::Zero().
Referenced by NumericalFluxO2().
|
inlinestatic |
Definition at line 53 of file DiffusionLDGNS.h.
|
protected |
Builds the numerical flux for the 1st order derivatives.
Definition at line 318 of file DiffusionLDGNS.cpp.
References ApplyBCsO1(), m_spaceDim, m_traceNormals, and Vmath::Vmul().
Referenced by v_Diffuse().
|
protected |
Build the numerical flux for the 2nd order derivatives.
Definition at line 599 of file DiffusionLDGNS.cpp.
References ApplyBCsO2(), Nektar::SolverUtils::Diffusion::m_fluxPenaltyNS, m_traceNormals, m_traceOneOverH, Vmath::Vadd(), Vmath::Vcopy(), Vmath::Vmul(), and Vmath::Vvtvp().
Referenced by v_Diffuse().
|
protectedvirtual |
Calculate weak DG Diffusion in the LDG form for the Navier-Stokes (NS) equations:
\( \langle\psi, \hat{u}\cdot n\rangle - \langle\nabla\psi \cdot u\rangle \langle\phi, \hat{q}\cdot n\rangle - (\nabla \phi \cdot q) \rangle \)
The equations that need a diffusion operator are those related with the velocities and with the energy.
Implements Nektar::SolverUtils::Diffusion.
Definition at line 211 of file DiffusionLDGNS.cpp.
References m_diffDim, Nektar::SolverUtils::Diffusion::m_fluxVectorNS, m_homoDerivs, m_spaceDim, m_viscTensor, Vmath::Neg(), NumericalFluxO1(), NumericalFluxO2(), and Vmath::Vadd().
|
inlineprotectedvirtual |
Reimplemented from Nektar::SolverUtils::Diffusion.
Definition at line 133 of file DiffusionLDGNS.h.
|
protectedvirtual |
Reimplemented from Nektar::SolverUtils::Diffusion.
Definition at line 53 of file DiffusionLDGNS.cpp.
References ASSERTL0, Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), Nektar::SpatialDomains::ePeriodic, Vmath::Fill(), Nektar::GetEquationOfStateFactory(), Nektar::LocalRegions::Expansion1D::GetGeom1D(), m_C11, m_diffDim, m_eos, m_session, m_spaceDim, m_traceNormals, m_traceOneOverH, m_traceVel, m_Twall, Vmath::Sdiv(), Vmath::Svtsvtp(), and Vmath::Vcopy().
|
inlineprotectedvirtual |
Reimplemented from Nektar::SolverUtils::Diffusion.
Definition at line 127 of file DiffusionLDGNS.h.
|
protected |
Penalty coefficient for LDGNS.
Definition at line 65 of file DiffusionLDGNS.h.
Referenced by v_InitObject().
|
protected |
Definition at line 82 of file DiffusionLDGNS.h.
Referenced by v_Diffuse(), and v_InitObject().
|
protected |
Equation of system for computing temperature.
Definition at line 75 of file DiffusionLDGNS.h.
Referenced by ApplyBCsO1(), and v_InitObject().
Definition at line 79 of file DiffusionLDGNS.h.
Referenced by v_Diffuse().
|
protected |
Definition at line 72 of file DiffusionLDGNS.h.
Referenced by v_InitObject().
|
protected |
Definition at line 81 of file DiffusionLDGNS.h.
Referenced by ApplyBCsO2(), NumericalFluxO1(), v_Diffuse(), and v_InitObject().
Definition at line 71 of file DiffusionLDGNS.h.
Referenced by ApplyBCsO1(), ApplyBCsO2(), NumericalFluxO1(), NumericalFluxO2(), and v_InitObject().
h scaling for penalty term
Definition at line 68 of file DiffusionLDGNS.h.
Referenced by NumericalFluxO2(), and v_InitObject().
Definition at line 70 of file DiffusionLDGNS.h.
Referenced by v_InitObject().
|
protected |
Definition at line 73 of file DiffusionLDGNS.h.
Referenced by ApplyBCsO1(), and v_InitObject().
Definition at line 77 of file DiffusionLDGNS.h.
Referenced by v_Diffuse().
|
static |
Definition at line 59 of file DiffusionLDGNS.h.