Calculation of adjoint-based sensitivities at wall points using the E-SI formulation. More...
#include <sensitivitySurfacePoints.H>


Public Member Functions | |
| TypeName ("surfacePoints") | |
| Runtime type information. | |
| sensitivitySurfacePoints (const fvMesh &mesh, const dictionary &dict, adjointSolver &adjointSolver) | |
| Construct from components. | |
| virtual | ~sensitivitySurfacePoints ()=default |
| Destructor. | |
| void | read () |
| Read controls and update solver pointers if necessary. | |
| virtual bool | readDict (const dictionary &dict) |
| Read dict if changed. | |
| virtual const labelHashSet & | geometryVariationIntegrationPatches () const |
| Return set of patches on which to compute direct sensitivities. | |
| virtual void | assembleSensitivities (autoPtr< designVariables > &designVars) |
| Assemble sensitivities. | |
| virtual void | write (const word &baseName=word::null) |
| Write sensitivity fields. | |
| Public Member Functions inherited from sensitivityShapeESI | |
| TypeName ("shapeESI") | |
| Runtime type information. | |
| sensitivityShapeESI (const fvMesh &mesh, const dictionary &dict, adjointSolver &adjointSolver) | |
| Construct from components. | |
| virtual | ~sensitivityShapeESI ()=default |
| Destructor. | |
| Public Member Functions inherited from ShapeSensitivitiesBase | |
| TypeName ("ShapeSensitivitiesBase") | |
| Runtime type information. | |
| ShapeSensitivitiesBase (const fvMesh &mesh, const dictionary &dict, adjointSolver &adjointSolver) | |
| Construct from components. | |
| virtual | ~ShapeSensitivitiesBase ()=default |
| Destructor. | |
| const labelHashSet & | sensitivityPatchIDs () const |
| Get patch IDs on which sensitivities are computed. | |
| void | setSensitivityPatchIDs (const labelHashSet &sensPatchIDs) |
| Overwrite sensitivityPatchIDs. | |
| virtual void | accumulateIntegrand (const scalar dt) |
| Accumulate sensitivity integrands. | |
| void | clearSensitivities () |
| Zero sensitivity fields and their constituents. | |
| tmp< volVectorField > | getWallFaceSensVec () |
| Get wall face sensitivity vectors field. | |
| tmp< volScalarField > | getWallFaceSensNormal () |
| Get wall face sensitivity projected to normal field. | |
| tmp< volVectorField > | getWallFaceSensNormalVec () |
| Get wall face normal sens as vectors field. | |
| tmp< pointVectorField > | getWallPointSensVec () |
| Get wall point sensitivity vectors field. | |
| tmp< pointScalarField > | getWallPointSensNormal () |
| Get wall point sensitivity projected to normal field. | |
| tmp< pointVectorField > | getWallPointSensNormalVec () |
| Get wall point sens as vectors field. | |
| virtual const boundaryVectorField & | getWallFaceSensVecBoundary () const |
| Get wall face sensitivity vectors field. | |
| virtual const boundaryScalarField & | getWallFaceSensNormalBoundary () const |
| Get wall face sensitivity projected to normal field. | |
| virtual const boundaryVectorField & | getWallFaceSensNormalVecBoundary () const |
| Get wall face normal sens as vectors field. | |
| Public Member Functions inherited from adjointSensitivity | |
| TypeName ("adjointSensitivity") | |
| Runtime type information. | |
| 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. | |
| virtual | ~adjointSensitivity ()=default |
| Destructor. | |
| const adjointSolver & | getAdjointSolver () const |
| Const access to adjoint solver. | |
| adjointSolver & | getAdjointSolver () |
| Non-const access to adjoint solver. | |
| bool | includeDistance () const |
| Should the adjoint eikonal PDE should be solved. | |
| autoPtr< adjointEikonalSolver > & | getAdjointEikonalSolver () |
| Return the adjoint eikonal solver. | |
| autoPtr< adjointMeshMovementSolver > & | getAdjointMeshMovementSolver () |
| Return the adjoint eikonal solver. | |
| void | setSuffix (const word &suffix) |
| Set suffix. | |
| const word & | getSuffix () const |
| Get suffix. | |
| virtual bool | computeDxDbInternalField () const |
| Should the parameterization compute the internalField of dxdb. | |
| virtual const scalarField & | calculateSensitivities (autoPtr< designVariables > &designVars) |
| Calculates and returns sensitivity fields. | |
| const scalarField & | getSensitivities () const |
| Returns the sensitivity fields. | |
| 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. | |
| sensitivity (const fvMesh &mesh, const dictionary &dict) | |
| Construct from components. | |
| virtual | ~sensitivity ()=default |
| Destructor. | |
| const fvMesh & | mesh () const |
| Return reference to mesh. | |
| const dictionary & | dict () const |
| Return the construction dictionary. | |
| const autoPtr< volScalarField > & | fieldSensPtr () const |
| Get the fieldSensPtr. | |
Protected Member Functions | |
| labelHashSet | populateExtendedIDs () const |
| Set suffix name for sensitivity fields. | |
| void | finalisePointSensitivities () |
| Converts face sensitivities to point sensitivities and adds the ones directly computed in points (i.e. dSf/db and dnf/db). | |
| void | constructGlobalPointNormalsAndAreas (vectorField &pointNormals, scalarField &pointMagSf) |
| Construct globally correct point normals and point areas. | |
| void | setSuffixName () |
| Set suffix name for sensitivity fields. | |
| void | computePointDerivativesSize () |
| Allocate the proper size for the point-based sensitivities. | |
| Protected Member Functions inherited from sensitivityShapeESI | |
| void | computeDxDbMult () |
| Compute dxdbMult from its various components. | |
| Protected Member Functions inherited from ShapeSensitivitiesBase | |
| void | allocateEikonalSolver () |
| Allocate the adjoint eikonal solver. | |
| bool | hasMultiplier (bool(objective::*hasFunction)() const) |
| Check if any of the available objective has a certain multiplier, provided through a function object. | |
| 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. | |
| template<class Type> | |
| void | constructAndWriteSensitivtyPointField (const autoPtr< List< Field< Type > > > &sensFieldPtr, const word &name) const |
| Constructs pointField based on boundaryField and writes it. | |
| 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. | |
| void | writeFaceBasedSens () const |
| Write face-based sensitivities, if present. | |
| void | writePointBasedSens () const |
| Write point-based sensitivities, if present. | |
| void | clearSurfaceFields () |
| Clear surface/point fields. | |
| void | allocateMultipliers () |
| Allocate multiplier fields. | |
| void | clearMultipliers () |
| Clear multipliers. | |
Protected Attributes | |
| bool | writeGeometricInfo_ |
| Write geometric info for use by external programs. | |
| bool | includeSurfaceArea_ |
| Include surface area in sens computation. | |
| boolList | isSymmetryPoint_ |
| Is point belonging to a symmetry{Plane}. | |
| vectorField | symmPointNormal_ |
| Local point normal per symmetry point. | |
| labelHashSet | extendedPatchIDs_ |
| Extended patchIDs. | |
| Protected Attributes inherited from ShapeSensitivitiesBase | |
| labelHashSet | sensitivityPatchIDs_ |
| Patches on which to compute shape sensitivities. | |
| bool | writeAllSurfaceFiles_ |
| Whether to write all surface sensitivity fields. | |
| autoPtr< boundaryVectorField > | wallFaceSensVecPtr_ |
| Wall face sens w.r.t. (x,y.z). | |
| autoPtr< boundaryScalarField > | wallFaceSensNormalPtr_ |
| Wall face sens projected to normal. | |
| autoPtr< boundaryVectorField > | wallFaceSensNormalVecPtr_ |
| Normal sens as vectors. | |
| autoPtr< pointBoundaryVectorField > | wallPointSensVecPtr_ |
| Wall point sens w.r.t. (x,y.z). | |
| autoPtr< pointBoundaryScalarField > | wallPointSensNormalPtr_ |
| Wall point sens projected to normal. | |
| autoPtr< pointBoundaryVectorField > | wallPointSensNormalVecPtr_ |
| Normal sens as vectors. | |
| Protected Attributes inherited from adjointSensitivity | |
| adjointSolver & | adjointSolver_ |
| Reference to the underlaying adjoint solver. | |
| scalarField | derivatives_ |
| The sensitivity derivative values. | |
| word | suffix_ |
| Append this word to files related to the sensitivities. | |
| bool | includeDistance_ |
| Include distance variation in sensitivity computations. | |
| autoPtr< adjointEikonalSolver > | eikonalSolver_ |
| Adjoint eikonal equation solver. | |
| autoPtr< adjointMeshMovementSolver > | adjointMeshMovementSolver_ |
| Adjoint grid displacement solver. | |
| autoPtr< volTensorField > | gradDxDbMult_ |
| Multiplier of grad(dx/b). | |
| autoPtr< scalarField > | divDxDbMult_ |
| Multiplier of div(dx/db). | |
| autoPtr< boundaryVectorField > | dxdbMult_ |
| Multiplier of face dx/db. | |
| autoPtr< boundaryVectorField > | dSfdbMult_ |
| Multiplier of dSf/db. | |
| autoPtr< boundaryVectorField > | dnfdbMult_ |
| Multiplier of dnf/db. | |
| autoPtr< boundaryVectorField > | dxdbDirectMult_ |
| Multiplier of dCf/db, found in the objective function. | |
| autoPtr< pointBoundaryVectorField > | pointDxDbDirectMult_ |
| Multiplier of dx/db computed at points, found in the objective function. | |
| autoPtr< boundaryVectorField > | bcDxDbMult_ |
| Multiplier of dx/db, coming from boundary conditions that depend on the geometry, like rotatingWallVelocity. | |
| autoPtr< vectorField > | optionsDxDbMult_ |
| dx/db multiplier coming from fvOptions | |
| Protected Attributes inherited from sensitivity | |
| const fvMesh & | mesh_ |
| dictionary | dict_ |
| bool | writeFieldSens_ |
| autoPtr< volScalarField > | fieldSensPtr_ |
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. | |
Calculation of adjoint-based sensitivities at wall points using the E-SI formulation.
Definition at line 49 of file sensitivitySurfacePoints.H.
| sensitivitySurfacePoints | ( | const fvMesh & | mesh, |
| const dictionary & | dict, | ||
| adjointSolver & | adjointSolver ) |
Construct from components.
Definition at line 276 of file sensitivitySurfacePoints.C.
References computePointDerivativesSize(), Foam::createZeroBoundaryPointFieldPtr(), dict, Foam::endl(), extendedPatchIDs_, forAll, includeSurfaceArea_, Foam::Info, Foam::isA(), isSymmetryPoint_, mesh, sensitivity::mesh_, Foam::nl, nPoints, populateExtendedIDs(), pp(), read(), setSuffixName(), symmPointNormal_, ShapeSensitivitiesBase::wallPointSensNormalPtr_, ShapeSensitivitiesBase::wallPointSensNormalVecPtr_, ShapeSensitivitiesBase::wallPointSensVecPtr_, writeGeometricInfo_, and Foam::Zero.

|
virtualdefault |
Destructor.
References dict, and word::null.
|
protected |
Set suffix name for sensitivity fields.
Definition at line 48 of file sensitivitySurfacePoints.C.
References forAll, Foam::isA(), sensitivity::mesh_, pp(), and List< T >::setSize().
Referenced by sensitivitySurfacePoints().


|
protected |
Converts face sensitivities to point sensitivities and adds the ones directly computed in points (i.e. dSf/db and dnf/db).
Definition at line 76 of file sensitivitySurfacePoints.C.
References adjointSensitivity::bcDxDbMult_, adjointSensitivity::dnfdbMult_, adjointSensitivity::dSfdbMult_, adjointSensitivity::dxdbDirectMult_, adjointSensitivity::dxdbMult_, extendedPatchIDs_, forAll, Foam::I, Tensor< scalar >::I, isSymmetryPoint_, deltaBoundary::makeFaceCentresAndAreas_d(), sensitivity::mesh_, n, p, face::points(), UList< T >::size(), Foam::sqr(), symmPointNormal_, Foam::transform(), ShapeSensitivitiesBase::wallPointSensVecPtr_, and Foam::Zero.
Referenced by assembleSensitivities().


|
protected |
Construct globally correct point normals and point areas.
Definition at line 174 of file sensitivitySurfacePoints.C.
References Foam::dimless, extendedPatchIDs_, forAll, sensitivity::mesh_, MeshObject< polyMesh, UpdateableMeshObject, pointMesh >::New(), IOobjectOption::NO_READ, IOobjectOption::NO_WRITE, Field< Type >::normalise(), GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef(), syncTools::syncPointList(), regIOobject::write(), writeGeometricInfo_, Foam::Zero, and VectorSpace< Form, Cmpt, Ncmpts >::zero.
Referenced by assembleSensitivities().


|
protected |
Set suffix name for sensitivity fields.
Definition at line 68 of file sensitivitySurfacePoints.C.
References adjointSensitivity::adjointMeshMovementSolver_, adjointSensitivity::adjointSolver_, dict, word::null, and adjointSensitivity::setSuffix().
Referenced by sensitivitySurfacePoints().


|
protected |
Allocate the proper size for the point-based sensitivities.
Definition at line 260 of file sensitivitySurfacePoints.C.
References adjointSensitivity::derivatives_, sensitivity::mesh_, ShapeSensitivitiesBase::sensitivityPatchIDs_, and Foam::Zero.
Referenced by assembleSensitivities(), and sensitivitySurfacePoints().

| void read | ( | ) |
Read controls and update solver pointers if necessary.
Definition at line 337 of file sensitivitySurfacePoints.C.
References dict, includeSurfaceArea_, and writeGeometricInfo_.
Referenced by sensitivitySurface::read(), readDict(), and sensitivitySurfacePoints().

|
virtual |
Read dict if changed.
Reimplemented from sensitivityShapeESI.
Definition at line 347 of file sensitivitySurfacePoints.C.
References dict, read(), and sensitivityShapeESI::readDict().

|
virtual |
Return set of patches on which to compute direct sensitivities.
Reimplemented from ShapeSensitivitiesBase.
Definition at line 360 of file sensitivitySurfacePoints.C.
References extendedPatchIDs_.
|
virtual |
Assemble sensitivities.
Reimplemented from sensitivityShapeESI.
Reimplemented in sensitivitySurface.
Definition at line 366 of file sensitivitySurfacePoints.C.
References adjointSensitivity::assembleSensitivities(), sensitivityShapeESI::computeDxDbMult(), computePointDerivativesSize(), constructGlobalPointNormalsAndAreas(), adjointSensitivity::derivatives_, extendedPatchIDs_, finalisePointSensitivities(), forAll, includeSurfaceArea_, sensitivity::mesh_, Field< Type >::normalise(), pi(), ShapeSensitivitiesBase::sensitivityPatchIDs_, syncTools::syncPointList(), ShapeSensitivitiesBase::wallPointSensNormalPtr_, ShapeSensitivitiesBase::wallPointSensNormalVecPtr_, ShapeSensitivitiesBase::wallPointSensVecPtr_, write(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), Vector< Cmpt >::z(), Foam::Zero, and VectorSpace< Form, Cmpt, Ncmpts >::zero.
Referenced by sensitivitySurface::assembleSensitivities().


|
virtual |
Write sensitivity fields.
If valid, copies boundaryFields to pointFields and writes them.
Reimplemented from ShapeSensitivitiesBase.
Definition at line 490 of file sensitivitySurfacePoints.C.
References IOobjectOption::AUTO_WRITE, GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), sensitivity::mesh_, IOobjectOption::NO_READ, ShapeSensitivitiesBase::sensitivityPatchIDs_, adjointSensitivity::write(), ShapeSensitivitiesBase::write(), writeGeometricInfo_, and Foam::Zero.

|
protected |
Write geometric info for use by external programs.
Definition at line 60 of file sensitivitySurfacePoints.H.
Referenced by constructGlobalPointNormalsAndAreas(), read(), sensitivitySurfacePoints(), and write().
|
protected |
Include surface area in sens computation.
Definition at line 65 of file sensitivitySurfacePoints.H.
Referenced by assembleSensitivities(), read(), and sensitivitySurfacePoints().
|
protected |
Is point belonging to a symmetry{Plane}.
Definition at line 70 of file sensitivitySurfacePoints.H.
Referenced by finalisePointSensitivities(), and sensitivitySurfacePoints().
|
protected |
Local point normal per symmetry point.
Definition at line 75 of file sensitivitySurfacePoints.H.
Referenced by finalisePointSensitivities(), and sensitivitySurfacePoints().
|
protected |
Extended patchIDs.
Sensitivities from patches adjacent to the sensitivityPatchIDs_ should also be taken into consideration in order to compute the correct values at points in their interfaces
Definition at line 84 of file sensitivitySurfacePoints.H.
Referenced by assembleSensitivities(), constructGlobalPointNormalsAndAreas(), finalisePointSensitivities(), geometryVariationIntegrationPatches(), and sensitivitySurfacePoints().