adjointOutletVelocityFluxFvPatchVectorField Class Reference

An outlet boundary condition for patches in which the primal flow exhibits recirculation. Adds the contribution of the objective as an adjoint momentum flux directly to the PDEs, without the need to first compute an adjoint outlet velocity, circumventing thus the division with (almost) zero that manifests in case of primal flow recirculation. More...

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

Public Member Functions

 TypeName ("adjointOutletVelocityFlux")
 Runtime type information. More...
 
 adjointOutletVelocityFluxFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &)
 Construct from patch and internal field. More...
 
 adjointOutletVelocityFluxFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
 Construct from patch, internal field and dictionary. More...
 
 adjointOutletVelocityFluxFvPatchVectorField (const adjointOutletVelocityFluxFvPatchVectorField &, const fvPatch &, const DimensionedField< vector, volMesh > &, const fvPatchFieldMapper &)
 
virtual tmp< fvPatchVectorFieldclone () const
 Construct and return a clone. More...
 
 adjointOutletVelocityFluxFvPatchVectorField (const adjointOutletVelocityFluxFvPatchVectorField &, 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 bool assignable () const
 Return true: Allow adjoint solvers to obtain the outlet phia. More...
 
virtual void manipulateMatrix (fvMatrix< vector > &matrix)
 add source term in the first cells off the wall due to adjoint WF More...
 
virtual void updateCoeffs ()
 Update the coefficients associated with the patch field. More...
 
virtual tmp< Field< vector > > valueInternalCoeffs (const tmp< scalarField > &) const
 
virtual tmp< Field< vector > > valueBoundaryCoeffs (const tmp< scalarField > &) const
 
virtual tmp< Field< vector > > gradientBoundaryCoeffs () const
 
virtual tmp< Field< vector > > gradientInternalCoeffs () const
 
virtual void write (Ostream &) const
 Write. More...
 
virtual void operator= (const fvPatchField< vector > &pvf)
 
- 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

An outlet boundary condition for patches in which the primal flow exhibits recirculation. Adds the contribution of the objective as an adjoint momentum flux directly to the PDEs, without the need to first compute an adjoint outlet velocity, circumventing thus the division with (almost) zero that manifests in case of primal flow recirculation.

Source files

Definition at line 60 of file adjointOutletVelocityFluxFvPatchVectorField.H.

Constructor & Destructor Documentation

◆ adjointOutletVelocityFluxFvPatchVectorField() [1/4]

Construct from patch and internal field.

Definition at line 37 of file adjointOutletVelocityFluxFvPatchVectorField.C.

◆ adjointOutletVelocityFluxFvPatchVectorField() [2/4]

Construct from patch, internal field and dictionary.

Definition at line 63 of file adjointOutletVelocityFluxFvPatchVectorField.C.

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

Here is the call graph for this function:

◆ adjointOutletVelocityFluxFvPatchVectorField() [3/4]

◆ adjointOutletVelocityFluxFvPatchVectorField() [4/4]

Construct as copy setting internal field reference.

Definition at line 81 of file adjointOutletVelocityFluxFvPatchVectorField.C.

Member Function Documentation

◆ TypeName()

TypeName ( "adjointOutletVelocityFlux"  )

Runtime type information.

◆ clone() [1/2]

virtual tmp< fvPatchVectorField > clone ( ) const
inlinevirtual

Construct and return a clone.

Definition at line 101 of file adjointOutletVelocityFluxFvPatchVectorField.H.

◆ clone() [2/2]

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

Construct and return a clone setting internal field reference.

Definition at line 117 of file adjointOutletVelocityFluxFvPatchVectorField.H.

◆ assignable()

virtual bool assignable ( ) const
inlinevirtual

Return true: Allow adjoint solvers to obtain the outlet phia.

value through HbyA

Definition at line 134 of file adjointOutletVelocityFluxFvPatchVectorField.H.

◆ manipulateMatrix()

void manipulateMatrix ( fvMatrix< vector > &  matrix)
virtual

add source term in the first cells off the wall due to adjoint WF

Definition at line 95 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References addProfiling, forAll, SphericalTensor< scalar >::oneThirdI, fvMatrix< Type >::source(), and Foam::tr().

Here is the call graph for this function:

◆ updateCoeffs()

void updateCoeffs ( )
virtual

Update the coefficients associated with the patch field.

Definition at line 149 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References Foam::operator==().

Here is the call graph for this function:

◆ valueInternalCoeffs()

Foam::tmp< Foam::Field< Foam::vector > > valueInternalCoeffs ( const tmp< scalarField > &  ) const
virtual

Return the matrix diagonal coefficients corresponding to the evaluation of the value of this patchField with given weights

Definition at line 170 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References Foam::New(), and Foam::Zero.

Here is the call graph for this function:

◆ valueBoundaryCoeffs()

Foam::tmp< Foam::Field< Foam::vector > > valueBoundaryCoeffs ( const tmp< scalarField > &  ) const
virtual

Return the matrix source coefficients corresponding to the evaluation of the value of this patchField with given weights

Definition at line 180 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References Foam::New(), and Foam::Zero.

Here is the call graph for this function:

◆ gradientBoundaryCoeffs()

Foam::tmp< Foam::Field< Foam::vector > > gradientBoundaryCoeffs ( ) const
virtual

Return the matrix source coefficients corresponding to the evaluation of the gradient of this patchField

Definition at line 190 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References Foam::New(), and Foam::Zero.

Here is the call graph for this function:

◆ gradientInternalCoeffs()

Foam::tmp< Foam::Field< Foam::vector > > gradientInternalCoeffs ( ) const
virtual

Return the matrix diagonal coefficients corresponding to the evaluation of the gradient of this patchField

Definition at line 198 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References Foam::New(), and Foam::Zero.

Here is the call graph for this function:

◆ write()

void write ( Ostream os) const
virtual

Write.

Definition at line 205 of file adjointOutletVelocityFluxFvPatchVectorField.C.

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

Here is the call graph for this function:

◆ operator=()

void operator= ( const fvPatchField< vector > &  pvf)
virtual

Definition at line 218 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References fvPatchField< Type >::operator=().

Here is the call graph for this function:

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