Calculation of adjoint based sensitivities at wall faces. More...
Public Member Functions | |
TypeName ("surface") | |
Runtime type information. More... | |
sensitivitySurface (const fvMesh &mesh, const dictionary &dict, incompressibleVars &primalVars, incompressibleAdjointVars &adjointVars, objectiveManager &objectiveManager) | |
Construct from components. More... | |
virtual | ~sensitivitySurface ()=default |
Destructor. More... | |
void | read () |
Read controls and update solver pointers if necessary. More... | |
virtual bool | readDict (const dictionary &dict) |
Read dict if changed. More... | |
void | computeDerivativesSize () |
Compute the number of faces on sensitivityPatchIDs_. More... | |
virtual void | accumulateIntegrand (const scalar dt) |
Accumulate sensitivity integrands. More... | |
virtual void | assembleSensitivities () |
Assemble sensitivities. More... | |
virtual void | clearSensitivities () |
Zero sensitivity fields and their constituents. More... | |
autoPtr< adjointEikonalSolver > & | getAdjointEikonalSolver () |
Get adjoint eikonal solver. More... | |
virtual void | write (const word &baseName=word::null) |
Write sensitivity maps. More... | |
bool | getIncludeObjective () const |
Get access to the includeObjective bool. More... | |
bool | getIncludeSurfaceArea () const |
Get access to the includeSurfaceArea bool. More... | |
void | setIncludeObjective (const bool includeObjective) |
Set includeObjective bool. More... | |
void | setIncludeSurfaceArea (const bool includeSurfaceArea) |
Set includeSurfaceArea bool. More... | |
Public Member Functions inherited from adjointSensitivity | |
TypeName ("adjointSensitivity") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, adjointSensitivity, dictionary,(const fvMesh &mesh, const dictionary &dict, incompressibleVars &primalVars, incompressibleAdjointVars &adjointVars, objectiveManager &objectiveManager),(mesh, dict, primalVars, adjointVars, objectiveManager)) | |
adjointSensitivity (const fvMesh &mesh, const dictionary &dict, incompressibleVars &primalVars, incompressibleAdjointVars &adjointVars, objectiveManager &objectiveManager) | |
Construct from components. More... | |
virtual | ~adjointSensitivity ()=default |
Destructor. More... | |
virtual const scalarField & | calculateSensitivities () |
Calculates and returns sensitivity fields. More... | |
const scalarField & | getSensitivities () const |
Returns the sensitivity fields. More... | |
tmp< volTensorField > | computeGradDxDbMultiplier () |
tmp< volVectorField > | adjointMeshMovementSource () |
Compute source term for adjoint mesh movement equation. More... | |
Public Member Functions inherited from sensitivity | |
TypeName ("sensitivity") | |
Runtime type information. More... | |
sensitivity (const fvMesh &mesh, const dictionary &dict) | |
Construct from components. More... | |
virtual | ~sensitivity ()=default |
Destructor. More... | |
const dictionary & | dict () const |
Return the construction dictionary. More... | |
Protected Member Functions | |
void | addGeometricSens () |
void | setSuffixName () |
Set suffix name for sensitivity fields. More... | |
Protected Attributes | |
bool | includeSurfaceArea_ |
Include surface area in sens computation. More... | |
bool | includePressureTerm_ |
Include the adjoint pressure term in sens computation. More... | |
bool | includeGradStressTerm_ |
Include the term containing the grad of the stress at the boundary. More... | |
bool | includeTransposeStresses_ |
Include the transpose part of the adjoint stresses. More... | |
bool | useSnGradInTranposeStresses_ |
Use snGrad in the transpose part of the adjoint stresses. More... | |
bool | includeDivTerm_ |
Include the term from the deviatoric part of the stresses. More... | |
bool | includeDistance_ |
Include distance variation in sens computation. More... | |
bool | includeMeshMovement_ |
Include mesh movement variation in sens computation. More... | |
bool | includeObjective_ |
Include terms directly emerging from the objective function. More... | |
bool | writeGeometricInfo_ |
Write geometric info for use by external programs. More... | |
autoPtr< adjointEikonalSolver > | eikonalSolver_ |
autoPtr< adjointMeshMovementSolver > | meshMovementSolver_ |
autoPtr< volVectorField > | nfOnPatchPtr_ |
autoPtr< volVectorField > | SfOnPatchPtr_ |
autoPtr< volVectorField > | CfOnPatchPtr_ |
Protected Attributes inherited from adjointSensitivity | |
scalarField | derivatives_ |
incompressibleVars & | primalVars_ |
incompressibleAdjointVars & | adjointVars_ |
objectiveManager & | objectiveManager_ |
Protected Attributes inherited from sensitivity | |
const fvMesh & | mesh_ |
dictionary | dict_ |
autoPtr< volScalarField > | fieldSensPtr_ |
Additional Inherited Members | |
Static Public Member Functions inherited from adjointSensitivity | |
static autoPtr< adjointSensitivity > | New (const fvMesh &mesh, const dictionary &dict, incompressibleVars &primalVars, incompressibleAdjointVars &adjointVars, objectiveManager &objectiveManager) |
Return a reference to the selected turbulence model. More... | |
Calculation of adjoint based sensitivities at wall faces.
Definition at line 59 of file sensitivitySurfaceIncompressible.H.
sensitivitySurface | ( | const fvMesh & | mesh, |
const dictionary & | dict, | ||
incompressibleVars & | primalVars, | ||
incompressibleAdjointVars & | adjointVars, | ||
objectiveManager & | objectiveManager | ||
) |
Construct from components.
Definition at line 220 of file sensitivitySurfaceIncompressible.C.
References IOobject::AUTO_WRITE, mesh, IOobject::NO_READ, Foam::read(), and VectorSpace< Vector< Cmpt >, Cmpt, 3 >::zero.
|
virtualdefault |
Destructor.
|
protected |
Add sensitivities from dSd/db and dnf/db computed at points and mapped to faces
Definition at line 55 of file sensitivitySurfaceIncompressible.C.
References fvMesh::boundary(), polyMesh::boundaryMesh(), polyMesh::faces(), forAll, objectiveManager::getObjectiveFunctions(), Tensor< Cmpt >::I, sensitivitySurface::includeObjective_, deltaBoundary::makeFaceCentresAndAreas_d(), sensitivity::mesh_, primitiveMesh::nPoints(), adjointSensitivity::objectiveManager_, p, Foam::foamVersion::patch, face::points(), polyMesh::points(), syncTools::syncPointList(), VectorSpace< Vector< Cmpt >, Cmpt, 3 >::zero, and Foam::Zero.
Referenced by sensitivitySurface::accumulateIntegrand().
|
protected |
Set suffix name for sensitivity fields.
Definition at line 196 of file sensitivitySurfaceIncompressible.C.
References adjointSensitivity::adjointVars_, sensitivity::dict(), sensitivitySurface::includeMeshMovement_, word::null, shapeSensitivitiesBase::setSuffix(), and variablesSet::solverName().
Referenced by sensitivitySurface::write().
TypeName | ( | "surface" | ) |
Runtime type information.
void read | ( | ) |
Read controls and update solver pointers if necessary.
Definition at line 324 of file sensitivitySurfaceIncompressible.C.
References incompressibleAdjointVars::adjointTurbulence(), adjointSensitivity::adjointVars_, sensitivity::dict(), sensitivity::dict_, sensitivitySurface::eikonalSolver_, dictionary::getOrDefault(), sensitivitySurface::includeDistance_, sensitivitySurface::includeDivTerm_, sensitivitySurface::includeGradStressTerm_, sensitivitySurface::includeMeshMovement_, sensitivitySurface::includeObjective_, sensitivitySurface::includePressureTerm_, sensitivitySurface::includeSurfaceArea_, sensitivitySurface::includeTransposeStresses_, sensitivity::mesh_, sensitivitySurface::meshMovementSolver_, adjointSensitivity::primalVars_, incompressibleVars::RASModelVariables(), sensitivitySurface::useSnGradInTranposeStresses_, and sensitivitySurface::writeGeometricInfo_.
Referenced by SIBase::read().
|
virtual |
Read dict if changed.
Reimplemented from sensitivity.
Definition at line 382 of file sensitivitySurfaceIncompressible.C.
References sensitivity::dict(), sensitivitySurface::eikonalSolver_, sensitivitySurface::meshMovementSolver_, and sensitivity::readDict().
Referenced by SIBase::readDict().
|
virtual |
Compute the number of faces on sensitivityPatchIDs_.
Reimplemented from sensitivity.
Definition at line 403 of file sensitivitySurfaceIncompressible.C.
References fvMesh::boundary(), adjointSensitivity::derivatives_, and sensitivity::mesh_.
|
virtual |
Accumulate sensitivity integrands.
Implements adjointSensitivity.
Definition at line 414 of file sensitivitySurfaceIncompressible.C.
References sensitivitySurface::addGeometricSens(), incompressibleAdjointVars::adjointTurbulence(), adjointSensitivity::adjointVars_, fvMesh::boundary(), GeometricField< Type, PatchField, GeoMesh >::boundaryField(), GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), GeometricField< Type, PatchField, GeoMesh >::component(), DebugInfo, sensitivitySurface::eikonalSolver_, Foam::endl(), forAll, objectiveManager::getObjectiveFunctions(), Foam::fvc::grad(), sensitivitySurface::includeDistance_, sensitivitySurface::includeDivTerm_, sensitivitySurface::includeGradStressTerm_, sensitivitySurface::includeMeshMovement_, sensitivitySurface::includeObjective_, sensitivitySurface::includePressureTerm_, sensitivitySurface::includeTransposeStresses_, Foam::Info, incompressibleVars::laminarTransport(), sensitivity::mesh_, sensitivitySurface::meshMovementSolver_, singlePhaseTransportModel::nu(), adjointSensitivity::objectiveManager_, p, incompressibleVars::p(), incompressibleAdjointMeanFlowVars::pa(), Foam::foamVersion::patch, adjointSensitivity::primalVars_, incompressibleVars::RASModelVariables(), Foam::T(), U, incompressibleVars::U(), incompressibleAdjointMeanFlowVars::Ua(), sensitivitySurface::useSnGradInTranposeStresses_, and Foam::Zero.
Referenced by SIBase::accumulateIntegrand().
|
virtual |
Assemble sensitivities.
Implements adjointSensitivity.
Definition at line 619 of file sensitivitySurfaceIncompressible.C.
References fvMesh::boundary(), sensitivitySurface::CfOnPatchPtr_, adjointSensitivity::derivatives_, sensitivitySurface::eikonalSolver_, forAll, sensitivitySurface::includeDistance_, sensitivitySurface::includeMeshMovement_, sensitivitySurface::includeSurfaceArea_, sensitivity::mesh_, sensitivitySurface::meshMovementSolver_, sensitivitySurface::nfOnPatchPtr_, Foam::foamVersion::patch, autoPtr< T >::reset(), sensitivitySurface::SfOnPatchPtr_, and sensitivitySurface::writeGeometricInfo_.
Referenced by sensitivityBezier::assembleSensitivities(), and sensitivityVolBSplines::assembleSensitivities().
|
virtual |
Zero sensitivity fields and their constituents.
Reimplemented from adjointSensitivity.
Definition at line 706 of file sensitivitySurfaceIncompressible.C.
References adjointSensitivity::clearSensitivities(), shapeSensitivitiesBase::clearSensitivities(), sensitivitySurface::eikonalSolver_, sensitivitySurface::includeDistance_, sensitivitySurface::includeMeshMovement_, and sensitivitySurface::meshMovementSolver_.
Referenced by SIBase::clearSensitivities().
autoPtr< adjointEikonalSolver > & getAdjointEikonalSolver | ( | ) |
Get adjoint eikonal solver.
Definition at line 723 of file sensitivitySurfaceIncompressible.C.
References sensitivitySurface::eikonalSolver_.
|
virtual |
Write sensitivity maps.
Reimplemented from adjointSensitivity.
Definition at line 729 of file sensitivitySurfaceIncompressible.C.
References sensitivitySurface::CfOnPatchPtr_, sensitivitySurface::nfOnPatchPtr_, sensitivitySurface::setSuffixName(), sensitivitySurface::SfOnPatchPtr_, adjointSensitivity::write(), shapeSensitivitiesBase::write(), and sensitivitySurface::writeGeometricInfo_.
Referenced by SIBase::write().
|
inline |
Get access to the includeObjective bool.
Definition at line 38 of file sensitivitySurfaceIncompressibleI.H.
References sensitivitySurface::includeObjective_.
Referenced by SIBase::read().
|
inline |
Get access to the includeSurfaceArea bool.
Definition at line 44 of file sensitivitySurfaceIncompressibleI.H.
References sensitivitySurface::includeSurfaceArea_.
|
inline |
Set includeObjective bool.
Definition at line 51 of file sensitivitySurfaceIncompressibleI.H.
Referenced by SIBase::read().
|
inline |
Set includeSurfaceArea bool.
Definition at line 60 of file sensitivitySurfaceIncompressibleI.H.
Referenced by SIBase::read().
|
protected |
Include surface area in sens computation.
Definition at line 70 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), sensitivitySurface::getIncludeSurfaceArea(), and sensitivitySurface::read().
|
protected |
Include the adjoint pressure term in sens computation.
Definition at line 73 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), and sensitivitySurface::read().
|
protected |
Include the term containing the grad of the stress at the boundary.
Definition at line 76 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), and sensitivitySurface::read().
|
protected |
Include the transpose part of the adjoint stresses.
Definition at line 79 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), and sensitivitySurface::read().
|
protected |
Use snGrad in the transpose part of the adjoint stresses.
Definition at line 82 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), and sensitivitySurface::read().
|
protected |
Include the term from the deviatoric part of the stresses.
Definition at line 85 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), and sensitivitySurface::read().
|
protected |
Include distance variation in sens computation.
Definition at line 88 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurface::assembleSensitivities(), sensitivitySurface::clearSensitivities(), and sensitivitySurface::read().
|
protected |
Include mesh movement variation in sens computation.
Definition at line 91 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurface::assembleSensitivities(), sensitivitySurface::clearSensitivities(), sensitivitySurface::read(), and sensitivitySurface::setSuffixName().
|
protected |
Include terms directly emerging from the objective function.
Definition at line 94 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurface::addGeometricSens(), sensitivitySurface::getIncludeObjective(), and sensitivitySurface::read().
|
protected |
Write geometric info for use by external programs.
Definition at line 97 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), sensitivitySurface::read(), and sensitivitySurface::write().
|
protected |
Definition at line 99 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurface::assembleSensitivities(), sensitivitySurface::clearSensitivities(), sensitivitySurface::getAdjointEikonalSolver(), sensitivitySurface::read(), and sensitivitySurface::readDict().
|
protected |
Definition at line 101 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurface::assembleSensitivities(), sensitivitySurface::clearSensitivities(), sensitivitySurface::read(), and sensitivitySurface::readDict().
|
protected |
Definition at line 104 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), and sensitivitySurface::write().
|
protected |
Definition at line 105 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), and sensitivitySurface::write().
|
protected |
Definition at line 106 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), and sensitivitySurface::write().