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...
 

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 39 of file adjointWallVelocityFvPatchVectorField.C.

Referenced by adjointWallVelocityFvPatchVectorField::clone().

Here is the caller graph for this function:

◆ 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 69 of file adjointWallVelocityFvPatchVectorField.C.

References dict, and p.

◆ adjointWallVelocityFvPatchVectorField() [3/4]

Construct by mapping given adjointWallVelocityFvPatchVectorField onto a new patch

Definition at line 53 of file adjointWallVelocityFvPatchVectorField.C.

◆ adjointWallVelocityFvPatchVectorField() [4/4]

Construct as copy setting internal field reference.

Definition at line 89 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.

References adjointWallVelocityFvPatchVectorField::adjointWallVelocityFvPatchVectorField().

Here is the call graph for this function:

◆ 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 132 of file adjointWallVelocityFvPatchVectorField.H.

References adjointWallVelocityFvPatchVectorField::adjointWallVelocityFvPatchVectorField().

Here is the call graph for this function:

◆ 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 104 of file adjointWallVelocityFvPatchVectorField.C.

References Foam::exp(), forAll, Foam::mag(), Foam::min(), nu, Foam::foamVersion::patch, 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 166 of file adjointWallVelocityFvPatchVectorField.C.

References adjointBoundaryCondition< Type >::boundaryContrPtr_, Foam::mag(), Foam::operator==(), Foam::foamVersion::patch, 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 221 of file adjointWallVelocityFvPatchVectorField.C.

References os(), fvPatchField< vector >::write(), and Ostream::writeEntry().

Referenced by adjointRotatingWallVelocityFvPatchVectorField::write().

Here is the call graph for this function:
Here is the caller graph for this function:

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