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...
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< fvPatchVectorField > | clone () const |
Construct and return a clone. More... | |
adjointOutletVelocityFluxFvPatchVectorField (const adjointOutletVelocityFluxFvPatchVectorField &, const DimensionedField< vector, volMesh > &) | |
Construct as copy setting internal field reference. More... | |
virtual tmp< fvPatchVectorField > | clone (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 word & | objectiveManagerName () const |
Return objectiveManager name. More... | |
const word & | adjointSolverName () const |
Return adjointSolverName. More... | |
const word & | simulationType () const |
Return the simulationType. More... | |
void | setBoundaryContributionPtr () |
Set the ptr to the correct boundaryAdjointContribution. More... | |
boundaryAdjointContribution & | getBoundaryAdjContribution () |
Get boundaryContribution. More... | |
const ATCModel & | getATC () 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 fvPatch & | patch_ |
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< boundaryAdjointContribution > | boundaryContrPtr_ |
autoPtr< bool > | addATCUaGradUTerm_ |
Whether to add the extra term from the UaGradU formulation. More... | |
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.
Definition at line 60 of file adjointOutletVelocityFluxFvPatchVectorField.H.
adjointOutletVelocityFluxFvPatchVectorField | ( | const fvPatch & | p, |
const DimensionedField< vector, volMesh > & | iF | ||
) |
Construct from patch and internal field.
Definition at line 37 of file adjointOutletVelocityFluxFvPatchVectorField.C.
adjointOutletVelocityFluxFvPatchVectorField | ( | const fvPatch & | p, |
const DimensionedField< vector, volMesh > & | iF, | ||
const dictionary & | dict | ||
) |
Construct from patch, internal field and dictionary.
Definition at line 63 of file adjointOutletVelocityFluxFvPatchVectorField.C.
References dict, p, and UList< T >::size().
adjointOutletVelocityFluxFvPatchVectorField | ( | const adjointOutletVelocityFluxFvPatchVectorField & | ptf, |
const fvPatch & | p, | ||
const DimensionedField< vector, volMesh > & | iF, | ||
const fvPatchFieldMapper & | mapper | ||
) |
Construct by mapping given adjointOutletVelocityFluxFvPatchVectorField onto a new patch
Definition at line 49 of file adjointOutletVelocityFluxFvPatchVectorField.C.
adjointOutletVelocityFluxFvPatchVectorField | ( | const adjointOutletVelocityFluxFvPatchVectorField & | pivpvf, |
const DimensionedField< vector, volMesh > & | iF | ||
) |
Construct as copy setting internal field reference.
Definition at line 81 of file adjointOutletVelocityFluxFvPatchVectorField.C.
TypeName | ( | "adjointOutletVelocityFlux" | ) |
Runtime type information.
|
inlinevirtual |
Construct and return a clone.
Definition at line 101 of file adjointOutletVelocityFluxFvPatchVectorField.H.
|
inlinevirtual |
Construct and return a clone setting internal field reference.
Definition at line 117 of file adjointOutletVelocityFluxFvPatchVectorField.H.
|
inlinevirtual |
Return true: Allow adjoint solvers to obtain the outlet phia.
value through HbyA
Definition at line 134 of file adjointOutletVelocityFluxFvPatchVectorField.H.
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().
|
virtual |
Update the coefficients associated with the patch field.
Definition at line 149 of file adjointOutletVelocityFluxFvPatchVectorField.C.
References Foam::operator==().
|
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.
|
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.
|
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.
|
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.
|
virtual |
Write.
Definition at line 205 of file adjointOutletVelocityFluxFvPatchVectorField.C.
References os(), ObukhovLength::write(), and Ostream::writeEntry().
|
virtual |
Definition at line 218 of file adjointOutletVelocityFluxFvPatchVectorField.C.
References fvPatchField< Type >::operator=().