diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/levelSet/levelSetDesignVariables.H b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/levelSet/levelSetDesignVariables.H index cdeb432bdc..27202a9a15 100644 --- a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/levelSet/levelSetDesignVariables.H +++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/levelSet/levelSetDesignVariables.H @@ -29,7 +29,32 @@ Class Description Signed distance field design variables for level-set based topology - optimization. + optimization (topO). + + A great reference for various aspects of level-set-based topO can be found + in + + Reference: + \verbatim + van Dijk, N.P., Maute, K., Langelaar, M., & & van Keulen, F. (2013). + Level-set methods for structural topology optimization: a review. + Structural and Multidisciplinary Optimization, 48, 437–472. + https://doi.org/10.1007/s00158-013-0912-y + \endverbatim + + The implemented approach borrows from the references therein, but does not + follow any of them exactly. The underlaying field of the design variables + is not the level-set field but affects the latter through: + a) a regularisation approach similar to that used in porosity-based topO + (see the regularisation class and references therein) and + b) a re-initialisation strategy. Since solving a modified Hamilton-Jacobi + equation poses a number of numerical challenges, the signed distance field + is obtained by identifying the zero level-set contour using the + cutFaceIso, cutCellIso infrastucture (see references therein for the + methodology) and using these "cut-faces" as seeds for meshWave. + +SourceFiles + levelSetDesignVariables.C \*---------------------------------------------------------------------------*/ diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/betaMax/Darcy/betaMaxDarcy.H b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/betaMax/Darcy/betaMaxDarcy.H index 336475627a..7d22ce7475 100644 --- a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/betaMax/Darcy/betaMaxDarcy.H +++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/betaMax/Darcy/betaMaxDarcy.H @@ -37,6 +37,15 @@ Description - 2D: area of the inlet patches divided by the span in the empty direction - 3D: the hydraulic diameter of the inlet patches + Reference: + \verbatim + Olesen, L. H., Okkels, F., & Bruus H. (2006). + A high-level programming-language implementation of topology + optimization applied to steady-state Navier–Stokes flow. + International Journal for Numerical Methods in Engineering, + 65(7), 975-1001. + https://doi.org/10.1002/nme.1468 + \endverbatim SourceFiles betaMaxDarcy.C diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/regularisation/fieldRegularisation.H b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/regularisation/fieldRegularisation.H index a99744b60e..7837fe302c 100644 --- a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/regularisation/fieldRegularisation.H +++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/regularisation/fieldRegularisation.H @@ -33,6 +33,18 @@ Description optimisation to regularise the designed geometries and obtain 'grid independent' solutions. + Reference: + \verbatim + Largely follows the PDE-based smoothing of + + Lazarov, B. S., & Sigmund O. (2010). + Filters in topology optimization based on Helmholtz-type + differential equations. + International Journal for Numerical Methods in Engineering, + 86(6), 765-781. + https://doi.org/10.1002/nme.3072 + \endverbatim + SourceFiles fieldRegularisation.C diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/regularisation/regularisationPDE/Helmoltz/Helmholtz.C b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/regularisation/regularisationPDE/Helmoltz/Helmholtz.C index 682c38b62c..ffcd86a0cf 100644 --- a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/regularisation/regularisationPDE/Helmoltz/Helmholtz.C +++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/regularisation/regularisationPDE/Helmoltz/Helmholtz.C @@ -82,7 +82,7 @@ void Foam::Helmholtz::solveEqn zeroGradientFvPatchScalarField::typeName ) ); - // If solution corresponds to the topology density field, modify boundary + // If solution corresponds to the topology porosity field, modify boundary // conditions accordingly if (isTopoField && growFromWalls_) { diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.H b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.H index 3c716aa607..245b1fec77 100644 --- a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.H +++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.H @@ -29,7 +29,27 @@ Class Foam::topODesignVariables Description - Design variables for density-based topology optimisation (topO) problems + Design variables for porosity-based topology optimisation (topO) problems + + Reference: + \verbatim + The main idea behind porosity-based topO can be found in + + Papoutsis-Kiachagias, E. M., & Giannakoglou, K. C. (2014). + Continuous Adjoint Methods for Turbulent Flows, Applied to Shape + and Topology Optimization: Industrial Applications. + Archives of Computational Methods in Engineering, 23(2), 255-299. + http://doi.org/10.1007/s11831-014-9141-9 + + with regularisation and projection approaches following + + Lazarov, B. S., & Sigmund O. (2010). + Filters in topology optimization based on Helmholtz-type + differential equations. + International Journal for Numerical Methods in Engineering, + 86(6), 765-781. + https://doi.org/10.1002/nme.3072 + \endverbatim SourceFiles topODesignVariables.C diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topOVariablesBase/topOVariablesBase.H b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topOVariablesBase/topOVariablesBase.H index cc1700d056..0a1d0af9a1 100644 --- a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topOVariablesBase/topOVariablesBase.H +++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topOVariablesBase/topOVariablesBase.H @@ -205,7 +205,7 @@ public: // The interface is computed as an isoValue contour of the indicator // field // - 0 distance contour for levelSet or - // - 0.5 beta contour for density-based topO. + // - 0.5 beta contour for porosity-based topO. // For levelSet topO, the process of identitying the contour sets also // the seeds for computing the distance field in the entire domain void writeFluidSolidInterface