.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/topology_optimization/topology_optimization_MBB.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_topology_optimization_topology_optimization_MBB.py: Solve a 2D MBB topology optimization problem ============================================ .. GENERATED FROM PYTHON SOURCE LINES 23-32 .. code-block:: default from __future__ import annotations from gemseo import configure_logger from gemseo import create_scenario from gemseo.problems.topo_opt.topopt_initialize import ( initialize_design_space_and_discipline_to, ) configure_logger() .. GENERATED FROM PYTHON SOURCE LINES 33-35 Setup the topology optimization problem --------------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 37-38 Define the target volume fraction: .. GENERATED FROM PYTHON SOURCE LINES 38-40 .. code-block:: default volume_fraction = 0.3 .. GENERATED FROM PYTHON SOURCE LINES 41-42 Define the problem type: .. GENERATED FROM PYTHON SOURCE LINES 42-44 .. code-block:: default problem_name = "MBB" .. GENERATED FROM PYTHON SOURCE LINES 45-46 Define the number of elements in x- and y- directions: .. GENERATED FROM PYTHON SOURCE LINES 46-49 .. code-block:: default n_x = 50 n_y = 25 .. GENERATED FROM PYTHON SOURCE LINES 50-51 Define the full material Young's modulus and the Poisson's ratio: .. GENERATED FROM PYTHON SOURCE LINES 51-54 .. code-block:: default e0 = 1 nu = 0.3 .. GENERATED FROM PYTHON SOURCE LINES 55-56 Define the penalty of the SIMP approach: .. GENERATED FROM PYTHON SOURCE LINES 56-58 .. code-block:: default penalty = 3 .. GENERATED FROM PYTHON SOURCE LINES 59-60 Define the minimum member size in the solution: .. GENERATED FROM PYTHON SOURCE LINES 60-61 .. code-block:: default min_member_size = 1.5 .. GENERATED FROM PYTHON SOURCE LINES 62-63 Instantiate the :class:`.DesignSpace` and the disciplines: .. GENERATED FROM PYTHON SOURCE LINES 63-74 .. code-block:: default design_space, disciplines = initialize_design_space_and_discipline_to( problem=problem_name, n_x=n_x, n_y=n_y, e0=e0, nu=nu, penalty=penalty, min_member_size=min_member_size, vf0=volume_fraction, ) .. GENERATED FROM PYTHON SOURCE LINES 75-78 Solve the topology optimization problem --------------------------------------- Generate a :class:`.MDOScenario` .. GENERATED FROM PYTHON SOURCE LINES 78-85 .. code-block:: default scenario = create_scenario( disciplines, formulation="DisciplinaryOpt", objective_name="compliance", design_space=design_space, ) .. GENERATED FROM PYTHON SOURCE LINES 86-87 Add the volume fraction constraint to the scenario: .. GENERATED FROM PYTHON SOURCE LINES 87-89 .. code-block:: default scenario.add_constraint("volume fraction", "ineq", value=volume_fraction) .. GENERATED FROM PYTHON SOURCE LINES 90-91 Generate the XDSM .. GENERATED FROM PYTHON SOURCE LINES 91-93 .. code-block:: default scenario.xdsmize() .. GENERATED FROM PYTHON SOURCE LINES 94-95 Execute the scenario .. GENERATED FROM PYTHON SOURCE LINES 95-97 .. code-block:: default scenario.execute(input_data={"max_iter": 200, "algo": "NLOPT_MMA"}) .. GENERATED FROM PYTHON SOURCE LINES 98-101 Results ------- Post-process the optimization history: .. GENERATED FROM PYTHON SOURCE LINES 101-107 .. code-block:: default scenario.post_process( "BasicHistory", variable_names=["compliance"], file_name=f"{problem_name}_history.png", ) .. GENERATED FROM PYTHON SOURCE LINES 108-109 Plot the solution .. GENERATED FROM PYTHON SOURCE LINES 109-115 .. code-block:: default scenario.post_process( "TopologyView", n_x=n_x, n_y=n_y, file_name=f"{problem_name}_solution.png", ) .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.000 seconds) .. _sphx_glr_download_examples_topology_optimization_topology_optimization_MBB.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: topology_optimization_MBB.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: topology_optimization_MBB.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_