Convection and diffusion of temperature, non-conservative, with a diagonal (single-equation) diffusion coefficient.
More...
|
| | CScalarFlux_Heat (const CConfig &config) |
| |
| template<class VariableType > |
| CPair< Vector< Double, nVar > > | coefficients (const FlowIndices &idx, Int iPoint, const EdgeSide< VariableType > &side_i, Int jPoint, const EdgeSide< VariableType > &side_j, const CPair< Double > &) const |
| | Thermal diffusivity, an i/j average, identical for both edge sides (TSL Jacobian).
|
| |
| | CUpwScalarBase (const CConfig &config, size_t nEqn_=nVar_) |
| | Constructor, inherited by the model with using Base::Base.
|
| |
| template<class VariableType > |
| EdgeResidual< Double, nVar > | ComputeFlux (const ScalarFluxOptions &opt, Int iPoint, const EdgeSide< VariableType > &side_i, Int jPoint, const EdgeSide< VariableType > &side_j, const Vector< Double, nDim > &normal, const Double &massFlux) const |
| |
| template<class VariableType > |
| void | ComputeFlux (const ScalarFluxOptions &opt, Int iEdge, Int iPoint, const EdgeSide< VariableType > &side_i, Int jPoint, const EdgeSide< VariableType > &side_j, const Vector< Double, nDim > &normal, const Double &massFlux, UpdateType updateType, Double updateMask, CSysVector< su2double > &vector, CSysVector< su2double > &vectorDiff, SparseMatrixType &matrix) const |
| | Compute the flux of an edge and write it to the linear system.
|
| |
|
| using | Base = CUpwScalarFlux< Double_, Derived, FlowIndices, nDim_, nVar_ > |
| |
| using | Int = typename CLaneTraits< Double_ >::Int |
| |
| using | Int = typename CLaneTraits< Double >::Int |
| |
| | CUpwScalarFlux (const CConfig &) |
| |
| void | finalizeFlux (const FlowIndices &, const ScalarFluxOptions &opt, Int, const EdgeSide< VariableType > &, Int, const EdgeSide< VariableType > &, const Double_ &a0, const Double_ &a1, const CPair< Double_ > &rho, const CPair< CScalarValues< Double_, Size > > &phi, EdgeResidual< Double_, nVar > &res) const |
| | Upwind convection of the transported variable, weighted by the density for a conservative model.
|
| |
| template<class VariableType > |
| void | diffusionTerms (const FlowIndices &idx, const ScalarFluxOptions &opt, Int iPoint, const EdgeSide< VariableType > &side_i, Int jPoint, const EdgeSide< VariableType > &side_j, const CPair< Double > &rho, const Vector< Double, nDim > &normal, const Vector< Double, nDim > &vector_ij, EdgeResidual< Double, nVar > &res) const |
| |
| template<class... Ts> |
| void | coefficientJacobians (Ts &&...) const |
| | Contribution of the derivatives of the coefficients themselves.
|
| |
| template<class... Ts> |
| void | extraDiffusionTerms (Ts &&...) const |
| | Diffusion of a model that transports more than one gradient, of states it synthesises from its own containers.
|
| |
| const FlowIndices | idx |
| |
| const size_t | nEqn |
| | Equations of the model, which a dynamic one gives to its base.
|
| |
| const su2double | kappa |
| | MUSCL reconstruction parameters, read from CConfig once per construction (i.e. once per nonlinear iteration, see CScalarSolver::EdgeFluxResidual) instead of per edge; this is also where the scalar limiter's freezing (GetLimiterIter) is resolved, by collapsing its type to NONE once frozen. The flow limiter is not frozen this way: once the flow solver stops recomputing it, it keeps applying the last values it has.
|
| |
| const su2double | umusclRamp |
| |
| const su2double | kappaFlow |
| |
| const LIMITER | limiterType |
| |
| const LIMITER | limiterTypeFlow |
| |
| const bool | musclFlow |
| |
template<class
Double, class FlowIndices, int nDim, size_t nVar = 1>
class CScalarFlux_Heat< Double, FlowIndices, nDim, nVar >
Convection and diffusion of temperature, non-conservative, with a diagonal (single-equation) diffusion coefficient.
- Note
- The temperature has no notion of density weighting, so Conservative is false and the inherited CUpwScalarFlux::finalizeFlux, flux(0) = a0*phi_i(0) + a1*phi_j(0), is exactly the model's whole convective term; no override is needed.
-
The solver runs in two modes, weakly-coupled energy equation on a fluid zone or standalone conduction on a solid one (CHeatSolver::flow); the diffusion coefficient is the flow's thermal conductivity over specific heat, plus a turbulent contribution, in the former, and the configured constant thermal diffusivity in the latter. EdgeSide::flowNodes is null in the solid case, so this is the only place that may read it, and only when flow is set.