53 #ifndef Foam_adjointkOmegaSST_H 54 #define Foam_adjointkOmegaSST_H 63 namespace incompressibleAdjoint
65 namespace adjointRASModels
406 const word& schemeName
416 const word& schemeName
425 const word& schemeName
511 const word& schemeName
533 incompressibleVars& primalVars,
534 incompressibleAdjointMeanFlowVars& adjointVars,
535 objectiveManager& objManager,
536 const word& adjointTurbulenceModelName
537 = adjointTurbulenceModel::typeName,
538 const word& modelName = typeName
551 return tmp<volScalarField>
627 const word& designVarsName
volScalarField DOmegaEff_
Diffusivity of the omega equation.
volScalarField case_2_F1_
virtual tmp< volScalarField > GbyNu(const volScalarField &GbyNu0, const volScalarField &F2, const volScalarField &S2) const
tmp< volVectorField > nutMeanFlowSource(tmp< volScalarField > &mult, const volScalarField &F2, const volScalarField &S, const volScalarField &case_1_nut, const volTensorField &gradU) const
Contributions from nut(U)
virtual const boundaryVectorField & wallShapeSensitivities()
Sensitivity derivative contributions when using the (E)SI approach.
tmp< volScalarField > dnut_dk(const volScalarField &F2, const volScalarField &S, const volScalarField &case_2_nut) const
Nut Jacobian wrt k.
virtual tmp< scalarField > topologySensitivities(const word &designVarsName) const
Term contributing to the computation of topology optimisation sensitivities.
tmp< volVectorField > dF1_dGradK(const volScalarField &arg1) const
F1 Jacobian wrt grad(k)
dimensionedScalar gamma2_
tmp< volScalarField > dF2_domega(const volScalarField &F2, const volScalarField &case_2_nut, const volScalarField &case_3_nut) const
F2 Jacobian wrt omega.
tmp< volScalarField > diffusionNutMeanFlowMult(const volScalarField &primalField, const volScalarField &adjointField, const volScalarField &coeffField) const
Contributions from nut(U), in the diffusion coefficients of the turbulence model. ...
tmp< volVectorField > dF1_dGradOmega(const volScalarField &arg1) const
F1 Jacobian wrt grad(omega)
tmp< volScalarField > waEqnSourceFromF1() const
Source to waEqn from the differentiation of F1.
virtual tmp< volScalarField > F1() const
volScalarField case_3_nut_
const volScalarField & y_
Wall distance.
virtual tmp< volSymmTensorField > devReff() const
Return the effective stress tensor including the laminar stress.
volScalarField case_2_GPrime_
volScalarField dnut_domega_
Nut Jacobian w.r.t. omega.
tmp< volScalarField > kaEqnSourceFromF1() const
Source to kaEqn from the differentiation of F1.
virtual const boundaryVectorField & wallFloCoSensitivities()
Sensitivity terms for flow control, emerging from the turbulence model differentiation.
tmp< volScalarField > dF1_domega(const volScalarField &arg1) const
F1 Jacobian wrt omega (no contributions from grad(omega))
tmp< volVectorField > GMeanFlowSource(tmp< volSymmTensorField > &GbyNuMult) const
Contributions from the G.
A simple wrapper around bool so that it can be read as a word: true/false, on/off, yes/no, any/none. Also accepts 0/1 as a string and shortcuts t/f, y/n.
volScalarField case_1_F1_
tmp< volScalarField::Internal > beta(const volScalarField::Internal &F1) const
virtual tmp< volVectorField > adjointMeanFlowSource()
Source term added to the adjoint mean flow due to the differentiation of the turbulence model...
dimensionedScalar alphaOmega2_
volScalarField case_2_Pk_
tmp< volScalarField > kaEqnSourceFromCDkOmega() const
Source to kaEqn from the differentiation of CDkOmega.
virtual tmp< volScalarField > nutJacobianTMVar1() const
Jacobian of nut wrt to k.
virtual tmp< volScalarField > distanceSensitivities()
Contributions to the adjoint eikonal equation (zero for now)
tmp< volScalarField > alphaK(const volScalarField &F1) const
incompressibleVars & primalVars_
volVectorField gradOmega_
tmp< volScalarField > alphaOmega(const volScalarField &F1) const
tmp< volVectorField > convectionMeanFlowSource(const volScalarField &primalField, const volScalarField &adjointField) const
Contributions from the turbulence model convection terms.
tmp< volScalarField > nu() const
Return the laminar viscosity.
tmp< volScalarField > DkEff(const volScalarField &F1) const
Return the effective diffusivity for k.
void addWallFunctionTerms(fvScalarMatrix &kaEqn, const volScalarField &dR_dnut)
Contributions from the differentiation of k existing in nutkWallFunction.
tmp< surfaceInterpolationScheme< scalar > > convectionScheme(const word &varName) const
Return the interpolation scheme used by the primal convection term of the equation corresponding to t...
GeometricField< scalar, fvPatchField, volMesh > volScalarField
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
static word scopedName(const std::string &scope, const word &name)
Create scope:name or scope_name string.
tmp< surfaceInterpolationScheme< Type > > interpolationScheme(const word &schemeName) const
Return the requested interpolation scheme if it exists, otherwise return a reverseLinear scheme...
virtual tmp< volScalarField > nutJacobianTMVar2() const
Jacobian of nut wrt to omega.
const volScalarField & psi2
Switch F3_
Flag to include the F3 term.
virtual tmp< volTensorField > FISensitivityTerm()
Sensitivity derivative contributions when using the FI approach.
tmp< volScalarField > DomegaEff(const volScalarField &F1) const
Return the effective diffusivity for omega.
volTensorField gradU_
Cached primal gradient fields.
A class for handling words, derived from Foam::string.
virtual tmp< fvVectorMatrix > divDevReff(volVectorField &U) const
Return the transpose part of the adjoint momentum stresses.
volScalarField case_4_F1_
Abstract base class for incompressible turbulence models.
tmp< volScalarField > blend(const volScalarField &F1, const dimensionedScalar &psi1, const dimensionedScalar &psi2) const
volScalarField dnut_dk_
Nut Jacobian w.r.t. k.
const volScalarField & nutRef() const
tmp< volVectorField > divUMeanFlowSource(tmp< volScalarField > &divUMult) const
Contributions from the divU.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
tmp< volScalarField > dR_dnut()
Derivative of the primal equations wrt nut.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
volScalarField case_1_nut_
volScalarField case_2_nut_
const volScalarField & k() const
autoPtr< volScalarField > adjointTMVariable1Ptr_
Adjoint turbulence model variable 1.
virtual void nullify()
Nullify all adjoint turbulence model fields and their old times.
virtual ~adjointkOmegaSST()=default
Destructor.
virtual void correct()
Solve the adjoint turbulence equations.
virtual const tmp< volScalarField > nut() const
Return the turbulence viscosity.
autoPtr< volScalarField > adjointTMVariable2Ptr_
Adjoint turbulence model variable 2.
tmp< volScalarField > dNutdbMult(const volScalarField &primalField, const volScalarField &adjointField, const volScalarField &coeffField, const volScalarField &bcField, const word &schemeName) const
Term multiplying dnut/db, coming from the turbulence model.
virtual tmp< volVectorField > nutJacobianU(tmp< volScalarField > &dNutdUMult) const
Jacobian of nut wrt the flow velocity.
const volScalarField & omega() const
volScalarField DkEff_
Diffusivity of the k equation.
volScalarField case_1_Pk_
Switch fields for the production in the k Eqn.
volScalarField case_1_GPrime_
TypeName("adjointkOmegaSST")
Runtime type information.
dimensionedScalar alphaK2_
tmp< volScalarField > dF1_dk(const volScalarField &arg1) const
F1 Jacobian wrt k (no contributions from grad(k))
const volScalarField & psi1
tmp< volScalarField > dF2_dk(const volScalarField &F2, const volScalarField &case_2_nut) const
F2 Jacobian wrt k.
tmp< fvScalarMatrix > waEqnSourceFromCDkOmega() const
Source to waEqn from the differentiation of CDkOmega.
const autoPtr< incompressible::RASModelVariables > & RASModelVariables() const
Return const reference to the turbulence model variables.
volScalarField case_3_F1_
Continuous adjoint to the kOmegaSST turbulence model for incompressible flows.
dimensionedScalar alphaOmega1_
virtual tmp< scalarField > diffusionCoeffVar1(label patchI) const
Diffusion coeff at the boundary for k.
tmp< volScalarField > coeffsDifferentiation(const volScalarField &primalField, const volScalarField &adjointField, const word &schemeName) const
Differentiation of the turbulence model diffusion coefficients.
void updatePrimalRelatedFields()
Update of the primal cached fields.
tmp< volScalarField > dnut_domega(const volScalarField &F2, const volScalarField &S, const volScalarField &case_1_nut, const volScalarField &case_2_nut, const volScalarField &case_3_nut) const
Nut Jacobian wrt omega.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
tmp< volScalarField::Internal > gamma(const volScalarField::Internal &F1) const
virtual tmp< scalarField > diffusionCoeffVar2(label patchI) const
Diffusion coeff at the boundary for omega.
dimensionedScalar alphaK1_
virtual tmp< volVectorField > nonConservativeMomentumSource() const
Non-conservative part of the terms added to the mean flow equations.
volScalarField zeroFirstCell_
tmp< volScalarField > dGPrime_dk() const
GbyNu Jacobian wrt k.
volScalarField CDkOmegaPlus_
dimensionedScalar gamma1_
A class for managing temporary objects.
volScalarField S2_
Primal cached fields involved in the solution of the.
tmp< volScalarField > zeroFirstCell()
dimensionedScalar betaStar_
virtual bool read()
Read adjointRASProperties dictionary.
tmp< volScalarField > dGPrime_domega() const
GbyNu Jacobian wrt omega.
virtual const boundaryVectorField & adjointMomentumBCSource() const
Source for the outlet adjoint momentum BC coming from differentiating the turbulence model...
virtual tmp< volScalarField > F2() const
tmp< volScalarField > dR_dF1() const
Derivative of the primal equations wrt F1.
volScalarField alphaOmega_
volScalarField case_3_Pk_