Class for computing sensitivity derivatives using the Enhanced Surface Integral (E-SI) formulation, when a parameterization scheme is inluded through the design variables. Sensitivity maps are implemented in class sensitivitySurfacePoints. More...
Public Member Functions | |
TypeName ("shapeESI") | |
Runtime type information. More... | |
sensitivityShapeESI (const fvMesh &mesh, const dictionary &dict, adjointSolver &adjointSolver) | |
Construct from components. More... | |
virtual | ~sensitivityShapeESI ()=default |
Destructor. More... | |
virtual bool | readDict (const dictionary &dict) |
Read dict if changed. More... | |
virtual void | assembleSensitivities (autoPtr< designVariables > &designVars) |
Assemble sensitivities. More... | |
Public Member Functions inherited from ShapeSensitivitiesBase | |
TypeName ("ShapeSensitivitiesBase") | |
Runtime type information. More... | |
ShapeSensitivitiesBase (const fvMesh &mesh, const dictionary &dict, adjointSolver &adjointSolver) | |
Construct from components. More... | |
virtual | ~ShapeSensitivitiesBase ()=default |
Destructor. More... | |
const labelHashSet & | sensitivityPatchIDs () const |
Get patch IDs on which sensitivities are computed. More... | |
void | setSensitivityPatchIDs (const labelHashSet &sensPatchIDs) |
Overwrite sensitivityPatchIDs. More... | |
virtual const labelHashSet & | geometryVariationIntegrationPatches () const |
Return set of patches on which to compute direct sensitivities. More... | |
virtual void | accumulateIntegrand (const scalar dt) |
Accumulate sensitivity integrands. More... | |
void | clearSensitivities () |
Zero sensitivity fields and their constituents. More... | |
virtual void | write (const word &baseName=word::null) |
Write sensitivity fields. More... | |
tmp< volVectorField > | getWallFaceSensVec () |
Get wall face sensitivity vectors field. More... | |
tmp< volScalarField > | getWallFaceSensNormal () |
Get wall face sensitivity projected to normal field. More... | |
tmp< volVectorField > | getWallFaceSensNormalVec () |
Get wall face normal sens as vectors field. More... | |
tmp< pointVectorField > | getWallPointSensVec () |
Get wall point sensitivity vectors field. More... | |
tmp< pointScalarField > | getWallPointSensNormal () |
Get wall point sensitivity projected to normal field. More... | |
tmp< pointVectorField > | getWallPointSensNormalVec () |
Get wall point sens as vectors field. More... | |
virtual const boundaryVectorField & | getWallFaceSensVecBoundary () const |
Get wall face sensitivity vectors field. More... | |
virtual const boundaryScalarField & | getWallFaceSensNormalBoundary () const |
Get wall face sensitivity projected to normal field. More... | |
virtual const boundaryVectorField & | getWallFaceSensNormalVecBoundary () const |
Get wall face normal sens as vectors field. More... | |
Public Member Functions inherited from adjointSensitivity | |
TypeName ("adjointSensitivity") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, adjointSensitivity, dictionary,(const fvMesh &mesh, const dictionary &dict, adjointSolver &adjointSolver),(mesh, dict, adjointSolver)) | |
adjointSensitivity (const fvMesh &mesh, const dictionary &dict, adjointSolver &adjointSolver) | |
Construct from components. More... | |
virtual | ~adjointSensitivity ()=default |
Destructor. More... | |
const adjointSolver & | getAdjointSolver () const |
Const access to adjoint solver. More... | |
adjointSolver & | getAdjointSolver () |
Non-const access to adjoint solver. More... | |
bool | includeDistance () const |
Should the adjoint eikonal PDE should be solved. More... | |
autoPtr< adjointEikonalSolver > & | getAdjointEikonalSolver () |
Return the adjoint eikonal solver. More... | |
autoPtr< adjointMeshMovementSolver > & | getAdjointMeshMovementSolver () |
Return the adjoint eikonal solver. More... | |
void | setSuffix (const word &suffix) |
Set suffix. More... | |
const word & | getSuffix () const |
Get suffix. More... | |
virtual bool | computeDxDbInternalField () const |
Should the parameterization compute the internalField of dxdb. More... | |
virtual const scalarField & | calculateSensitivities (autoPtr< designVariables > &designVars) |
Calculates and returns sensitivity fields. More... | |
const scalarField & | getSensitivities () const |
Returns the sensitivity fields. More... | |
const autoPtr< volTensorField > & | gradDxDbMult () const |
autoPtr< volTensorField > & | gradDxDbMult () |
const autoPtr< scalarField > & | divDxDbMult () const |
const autoPtr< boundaryVectorField > & | dxdbMult () const |
const autoPtr< boundaryVectorField > & | dSfdbMult () const |
const autoPtr< boundaryVectorField > & | dnfdbMult () const |
const autoPtr< boundaryVectorField > & | dxdbDirectMult () const |
const autoPtr< pointBoundaryVectorField > & | pointDxDbDirectMult () const |
const autoPtr< boundaryVectorField > & | bcDxDbMult () const |
const autoPtr< vectorField > & | optionsDxDbMult () const |
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 fvMesh & | mesh () const |
Return reference to mesh. More... | |
const dictionary & | dict () const |
Return the construction dictionary. More... | |
const autoPtr< volScalarField > & | fieldSensPtr () const |
Get the fieldSensPtr. More... | |
Protected Member Functions | |
void | computeDxDbMult () |
Compute dxdbMult from its various components. More... | |
Protected Member Functions inherited from ShapeSensitivitiesBase | |
void | allocateEikonalSolver () |
Allocate the adjoint eikonal solver. More... | |
bool | hasMultiplier (bool(objective::*hasFunction)() const) |
Check if any of the available objective has a certain multiplier, provided through a function object. More... | |
template<class Type > | |
void | constructAndWriteSensitivityField (const autoPtr< typename GeometricField< Type, fvPatchField, volMesh >::Boundary > &sensFieldPtr, const word &name) const |
Constructs volField based on boundaryField and writes it. More... | |
template<class Type > | |
void | constructAndWriteSensitivtyPointField (const autoPtr< List< Field< Type >>> &sensFieldPtr, const word &name) const |
Constructs pointField based on boundaryField and writes it. More... | |
template<class Type > | |
tmp< GeometricField< Type, fvPatchField, volMesh > > | constructVolSensitivtyField (const autoPtr< typename GeometricField< Type, fvPatchField, volMesh >::Boundary > &sensFieldPtr, const word &name) const |
Constructs volField based on boundaryField and writes it. More... | |
void | writeFaceBasedSens () const |
Write face-based sensitivities, if present. More... | |
void | writePointBasedSens () const |
Write point-based sensitivities, if present. More... | |
void | clearSurfaceFields () |
Clear surface/point fields. More... | |
void | allocateMultipliers () |
Allocate multiplier fields. More... | |
void | clearMultipliers () |
Clear multipliers. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from adjointSensitivity | |
static autoPtr< adjointSensitivity > | New (const fvMesh &mesh, const dictionary &dict, adjointSolver &adjointSolver) |
Return a reference to the selected turbulence model. More... | |
Protected Attributes inherited from ShapeSensitivitiesBase | |
labelHashSet | sensitivityPatchIDs_ |
Patches on which to compute shape sensitivities. More... | |
bool | writeAllSurfaceFiles_ |
Whether to write all surface sensitivity fields. More... | |
autoPtr< boundaryVectorField > | wallFaceSensVecPtr_ |
Wall face sens w.r.t. (x,y.z) More... | |
autoPtr< boundaryScalarField > | wallFaceSensNormalPtr_ |
Wall face sens projected to normal. More... | |
autoPtr< boundaryVectorField > | wallFaceSensNormalVecPtr_ |
Normal sens as vectors. More... | |
autoPtr< pointBoundaryVectorField > | wallPointSensVecPtr_ |
Wall point sens w.r.t. (x,y.z) More... | |
autoPtr< pointBoundaryScalarField > | wallPointSensNormalPtr_ |
Wall point sens projected to normal. More... | |
autoPtr< pointBoundaryVectorField > | wallPointSensNormalVecPtr_ |
Normal sens as vectors. More... | |
Protected Attributes inherited from adjointSensitivity | |
adjointSolver & | adjointSolver_ |
Reference to the underlaying adjoint solver. More... | |
scalarField | derivatives_ |
The sensitivity derivative values. More... | |
word | suffix_ |
Append this word to files related to the sensitivities. More... | |
bool | includeDistance_ |
Include distance variation in sensitivity computations. More... | |
autoPtr< adjointEikonalSolver > | eikonalSolver_ |
Adjoint eikonal equation solver. More... | |
autoPtr< adjointMeshMovementSolver > | adjointMeshMovementSolver_ |
Adjoint grid displacement solver. More... | |
autoPtr< volTensorField > | gradDxDbMult_ |
Multiplier of grad(dx/b) More... | |
autoPtr< scalarField > | divDxDbMult_ |
Multiplier of div(dx/db) More... | |
autoPtr< boundaryVectorField > | dxdbMult_ |
Multiplier of face dx/db. More... | |
autoPtr< boundaryVectorField > | dSfdbMult_ |
Multiplier of dSf/db. More... | |
autoPtr< boundaryVectorField > | dnfdbMult_ |
Multiplier of dnf/db. More... | |
autoPtr< boundaryVectorField > | dxdbDirectMult_ |
Multiplier of dCf/db, found in the objective function. More... | |
autoPtr< pointBoundaryVectorField > | pointDxDbDirectMult_ |
Multiplier of dx/db computed at points, found in the objective function. More... | |
autoPtr< boundaryVectorField > | bcDxDbMult_ |
Multiplier of dx/db, coming from boundary conditions that depend on the geometry, like rotatingWallVelocity. More... | |
autoPtr< vectorField > | optionsDxDbMult_ |
dx/db multiplier coming from fvOptions More... | |
Protected Attributes inherited from sensitivity | |
const fvMesh & | mesh_ |
dictionary | dict_ |
bool | writeFieldSens_ |
autoPtr< volScalarField > | fieldSensPtr_ |
Class for computing sensitivity derivatives using the Enhanced Surface Integral (E-SI) formulation, when a parameterization scheme is inluded through the design variables. Sensitivity maps are implemented in class sensitivitySurfacePoints.
Definition at line 51 of file sensitivityShapeESI.H.
sensitivityShapeESI | ( | const fvMesh & | mesh, |
const dictionary & | dict, | ||
adjointSolver & | adjointSolver | ||
) |
Construct from components.
Definition at line 87 of file sensitivityShapeESI.C.
References dict, dictionary::getOrDefault(), objective::hasDivDxDbMult(), and mesh.
|
virtualdefault |
Destructor.
|
protected |
Compute dxdbMult from its various components.
Definition at line 44 of file sensitivityShapeESI.C.
References adjointSensitivity::adjointMeshMovementSolver_, adjointSensitivity::adjointSolver_, fvMesh::boundary(), adjointSensitivity::dxdbDirectMult_, adjointSensitivity::dxdbMult_, adjointSensitivity::eikonalSolver_, Foam::endl(), ShapeSensitivitiesBase::geometryVariationIntegrationPatches(), objectiveManager::getObjectiveFunctions(), adjointSolver::getObjectiveManager(), adjointSensitivity::gradDxDbMult_, Foam::Info, sensitivity::mesh_, and Foam::foamVersion::patch.
TypeName | ( | "shapeESI" | ) |
Runtime type information.
|
virtual |
Read dict if changed.
Reimplemented from ShapeSensitivitiesBase.
Reimplemented in sensitivitySurfacePoints.
Definition at line 115 of file sensitivityShapeESI.C.
References dict, dictionary::getOrDefault(), and ShapeSensitivitiesBase::readDict().
Referenced by sensitivitySurfacePoints::readDict().
|
virtual |
Assemble sensitivities.
Solve the adjoint eikonal PDE and the adjoint grid displacement PDE, if needed, and assemble the sensitivities
Reimplemented from adjointSensitivity.
Reimplemented in sensitivitySurfacePoints, and sensitivitySurface.
Definition at line 145 of file sensitivityShapeESI.C.
References adjointSensitivity::assembleSensitivities().