Public Member Functions | List of all members
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:
Inheritance graph
[legend]
Collaboration diagram for adjointOutletVelocityFluxFvPatchVectorField:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("adjointOutletVelocityFlux")
 
 adjointOutletVelocityFluxFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &)
 
 adjointOutletVelocityFluxFvPatchVectorField (const fvPatch &, const DimensionedField< vector, volMesh > &, const dictionary &)
 
 adjointOutletVelocityFluxFvPatchVectorField (const adjointOutletVelocityFluxFvPatchVectorField &, const fvPatch &, const DimensionedField< vector, volMesh > &, const fvPatchFieldMapper &)
 
virtual tmp< fvPatchVectorFieldclone () const
 
 adjointOutletVelocityFluxFvPatchVectorField (const adjointOutletVelocityFluxFvPatchVectorField &, const DimensionedField< vector, volMesh > &)
 
virtual tmp< fvPatchVectorFieldclone (const DimensionedField< vector, volMesh > &iF) const
 
virtual bool assignable () const
 
virtual void manipulateMatrix (fvMatrix< vector > &matrix)
 
virtual void updateCoeffs ()
 
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
 
virtual void operator= (const fvPatchField< vector > &pvf)
 
- Public Member Functions inherited from adjointBoundaryCondition< Type >
 TypeName ("adjointBoundaryCondition")
 
 adjointBoundaryCondition (const fvPatch &p, const DimensionedField< Type, volMesh > &iF, const word &solverName)
 
 adjointBoundaryCondition (const adjointBoundaryCondition< Type > &)
 
virtual ~adjointBoundaryCondition ()=default
 
const wordobjectiveManagerName () const
 
const wordadjointSolverName () const
 
const wordsimulationType () const
 
void setBoundaryContributionPtr ()
 
boundaryAdjointContributiongetBoundaryAdjContribution ()
 
const ATCModelgetATC () const
 
virtual tmp< Field< typename Foam::outerProduct< Foam::vector, Type >::type > > dxdbMult () const
 

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)
 
bool addATCUaGradUTerm ()
 
- Protected Attributes inherited from adjointBoundaryCondition< Type >
const fvPatchpatch_
 
word managerName_
 
word adjointSolverName_
 
word simulationType_
 
autoPtr< boundaryAdjointContributionboundaryContrPtr_
 
autoPtr< booladdATCUaGradUTerm_
 

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 56 of file adjointOutletVelocityFluxFvPatchVectorField.H.

Constructor & Destructor Documentation

◆ adjointOutletVelocityFluxFvPatchVectorField() [1/4]

Definition at line 32 of file adjointOutletVelocityFluxFvPatchVectorField.C.

Referenced by adjointOutletVelocityFluxFvPatchVectorField::clone().

Here is the caller graph for this function:

◆ adjointOutletVelocityFluxFvPatchVectorField() [2/4]

Definition at line 58 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References dict, and p.

◆ adjointOutletVelocityFluxFvPatchVectorField() [3/4]

◆ adjointOutletVelocityFluxFvPatchVectorField() [4/4]

Member Function Documentation

◆ TypeName()

TypeName ( "adjointOutletVelocityFlux"  )

◆ clone() [1/2]

virtual tmp<fvPatchVectorField> clone ( ) const
inlinevirtual

◆ clone() [2/2]

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

◆ assignable()

virtual bool assignable ( ) const
inlinevirtual

◆ manipulateMatrix()

void manipulateMatrix ( fvMatrix< vector > &  matrix)
virtual

Definition at line 89 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References forAll, Foam::oneThirdI, Foam::foamVersion::patch, fvMatrix::source(), and Foam::tr().

Here is the call graph for this function:

◆ updateCoeffs()

void updateCoeffs ( )
virtual

Definition at line 137 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References adjointBoundaryCondition< Type >::boundaryContrPtr_, Foam::operator==(), and Foam::foamVersion::patch.

Here is the call graph for this function:

◆ valueInternalCoeffs()

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

Definition at line 159 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

Definition at line 169 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

Definition at line 179 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

Definition at line 187 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

Definition at line 194 of file adjointOutletVelocityFluxFvPatchVectorField.C.

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

Here is the call graph for this function:

◆ operator=()

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

Definition at line 207 of file adjointOutletVelocityFluxFvPatchVectorField.C.

References fvPatchField::operator=(), and Foam::foamVersion::patch.

Here is the call graph for this function:

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