Criteria
Criteria are elements of the optimization problem.
The module OpenPisco.Optim.Criteria()
collects criteria available in OpenPisco.
Each criterion must be able to evaluate both the cost function value and sensitivity on a given optimization state. Thus, each criterion has three basic functions
OpenPisco.Optim.Criteria.Criteria.UpdateValues()
OpenPisco.Optim.Criteria.Criteria.GetValue()
OpenPisco.Optim.Criteria.GetSensitivity()
There are two main classes of criteria: physical and geometrical criteria.
Physical criteria
A physical criterion needs to run a physical analysis (here, a finite element analysis) to evaluate values and sensitivities on the current optimization point. A base class describing physical criteria can be found in the following module
OpenPisco.Optim.Criteria.PhysicalCriteriaBase()
A physical criterion must have a mandatory attribute OpenPisco.Optim.Criteria.problem
which is a physical solver class. Please read the physical solver documentation for an overview of the physical solvers capabilities.
Note that some physical criteria need to solve an adjoint state to evaluate the sensitivity on the current levelset. In some cases, the computation of the adjoint state can repose on external finite element solvers interfaced with OpenPisco.
The physical criteria are collected in the following submodules
In order to run as expected, a physical criterion must be able to compute auxiliary scalars and fields needed to evaluate the current state. The auxiliary quantities needed by each criterion are detailed below. See `FieldNames`_ for more details about auxiliary quantities names.
Elastic compliance
This criterion evaluates the elastic compliance of the negative part of the level set in linear elasticity
where the quantities \(\sigma(u)\) and \(\varepsilon (u)\) are related to a linear elasticity analysis. See the documentation for details about the associated physical analysis.
In order to run as expected, the OpenPisco.Optim.Criteria.problem
class must be able to compute the following auxiliary quantities :
elastic_energy
int_elastic_energy on nodes
This criterion does not need an adjoint solver to update its values.
See also OpenPisco.Optim.Criteria.PhyCriteria.TopoCriteriaCompliance
.
Von Mises stress
This criterion evaluates the von Mises equivalent stress of the negative part of the level set in linear elasticity. Since stress measurements are intrinsically of local nature, we rely here on a popular aggregation technique. Therefore, we consider the following formulation based on the p-norm of the von Mises stress
where \(\alpha\) is a real positive parameter and \(\sigma_{vm}\) is the Von Mises Stress related to a linear elasticity analysis. See physical solver for details about the associated physical analysis.
The OpenPisco.Optim.Criteria.problem
solver must be able to compute the following auxiliary quantities :
stress on integration points
von_mises on nodes
von_mises on integration points
The adjoint state computation reposes on the solver Code_Aster.
The attribute OpenPisco.Optim.Criteria.PhyMecaCriteria.TopoCriteriaVonMises.alpha
corresponds to the weight \(\alpha\) appearing in the criterion functional.
It is possible to exclude a subregion from the computation of the integral value of the criterion. In order to do so, the attribute OpenPisco.Optim.Criteria.PhyMecaCriteria.TopoCriteriaVonMises.offZone
must be initialized with an implicit geometry representing the zone to exclude.
The ImplicitGeometry module of the library muscat 1 is used to define specific zones.
See also OpenPisco.Optim.Criteria.PhyMecaCriteria.TopoCriteriaVonMises
.
Target displacement
This criterion evaluates the discrepancy between the actual and target displacements in linear elasticity
where \(u_{nTag}\) is the elastic displacement on a mesh node specified by the nodal tag nTag, dir is an unit vector (direction) and \(u_0\) is a target scalar value.
See the documentation for details about the associated physical analysis.
The OpenPisco.Optim.Criteria.problem
solver must be able to compute the following auxiliary quantities :
stress on integration points
The adjoint state computation reposes on the solver Code_Aster.
See also OpenPisco.Optim.Criteria.PhyMecaCriteria.TopoCriteriaNodalTargetDisp
.
k-th eigenfrequency
This criterion aims at maximizing the k-th eigenfrequency of the negative part of the level set. In order to to so, the following functional is considered
where \(\omega_k > 0\) is the k-th eigenpulsation. See the documentation for details about the associated physical analysis.
The OpenPisco.Optim.Criteria.problem
class must be able to compute the following auxiliary quantities :
FN.EigenFreqSquared_sensitivity
FN.EigenFreqSquared
This criterion does not need an adjoint solver to update its values.
See also OpenPisco.Optim.Criteria.PhyModalCriteria.TopoCriteriaModal
.
Effective radiated power (ERP)
This criterion evaluates the structure-borne noise to obtain an insight regarding the radiation of components and panels for specific excitations, in the context of viscoelasticity.
See the documentation for details and notations about the associated physical analysis.
The OpenPisco.Optim.Criteria.problem
class must be able to compute the following auxiliary quantities :
ERP_sensitivity on Nodes
ERP_density on Nodes
dominant_SolutionMode on Nodes
ERP
ModalCumulMassFractiondX
ModalCumulMassFractiondY
ModalCumulMassFractiondZ
ModalLastEnergyRatio
The adjoint state computation reposes on the solver Code_Aster.
See also OpenPisco.Optim.Criteria.PhyHarmonicCriteria.TopoCriteriaERP
.
Target temperature
This criterion aims at controlling a global temperature indicator of the negative part of the level set.
where \(T(x)\) is the calculated temperature field and \(T_s\) is a scalar value equal to the temperature at solidus state. See the documentation for details and notations about the associated physical analysis. See 4 for the theoretical background.
The OpenPisco.Optim.Criteria.problem
class must be able to compute the following auxiliary quantities :
temperature on Nodes
The adjoint state computation reposes on the solver Code_Aster.
See also OpenPisco.Optim.Criteria.PhyThermalCriteria.TopoCriteriaTargetTemperature
.
Buckling
This criterion aims at avoiding linear buckling instabilities.
where \(\gamma\) is the critical load coefficient.
The OpenPisco.Optim.Criteria.problem
class must be able to compute the following auxiliary quantities :
load_crit
elastic_energy_buckling on Centroids
stress on Centroids
strain_green_buckling on Centroids
strain_buckling on Centroids
mode_buckling on FN.Nodes
von_mises on FN.Nodes
The adjoint state computation reposes on the solver Code_Aster.
See also OpenPisco.Optim.Criteria.PhyBucklingCriteria.TopoCriteriaBuckling
.
Worst-case elastic compliance
This criterion evaluates the elastic compliance of the negative part of the level set in the context of linear elasticity under the assumption of uncertainty over surfacic loads.
See 2 for the theoretical background.
The OpenPisco.Optim.Criteria.problem
class must be able to compute the following auxiliary quantities :
elastic_energy on Nodes
int_elastic_energy
stress on Centroids
The adjoint state computation reposes on the solver Code_Aster.
See also OpenPisco.Optim.Criteria.PhyRobustCriteria.TopoCriteriaComplianceRobustLoadWorstCase
.
Geometrical criteria
Geometrical criteria only need informations about the geometry of the shape to evaluate value and sensitivity on a given optimization point. Thus, in most cases, these criteria do not need to call a finite element solver. The geometrical criteria are collected in the following submodules
Volume
This criterion evaluates the volume of the negative part of the current level set.
See also OpenPisco.Optim.Criteria.GeoCriteria.TopoCriteriaVolume
Mass
This criterion evaluates the mass of the negative part of the current level set.
where \(\rho\) is the constant density.
See also OpenPisco.Optim.Criteria.GeoCriteria.TopoCriteriaMass
.
Minimal thickness
This criterion evaluates the minimal thickness of the negative part of the current level set.
where \(d_{\Omega}\) is the signed distance function, \(d_{min}\) is the desired minimal thickness and \(n\) is the normal vector.
See 3 for the theoretical background.
See also OpenPisco.Optim.Criteria.GeoThicknessCriteria.TopoCriteriaMinThickness
.
Maximal thickness
This criterion evaluates the maximal thickness of the negative part of the current level set.
where \(d_{\Omega}\) is the signed distance function and \(d_{max}\) is the desired maximal thickness.
See 3 for the theoretical background.
See also OpenPisco.Optim.Criteria.GeoThicknessCriteria.TopoCriteriaMaxThickness
.
Criteria operations
It is possible to apply unary or binary operations on the set of available criteria.
The available unary operations are the following
OpenPisco.Optim.Criteria.Criteria.CriteriaFactor
OpenPisco.Optim.Criteria.Criteria.Weighted
OpenPisco.Optim.Criteria.Criteria.PolynomialVanishingCriteria
OpenPisco.Optim.Criteria.Criteria.CriteriaPower
The available binary operations are the following
OpenPisco.Optim.Criteria.Criteria.CriteriaRatio
- 1
- 2
Allaire, Ch. Dapogny, A linearized approach to worst-case design in parametric and geometric shape optimization, M3AS Vol. 24, No. 11 (2014) 2199-2257
- 3(1,2)
Allaire, F. Jouve, G. Michailidis, Thickness control in structural optimization via a level set method, SMO 53, 1349-1382 (2016)
- 4
Michailidis, Manufacturing constraints and multi-phase shape and topology optimization via a level-set method. Diss. Ecole Polytechnique X (2014)