37 #ifndef incompressibleAdjointSolver_H 38 #define incompressibleAdjointSolver_H 261 const word& designVariablesName,
271 virtual bool write(
const bool valid =
true)
const virtual bool write(const bool valid=true) const
In case of multi-point runs with turbulent flows, output dummy turbulence fields with the base names...
bool hasBCdxdbMult(const labelHashSet &sensitivityPatchIDs)
Compute, if necessary, and return the hasBCdxdbMult_ bool.
const word & primalSolverName() const
Return the primal solver name.
virtual ~incompressibleAdjointSolver()=default
Destructor.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
virtual void accumulateDivDxDbMultiplier(autoPtr< scalarField > &divDxDbMult, const scalar dt)
Compute the multiplier for div(dxdb)
virtual const incompressibleAdjointVars & getAdjointVars() const
Access to the incompressible adjoint variables set.
virtual void accumulateGradDxDbMultiplier(volTensorField &gradDxDbMult, const scalar dt)
Compute the multiplier for grad(dxdb)
const fvMesh & mesh() const
Return the solver mesh.
const incompressibleVars & getPrimalVars() const
Access to the incompressible primal variables set.
autoPtr< ATCModel > ATCModel_
Adjoint Transpose Convection options.
virtual void updatePrimalBasedQuantities()
Update primal based quantities, e.g. the primal fields in adjoint turbulence models.
A simple wrapper around bool so that it can be read as a word: true/false, on/off, yes/no, any/none. Also accepts 0/1 as a string and shortcuts t/f, y/n.
Base class for adjoint solvers.
bool writeTime() const noexcept
True if this is a write interval.
virtual bool includeDistance() const
Should the adjoint to the eikonal equation be solved.
const Time & time() const
Return the top-level database.
Class including all adjoint fields for incompressible flows.
Base class for incompressibleAdjoint solvers.
Base class for solution control classes.
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
declareRunTimeSelectionTable(autoPtr, incompressibleAdjointSolver, dictionary,(fvMesh &mesh, const word &managerType, const dictionary &dict, const word &primalSolverName, const word &solverName),(mesh, managerType, dict, primalSolverName, solverName))
incompressibleVars & primalVars_
Primal variable set.
A class for handling words, derived from Foam::string.
virtual void accumulateBCSensitivityIntegrand(autoPtr< boundaryVectorField > &bcDxDbMult, const labelHashSet &sensitivityPatchIDs, const scalar dt)
Contributions from boundary functions that inlcude geometric aspects in them and change when the geom...
static autoPtr< incompressibleAdjointSolver > New(fvMesh &mesh, const word &managerType, const dictionary &dict, const word &primalSolverName, const word &solverName)
Return a reference to the selected incompressible adjoint solver.
virtual dimensionSet maDimensions() const
Return the dimensions of the adjoint grid displacement variable.
Switch hasBCdxdbMult_
Auxiliary bool to avoid a potentially expensive part of the sensitivity computation.
const word & managerType() const
Return the manager type.
const dictionary & dict() const
Return the solver dictionary.
const autoPtr< ATCModel > & getATCModel() const
Access to the ATC model.
virtual tmp< volScalarField > yWall() const
Return the distance field, to be used in the solution of the adjoint eikonal PDE. ...
virtual void topOSensMultiplier(scalarField &betaMult, const word &designVariablesName, const scalar dt)
Compute the multiplier of beta.
const word & solverName() const
Return the solver name.
virtual tmp< volScalarField > adjointEikonalSource()
Return the source the adjoint eikonal equation.
Mesh data needed to do the Finite Volume discretisation.
virtual dimensionSet daDimensions() const
Return the dimensions of the adjoint distance field.
virtual bool writeNow() const
In case of multi-point runs with turbulent flows, output dummy turbulence fields with the base names...
fvMesh & mesh_
Reference to the mesh database.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
virtual void accumulateGeometryVariationsMultipliers(autoPtr< boundaryVectorField > &dSfdbMult, autoPtr< boundaryVectorField > &dnfdbMult, autoPtr< boundaryVectorField > &dxdbDirectMult, autoPtr< pointBoundaryVectorField > &pointDxDirectDbMult, const labelHashSet &sensitivityPatchIDs, const scalar dt)
Accumulate the multipliers of geometric quantities defined at the boundary, usually through an object...
bool write() const
Write dummy turbulent fields to allow for continuation in multi-point, turbulent runs.
A class for managing temporary objects.
virtual void accumulateOptionsDxDbMultiplier(vectorField &optionsDxDbMult, const scalar dt)
Contributions from fvOptions that inlcude geometric aspects in them and change when the geometry is d...
TypeName("incompressible")
Run-time type information.