Nektar++
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Nektar::SolverUtils::Diffusion Class Referenceabstract

#include <Diffusion.h>

Inheritance diagram for Nektar::SolverUtils::Diffusion:
[legend]

Public Member Functions

virtual SOLVER_UTILS_EXPORT ~Diffusion ()
 
SOLVER_UTILS_EXPORT void InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)
 
SOLVER_UTILS_EXPORT void Diffuse (const std::size_t nConvectiveFields, 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=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
 
SOLVER_UTILS_EXPORT void Diffuse (const std::size_t nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, NekDouble time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
 
SOLVER_UTILS_EXPORT void DiffuseCoeffs (const std::size_t nConvectiveFields, 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=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
 
SOLVER_UTILS_EXPORT void DiffuseCoeffs (const std::size_t nConvectiveFields, const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, NekDouble time, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
 
SOLVER_UTILS_EXPORT void DiffuseCalcDerivative (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray)
 
SOLVER_UTILS_EXPORT void DiffuseVolumeFlux (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, int > &nonZeroIndex=NullInt1DArray)
 Diffusion Volume FLux. More...
 
SOLVER_UTILS_EXPORT void DiffuseTraceFlux (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, Array< OneD, NekDouble > > &TraceFlux, const Array< OneD, Array< OneD, NekDouble > > &pFwd=NullNekDoubleArrayOfArray, const Array< OneD, Array< OneD, NekDouble > > &pBwd=NullNekDoubleArrayOfArray, Array< OneD, int > &nonZeroIndex=NullInt1DArray)
 Diffusion term Trace Flux. More...
 
SOLVER_UTILS_EXPORT void SetHomoDerivs (Array< OneD, Array< OneD, NekDouble > > &deriv)
 
SOLVER_UTILS_EXPORT TensorOfArray3D< NekDouble > & GetFluxTensor ()
 
SOLVER_UTILS_EXPORT const Array< OneD, const Array< OneD, NekDouble > > & GetTraceNormal ()
 Get trace normal. More...
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetFluxVector (FuncPointerT func, ObjectPointerT obj)
 
SOLVER_UTILS_EXPORT void SetFluxVector (DiffusionFluxVecCB fluxVector)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetFluxVectorNS (FuncPointerT func, ObjectPointerT obj)
 
void SetFluxVectorNS (DiffusionFluxVecCBNS fluxVector)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetFluxPenaltyNS (FuncPointerT func, ObjectPointerT obj)
 
void SetFluxPenaltyNS (DiffusionFluxPenaltyNS flux)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetDiffusionFluxCons (FuncPointerT func, ObjectPointerT obj)
 
void SetDiffusionFluxCons (DiffusionFluxCons flux)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetDiffusionFluxConsTrace (FuncPointerT func, ObjectPointerT obj)
 
void SetDiffusionFluxConsTrace (DiffusionFluxCons flux)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetSpecialBndTreat (FuncPointerT func, ObjectPointerT obj)
 
template<typename FuncPointerT , typename ObjectPointerT >
void SetDiffusionSymmFluxCons (FuncPointerT func, ObjectPointerT obj)
 

Protected Member Functions

virtual SOLVER_UTILS_EXPORT void v_InitObject (LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)=0
 
virtual SOLVER_UTILS_EXPORT void v_Diffuse (const std::size_t nConvectiveFields, 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)=0
 
virtual SOLVER_UTILS_EXPORT void v_DiffuseCoeffs (const std::size_t nConvectiveFields, 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)
 
virtual SOLVER_UTILS_EXPORT void v_DiffuseCalcDerivative (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd)
 Diffusion Flux, calculate the physical derivatives. More...
 
virtual SOLVER_UTILS_EXPORT void v_DiffuseVolumeFlux (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, int > &nonZeroIndex)
 Diffusion Volume Flux. More...
 
virtual SOLVER_UTILS_EXPORT void v_DiffuseTraceFlux (const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &Qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, Array< OneD, NekDouble > > &TraceFlux, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd, Array< OneD, int > &nonZeroIndex)
 Diffusion term Trace Flux. More...
 
virtual void v_SetHomoDerivs (Array< OneD, Array< OneD, NekDouble > > &deriv)
 
virtual TensorOfArray3D< NekDouble > & v_GetFluxTensor ()
 
virtual SOLVER_UTILS_EXPORT const Array< OneD, const Array< OneD, NekDouble > > & v_GetTraceNormal ()
 

Protected Attributes

Array< OneD, NekDoublem_divVel
 Params for Ducros sensor. More...
 
Array< OneD, NekDoublem_divVelSquare
 
Array< OneD, NekDoublem_curlVelSquare
 
DiffusionFluxVecCB m_fluxVector
 
DiffusionFluxVecCBNS m_fluxVectorNS
 
DiffusionFluxPenaltyNS m_fluxPenaltyNS
 
DiffusionFluxCons m_FunctorDiffusionfluxCons
 
DiffusionFluxCons m_FunctorDiffusionfluxConsTrace
 
SpecialBndTreat m_SpecialBndTreat
 
DiffusionSymmFluxCons m_FunctorSymmetricfluxCons
 
NekDouble m_time = 0.0
 

Detailed Description

Definition at line 139 of file Diffusion.h.

Constructor & Destructor Documentation

◆ ~Diffusion()

Diffusion::~Diffusion ( )
inlinevirtual

Definition at line 142 of file Diffusion.h.

142{};

Member Function Documentation

◆ Diffuse() [1/2]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::Diffuse ( const std::size_t  nConvectiveFields,
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 = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray 
)
inline

Definition at line 148 of file Diffusion.h.

157 {
158 v_Diffuse(nConvectiveFields, fields, inarray, outarray, pFwd, pBwd);
159 }
virtual SOLVER_UTILS_EXPORT void v_Diffuse(const std::size_t nConvectiveFields, 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)=0

References v_Diffuse().

◆ Diffuse() [2/2]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::Diffuse ( const std::size_t  nConvectiveFields,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray,
NekDouble  time,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray 
)
inline

Definition at line 161 of file Diffusion.h.

170 {
171 m_time = time;
172 v_Diffuse(nConvectiveFields, fields, inarray, outarray, pFwd, pBwd);
173 }

References m_time, and v_Diffuse().

◆ DiffuseCalcDerivative()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::DiffuseCalcDerivative ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  qfields,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray 
)
inline

Definition at line 205 of file Diffusion.h.

213 {
214 v_DiffuseCalcDerivative(fields, inarray, qfields, pFwd, pBwd);
215 }
virtual SOLVER_UTILS_EXPORT void v_DiffuseCalcDerivative(const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd)
Diffusion Flux, calculate the physical derivatives.
Definition: Diffusion.cpp:78

References v_DiffuseCalcDerivative().

Referenced by Nektar::SolverUtils::DiffusionLDG::v_DiffuseCoeffs(), Nektar::DiffusionLDGNS::v_DiffuseCoeffs(), and Nektar::SolverUtils::DiffusionIP::v_DiffuseCoeffs().

◆ DiffuseCoeffs() [1/2]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::DiffuseCoeffs ( const std::size_t  nConvectiveFields,
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 = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray 
)
inline

Definition at line 175 of file Diffusion.h.

184 {
185 v_DiffuseCoeffs(nConvectiveFields, fields, inarray, outarray, pFwd,
186 pBwd);
187 }
virtual SOLVER_UTILS_EXPORT void v_DiffuseCoeffs(const std::size_t nConvectiveFields, 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)
Definition: Diffusion.cpp:59

References v_DiffuseCoeffs().

◆ DiffuseCoeffs() [2/2]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::DiffuseCoeffs ( const std::size_t  nConvectiveFields,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray,
NekDouble  time,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray 
)
inline

Definition at line 189 of file Diffusion.h.

198 {
199 m_time = time;
200 v_DiffuseCoeffs(nConvectiveFields, fields, inarray, outarray, pFwd,
201 pBwd);
202 }

References m_time, and v_DiffuseCoeffs().

◆ DiffuseTraceFlux()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::DiffuseTraceFlux ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  qfields,
TensorOfArray3D< NekDouble > &  VolumeFlux,
Array< OneD, Array< OneD, NekDouble > > &  TraceFlux,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd = NullNekDoubleArrayOfArray,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd = NullNekDoubleArrayOfArray,
Array< OneD, int > &  nonZeroIndex = NullInt1DArray 
)
inline

Diffusion term Trace Flux.

Definition at line 229 of file Diffusion.h.

240 {
241 v_DiffuseTraceFlux(fields, inarray, qfields, VolumeFlux, TraceFlux,
242 pFwd, pBwd, nonZeroIndex);
243 }
virtual SOLVER_UTILS_EXPORT void v_DiffuseTraceFlux(const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &Qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, Array< OneD, NekDouble > > &TraceFlux, const Array< OneD, Array< OneD, NekDouble > > &pFwd, const Array< OneD, Array< OneD, NekDouble > > &pBwd, Array< OneD, int > &nonZeroIndex)
Diffusion term Trace Flux.
Definition: Diffusion.cpp:99

References v_DiffuseTraceFlux().

Referenced by Nektar::SolverUtils::DiffusionLDG::v_DiffuseCoeffs(), Nektar::DiffusionLDGNS::v_DiffuseCoeffs(), and Nektar::SolverUtils::DiffusionIP::v_DiffuseCoeffs().

◆ DiffuseVolumeFlux()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::DiffuseVolumeFlux ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  qfields,
TensorOfArray3D< NekDouble > &  VolumeFlux,
Array< OneD, int > &  nonZeroIndex = NullInt1DArray 
)
inline

Diffusion Volume FLux.

Definition at line 218 of file Diffusion.h.

224 {
225 v_DiffuseVolumeFlux(fields, inarray, qfields, VolumeFlux, nonZeroIndex);
226 }
virtual SOLVER_UTILS_EXPORT void v_DiffuseVolumeFlux(const Array< OneD, MultiRegions::ExpListSharedPtr > &fields, const Array< OneD, Array< OneD, NekDouble > > &inarray, TensorOfArray3D< NekDouble > &qfields, TensorOfArray3D< NekDouble > &VolumeFlux, Array< OneD, int > &nonZeroIndex)
Diffusion Volume Flux.
Definition: Diffusion.cpp:89

References v_DiffuseVolumeFlux().

Referenced by Nektar::SolverUtils::DiffusionLDG::v_DiffuseCoeffs(), Nektar::DiffusionLDGNS::v_DiffuseCoeffs(), and Nektar::SolverUtils::DiffusionIP::v_DiffuseCoeffs().

◆ GetFluxTensor()

SOLVER_UTILS_EXPORT TensorOfArray3D< NekDouble > & Nektar::SolverUtils::Diffusion::GetFluxTensor ( )
inline

Definition at line 251 of file Diffusion.h.

252 {
253 return v_GetFluxTensor();
254 }
virtual TensorOfArray3D< NekDouble > & v_GetFluxTensor()
Definition: Diffusion.h:411

References v_GetFluxTensor().

◆ GetTraceNormal()

SOLVER_UTILS_EXPORT const Array< OneD, const Array< OneD, NekDouble > > & Nektar::SolverUtils::Diffusion::GetTraceNormal ( )
inline

Get trace normal.

Definition at line 258 of file Diffusion.h.

259 {
260 return v_GetTraceNormal();
261 }
virtual SOLVER_UTILS_EXPORT const Array< OneD, const Array< OneD, NekDouble > > & v_GetTraceNormal()
Definition: Diffusion.cpp:72

References v_GetTraceNormal().

◆ InitObject()

void Diffusion::InitObject ( LibUtilities::SessionReaderSharedPtr  pSession,
Array< OneD, MultiRegions::ExpListSharedPtr pFields 
)

Definition at line 47 of file Diffusion.cpp.

49{
50 v_InitObject(pSession, pFields);
51
52 // Div curl storage
53 int nPts = pFields[0]->GetTotPoints();
54 m_divVel = Array<OneD, NekDouble>(nPts, 0.0);
55 m_divVelSquare = Array<OneD, NekDouble>(nPts, 0.0);
56 m_curlVelSquare = Array<OneD, NekDouble>(nPts, 0.0);
57}
Array< OneD, NekDouble > m_divVelSquare
Definition: Diffusion.h:347
Array< OneD, NekDouble > m_divVel
Params for Ducros sensor.
Definition: Diffusion.h:346
Array< OneD, NekDouble > m_curlVelSquare
Definition: Diffusion.h:348
virtual SOLVER_UTILS_EXPORT void v_InitObject(LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields)=0

References m_curlVelSquare, m_divVel, m_divVelSquare, and v_InitObject().

◆ SetDiffusionFluxCons() [1/2]

void Nektar::SolverUtils::Diffusion::SetDiffusionFluxCons ( DiffusionFluxCons  flux)
inline

Definition at line 310 of file Diffusion.h.

311 {
313 }
DiffusionFluxCons m_FunctorDiffusionfluxCons
Definition: Diffusion.h:353

References m_FunctorDiffusionfluxCons.

◆ SetDiffusionFluxCons() [2/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetDiffusionFluxCons ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 302 of file Diffusion.h.

303 {
305 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
306 std::placeholders::_3, std::placeholders::_4,
307 std::placeholders::_5, std::placeholders::_6);
308 }

References m_FunctorDiffusionfluxCons.

◆ SetDiffusionFluxConsTrace() [1/2]

void Nektar::SolverUtils::Diffusion::SetDiffusionFluxConsTrace ( DiffusionFluxCons  flux)
inline

Definition at line 324 of file Diffusion.h.

325 {
327 }
DiffusionFluxCons m_FunctorDiffusionfluxConsTrace
Definition: Diffusion.h:354

References m_FunctorDiffusionfluxConsTrace.

◆ SetDiffusionFluxConsTrace() [2/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetDiffusionFluxConsTrace ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 316 of file Diffusion.h.

317 {
319 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
320 std::placeholders::_3, std::placeholders::_4,
321 std::placeholders::_5, std::placeholders::_6);
322 }

References m_FunctorDiffusionfluxConsTrace.

◆ SetDiffusionSymmFluxCons()

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetDiffusionSymmFluxCons ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 336 of file Diffusion.h.

337 {
339 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
340 std::placeholders::_3, std::placeholders::_4,
341 std::placeholders::_5, std::placeholders::_6);
342 }
DiffusionSymmFluxCons m_FunctorSymmetricfluxCons
Definition: Diffusion.h:356

References m_FunctorSymmetricfluxCons.

◆ SetFluxPenaltyNS() [1/2]

void Nektar::SolverUtils::Diffusion::SetFluxPenaltyNS ( DiffusionFluxPenaltyNS  flux)
inline

Definition at line 296 of file Diffusion.h.

297 {
298 m_fluxPenaltyNS = flux;
299 }
DiffusionFluxPenaltyNS m_fluxPenaltyNS
Definition: Diffusion.h:352

References m_fluxPenaltyNS.

◆ SetFluxPenaltyNS() [2/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxPenaltyNS ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 289 of file Diffusion.h.

290 {
292 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
293 std::placeholders::_3);
294 }

References m_fluxPenaltyNS.

◆ SetFluxVector() [1/2]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::SetFluxVector ( DiffusionFluxVecCB  fluxVector)
inline

Definition at line 270 of file Diffusion.h.

271 {
272 m_fluxVector = fluxVector;
273 }
DiffusionFluxVecCB m_fluxVector
Definition: Diffusion.h:350

References m_fluxVector.

◆ SetFluxVector() [2/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxVector ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 264 of file Diffusion.h.

265 {
266 m_fluxVector = std::bind(func, obj, std::placeholders::_1,
267 std::placeholders::_2, std::placeholders::_3);
268 }

References m_fluxVector.

◆ SetFluxVectorNS() [1/2]

void Nektar::SolverUtils::Diffusion::SetFluxVectorNS ( DiffusionFluxVecCBNS  fluxVector)
inline

Definition at line 283 of file Diffusion.h.

284 {
285 m_fluxVectorNS = fluxVector;
286 }
DiffusionFluxVecCBNS m_fluxVectorNS
Definition: Diffusion.h:351

References m_fluxVectorNS.

◆ SetFluxVectorNS() [2/2]

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetFluxVectorNS ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 276 of file Diffusion.h.

277 {
279 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
280 std::placeholders::_3);
281 }

References m_fluxVectorNS.

◆ SetHomoDerivs()

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::SetHomoDerivs ( Array< OneD, Array< OneD, NekDouble > > &  deriv)
inline

Definition at line 245 of file Diffusion.h.

247 {
248 v_SetHomoDerivs(deriv);
249 }
virtual void v_SetHomoDerivs(Array< OneD, Array< OneD, NekDouble > > &deriv)
Definition: Diffusion.h:406

References v_SetHomoDerivs().

◆ SetSpecialBndTreat()

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::SolverUtils::Diffusion::SetSpecialBndTreat ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 330 of file Diffusion.h.

331 {
332 m_SpecialBndTreat = std::bind(func, obj, std::placeholders::_1);
333 }
SpecialBndTreat m_SpecialBndTreat
Definition: Diffusion.h:355

References m_SpecialBndTreat.

◆ v_Diffuse()

virtual SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::v_Diffuse ( const std::size_t  nConvectiveFields,
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 
)
protectedpure virtual

◆ v_DiffuseCalcDerivative()

void Diffusion::v_DiffuseCalcDerivative ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  qfields,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd 
)
protectedvirtual

Diffusion Flux, calculate the physical derivatives.

Reimplemented in Nektar::SolverUtils::DiffusionIP, Nektar::SolverUtils::DiffusionLDG, and Nektar::DiffusionLDGNS.

Definition at line 78 of file Diffusion.cpp.

84{
85 boost::ignore_unused(fields, inarray, qfields, pFwd, pBwd);
86 NEKERROR(ErrorUtil::efatal, "Not defined for function DiffuseVolumeFLux.");
87}
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Definition: ErrorUtil.hpp:209

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by DiffuseCalcDerivative().

◆ v_DiffuseCoeffs()

void Diffusion::v_DiffuseCoeffs ( const std::size_t  nConvectiveFields,
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 
)
protectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionLDG, Nektar::DiffusionLDGNS, and Nektar::SolverUtils::DiffusionIP.

Definition at line 59 of file Diffusion.cpp.

66{
67 boost::ignore_unused(nConvectiveFields, fields, inarray, outarray, pFwd,
68 pBwd);
69 NEKERROR(ErrorUtil::efatal, "v_DiffuseCoeffs not defined");
70}

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by DiffuseCoeffs().

◆ v_DiffuseTraceFlux()

void Diffusion::v_DiffuseTraceFlux ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  Qfields,
TensorOfArray3D< NekDouble > &  VolumeFlux,
Array< OneD, Array< OneD, NekDouble > > &  TraceFlux,
const Array< OneD, Array< OneD, NekDouble > > &  pFwd,
const Array< OneD, Array< OneD, NekDouble > > &  pBwd,
Array< OneD, int > &  nonZeroIndex 
)
protectedvirtual

Diffusion term Trace Flux.

Reimplemented in Nektar::SolverUtils::DiffusionIP, Nektar::SolverUtils::DiffusionLDG, and Nektar::DiffusionLDGNS.

Definition at line 99 of file Diffusion.cpp.

107{
108 boost::ignore_unused(fields, inarray, qfields, VolumeFlux, TraceFlux, pFwd,
109 pBwd, nonZeroIndex);
110 NEKERROR(ErrorUtil::efatal, "Not defined function DiffuseTraceFLux.");
111}

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by DiffuseTraceFlux().

◆ v_DiffuseVolumeFlux()

void Diffusion::v_DiffuseVolumeFlux ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  fields,
const Array< OneD, Array< OneD, NekDouble > > &  inarray,
TensorOfArray3D< NekDouble > &  qfields,
TensorOfArray3D< NekDouble > &  VolumeFlux,
Array< OneD, int > &  nonZeroIndex 
)
protectedvirtual

Diffusion Volume Flux.

Reimplemented in Nektar::SolverUtils::DiffusionIP, Nektar::SolverUtils::DiffusionLDG, and Nektar::DiffusionLDGNS.

Definition at line 89 of file Diffusion.cpp.

94{
95 boost::ignore_unused(fields, inarray, qfields, VolumeFlux, nonZeroIndex);
96 NEKERROR(ErrorUtil::efatal, "Not defined for function DiffuseVolumeFLux.");
97}

References Nektar::ErrorUtil::efatal, and NEKERROR.

Referenced by DiffuseVolumeFlux().

◆ v_GetFluxTensor()

virtual TensorOfArray3D< NekDouble > & Nektar::SolverUtils::Diffusion::v_GetFluxTensor ( )
inlineprotectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionLFRNS, and Nektar::DiffusionLDGNS.

Definition at line 411 of file Diffusion.h.

412 {
413 static TensorOfArray3D<NekDouble> tmp;
414 return tmp;
415 }

Referenced by GetFluxTensor().

◆ v_GetTraceNormal()

const Array< OneD, const Array< OneD, NekDouble > > & Diffusion::v_GetTraceNormal ( )
protectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionIP.

Definition at line 72 of file Diffusion.cpp.

73{
74 NEKERROR(ErrorUtil::efatal, "v_GetTraceNormal not defined");
76}
static Array< OneD, Array< OneD, NekDouble > > NullNekDoubleArrayOfArray

References Nektar::ErrorUtil::efatal, NEKERROR, and Nektar::NullNekDoubleArrayOfArray.

Referenced by GetTraceNormal().

◆ v_InitObject()

virtual SOLVER_UTILS_EXPORT void Nektar::SolverUtils::Diffusion::v_InitObject ( LibUtilities::SessionReaderSharedPtr  pSession,
Array< OneD, MultiRegions::ExpListSharedPtr pFields 
)
protectedpure virtual

◆ v_SetHomoDerivs()

virtual void Nektar::SolverUtils::Diffusion::v_SetHomoDerivs ( Array< OneD, Array< OneD, NekDouble > > &  deriv)
inlineprotectedvirtual

Reimplemented in Nektar::SolverUtils::DiffusionLFRNS, and Nektar::DiffusionLDGNS.

Definition at line 406 of file Diffusion.h.

407 {
408 boost::ignore_unused(deriv);
409 }

Referenced by SetHomoDerivs().

Member Data Documentation

◆ m_curlVelSquare

Array<OneD, NekDouble> Nektar::SolverUtils::Diffusion::m_curlVelSquare
protected

Definition at line 348 of file Diffusion.h.

Referenced by InitObject().

◆ m_divVel

Array<OneD, NekDouble> Nektar::SolverUtils::Diffusion::m_divVel
protected

Params for Ducros sensor.

Definition at line 346 of file Diffusion.h.

Referenced by InitObject().

◆ m_divVelSquare

Array<OneD, NekDouble> Nektar::SolverUtils::Diffusion::m_divVelSquare
protected

Definition at line 347 of file Diffusion.h.

Referenced by InitObject().

◆ m_fluxPenaltyNS

DiffusionFluxPenaltyNS Nektar::SolverUtils::Diffusion::m_fluxPenaltyNS
protected

◆ m_fluxVector

DiffusionFluxVecCB Nektar::SolverUtils::Diffusion::m_fluxVector
protected

◆ m_fluxVectorNS

DiffusionFluxVecCBNS Nektar::SolverUtils::Diffusion::m_fluxVectorNS
protected

◆ m_FunctorDiffusionfluxCons

DiffusionFluxCons Nektar::SolverUtils::Diffusion::m_FunctorDiffusionfluxCons
protected

◆ m_FunctorDiffusionfluxConsTrace

DiffusionFluxCons Nektar::SolverUtils::Diffusion::m_FunctorDiffusionfluxConsTrace
protected

◆ m_FunctorSymmetricfluxCons

DiffusionSymmFluxCons Nektar::SolverUtils::Diffusion::m_FunctorSymmetricfluxCons
protected

◆ m_SpecialBndTreat

SpecialBndTreat Nektar::SolverUtils::Diffusion::m_SpecialBndTreat
protected

◆ m_time

NekDouble Nektar::SolverUtils::Diffusion::m_time = 0.0
protected

Definition at line 358 of file Diffusion.h.

Referenced by Diffuse(), and DiffuseCoeffs().