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)
 
SOLVER_UTILS_EXPORT void SetGridVelocityTrace (Array< OneD, Array< OneD, NekDouble > > &gridVelocityTrace)
 

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
 
Array< OneD, Array< OneD, NekDouble > > m_gridVelocityTrace
 
NekDouble m_time = 0.0
 

Detailed Description

Definition at line 136 of file Diffusion.h.

Constructor & Destructor Documentation

◆ ~Diffusion()

Diffusion::~Diffusion ( )
inlinevirtual

Definition at line 139 of file Diffusion.h.

139{};

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 145 of file Diffusion.h.

154 {
155 v_Diffuse(nConvectiveFields, fields, inarray, outarray, pFwd, pBwd);
156 }
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 158 of file Diffusion.h.

167 {
168 m_time = time;
169 v_Diffuse(nConvectiveFields, fields, inarray, outarray, pFwd, pBwd);
170 }

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 202 of file Diffusion.h.

210 {
211 v_DiffuseCalcDerivative(fields, inarray, qfields, pFwd, pBwd);
212 }
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:74

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 172 of file Diffusion.h.

181 {
182 v_DiffuseCoeffs(nConvectiveFields, fields, inarray, outarray, pFwd,
183 pBwd);
184 }
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:57

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 186 of file Diffusion.h.

195 {
196 m_time = time;
197 v_DiffuseCoeffs(nConvectiveFields, fields, inarray, outarray, pFwd,
198 pBwd);
199 }

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 226 of file Diffusion.h.

237 {
238 v_DiffuseTraceFlux(fields, inarray, qfields, VolumeFlux, TraceFlux,
239 pFwd, pBwd, nonZeroIndex);
240 }
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:94

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 215 of file Diffusion.h.

221 {
222 v_DiffuseVolumeFlux(fields, inarray, qfields, VolumeFlux, nonZeroIndex);
223 }
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:84

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 248 of file Diffusion.h.

249 {
250 return v_GetFluxTensor();
251 }
virtual TensorOfArray3D< NekDouble > & v_GetFluxTensor()
Definition: Diffusion.h:414

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 255 of file Diffusion.h.

256 {
257 return v_GetTraceNormal();
258 }
virtual SOLVER_UTILS_EXPORT const Array< OneD, const Array< OneD, NekDouble > > & v_GetTraceNormal()
Definition: Diffusion.cpp:68

References v_GetTraceNormal().

◆ InitObject()

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

Definition at line 45 of file Diffusion.cpp.

47{
48 v_InitObject(pSession, pFields);
49
50 // Div curl storage
51 int nPts = pFields[0]->GetTotPoints();
52 m_divVel = Array<OneD, NekDouble>(nPts, 0.0);
53 m_divVelSquare = Array<OneD, NekDouble>(nPts, 0.0);
54 m_curlVelSquare = Array<OneD, NekDouble>(nPts, 0.0);
55}
Array< OneD, NekDouble > m_divVelSquare
Definition: Diffusion.h:350
Array< OneD, NekDouble > m_divVel
Params for Ducros sensor.
Definition: Diffusion.h:349
Array< OneD, NekDouble > m_curlVelSquare
Definition: Diffusion.h:351
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 307 of file Diffusion.h.

308 {
310 }
DiffusionFluxCons m_FunctorDiffusionfluxCons
Definition: Diffusion.h:356

References m_FunctorDiffusionfluxCons.

◆ SetDiffusionFluxCons() [2/2]

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

Definition at line 299 of file Diffusion.h.

300 {
302 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
303 std::placeholders::_3, std::placeholders::_4,
304 std::placeholders::_5, std::placeholders::_6);
305 }

References m_FunctorDiffusionfluxCons.

◆ SetDiffusionFluxConsTrace() [1/2]

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

Definition at line 321 of file Diffusion.h.

322 {
324 }
DiffusionFluxCons m_FunctorDiffusionfluxConsTrace
Definition: Diffusion.h:357

References m_FunctorDiffusionfluxConsTrace.

◆ SetDiffusionFluxConsTrace() [2/2]

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

Definition at line 313 of file Diffusion.h.

314 {
316 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
317 std::placeholders::_3, std::placeholders::_4,
318 std::placeholders::_5, std::placeholders::_6);
319 }

References m_FunctorDiffusionfluxConsTrace.

◆ SetDiffusionSymmFluxCons()

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

Definition at line 333 of file Diffusion.h.

334 {
336 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
337 std::placeholders::_3, std::placeholders::_4,
338 std::placeholders::_5, std::placeholders::_6);
339 }
DiffusionSymmFluxCons m_FunctorSymmetricfluxCons
Definition: Diffusion.h:359

References m_FunctorSymmetricfluxCons.

◆ SetFluxPenaltyNS() [1/2]

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

Definition at line 293 of file Diffusion.h.

294 {
295 m_fluxPenaltyNS = flux;
296 }
DiffusionFluxPenaltyNS m_fluxPenaltyNS
Definition: Diffusion.h:355

References m_fluxPenaltyNS.

◆ SetFluxPenaltyNS() [2/2]

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

Definition at line 286 of file Diffusion.h.

287 {
289 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
290 std::placeholders::_3);
291 }

References m_fluxPenaltyNS.

◆ SetFluxVector() [1/2]

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

Definition at line 267 of file Diffusion.h.

268 {
269 m_fluxVector = fluxVector;
270 }
DiffusionFluxVecCB m_fluxVector
Definition: Diffusion.h:353

References m_fluxVector.

◆ SetFluxVector() [2/2]

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

Definition at line 261 of file Diffusion.h.

262 {
263 m_fluxVector = std::bind(func, obj, std::placeholders::_1,
264 std::placeholders::_2, std::placeholders::_3);
265 }

References m_fluxVector.

◆ SetFluxVectorNS() [1/2]

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

Definition at line 280 of file Diffusion.h.

281 {
282 m_fluxVectorNS = fluxVector;
283 }
DiffusionFluxVecCBNS m_fluxVectorNS
Definition: Diffusion.h:354

References m_fluxVectorNS.

◆ SetFluxVectorNS() [2/2]

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

Definition at line 273 of file Diffusion.h.

274 {
276 std::bind(func, obj, std::placeholders::_1, std::placeholders::_2,
277 std::placeholders::_3);
278 }

References m_fluxVectorNS.

◆ SetGridVelocityTrace()

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

Definition at line 341 of file Diffusion.h.

343 {
344 m_gridVelocityTrace = gridVelocityTrace;
345 }
Array< OneD, Array< OneD, NekDouble > > m_gridVelocityTrace
Definition: Diffusion.h:360

References m_gridVelocityTrace.

◆ SetHomoDerivs()

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

Definition at line 242 of file Diffusion.h.

244 {
245 v_SetHomoDerivs(deriv);
246 }
virtual void v_SetHomoDerivs(Array< OneD, Array< OneD, NekDouble > > &deriv)
Definition: Diffusion.h:409

References v_SetHomoDerivs().

◆ SetSpecialBndTreat()

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

Definition at line 327 of file Diffusion.h.

328 {
329 m_SpecialBndTreat = std::bind(func, obj, std::placeholders::_1);
330 }
SpecialBndTreat m_SpecialBndTreat
Definition: Diffusion.h:358

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 74 of file Diffusion.cpp.

80{
81 NEKERROR(ErrorUtil::efatal, "Not defined for function DiffuseVolumeFLux.");
82}
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Definition: ErrorUtil.hpp:202

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 57 of file Diffusion.cpp.

64{
65 NEKERROR(ErrorUtil::efatal, "v_DiffuseCoeffs not defined");
66}

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 94 of file Diffusion.cpp.

103{
104 NEKERROR(ErrorUtil::efatal, "Not defined function DiffuseTraceFLux.");
105}

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 84 of file Diffusion.cpp.

90{
91 NEKERROR(ErrorUtil::efatal, "Not defined for function DiffuseVolumeFLux.");
92}

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 414 of file Diffusion.h.

415 {
416 static TensorOfArray3D<NekDouble> tmp;
417 return tmp;
418 }

Referenced by GetFluxTensor().

◆ v_GetTraceNormal()

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

Reimplemented in Nektar::SolverUtils::DiffusionIP.

Definition at line 68 of file Diffusion.cpp.

69{
70 NEKERROR(ErrorUtil::efatal, "v_GetTraceNormal not defined");
72}
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 409 of file Diffusion.h.

411 {
412 }

Referenced by SetHomoDerivs().

Member Data Documentation

◆ m_curlVelSquare

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

Definition at line 351 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 349 of file Diffusion.h.

Referenced by InitObject().

◆ m_divVelSquare

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

Definition at line 350 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_gridVelocityTrace

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

◆ m_SpecialBndTreat

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

◆ m_time

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

Definition at line 361 of file Diffusion.h.

Referenced by Diffuse(), and DiffuseCoeffs().