adjointMeshMovementSolver Class Reference

Solver of the adjoint to the Laplace grid displacement equation. More...

Collaboration diagram for adjointMeshMovementSolver:

Public Member Functions

 TypeName ("adjointMeshMovementSolver")
 Runtime type information. More...
 adjointMeshMovementSolver (const fvMesh &mesh, const dictionary &dict, Foam::incompressible::adjointSensitivity &adjointSensitivity, const labelHashSet &sensitivityPatchIDs, const autoPtr< adjointEikonalSolver > &adjointEikonalSolverPtr)
 Construct from components. More...
virtual ~adjointMeshMovementSolver ()=default
 Destructor. More...
virtual bool readDict (const dictionary &dict)
 Read dict if changed. More...
void accumulateIntegrand (const scalar dt)
 Accumulate source term. More...
void solve ()
 Calculate the adjoint distance field. More...
void reset ()
 Reset source term. More...
boundaryVectorFieldmeshMovementSensitivities ()
 Return the sensitivity term depending on da. More...
const volVectorFieldma ()
 Return the adjoint distance field. More...

Protected Member Functions

void read ()
 Read options each time a new solution is found. More...

Protected Attributes

const fvMeshmesh_
dictionary dict_
const labelHashSetsensitivityPatchIDs_
label nLaplaceIters_
scalar tolerance_
volVectorField ma_
volVectorField source_
autoPtr< boundaryVectorFieldmeshMovementSensPtr_
 Wall face sens w.r.t.(x, y.z) //wall face sens w.r.t. (x,y.z) More...
const autoPtr< adjointEikonalSolver > & adjointEikonalSolverPtr_

Detailed Description

Solver of the adjoint to the Laplace grid displacement equation.


    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.
Source files

Definition at line 68 of file adjointMeshMovementSolverIncompressible.H.

Constructor & Destructor Documentation

◆ adjointMeshMovementSolver()

adjointMeshMovementSolver ( const fvMesh mesh,
const dictionary dict,
Foam::incompressible::adjointSensitivity adjointSensitivity,
const labelHashSet sensitivityPatchIDs,
const autoPtr< adjointEikonalSolver > &  adjointEikonalSolverPtr 

Construct from components.

Definition at line 58 of file adjointMeshMovementSolverIncompressible.C.

References adjointMeshMovementSolver::read().

Here is the call graph for this function:

◆ ~adjointMeshMovementSolver()

virtual ~adjointMeshMovementSolver ( )


Member Function Documentation

◆ read()

void read ( )

Read options each time a new solution is found.

Definition at line 49 of file adjointMeshMovementSolverIncompressible.C.

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

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

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

◆ TypeName()

TypeName ( "adjointMeshMovementSolver"  )

Runtime type information.

◆ readDict()

bool readDict ( const dictionary dict)

Read dict if changed.

Definition at line 114 of file adjointMeshMovementSolverIncompressible.C.

References dict, adjointMeshMovementSolver::dict_, and dictionary::subOrEmptyDict().

Here is the call graph for this function:

◆ accumulateIntegrand()

void accumulateIntegrand ( const scalar  dt)

Accumulate source term.

Definition at line 122 of file adjointMeshMovementSolverIncompressible.C.

References adjointSensitivity::adjointMeshMovementSource(), adjointMeshMovementSolver::adjointSensitivity_, and adjointMeshMovementSolver::source_.

Here is the call graph for this function:

◆ solve()

◆ reset()

void reset ( )

Reset source term.

Definition at line 176 of file adjointMeshMovementSolverIncompressible.C.

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

Here is the call graph for this function:

◆ meshMovementSensitivities()

boundaryVectorField & meshMovementSensitivities ( )

Return the sensitivity term depending on da.

Definition at line 183 of file adjointMeshMovementSolverIncompressible.C.

References GeometricField< Type, PatchField, GeoMesh >::boundaryField(), Foam::endl(), Foam::Info, adjointMeshMovementSolver::ma_, adjointMeshMovementSolver::meshMovementSensPtr_, and adjointMeshMovementSolver::sensitivityPatchIDs_.

Here is the call graph for this function:

◆ ma()

const volVectorField & ma ( )

Return the adjoint distance field.

Definition at line 199 of file adjointMeshMovementSolverIncompressible.C.

References adjointMeshMovementSolver::ma_.

Member Data Documentation

◆ mesh_

const fvMesh& mesh_

◆ dict_

◆ adjointSensitivity_

◆ sensitivityPatchIDs_

const labelHashSet& sensitivityPatchIDs_

◆ nLaplaceIters_

label nLaplaceIters_

◆ tolerance_

scalar tolerance_

◆ ma_

◆ source_

◆ meshMovementSensPtr_

autoPtr<boundaryVectorField> meshMovementSensPtr_

Wall face sens w.r.t.(x, y.z) //wall face sens w.r.t. (x,y.z)

Definition at line 84 of file adjointMeshMovementSolverIncompressible.H.

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

◆ adjointEikonalSolverPtr_

const autoPtr<adjointEikonalSolver>& adjointEikonalSolverPtr_

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