Documentation 6b54b78464
Loading...
Searching...
No Matches
CUpwindBase< Derived, Base > Class Template Reference

Base class for upwind schemes, derived classes implement details of the convective flux in a const "finalizeFlux" method. A base class implementing "viscousTerms" is accepted as template parameter. Similarly to derived, that method should update the flux and Jacobians, but whereas "finalizeFlux" is passed data prepared by CUpwindBase, "viscousTerms" takes the same input arguments as "ComputeFlux", i.e. it can fetch more data from CVariable. Derived is meant to implement small details, Base is meant to do heavy lifting. More...

#include <upwind.hpp>

Inheritance diagram for CUpwindBase< Derived, Base >:
[legend]

Public Member Functions

void ComputeFlux (const Int iEdge, const CConfig &config, const CGeometry &geometry, const CVariable &solution_, const UpdateType updateType, const Double updateMask, CSysVector< su2double > &vector, SparseMatrixType &matrix, su2activevector *edgeMassFluxes) const final
 Implementation of the base Roe flux.
 

Protected Member Functions

template<class... Ts>
 CUpwindBase (const CConfig &config, unsigned iMesh, Ts &... args)
 Constructor, store some constants and forward args to base.
 

Protected Attributes

const su2double gamma
 
const su2double gasConst
 
const bool finestGrid
 
const bool dynamicGrid
 
const bool muscl
 
const su2double umusclKappa
 
const LIMITER typeLimiter
 

Static Protected Attributes

static constexpr size_t nVar = CCompressibleConservatives<nDim>::nVar
 
static constexpr size_t nPrimVarGrad = nDim+4
 
static constexpr size_t nPrimVar = Max(Base::nPrimVar, nPrimVarGrad)
 

Detailed Description

template<class Derived, class Base>
class CUpwindBase< Derived, Base >

Base class for upwind schemes, derived classes implement details of the convective flux in a const "finalizeFlux" method. A base class implementing "viscousTerms" is accepted as template parameter. Similarly to derived, that method should update the flux and Jacobians, but whereas "finalizeFlux" is passed data prepared by CUpwindBase, "viscousTerms" takes the same input arguments as "ComputeFlux", i.e. it can fetch more data from CVariable. Derived is meant to implement small details, Base is meant to do heavy lifting.

Constructor & Destructor Documentation

◆ CUpwindBase()

template<class Derived , class Base >
template<class... Ts>
CUpwindBase< Derived, Base >::CUpwindBase ( const CConfig &  config,
unsigned  iMesh,
Ts &...  args 
)
inlineprotected

Constructor, store some constants and forward args to base.

Member Function Documentation

◆ ComputeFlux()

template<class Derived , class Base >
void CUpwindBase< Derived, Base >::ComputeFlux ( const Int  iEdge,
const CConfig &  config,
const CGeometry &  geometry,
const CVariable &  solution_,
const UpdateType  updateType,
const Double  updateMask,
CSysVector< su2double > &  vector,
SparseMatrixType &  matrix,
su2activevector *  edgeMassFluxes 
) const
inlinefinal

Implementation of the base Roe flux.

Member Data Documentation

◆ dynamicGrid

template<class Derived , class Base >
const bool CUpwindBase< Derived, Base >::dynamicGrid
protected

◆ finestGrid

template<class Derived , class Base >
const bool CUpwindBase< Derived, Base >::finestGrid
protected

◆ gamma

template<class Derived , class Base >
const su2double CUpwindBase< Derived, Base >::gamma
protected

◆ gasConst

template<class Derived , class Base >
const su2double CUpwindBase< Derived, Base >::gasConst
protected

◆ muscl

template<class Derived , class Base >
const bool CUpwindBase< Derived, Base >::muscl
protected

◆ nPrimVar

template<class Derived , class Base >
constexpr size_t CUpwindBase< Derived, Base >::nPrimVar = Max(Base::nPrimVar, nPrimVarGrad)
staticconstexprprotected

◆ nPrimVarGrad

template<class Derived , class Base >
constexpr size_t CUpwindBase< Derived, Base >::nPrimVarGrad = nDim+4
staticconstexprprotected

◆ nVar

template<class Derived , class Base >
constexpr size_t CUpwindBase< Derived, Base >::nVar = CCompressibleConservatives<nDim>::nVar
staticconstexprprotected

◆ typeLimiter

template<class Derived , class Base >
const LIMITER CUpwindBase< Derived, Base >::typeLimiter
protected

◆ umusclKappa

template<class Derived , class Base >
const su2double CUpwindBase< Derived, Base >::umusclKappa
protected

The documentation for this class was generated from the following file: