40#ifndef optimisationTypeIncompressible_H
41#define optimisationTypeIncompressible_H
52namespace incompressible
158 scalar& objectiveValue,
174 virtual void write();
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
Abstract base class for optimisation methods.
virtual void storeDesignVariables()=0
Store design variables, as the starting point for line search.
virtual void computeEta(scalarField &correction)=0
Compute eta if not set in the first step.
virtual scalar computeMeritFunction()
Compute the merit function of the optimisation problem.
PtrList< adjointSolverManager > & adjointSolvManagers_
const autoPtr< volScalarField > & sourcePtr()
Get source term.
autoPtr< updateMethod > updateMethod_
virtual tmp< scalarField > computeDirection()
Compute update direction.
autoPtr< lineSearch > & getLineSearch()
Get a reference to the line search object.
virtual void updateOldCorrection(const scalarField &)
Update old correction. Needed for quasi-Newton Methods.
virtual void updateGradientsAndValues(scalarField &objectiveSens, PtrList< scalarField > &constraintSens, scalar &objectiveValue, scalarField &constraintValues)
Compute cumulative objective and constraint gradients.
autoPtr< lineSearch > lineSearch_
virtual scalar meritFunctionDirectionalDerivative()
Derivative of the merit function.
virtual void write()
Write useful quantities to files.
declareRunTimeSelectionTable(autoPtr, optimisationType, dictionary,(fvMesh &mesh, const dictionary &dict, PtrList< adjointSolverManager > &adjointSolverManagers),(mesh, dict, adjointSolverManagers))
virtual void resetDesignVariables()=0
Reset to starting point of line search.
virtual void update()
Update design variables.
TypeName("optimisationType")
Runtime type information.
virtual void updateDesignVariables(scalarField &correction)=0
Update the design variables given their correction.
virtual ~optimisationType()=default
autoPtr< volScalarField > sourcePtr_
static autoPtr< optimisationType > New(fvMesh &mesh, const dictionary &dict, PtrList< adjointSolverManager > &adjointSolverManagers)
Return a reference to the selected turbulence model.
A class for managing temporary objects.
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
PtrList< adjointSolverManager > & adjointSolverManagers