Calculates shape sensitivities using the adjoint approach, computes boundaryMesh movement and propagates it to the volume mesh. More...
Public Member Functions | |
TypeName ("shapeOptimisation") | |
Runtime type information. More... | |
shapeOptimisation (fvMesh &mesh, const dictionary &dict, PtrList< adjointSolverManager > &adjointSolverManagers) | |
Construct from components. More... | |
virtual | ~shapeOptimisation ()=default |
Destructor. More... | |
virtual void | storeDesignVariables () |
Store design variables, as the starting point for line search. More... | |
virtual void | resetDesignVariables () |
Store design variables, as the starting point for line search. More... | |
virtual void | write () |
Write useful quantities to files. More... | |
![]() | |
TypeName ("optimisationType") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, optimisationType, dictionary,(fvMesh &mesh, const dictionary &dict, PtrList< adjointSolverManager > &adjointSolverManagers),(mesh, dict, adjointSolverManagers)) | |
optimisationType (fvMesh &mesh, const dictionary &dict, PtrList< adjointSolverManager > &adjointSolverManagers) | |
Construct from components. More... | |
virtual | ~optimisationType ()=default |
virtual void | update () |
Update design variables. More... | |
virtual void | update (scalarField &correction) |
Update design variables based on a given correction. More... | |
virtual tmp< scalarField > | computeDirection () |
Compute update direction. More... | |
virtual void | updateGradientsAndValues (scalarField &objectiveSens, PtrList< scalarField > &constraintSens, scalar &objectiveValue, scalarField &constraintValues) |
Compute cumulative objective and constraint gradients. More... | |
virtual scalar | computeMeritFunction () |
Compute the merit function of the optimisation problem. More... | |
virtual scalar | meritFunctionDirectionalDerivative () |
Derivative of the merit function. More... | |
virtual void | updateOldCorrection (const scalarField &) |
Update old correction. Needed for quasi-Newton Methods. More... | |
const autoPtr< volScalarField > & | sourcePtr () |
Get source term. More... | |
autoPtr< lineSearch > & | getLineSearch () |
Get a reference to the line search object. More... | |
Protected Member Functions | |
virtual void | updateDesignVariables (scalarField &correction) |
Update the design variables given their correction. More... | |
virtual void | computeEta (scalarField &correction) |
Compute eta if not set in the first step. More... | |
Protected Attributes | |
autoPtr< optMeshMovement > | optMeshMovement_ |
bool | writeEachMesh_ |
bool | updateGeometry_ |
![]() | |
fvMesh & | mesh_ |
const dictionary | dict_ |
PtrList< adjointSolverManager > & | adjointSolvManagers_ |
autoPtr< updateMethod > | updateMethod_ |
autoPtr< volScalarField > | sourcePtr_ |
autoPtr< lineSearch > | lineSearch_ |
Additional Inherited Members | |
![]() | |
static autoPtr< optimisationType > | New (fvMesh &mesh, const dictionary &dict, PtrList< adjointSolverManager > &adjointSolverManagers) |
Return a reference to the selected turbulence model. More... | |
Calculates shape sensitivities using the adjoint approach, computes boundaryMesh movement and propagates it to the volume mesh.
Definition at line 62 of file shapeOptimisationIncompressible.H.
shapeOptimisation | ( | fvMesh & | mesh, |
const dictionary & | dict, | ||
PtrList< adjointSolverManager > & | adjointSolverManagers | ||
) |
Construct from components.
Definition at line 120 of file shapeOptimisationIncompressible.C.
References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, optMeshMovement::New(), Foam::nl, patches, and WarningInFunction.
|
virtualdefault |
Destructor.
|
protectedvirtual |
Update the design variables given their correction.
Implements optimisationType.
Definition at line 53 of file shapeOptimisationIncompressible.C.
References Foam::correction(), Foam::endl(), Foam::Info, optimisationType::mesh_, polyMesh::meshSubDir, IOobject::NO_READ, IOobject::NO_WRITE, shapeOptimisation::optMeshMovement_, points, polyMesh::points(), polyMesh::pointsInstance(), shapeOptimisation::updateGeometry_, and shapeOptimisation::writeEachMesh_.
|
protectedvirtual |
Compute eta if not set in the first step.
Implements optimisationType.
Definition at line 87 of file shapeOptimisationIncompressible.C.
References Foam::correction().
TypeName | ( | "shapeOptimisation" | ) |
Runtime type information.
|
virtual |
Store design variables, as the starting point for line search.
Implements optimisationType.
Definition at line 183 of file shapeOptimisationIncompressible.C.
References shapeOptimisation::optMeshMovement_.
|
virtual |
Store design variables, as the starting point for line search.
Implements optimisationType.
Definition at line 189 of file shapeOptimisationIncompressible.C.
References shapeOptimisation::optMeshMovement_.
|
virtual |
Write useful quantities to files.
Reimplemented from optimisationType.
Definition at line 195 of file shapeOptimisationIncompressible.C.
References optimisationType::updateMethod_, and optimisationType::write().
|
protected |
Definition at line 70 of file shapeOptimisationIncompressible.H.
Referenced by shapeOptimisation::resetDesignVariables(), shapeOptimisation::storeDesignVariables(), and shapeOptimisation::updateDesignVariables().
|
protected |
Definition at line 72 of file shapeOptimisationIncompressible.H.
Referenced by shapeOptimisation::updateDesignVariables().
|
protected |
Definition at line 73 of file shapeOptimisationIncompressible.H.
Referenced by shapeOptimisation::updateDesignVariables().