38 namespace incompressible
65 Info<<
" Writing new mesh points " <<
endl;
119 shapeOptimisation::shapeOptimisation
127 optMeshMovement_(nullptr),
130 dict.subDict(
"optimisationType").
131 getOrDefault<bool>(
"writeEachMesh", false)
135 dict.subDict(
"optimisationType").
136 getOrDefault<bool>(
"updateGeometry", true)
150 <<
"There is no patch on which to compute sensitivities. " 151 <<
"Check optimisationDict \n" 173 <<
"Neither eta (updateMethod) " 174 <<
"nor maxAllowedDisplacement (meshMovement) have been set" const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix by subtracting the matrix multiplied by the current fi...
defineTypeNameAndDebug(adjointEikonalSolver, 0)
errorManipArg< error, int > exit(error &err, const int errNo=1)
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
A list of keyword definitions, which are a keyword followed by a number of values (eg...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual void write()
Write useful quantities to files.
constexpr char nl
The newline '\n' character (0x0a)
static word meshSubDir
Return the mesh sub-directory name (usually "polyMesh")
Ostream & endl(Ostream &os)
Add newline and flush stream.
Shape optimisation support library.
Ignore writing from objectRegistry::writeObject()
T get(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a T. FatalIOError if not found, or if the number of tokens is incorrect.
const dictionary & subDict(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a sub-dictionary.
addToRunTimeSelectionTable(adjointSensitivity, sensitivityBezier, dictionary)
Macros for easy insertion into run-time selection tables.
Abstract base class for optimisation methods.
virtual const pointField & points() const
Return raw points.
static autoPtr< optMeshMovement > New(fvMesh &mesh, const dictionary &dict, const labelList &patchIDs)
const fileName & pointsInstance() const
Return the current instance directory for points.
virtual void updateDesignVariables(scalarField &correction)
Update the design variables given their correction.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
autoPtr< updateMethod > updateMethod_
A List of wordRe with additional matching capabilities.
autoPtr< optMeshMovement > optMeshMovement_
virtual void computeEta(scalarField &correction)
Compute eta if not set in the first step.
virtual void storeDesignVariables()
Store design variables, as the starting point for line search.
#define WarningInFunction
Report a warning using Foam::Warning.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
Mesh data needed to do the Finite Volume discretisation.
const polyBoundaryMesh & patches
virtual void resetDesignVariables()
Store design variables, as the starting point for line search.
messageStream Info
Information stream (stdout output on master, null elsewhere)
labelHashSet patchSet(const UList< wordRe > &patchNames, const bool warnNotFound=true, const bool useGroups=true) const
Return the set of patch IDs corresponding to the given names.
List< label > labelList
A List of labels.
PtrList< adjointSolverManager > & adjointSolverManagers
Defines the attributes of an object for which implicit objectRegistry management is supported...
A primitive field of type <T> with automated input and output.
Calculates shape sensitivities using the adjoint approach, computes boundaryMesh movement and propaga...
virtual void write()
Write useful quantities to files.