Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
sensitivitySurface Class Reference

Calculation of adjoint based sensitivities at wall faces. More...

Inheritance diagram for sensitivitySurface:
Inheritance graph
[legend]
Collaboration diagram for sensitivitySurface:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("surface")
 
 sensitivitySurface (const fvMesh &mesh, const dictionary &dict, incompressibleVars &primalVars, incompressibleAdjointVars &adjointVars, objectiveManager &objectiveManager)
 
virtual ~sensitivitySurface ()=default
 
void read ()
 
virtual bool readDict (const dictionary &dict)
 
void computeDerivativesSize ()
 
virtual void accumulateIntegrand (const scalar dt)
 
virtual void assembleSensitivities ()
 
virtual void clearSensitivities ()
 
autoPtr< adjointEikonalSolver > & getAdjointEikonalSolver ()
 
virtual void write (const word &baseName=word::null)
 
bool getIncludeObjective () const
 
bool getIncludeSurfaceArea () const
 
void setIncludeObjective (const bool includeObjective)
 
void setIncludeSurfaceArea (const bool includeSurfaceArea)
 
- Public Member Functions inherited from adjointSensitivity
 TypeName ("adjointSensitivity")
 
 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)
 
virtual ~adjointSensitivity ()=default
 
virtual const scalarFieldcalculateSensitivities ()
 
const scalarFieldgetSensitivities () const
 
tmp< volTensorFieldcomputeGradDxDbMultiplier ()
 
tmp< volVectorFieldadjointMeshMovementSource ()
 
- Public Member Functions inherited from sensitivity
 TypeName ("sensitivity")
 
 sensitivity (const fvMesh &mesh, const dictionary &dict)
 
virtual ~sensitivity ()=default
 
const dictionarydict () const
 

Protected Member Functions

void addGeometricSens ()
 
void setSuffixName ()
 
void smoothSensitivities ()
 
scalar computeRadius (const faMesh &aMesh)
 

Protected Attributes

bool includeSurfaceArea_
 
bool includePressureTerm_
 
bool includeGradStressTerm_
 
bool includeTransposeStresses_
 
bool useSnGradInTranposeStresses_
 
bool includeDivTerm_
 
bool includeDistance_
 
bool includeMeshMovement_
 
bool includeObjective_
 
bool writeGeometricInfo_
 
bool smoothSensitivities_
 
autoPtr< adjointEikonalSolvereikonalSolver_
 
autoPtr< adjointMeshMovementSolvermeshMovementSolver_
 
autoPtr< volVectorFieldnfOnPatchPtr_
 
autoPtr< volVectorFieldSfOnPatchPtr_
 
autoPtr< volVectorFieldCfOnPatchPtr_
 
- Protected Attributes inherited from adjointSensitivity
scalarField derivatives_
 
incompressibleVarsprimalVars_
 
incompressibleAdjointVarsadjointVars_
 
objectiveManagerobjectiveManager_
 
- Protected Attributes inherited from sensitivity
const fvMeshmesh_
 
dictionary dict_
 
autoPtr< volScalarFieldfieldSensPtr_
 

Additional Inherited Members

- Static Public Member Functions inherited from adjointSensitivity
static autoPtr< adjointSensitivityNew (const fvMesh &mesh, const dictionary &dict, incompressibleVars &primalVars, incompressibleAdjointVars &adjointVars, objectiveManager &objectiveManager)
 

Detailed Description

Calculation of adjoint based sensitivities at wall faces.

Reference:

    The computation of the sensitivity derivatives  follows the (E-)SI
    formulation of

        Kavvadias, I. S., Papoutsis-Kiachagias, E. M., 
        Giannakoglou, K. C. (2015).
        On the proper treatment of grid sensitivities in continuous adjoint
        methods for shape optimization.
        Journal of computational physics, 301, 1-18.
        https://doi.org/10.1016/j.jcp.2015.08.012

    whereas their smoothing based on the computation of the 'Sobolev
    gradient' is derived from

        Vassberg J. C., Jameson A. (2006).
        Aerodynamic Shape Optimization Part I: Theoretical Background.
        VKI Lecture Series, Introduction to Optimization and
        Multidisciplinary Design, Brussels, Belgium, 8 March, 2006.
Source files

Definition at line 77 of file sensitivitySurfaceIncompressible.H.

Constructor & Destructor Documentation

◆ sensitivitySurface()

sensitivitySurface ( const fvMesh mesh,
const dictionary dict,
incompressibleVars primalVars,
incompressibleAdjointVars adjointVars,
objectiveManager objectiveManager 
)

Definition at line 398 of file sensitivitySurfaceIncompressible.C.

References IOobject::AUTO_WRITE, mesh, IOobject::NO_READ, Foam::read(), and VectorSpace< Vector< scalar >, scalar, 3 >::zero.

Here is the call graph for this function:

◆ ~sensitivitySurface()

virtual ~sensitivitySurface ( )
virtualdefault

Member Function Documentation

◆ addGeometricSens()

void addGeometricSens ( )
protected

◆ setSuffixName()

void setSuffixName ( )
protected

Definition at line 192 of file sensitivitySurfaceIncompressible.C.

References adjointSensitivity::adjointVars_, sensitivity::dict(), sensitivitySurface::includeMeshMovement_, word::null, shapeSensitivitiesBase::setSuffix(), and variablesSet::solverName().

Referenced by sensitivitySurface::write().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smoothSensitivities()

void smoothSensitivities ( )
protected

◆ computeRadius()

scalar computeRadius ( const faMesh aMesh)
protected

◆ TypeName()

TypeName ( "surface"  )

◆ read()

void read ( )

◆ readDict()

bool readDict ( const dictionary dict)
virtual

Reimplemented from sensitivity.

Definition at line 563 of file sensitivitySurfaceIncompressible.C.

References sensitivity::dict(), sensitivitySurface::eikonalSolver_, sensitivitySurface::meshMovementSolver_, and sensitivity::readDict().

Referenced by SIBase::readDict().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeDerivativesSize()

void computeDerivativesSize ( )
virtual

Reimplemented from sensitivity.

Definition at line 584 of file sensitivitySurfaceIncompressible.C.

References fvMesh::boundary(), adjointSensitivity::derivatives_, and sensitivity::mesh_.

Here is the call graph for this function:

◆ accumulateIntegrand()

void accumulateIntegrand ( const scalar  dt)
virtual

◆ assembleSensitivities()

void assembleSensitivities ( )
virtual

◆ clearSensitivities()

void clearSensitivities ( )
virtual

◆ getAdjointEikonalSolver()

autoPtr< adjointEikonalSolver > & getAdjointEikonalSolver ( )

◆ write()

void write ( const word baseName = word::null)
virtual

◆ getIncludeObjective()

bool getIncludeObjective ( ) const
inline

Definition at line 31 of file sensitivitySurfaceIncompressibleI.H.

References sensitivitySurface::includeObjective_.

Referenced by SIBase::read().

Here is the caller graph for this function:

◆ getIncludeSurfaceArea()

bool getIncludeSurfaceArea ( ) const
inline

◆ setIncludeObjective()

void setIncludeObjective ( const bool  includeObjective)
inline

Definition at line 44 of file sensitivitySurfaceIncompressibleI.H.

Referenced by SIBase::read().

Here is the caller graph for this function:

◆ setIncludeSurfaceArea()

void setIncludeSurfaceArea ( const bool  includeSurfaceArea)
inline

Definition at line 53 of file sensitivitySurfaceIncompressibleI.H.

Referenced by SIBase::read().

Here is the caller graph for this function:

Member Data Documentation

◆ includeSurfaceArea_

bool includeSurfaceArea_
protected

◆ includePressureTerm_

bool includePressureTerm_
protected

◆ includeGradStressTerm_

bool includeGradStressTerm_
protected

◆ includeTransposeStresses_

bool includeTransposeStresses_
protected

◆ useSnGradInTranposeStresses_

bool useSnGradInTranposeStresses_
protected

◆ includeDivTerm_

bool includeDivTerm_
protected

◆ includeDistance_

bool includeDistance_
protected

◆ includeMeshMovement_

bool includeMeshMovement_
protected

◆ includeObjective_

bool includeObjective_
protected

◆ writeGeometricInfo_

bool writeGeometricInfo_
protected

◆ smoothSensitivities_

bool smoothSensitivities_
protected

◆ eikonalSolver_

autoPtr<adjointEikonalSolver> eikonalSolver_
protected

◆ meshMovementSolver_

autoPtr<adjointMeshMovementSolver> meshMovementSolver_
protected

◆ nfOnPatchPtr_

autoPtr<volVectorField> nfOnPatchPtr_
protected

◆ SfOnPatchPtr_

autoPtr<volVectorField> SfOnPatchPtr_
protected

◆ CfOnPatchPtr_

autoPtr<volVectorField> CfOnPatchPtr_
protected

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