adjointMeshMovementSolver Class Reference

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

Collaboration diagram for adjointMeshMovementSolver:
[legend]

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_
 
Foam::incompressible::adjointSensitivityadjointSensitivity_
 
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.

Reference:

    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 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 57 of file adjointMeshMovementSolverIncompressible.C.

References Foam::read().

Here is the call graph for this function:

◆ ~adjointMeshMovementSolver()

virtual ~adjointMeshMovementSolver ( )
virtualdefault

Destructor.

Member Function Documentation

◆ read()

void read ( )
protected

Read options each time a new solution is found.

Definition at line 47 of file adjointMeshMovementSolverIncompressible.C.

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

Referenced by 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)
virtual

Read dict if changed.

Definition at line 102 of file adjointMeshMovementSolverIncompressible.C.

References dict, and adjointMeshMovementSolver::dict_.

◆ accumulateIntegrand()

void accumulateIntegrand ( const scalar  dt)

Accumulate source term.

Definition at line 110 of file adjointMeshMovementSolverIncompressible.C.

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

Here is the call graph for this function:

◆ solve()

◆ reset()

◆ meshMovementSensitivities()

boundaryVectorField & meshMovementSensitivities ( )

Return the sensitivity term depending on da.

Definition at line 170 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 186 of file adjointMeshMovementSolverIncompressible.C.

References adjointMeshMovementSolver::ma_.

Member Data Documentation

◆ mesh_

const fvMesh& mesh_
protected

◆ dict_

◆ adjointSensitivity_

◆ sensitivityPatchIDs_

const labelHashSet& sensitivityPatchIDs_
protected

◆ nLaplaceIters_

label nLaplaceIters_
protected

◆ tolerance_

scalar tolerance_
protected

◆ ma_

◆ source_

◆ meshMovementSensPtr_

autoPtr<boundaryVectorField> meshMovementSensPtr_
protected

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_
protected

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