126 #ifndef adjointEikonalSolver_H 127 #define adjointEikonalSolver_H tmp< scalarField > topologySensitivities(const word &designVarsName) const
Return sensitivity contribution to topology optimisation.
tmp< volVectorField > gradEikonal()
Return the gradient of the eikonal equation.
TypeName("adjointEikonalSolver")
Runtime type information.
void accumulateIntegrand(const scalar dt)
Accumulate source term.
labelHashSet wallPatchIDs_
Forwards and collection of common volume field types.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
boundaryVectorField & distanceSensitivities()
Return the sensitivity term depending on da.
const volScalarField & da()
Return the adjoint distance field.
Base class for adjoint solvers.
void solve()
Calculate the adjoint distance field.
virtual ~adjointEikonalSolver()=default
wordList patchTypes() const
Return the boundary condition types for da.
tmp< surfaceScalarField > computeYPhi()
Compute convecting velocity.
const labelHashSet & sensitivityPatchIDs_
A class for handling words, derived from Foam::string.
void reset()
Reset source term.
tmp< volTensorField > getFISensitivityTerm() const
Return the volume-based sensitivity term depending on da.
const volScalarField & d()
Return the distance field.
autoPtr< boundaryVectorField > distanceSensPtr_
Wall face sens w.r.t. (x,y.z)
Useful typenames for fields defined only at the boundaries.
Mesh data needed to do the Finite Volume discretisation.
void read()
Read options each time a new solution is found.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
A class for managing temporary objects.
Solver of the adjoint to the eikonal PDE.
adjointSolver & adjointSolver_
virtual bool readDict(const dictionary &dict)
Read dict if changed.