Abstract base class for translating an update of the design variables into mesh movement. More...
Public Member Functions | |
TypeName ("optMeshMovement") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, optMeshMovement, dictionary,(fvMesh &mesh, const dictionary &dict, const labelList &patchIDs),(mesh, dict, patchIDs)) | |
optMeshMovement (fvMesh &mesh, const dictionary &dict, const labelList &patchIDs) | |
Construct from components. More... | |
virtual | ~optMeshMovement ()=default |
Destructor. More... | |
void | setCorrection (const scalarField &correction) |
Set design variable correction. More... | |
virtual void | moveMesh () |
autoPtr< displacementMethod > & | returnDisplacementMethod () |
Return displacementMethod. More... | |
const labelList & | getPatchIDs () |
Return patchIDs. More... | |
void | writeMeshQualityMetrics () |
Write mesh quality metrics. More... | |
virtual void | storeDesignVariables () |
virtual void | resetDesignVariables () |
Reset to starting point of line search. More... | |
virtual scalar | computeEta (const scalarField &correction)=0 |
Compute eta value based on max displacement. More... | |
bool | maxAllowedDisplacementSet () const |
Whether maxAllowedDisplacement has been set. More... | |
virtual labelList | getActiveDesignVariables () const |
Return active design variables. More... | |
Static Public Member Functions | |
static autoPtr< optMeshMovement > | New (fvMesh &mesh, const dictionary &dict, const labelList &patchIDs) |
Protected Member Functions | |
scalar | getMaxAllowedDisplacement () const |
Get maxAllowedDisplacement, is set. More... | |
Protected Attributes | |
fvMesh & | mesh_ |
const dictionary & | dict_ |
scalarField | correction_ |
Correction of design variables. More... | |
labelList | patchIDs_ |
IDs of patches to be moved. More... | |
vectorField | pointsInit_ |
Fall back points in case line-search is used. More... | |
autoPtr< displacementMethod > | displMethodPtr_ |
bool | writeMeshQualityMetrics_ |
Abstract base class for translating an update of the design variables into mesh movement.
Definition at line 54 of file optMeshMovement.H.
optMeshMovement | ( | fvMesh & | mesh, |
const dictionary & | dict, | ||
const labelList & | patchIDs | ||
) |
Construct from components.
Definition at line 61 of file optMeshMovement.C.
References dict, dictionary::found(), and dictionary::get().
|
virtualdefault |
Destructor.
|
protected |
Get maxAllowedDisplacement, is set.
Definition at line 45 of file optMeshMovement.C.
References autoPtr< T >::empty(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.
TypeName | ( | "optMeshMovement" | ) |
Runtime type information.
declareRunTimeSelectionTable | ( | autoPtr | , |
optMeshMovement | , | ||
dictionary | , | ||
(fvMesh &mesh, const dictionary &dict, const labelList &patchIDs) | , | ||
(mesh, dict, patchIDs) | |||
) |
|
static |
Definition at line 93 of file optMeshMovement.C.
References dict, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInLookup, dictionary::get(), Foam::Info, and mesh.
Referenced by shapeOptimisation::shapeOptimisation().
void setCorrection | ( | const scalarField & | correction | ) |
Set design variable correction.
Definition at line 122 of file optMeshMovement.C.
References Foam::correction().
|
virtual |
Calculates mesh movemnt based on the correction of the design variables
Reimplemented in optMeshMovementVolumetricBSplinesExternalMotionSolver, optMeshMovementBezier, optMeshMovementVolumetricBSplines, and optMeshMovementNULL.
Definition at line 128 of file optMeshMovement.C.
Referenced by optMeshMovementBezier::moveMesh(), optMeshMovementVolumetricBSplines::moveMesh(), and optMeshMovementVolumetricBSplinesExternalMotionSolver::moveMesh().
Foam::autoPtr< Foam::displacementMethod > & returnDisplacementMethod | ( | ) |
Return displacementMethod.
Definition at line 142 of file optMeshMovement.C.
const Foam::labelList & getPatchIDs | ( | ) |
Return patchIDs.
Definition at line 148 of file optMeshMovement.C.
void writeMeshQualityMetrics | ( | ) |
Write mesh quality metrics.
Definition at line 154 of file optMeshMovement.C.
References Foam::dimless, Foam::endl(), Foam::gAverage(), Foam::gMax(), Foam::Info, cellQuality::nonOrthogonality(), and cellQuality::skewness().
|
virtual |
Store design variables and mesh, to act as the starting point of line search
Reimplemented in optMeshMovementVolumetricBSplines.
Definition at line 182 of file optMeshMovement.C.
Referenced by optMeshMovementVolumetricBSplines::storeDesignVariables().
|
virtual |
Reset to starting point of line search.
Reimplemented in optMeshMovementVolumetricBSplines.
Definition at line 188 of file optMeshMovement.C.
References Foam::endl(), and Foam::Info.
Referenced by optMeshMovementVolumetricBSplines::resetDesignVariables().
|
pure virtual |
Compute eta value based on max displacement.
Implemented in optMeshMovementVolumetricBSplines, optMeshMovementVolumetricBSplinesExternalMotionSolver, optMeshMovementBezier, and optMeshMovementNULL.
bool maxAllowedDisplacementSet | ( | ) | const |
Whether maxAllowedDisplacement has been set.
Definition at line 195 of file optMeshMovement.C.
|
virtual |
Return active design variables.
Implemented only for certain parametetisations
Reimplemented in optMeshMovementVolumetricBSplines, optMeshMovementVolumetricBSplinesExternalMotionSolver, and optMeshMovementBezier.
Definition at line 201 of file optMeshMovement.C.
References NotImplemented.
|
protected |
Definition at line 77 of file optMeshMovement.H.
|
protected |
Definition at line 78 of file optMeshMovement.H.
|
protected |
Correction of design variables.
Definition at line 81 of file optMeshMovement.H.
Referenced by optMeshMovementBezier::moveMesh(), optMeshMovementVolumetricBSplines::moveMesh(), and optMeshMovementVolumetricBSplinesExternalMotionSolver::moveMesh().
|
protected |
IDs of patches to be moved.
Definition at line 84 of file optMeshMovement.H.
|
protected |
Fall back points in case line-search is used.
Definition at line 87 of file optMeshMovement.H.
|
protected |
Mesh movement engine and interface for applying mesh movement boundary conditions
Definition at line 91 of file optMeshMovement.H.
Referenced by optMeshMovementBezier::moveMesh(), optMeshMovementVolumetricBSplines::moveMesh(), and optMeshMovementVolumetricBSplinesExternalMotionSolver::moveMesh().
|
protected |
Whether to write the mesh quality metrics to files each time the mesh is updated
Definition at line 95 of file optMeshMovement.H.