adjointWallVelocityFvPatchVectorField Class Reference

Adjoint wall velocity boundary condition. If nutUSpaldingWallFunction is employed in the flow solution, the corresponding adjoint wall function is used. Otherwise, the typical low-Re boundary condition is applied. More...

Inheritance diagram for adjointWallVelocityFvPatchVectorField:
[legend]
Collaboration diagram for adjointWallVelocityFvPatchVectorField:
[legend]

Public Member Functions

 TypeName ("adjointWallVelocity")
 Runtime type information. More...
 
 adjointWallVelocityFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &)
 Construct from patch and internal field. More...
 
 adjointWallVelocityFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 adjointWallVelocityFvPatchVectorField (const adjointWallVelocityFvPatchVectorField &, const fvPatch &, const DimensionedField< vector, volMesh > &, const fvPatchFieldMapper &)
 
virtual tmp< fvPatchVectorFieldclone () const
 Construct and return a clone. More...
 
 adjointWallVelocityFvPatchVectorField (const adjointWallVelocityFvPatchVectorField &, const DimensionedField< vector, volMesh > &)
 Construct as copy setting internal field reference. More...
 
virtual tmp< fvPatchVectorFieldclone (const DimensionedField< vector, volMesh > &iF) const
 Construct and return a clone setting internal field reference. More...
 
virtual void manipulateMatrix (fvMatrix< vector > &matrix)
 
virtual void updateCoeffs ()
 Update the coefficients associated with the patch field. More...
 
virtual void write (Ostream &) const
 Write. More...
 
- Public Member Functions inherited from adjointBoundaryCondition< Type >
 TypeName ("adjointBoundaryCondition")
 Run-time type information. More...
 
 adjointBoundaryCondition (const fvPatch &p, const DimensionedField< Type, volMesh > &iF, const word &solverName)
 Construct from field and base name. More...
 
 adjointBoundaryCondition (const adjointBoundaryCondition< Type > &)
 Construct as copy. More...
 
virtual ~adjointBoundaryCondition ()=default
 Destructor. More...
 
const wordobjectiveManagerName () const
 Return objectiveManager name. More...
 
const wordadjointSolverName () const
 Return adjointSolverName. More...
 
const wordsimulationType () const
 Return the simulationType. More...
 
void setBoundaryContributionPtr ()
 Set the ptr to the correct boundaryAdjointContribution. More...
 
boundaryAdjointContributiongetBoundaryAdjContribution ()
 Get boundaryContribution. More...
 
const ATCModelgetATC () const
 ATC type might be useful for a number of BCs. Return here. More...
 
virtual tmp< Field< typename Foam::outerProduct< Foam::vector, Type >::type > > dxdbMult () const
 Return contribution to sensitivity derivatives. More...
 
virtual void updatePrimalBasedQuantities ()
 

Additional Inherited Members

- Protected Member Functions inherited from adjointBoundaryCondition< Type >
template<class Type2 >
tmp< Field< typename Foam::outerProduct< Foam::vector, Type2 >::type > > computePatchGrad (word name)
 Get gradient of field on a specific boundary. More...
 
bool addATCUaGradUTerm ()
 Whether to add the extra term from the UaGradU formulation. More...
 
- Protected Attributes inherited from adjointBoundaryCondition< Type >
const fvPatchpatch_
 Reference to patch. More...
 
word managerName_
 objectiveManager name corresponding to field More...
 
word adjointSolverName_
 adjointSolver name corresponding to field More...
 
word simulationType_
 simulationType corresponding to field. More...
 
autoPtr< boundaryAdjointContributionboundaryContrPtr_
 
autoPtr< booladdATCUaGradUTerm_
 Whether to add the extra term from the UaGradU formulation. More...
 

Detailed Description

Adjoint wall velocity boundary condition. If nutUSpaldingWallFunction is employed in the flow solution, the corresponding adjoint wall function is used. Otherwise, the typical low-Re boundary condition is applied.

Reference:

    For both the low- and high-Re variants

        Papoutsis-Kiachagias, E. M., & Giannakoglou, K. C. (2014).
        Continuous Adjoint Methods for Turbulent Flows, Applied to Shape
        and Topology Optimization: Industrial Applications.
        Archives of Computational Methods in Engineering, 23(2), 255-299.
        http://doi.org/10.1007/s11831-014-9141-9
Source files

Definition at line 68 of file adjointWallVelocityFvPatchVectorField.H.

Constructor & Destructor Documentation

◆ adjointWallVelocityFvPatchVectorField() [1/4]

Construct from patch and internal field.

Definition at line 37 of file adjointWallVelocityFvPatchVectorField.C.

◆ adjointWallVelocityFvPatchVectorField() [2/4]

adjointWallVelocityFvPatchVectorField ( const fvPatch p,
const DimensionedField< vector, volMesh > &  iF,
const dictionary dict 
)

Construct from patch, internal field and dictionary.

Definition at line 67 of file adjointWallVelocityFvPatchVectorField.C.

References dict, p, and UList< T >::size().

Here is the call graph for this function:

◆ adjointWallVelocityFvPatchVectorField() [3/4]

Construct by mapping given adjointWallVelocityFvPatchVectorField onto a new patch

Definition at line 51 of file adjointWallVelocityFvPatchVectorField.C.

◆ adjointWallVelocityFvPatchVectorField() [4/4]

Construct as copy setting internal field reference.

Definition at line 87 of file adjointWallVelocityFvPatchVectorField.C.

Member Function Documentation

◆ TypeName()

TypeName ( "adjointWallVelocity"  )

Runtime type information.

◆ clone() [1/2]

virtual tmp< fvPatchVectorField > clone ( ) const
inlinevirtual

Construct and return a clone.

Reimplemented in adjointRotatingWallVelocityFvPatchVectorField.

Definition at line 115 of file adjointWallVelocityFvPatchVectorField.H.

◆ clone() [2/2]

virtual tmp< fvPatchVectorField > clone ( const DimensionedField< vector, volMesh > &  iF) const
inlinevirtual

Construct and return a clone setting internal field reference.

Reimplemented in adjointRotatingWallVelocityFvPatchVectorField.

Definition at line 131 of file adjointWallVelocityFvPatchVectorField.H.

◆ manipulateMatrix()

void manipulateMatrix ( fvMatrix< vector > &  matrix)
virtual

In case of High-Re runs based on the nutUSpaldingWallFunction add source terms in the first cell centre off the wall

Definition at line 103 of file adjointWallVelocityFvPatchVectorField.C.

References addProfiling, Foam::exp(), forAll, Foam::mag(), Foam::min(), nu, fvPatchField< Type >::patchInternalField(), fvPatchField< Type >::snGrad(), fvMatrix< Type >::source(), Foam::sqrt(), uPlus, and yPlus.

Here is the call graph for this function:

◆ updateCoeffs()

void updateCoeffs ( )
virtual

Update the coefficients associated with the patch field.

(1./delta)*((gradUaC & nf) & tf1)*tf1;

Definition at line 171 of file adjointWallVelocityFvPatchVectorField.C.

References Foam::mag(), Foam::operator==(), fvPatchField< Type >::patchInternalField(), and Foam::Zero.

Here is the call graph for this function:

◆ write()

void write ( Ostream os) const
virtual

Write.

Reimplemented in adjointRotatingWallVelocityFvPatchVectorField.

Definition at line 226 of file adjointWallVelocityFvPatchVectorField.C.

References os(), ObukhovLength::write(), and Ostream::writeEntry().

Here is the call graph for this function:

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