Public Member Functions | |
TypeName ("fieldRegularisation") | |
Runtime type information. More... | |
fieldRegularisation (fvMesh &mesh, const scalarField &alpha, const topOZones &zones, const dictionary &dict) | |
Construct from components. More... | |
virtual | ~fieldRegularisation ()=default |
Destructor. More... | |
const volScalarField & | beta () const |
Return beta field. More... | |
bool | growFromWalls () const |
Grow beta from walls. More... | |
bool | shouldRegularise () const |
Should regularisation be executed. More... | |
virtual void | updateBeta () |
Update the beta field. More... | |
void | regularise (const scalarField &source, scalarField &result, const bool isTopoField, const regularisationRadius &radius) |
Regularise an externally provided radius. More... | |
void | regularise (const scalarField &source, scalarField &result, const bool isTopoField) |
Regularise field (or sensitivities) using a Laplace PDE. More... | |
void | postProcessSens (scalarField &sens) |
Update part of fieldRegularisation to the sensitivitiy derivatives. More... | |
Protected Attributes | |
fvMesh & | mesh_ |
dictionary | dict_ |
const topOZones & | zones_ |
Cell zones related to topology optimisation. More... | |
bool | regularise_ |
Perform regulaisation on alpha before inputing it on beta? More... | |
bool | project_ |
Perform the projection (sharpening) step? More... | |
autoPtr< regularisationRadius > | radius_ |
Smoothing radius. More... | |
const scalarField & | alpha_ |
Alpha field (design variables of topology optimisation) More... | |
autoPtr< volScalarField > | alphaTilda_ |
The regularised alpha field, if regulatisation is performed. More... | |
autoPtr< topOInterpolationFunction > | sharpenFunction_ |
Function used to sharpen the field after regularisation. More... | |
autoPtr< regularisationPDE > | regularisationPDE_ |
PDE used for the regularisation. More... | |
const scalarField & | betaArg_ |
Argument of the beta field. More... | |
bool | growFromWalls_ |
Whether to apply a fixedValue BC or zeroGradient one to alphaTilda, when regularisation is performed. More... | |
volScalarField | beta_ |
Beta is the field used for all interpolations between fluid and solid in topology optimisation. More... | |
Definition at line 68 of file fieldRegularisation.H.
fieldRegularisation | ( | fvMesh & | mesh, |
const scalarField & | alpha, | ||
const topOZones & | zones, | ||
const dictionary & | dict | ||
) |
Construct from components.
Definition at line 37 of file fieldRegularisation.C.
References DebugInfo, Foam::endl(), and Foam::nl.
|
virtualdefault |
Destructor.
TypeName | ( | "fieldRegularisation" | ) |
Runtime type information.
|
inline |
Return beta field.
Definition at line 189 of file fieldRegularisation.H.
References fieldRegularisation::beta_.
|
inline |
Grow beta from walls.
Definition at line 197 of file fieldRegularisation.H.
References fieldRegularisation::growFromWalls_.
|
inline |
Should regularisation be executed.
Definition at line 205 of file fieldRegularisation.H.
References fieldRegularisation::regularise_.
|
virtual |
Update the beta field.
Performs regulaisation of alpha_, if necessary
Definition at line 102 of file fieldRegularisation.C.
References fieldRegularisation::alpha_, fieldRegularisation::alphaTilda_, fieldRegularisation::beta_, fieldRegularisation::betaArg_, GeometricField< Type, PatchField, GeoMesh >::correctBoundaryConditions(), GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef(), fieldRegularisation::project_, fieldRegularisation::regularise(), fieldRegularisation::regularise_, and fieldRegularisation::sharpenFunction_.
void regularise | ( | const scalarField & | source, |
scalarField & | result, | ||
const bool | isTopoField, | ||
const regularisationRadius & | radius | ||
) |
Regularise an externally provided radius.
Definition at line 123 of file fieldRegularisation.C.
Referenced by fieldRegularisation::updateBeta().
void regularise | ( | const scalarField & | source, |
scalarField & | result, | ||
const bool | isTopoField | ||
) |
Regularise field (or sensitivities) using a Laplace PDE.
Definition at line 136 of file fieldRegularisation.C.
void postProcessSens | ( | scalarField & | sens | ) |
Update part of fieldRegularisation to the sensitivitiy derivatives.
Definition at line 147 of file fieldRegularisation.C.
|
protected |
Definition at line 75 of file fieldRegularisation.H.
|
protected |
Definition at line 76 of file fieldRegularisation.H.
|
protected |
Cell zones related to topology optimisation.
Definition at line 81 of file fieldRegularisation.H.
|
protected |
Perform regulaisation on alpha before inputing it on beta?
Definition at line 86 of file fieldRegularisation.H.
Referenced by fieldRegularisation::shouldRegularise(), and fieldRegularisation::updateBeta().
|
protected |
Perform the projection (sharpening) step?
Definition at line 91 of file fieldRegularisation.H.
Referenced by fieldRegularisation::updateBeta().
|
protected |
Smoothing radius.
May be isotropic or differ per spatial direction
Definition at line 98 of file fieldRegularisation.H.
|
protected |
Alpha field (design variables of topology optimisation)
Definition at line 103 of file fieldRegularisation.H.
Referenced by fieldRegularisation::updateBeta().
|
protected |
The regularised alpha field, if regulatisation is performed.
Definition at line 108 of file fieldRegularisation.H.
Referenced by fieldRegularisation::updateBeta().
|
protected |
Function used to sharpen the field after regularisation.
Definition at line 113 of file fieldRegularisation.H.
Referenced by fieldRegularisation::updateBeta().
|
protected |
PDE used for the regularisation.
Definition at line 118 of file fieldRegularisation.H.
|
protected |
Argument of the beta field.
Is either alpha_ (no regularisation) or alphaTilda_ (with regularisation)
Definition at line 126 of file fieldRegularisation.H.
Referenced by fieldRegularisation::updateBeta().
|
protected |
Whether to apply a fixedValue BC or zeroGradient one to alphaTilda, when regularisation is performed.
Definition at line 132 of file fieldRegularisation.H.
Referenced by fieldRegularisation::growFromWalls().
|
protected |
Beta is the field used for all interpolations between fluid and solid in topology optimisation.
Definition at line 138 of file fieldRegularisation.H.
Referenced by fieldRegularisation::beta(), and fieldRegularisation::updateBeta().