adjointMeshMovementSolver Class Reference

Class solving the adjoint grid dispalcement PDEs. Assumes the primal grid displacement PDE is a Laplace one with uniform diffusivity. More...

Collaboration diagram for adjointMeshMovementSolver:

Public Member Functions

 TypeName ("adjointMeshMovementSolver")
 Runtime type information. More...
 
 adjointMeshMovementSolver (const fvMesh &mesh, const dictionary &dict, ShapeSensitivitiesBase &adjointSensitivity)
 Construct from components. More...
 
virtual ~adjointMeshMovementSolver ()=default
 
virtual bool readDict (const dictionary &dict)
 Read dict if changed. More...
 
virtual void solve ()
 Calculate the adjoint distance field. More...
 
void reset ()
 Reset the source term. More...
 
boundaryVectorFieldmeshMovementSensitivities ()
 Return the sensitivity term depending on ma. More...
 
const volVectorFieldma () const
 Return the adjoint distance field. More...
 

Protected Member Functions

void read ()
 Read options each time a new solution is found. More...
 
void setSource ()
 Set the source term of the PDE. More...
 

Protected Attributes

const fvMeshmesh_
 Reference to mesh. More...
 
dictionary dict_
 Dictionary containing solution controls. More...
 
autoPtr< boundaryVectorFieldmeshMovementSensPtr_
 Part of sensitivity derivatives coming from the adjoint grid displacement PDE. More...
 
ShapeSensitivitiesBaseadjointSensitivity_
 
volVectorField ma_
 Adjoint grid displacement field. More...
 
volVectorField source_
 Source term of the adjoint grid displacement PDEs. More...
 
label iters_
 Solution controls. More...
 
scalar tolerance_
 

Detailed Description

Class solving the adjoint grid dispalcement PDEs. Assumes the primal grid displacement PDE is a Laplace one with uniform diffusivity.

Reference:

    For the derivation of the adjoint grid displacement PDEs, see
        Kavvadias, I., Papoutsis-Kiachagias, E., & Giannakoglou, K. (2015).
        On the proper treatment of grid sensitivities in continuous adjoint
        methods for shape optimization.
        Journal of Computational Physics, 301, 1–18.
        http://doi.org/10.1016/j.jcp.2015.08.012
Source files

Definition at line 66 of file adjointMeshMovementSolver.H.

Constructor & Destructor Documentation

◆ adjointMeshMovementSolver()

adjointMeshMovementSolver ( const fvMesh mesh,
const dictionary dict,
ShapeSensitivitiesBase adjointSensitivity 
)

Construct from components.

Definition at line 87 of file adjointMeshMovementSolver.C.

References Foam::read().

Here is the call graph for this function:

◆ ~adjointMeshMovementSolver()

virtual ~adjointMeshMovementSolver ( )
virtualdefault

Member Function Documentation

◆ read()

void read ( )
protected

Read options each time a new solution is found.

Definition at line 41 of file adjointMeshMovementSolver.C.

References adjointMeshMovementSolver::dict_, dictionary::getOrDefault(), adjointMeshMovementSolver::iters_, and adjointMeshMovementSolver::tolerance_.

Here is the call graph for this function:

◆ setSource()

◆ TypeName()

TypeName ( "adjointMeshMovementSolver"  )

Runtime type information.

◆ readDict()

bool readDict ( const dictionary dict)
virtual

Read dict if changed.

Definition at line 135 of file adjointMeshMovementSolver.C.

References dict, Foam::read(), and dictionary::subOrEmptyDict().

Here is the call graph for this function:

◆ solve()

◆ reset()

void reset ( )

Reset the source term.

Definition at line 181 of file adjointMeshMovementSolver.C.

References DimensionedField< Type, GeoMesh >::dimensions(), adjointMeshMovementSolver::meshMovementSensPtr_, adjointMeshMovementSolver::source_, and Foam::Zero.

Here is the call graph for this function:

◆ meshMovementSensitivities()

◆ ma()

const volVectorField& ma ( ) const
inline

Return the adjoint distance field.

Definition at line 186 of file adjointMeshMovementSolver.H.

References adjointMeshMovementSolver::ma_.

Member Data Documentation

◆ mesh_

const fvMesh& mesh_
protected

Reference to mesh.

Definition at line 75 of file adjointMeshMovementSolver.H.

Referenced by adjointMeshMovementSolver::setSource(), and adjointMeshMovementSolver::solve().

◆ dict_

dictionary dict_
protected

Dictionary containing solution controls.

Definition at line 80 of file adjointMeshMovementSolver.H.

Referenced by adjointMeshMovementSolver::read().

◆ meshMovementSensPtr_

autoPtr<boundaryVectorField> meshMovementSensPtr_
protected

Part of sensitivity derivatives coming from the adjoint grid displacement PDE.

Definition at line 86 of file adjointMeshMovementSolver.H.

Referenced by adjointMeshMovementSolver::meshMovementSensitivities(), and adjointMeshMovementSolver::reset().

◆ adjointSensitivity_

◆ ma_

◆ source_

volVectorField source_
protected

Source term of the adjoint grid displacement PDEs.

Definition at line 99 of file adjointMeshMovementSolver.H.

Referenced by adjointMeshMovementSolver::reset(), adjointMeshMovementSolver::setSource(), and adjointMeshMovementSolver::solve().

◆ iters_

label iters_
protected

Solution controls.

Definition at line 104 of file adjointMeshMovementSolver.H.

Referenced by adjointMeshMovementSolver::read(), and adjointMeshMovementSolver::solve().

◆ tolerance_

scalar tolerance_
protected

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