39 #ifndef adjointSensitivityIncompressible_H 40 #define adjointSensitivityIncompressible_H 216 inline autoPtr<adjointMeshMovementSolver>&
223 inline void setSuffix(
const word& suffix)
autoPtr< boundaryVectorField > dSfdbMult_
Multiplier of dSf/db.
adjointSolver & adjointSolver_
Reference to the underlaying adjoint solver.
Forwards and collection of common volume field types.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Abstract base class for adjoint-based sensitivities.
virtual void write(const word &baseName=word::null)
Write sensitivity fields.
Base class for adjoint solvers.
Abstract base class for adjoint sensitivities.
const adjointSolver & getAdjointSolver() const
Const access to adjoint solver.
virtual bool computeDxDbInternalField() const
Should the parameterization compute the internalField of dxdb.
autoPtr< scalarField > divDxDbMult_
Multiplier of div(dx/db)
const fvMesh & mesh() const
Return reference to mesh.
const autoPtr< scalarField > & divDxDbMult() const
autoPtr< pointBoundaryVectorField > pointDxDbDirectMult_
Multiplier of dx/db computed at points, found in the objective function.
const autoPtr< volTensorField > & gradDxDbMult() const
static autoPtr< adjointSensitivity > New(const fvMesh &mesh, const dictionary &dict, adjointSolver &adjointSolver)
Return a reference to the selected turbulence model.
autoPtr< volTensorField > gradDxDbMult_
Multiplier of grad(dx/b)
A class for handling words, derived from Foam::string.
declareRunTimeSelectionTable(autoPtr, adjointSensitivity, dictionary,(const fvMesh &mesh, const dictionary &dict, adjointSolver &adjointSolver),(mesh, dict, adjointSolver))
autoPtr< adjointMeshMovementSolver > adjointMeshMovementSolver_
Adjoint grid displacement solver.
const autoPtr< boundaryVectorField > & bcDxDbMult() const
static const word null
An empty word.
const autoPtr< boundaryVectorField > & dxdbMult() const
void setSuffix(const word &suffix)
Set suffix.
virtual ~adjointSensitivity()=default
Destructor.
autoPtr< boundaryVectorField > dxdbDirectMult_
Multiplier of dCf/db, found in the objective function.
virtual void accumulateIntegrand(const scalar dt)=0
Accumulate sensitivity integrands.
const autoPtr< boundaryVectorField > & dnfdbMult() const
autoPtr< adjointEikonalSolver > & getAdjointEikonalSolver()
Return the adjoint eikonal solver.
virtual void assembleSensitivities(autoPtr< designVariables > &designVars)
Assemble sensitivities.
virtual void clearSensitivities()
Zero sensitivity fields and their constituents.
const scalarField & getSensitivities() const
Returns the sensitivity fields.
autoPtr< boundaryVectorField > bcDxDbMult_
Multiplier of dx/db, coming from boundary conditions that depend on the geometry, like rotatingWallVe...
virtual const scalarField & calculateSensitivities(autoPtr< designVariables > &designVars)
Calculates and returns sensitivity fields.
const word & getSuffix() const
Get suffix.
Useful typenames for fields defined only at the boundaries.
autoPtr< adjointMeshMovementSolver > & getAdjointMeshMovementSolver()
Return the adjoint eikonal solver.
word suffix_
Append this word to files related to the sensitivities.
const dictionary & dict() const
Return the construction dictionary.
autoPtr< vectorField > optionsDxDbMult_
dx/db multiplier coming from fvOptions
virtual bool readDict(const dictionary &dict)
Read dictionary if changed.
bool includeDistance_
Include distance variation in sensitivity computations.
const autoPtr< vectorField > & optionsDxDbMult() const
scalarField derivatives_
The sensitivity derivative values.
Mesh data needed to do the Finite Volume discretisation.
const autoPtr< boundaryVectorField > & dxdbDirectMult() const
TypeName("adjointSensitivity")
Runtime type information.
autoPtr< adjointEikonalSolver > eikonalSolver_
Adjoint eikonal equation solver.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
bool includeDistance() const
Should the adjoint eikonal PDE should be solved.
const autoPtr< boundaryVectorField > & dSfdbMult() const
const autoPtr< pointBoundaryVectorField > & pointDxDbDirectMult() const
autoPtr< boundaryVectorField > dxdbMult_
Multiplier of face dx/db.
autoPtr< boundaryVectorField > dnfdbMult_
Multiplier of dnf/db.