Go to the documentation of this file.
39 #ifndef objectiveManager_H
40 #define objectiveManager_H
151 const scalar weightedObjective,
152 const bool valid =
true
void updateNormalizationFactor()
Update objective function related values.
class for managing incompressible objective functions.
virtual void addPaEqnSource(fvScalarMatrix &paEqn)=0
Add contribution to adjoint momentum PDEs.
const word & primalSolverName() const
Return name of the primalSolver.
A class for handling words, derived from Foam::string.
scalar print()
Print to screen.
PtrList< objective > objectives_
virtual bool readDict(const dictionary &dict)
void update()
Update objective function related values.
virtual ~objectiveManager()=default
Destructor.
virtual void addUaEqnSource(fvVectorMatrix &UaEqn)=0
Add contribution to adjoint momentum PDEs.
TypeName("objectiveManager")
autoPtr< OFstream > weigthedObjectiveFile_
void incrementIntegrationTimes(const scalar timeSpan)
Increment integration times by the optimisation cycle time-span.
virtual bool writeObjectives(const scalar weightedObjective, const bool valid=true)
Write objective function history.
const word & adjointSolverManagerName() const
Return name of adjointSolverManager.
declareRunTimeSelectionTable(autoPtr, objectiveManager, dictionary,(const fvMesh &mesh, const dictionary &dict, const word &adjointSolverName, const word &primalSolverName),(mesh, dict, adjointSolverName, primalSolverName))
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
fvScalarMatrix paEqn(fvm::d2dt2(pa) - sqr(c0) *fvc::laplacian(pa))
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const word primalSolverName_
Mesh data needed to do the Finite Volume discretisation.
const word adjointSolverName_
void checkIntegrationTimes() const
Check integration times for unsteady runs.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
static autoPtr< objectiveManager > New(const fvMesh &mesh, const dictionary &dict, const word &adjointSolverName, const word &primalSolverName)
Return a reference to the selected turbulence model.
Macros to ease declaration of run-time selection tables.
virtual bool writeData(Ostream &) const
Pure virtual writeData function.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
virtual void addTMEqn2Source(fvScalarMatrix &adjTMEqn2)=0
Add contribution to second adjoint turbulence model PDE.
virtual void addTMEqn1Source(fvScalarMatrix &adjTMEqn1)=0
Add contribution to first adjoint turbulence model PDE.
void updateOrNullify()
Update contributions to adjoint if true, otherwise return nulls.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
const word & adjointSolverName() const
Return name of the adjointSolver.
PtrList< objective > & getObjectiveFunctions()
Return reference to objective functions.