topology_optimization#
- class fenics_optim.topology_optimization.single_material.LimitAnalysis(mesh, material, **kwargs)#
Bases:
fenics_optim.topology_optimization.topology_optimization.TopologyOptimizationStandard limit analysis problem (no density field).
The loading is amplified by a load factor, we look for its maximum value under the constraints of equilibrium and strength conditions.
- Parameters
mesh (dolfin.Mesh) – mesh object
material (
StrengthCriterion) – material strength criterion
- apply_strength_conditions()#
No density-dependent strength condition.
- set_up_problem()#
Limit analysis problem.
Optimization variables are \(\lambda, \sigma\).
- class fenics_optim.topology_optimization.single_material.LoadMaximization(mesh, frac, material, **kwargs)#
Bases:
fenics_optim.topology_optimization.topology_optimization.TopologyOptimizationSingle-material load maximization problem.
The material volume fraction is set to a maximum value. The loading is amplified by a load factor, we look for its maximum value under the constraints of equilibrium, density-dependent strength conditions and volume constraints.
- Parameters
mesh (dolfin.Mesh) – mesh object
frac (float) – maximum volume fraction
material (
StrengthCriterion) – material strength criterion
- set_up_problem()#
Load-maximization problem.
Optimization variables are \(\lambda, \rho, \sigma\).
- class fenics_optim.topology_optimization.single_material.VolumeMinimization(mesh, material, **kwargs)#
Bases:
fenics_optim.topology_optimization.topology_optimization.TopologyOptimizationSingle-material volume minimization problem.
The loading is fixed to a reference value, we look for the minimum material volume such that there exists a stress field in equilibrium and complying with the density-dependent strength conditions.
- Parameters
mesh (dolfin.Mesh) – mesh object
material (
StrengthCriterion) – material strength criterion
- set_up_problem()#
Volume-minimization problem.
Optimization variables are \(\rho, \sigma\).
- class fenics_optim.topology_optimization.multi_materials.BimaterialLoadMaximization(mesh, frac, material, **kwargs)#
Bases:
fenics_optim.topology_optimization.topology_optimization.TopologyOptimizationBimaterial load maximization problem.
We assume that the total stress field decomposes as the sum of two stress fields, one for each material. We optimize the pseudo-density of both materials.
- Parameters
mesh (dolfin.Mesh) – mesh object
materials (list of
StrengthCriterion) – a list of two material strength criteria
- apply_strength_conditions()#
Define the total strength conditions from partial strength criteria.
- set_up_problem()#
Load maximization problem.
Optimization variables are \(\rho_1, \sigma_1, \rho_2 \sigma_2\). with the total stress \(\sigma= \sigma_1 + \sigma_2\) being the sum of a two stresses with density-dependent strengths.
- class fenics_optim.topology_optimization.multi_materials.BimaterialVolumeMinimization(mesh, material, **kwargs)#
Bases:
fenics_optim.topology_optimization.topology_optimization.TopologyOptimizationBimaterial volume minimization problem.
We assume that the total stress field decomposes as the sum of two stress fields, one for each material. We optimize the pseudo-density of both materials.
- Parameters
mesh (dolfin.Mesh) – mesh object
materials (list of
StrengthCriterion) – a list of two material strength criteria
- apply_strength_conditions()#
Define the total strength conditions from partial strength criteria.
- set_up_problem()#
Volume minimization problem.
Optimization variables are \(\rho_1, \sigma_1, \rho_2 \sigma_2\). with the total stress \(\sigma= \sigma_1 + \sigma_2\) being the sum of a two stresses with density-dependent strengths.
- class fenics_optim.topology_optimization.multi_materials.ReinforcementLoadMaximization(mesh, frac, materials, additive=True, **kwargs)#
Bases:
fenics_optim.topology_optimization.topology_optimization.TopologyOptimizationReinforcement load maximization problem.
We assume that the total stress field decomposes as the sum of two stress fields, one for each material. The first material is assumed to exist everywhere and we optimize the second material pseudo-density (reinforcement phase).
- Parameters
mesh (dolfin.Mesh) – mesh object
frac (float) – maximum volume fraction for the second material
materials (list of
StrengthCriterion) – a list of two material strength criteriaadditive (bool, optional) – If true, both matrix and reinforcement stresses can coexist i.e. \(\sigma \in G_1 \oplus \rho G_2\) else, only one material can exist at a time i.e. \(\sigma \in (1-\rho)G_1 \oplus \rho G_2\)
- apply_strength_conditions()#
Define the total strength conditions from partial strength criteria.
- set_up_problem()#
Load-maximization problem.
Optimization variables are \(\lambda, \rho, \sigma_1, \sigma_2\). with the total stress \(\sigma= \sigma_1 + \sigma_2\) being the sum of a matrix and reinforcement stress respectively.
- class fenics_optim.topology_optimization.multi_materials.ReinforcementVolumeMinimization(mesh, materials, additive=True, **kwargs)#
Bases:
fenics_optim.topology_optimization.topology_optimization.TopologyOptimizationReinforcement volume minimization problem.
We assume that the total stress field decomposes as the sum of two stress fields, one for each material. The first material is assumed to exist everywhere and we optimize the second material pseudo-density (reinforcement phase).
- Parameters
mesh (dolfin.Mesh) – mesh object
materials (list of
StrengthCriterion) – a list of two material strength criteriaadditive (bool, optional) – If true, both matrix and reinforcement stresses can coexist i.e. \(\sigma \in G_1 \oplus \rho G_2\) else, only one material can exist at a time i.e. \(\sigma \in (1-\rho)G_1 \oplus \rho G_2\)
- apply_strength_conditions()#
Define the total strength conditions from partial strength criteria.
- set_up_problem()#
Volume minimization problem.
Optimization variables are \(\rho, \sigma_1, \sigma_2\). with the total stress \(\sigma= \sigma_1 + \sigma_2\) being the sum of a matrix and reinforcement stress respectively.