.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/parametric_design_study_manager/01_general_algorithm.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_parametric_design_study_manager_01_general_algorithm.py: .. _ref_general_algorithm: Optimization with proxy solver ============================== This example demonstrates how to create and execute optimization using ``ParametricDesignStudyManager``. It creates an algorithm with ``ProxySolver`` node as a solver and then runs the created design study. .. GENERATED FROM PYTHON SOURCE LINES 35-38 Perform required imports ------------------------ Perform the required imports. .. GENERATED FROM PYTHON SOURCE LINES 38-57 .. code-block:: Python from math import sin from pathlib import Path import ansys.optislang.core.node_types as nt from ansys.optislang.core.project_parametric import ( Design, DesignVariable, ObjectiveCriterion, OptimizationParameter, Response, ) from ansys.optislang.parametric.design_study import ParametricDesignStudyManager from ansys.optislang.parametric.design_study_templates import ( GeneralAlgorithmTemplate, ProxySolverNodeSettings, ) .. GENERATED FROM PYTHON SOURCE LINES 58-62 Create template inputs ---------------------- Define template inputs, that are used by the parametric design study manager to create and execute the design study. .. GENERATED FROM PYTHON SOURCE LINES 62-97 .. code-block:: Python project_path = Path().cwd() / "design_manager_example.opf" parameters = [ OptimizationParameter(name=f"X{i}", reference_value=0.0, range=(-3.14, 3.14)) for i in range(1, 6) ] responses = [Response(name="Y", reference_value=0.0)] criteria = [ObjectiveCriterion("minY", expression="Y")] def callback(designs: list[Design]) -> list[Design]: """Calculate coupled function for provided designs.""" results_designs = [] for design in designs: X1 = design.parameters[design.parameters_names.index("X1")].value X2 = design.parameters[design.parameters_names.index("X2")].value X3 = design.parameters[design.parameters_names.index("X3")].value X4 = design.parameters[design.parameters_names.index("X4")].value X5 = design.parameters[design.parameters_names.index("X5")].value Y = 0.5 * X1 + X2 + 0.5 * X1 * X2 + 5 * sin(X3) + 0.2 * X4 + 0.1 * X5 id = design.id # create instance of design with new values output_design = Design( responses=[DesignVariable("Y", Y)], design_id=id, ) results_designs.append(output_design) return results_designs solver_settings = ProxySolverNodeSettings(callback=callback, multi_design_launch_num=-1) .. GENERATED FROM PYTHON SOURCE LINES 98-101 Create NLPQLP template ---------------------- Define template that will be transformed into a NLPQLP system with proxy solver. .. GENERATED FROM PYTHON SOURCE LINES 101-112 .. code-block:: Python nlpqlp_template = GeneralAlgorithmTemplate( parameters=parameters, criteria=criteria, responses=responses, algorithm_type=nt.NLPQLP, solver_type=nt.ProxySolver, solver_settings=solver_settings, ) .. GENERATED FROM PYTHON SOURCE LINES 113-116 Create NLPQLP system -------------------- Instantiate parametric design study manager, create and execute the design study. .. GENERATED FROM PYTHON SOURCE LINES 116-122 .. code-block:: Python design_study_manager = ParametricDesignStudyManager(project_path=project_path) study = design_study_manager.create_design_study(template=nlpqlp_template) study.execute() design_study_manager.save() .. GENERATED FROM PYTHON SOURCE LINES 123-126 Stop and cancel project ~~~~~~~~~~~~~~~~~~~~~~~ Stop and cancel the project. .. GENERATED FROM PYTHON SOURCE LINES 126-130 .. code-block:: Python design_study_manager.optislang.dispose() .. GENERATED FROM PYTHON SOURCE LINES 131-138 View generated workflow ----------------------- This image shows the generated workflow. .. image:: ../../_static/01_general_algorithm.png :width: 400 :alt: Result of script. .. _sphx_glr_download_examples_parametric_design_study_manager_01_general_algorithm.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: 01_general_algorithm.ipynb <01_general_algorithm.ipynb>` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: 01_general_algorithm.py <01_general_algorithm.py>` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: 01_general_algorithm.zip <01_general_algorithm.zip>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_