fieldRegularisation Class Reference
Collaboration diagram for fieldRegularisation:

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 volScalarFieldbeta () 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

fvMeshmesh_
 
dictionary dict_
 
const topOZoneszones_
 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< regularisationRadiusradius_
 Smoothing radius. More...
 
const scalarFieldalpha_
 Alpha field (design variables of topology optimisation) More...
 
autoPtr< volScalarFieldalphaTilda_
 The regularised alpha field, if regulatisation is performed. More...
 
autoPtr< topOInterpolationFunctionsharpenFunction_
 Function used to sharpen the field after regularisation. More...
 
autoPtr< regularisationPDEregularisationPDE_
 PDE used for the regularisation. More...
 
const scalarFieldbetaArg_
 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...
 

Detailed Description

Definition at line 68 of file fieldRegularisation.H.

Constructor & Destructor Documentation

◆ fieldRegularisation()

fieldRegularisation ( fvMesh mesh,
const scalarField alpha,
const topOZones zones,
const dictionary dict 
)

Construct from components.

Definition at line 38 of file fieldRegularisation.C.

References DebugInfo, Foam::endl(), and Foam::nl.

Here is the call graph for this function:

◆ ~fieldRegularisation()

virtual ~fieldRegularisation ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "fieldRegularisation"  )

Runtime type information.

◆ beta()

const volScalarField& beta ( ) const
inline

Return beta field.

Definition at line 189 of file fieldRegularisation.H.

References fieldRegularisation::beta_.

◆ growFromWalls()

bool growFromWalls ( ) const
inline

Grow beta from walls.

Definition at line 197 of file fieldRegularisation.H.

References fieldRegularisation::growFromWalls_.

◆ shouldRegularise()

bool shouldRegularise ( ) const
inline

Should regularisation be executed.

Definition at line 205 of file fieldRegularisation.H.

References fieldRegularisation::regularise_.

◆ updateBeta()

◆ regularise() [1/2]

void regularise ( const scalarField source,
scalarField result,
const bool  isTopoField,
const regularisationRadius radius 
)

Regularise an externally provided radius.

Definition at line 124 of file fieldRegularisation.C.

Referenced by fieldRegularisation::updateBeta().

Here is the caller graph for this function:

◆ regularise() [2/2]

void regularise ( const scalarField source,
scalarField result,
const bool  isTopoField 
)

Regularise field (or sensitivities) using a Laplace PDE.

Definition at line 137 of file fieldRegularisation.C.

◆ postProcessSens()

void postProcessSens ( scalarField sens)

Update part of fieldRegularisation to the sensitivitiy derivatives.

Definition at line 148 of file fieldRegularisation.C.

Member Data Documentation

◆ mesh_

fvMesh& mesh_
protected

Definition at line 75 of file fieldRegularisation.H.

◆ dict_

dictionary dict_
protected

Definition at line 76 of file fieldRegularisation.H.

◆ zones_

const topOZones& zones_
protected

Cell zones related to topology optimisation.

Definition at line 81 of file fieldRegularisation.H.

◆ regularise_

bool regularise_
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().

◆ project_

bool project_
protected

Perform the projection (sharpening) step?

Definition at line 91 of file fieldRegularisation.H.

Referenced by fieldRegularisation::updateBeta().

◆ radius_

autoPtr<regularisationRadius> radius_
protected

Smoothing radius.

May be isotropic or differ per spatial direction

Definition at line 98 of file fieldRegularisation.H.

◆ alpha_

const scalarField& alpha_
protected

Alpha field (design variables of topology optimisation)

Definition at line 103 of file fieldRegularisation.H.

Referenced by fieldRegularisation::updateBeta().

◆ alphaTilda_

autoPtr<volScalarField> alphaTilda_
protected

The regularised alpha field, if regulatisation is performed.

Definition at line 108 of file fieldRegularisation.H.

Referenced by fieldRegularisation::updateBeta().

◆ sharpenFunction_

autoPtr<topOInterpolationFunction> sharpenFunction_
protected

Function used to sharpen the field after regularisation.

Definition at line 113 of file fieldRegularisation.H.

Referenced by fieldRegularisation::updateBeta().

◆ regularisationPDE_

autoPtr<regularisationPDE> regularisationPDE_
protected

PDE used for the regularisation.

Definition at line 118 of file fieldRegularisation.H.

◆ betaArg_

const scalarField& betaArg_
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().

◆ growFromWalls_

bool growFromWalls_
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().

◆ beta_

volScalarField beta_
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().


The documentation for this class was generated from the following files: