DESign OPTimization in PYthon
Project description
DesOptPy
DESign OPTimization in PYthon
Summary
DesOptPy (DESign OPTimization in PYthon) was designed a Python-based tool for engineering design optimization, especially of lightweight structures and mechancial systems. This package integrates optimization algorithms from pyOpt and pyGMO, with expansion to others being possible. This allows for complex handling of large-scale optimization problems typical of structural design optimization. The goal of this project is to design a versatile and general optimization toolbox for design optimization in which the setup of an optimization problem is easily, quickly, efficiently and effectively, allowing colleagues and students to dive into optimization problems without difficulty. It is also meant to be modular and easily expanded. Though developed for design optimization of mechanical structures, DesOptPy has been written to be flexible and, therefore, optimization problems of other disciplines can be applied.
Installation
Prerequisites
Python 3 and you can install the necessary libraries via PIP:
pip install scipy
pip install numpy
pip install matplotlib
pip install dufte
pygmo
latex for figures
Install
git clone https://github.com/e-dub/DesOptPy
cd DesOptPy
python -m pip install -U .
Quick start
Import OptimizationProblem from the library DesOpyPy
from DesOptPy import OptimizationProblem
Define your model to be optimized as a class with a function where the design-variable-dependent system equations are evaluated.
class Model:
def analysis(self):
y = x**2
z = x*5
Then setup your optimization problem. First initialize the problem with the model.
OptProb = OptimizationProblem(Model)
Define the primal analysis for the optimiaztion.
OptProb.Primal = "analysis"
Set the design variables, including initial values and bounds, and the optmization functions.
OptProb.x = "x"
OptProb.x0 = 2
OptProb.xL = 1
OptProb.xU = 10
OptProb.f = "y"
OptProb.g = ["z"]
OptProb.gLimit = [17]
You are now ready to optimize. Commence optimization run with the following command:
OptProb.optimize()
Plotting
Convergence plotting can be carried out after the optimization with the following command (defaults shown):
OptProb.plotConvergence(
show=True, savePDF=False, savePNG=False, saveSVG=False, saveTikZ=False
)
This function has the possibility of showing or saving in PDF, PNG, SVG and TikZ (PGF) format.
An example of the plots created:
Before and after bar plotting can be carried out after the optimization with the following command (defaults shown):
OptProb.plotBeforeAfter(
show=True, savePDF=False, savePNG=False, saveSVG=False, saveTikZ=False
)
As above, this function has also the possibility of showing or saving in PDF, PNG, SVG and TikZ (PGF) format (TikZ untested).
An example of the plots created:
Application examples
Related software and developments
pyUngewiss EasyBeam Simuli
Release
History
Current version (major)
version 2022
January 5, 2022
Release of version 2022 released.
Fully reworked version.
Previous version (major)
Found under https://github.com/e-dub/DesOptPy1
2019.1
July 27, 2019
1.3
July 30, 2016
1.2
June 26, 2016
1.1
November 18, 2015
1.02
November 16, 2015
1.01
November 10, 2015
Initial
October 18, 2015
Initial public release of DesOptPy on GitHub and PyPI - the Python Package Index.
Contact
I would also appreciate feedback to any success (or unsuccess) stories with the use of this software. If you should find errors in the code or documentation, have suggestions for improvements or wish a cooperation, please use the issue function in GitHub.
Contributors
The file AUTHORS.rst has a complete list of contributors to the project.
License
DesOptPy is a free and open software released under the license GNU General Public License Version 3. See file LICENSE.
Acknowledgment
The work involved with the 2021 release is supported by the project RTD 2020 – TN201Q LighOpt Lightweight engineering of multibody systems with design optimization funded by the Free University of Bozen-Bolzano.
Copyright
Copyright (c) 2022 Erich Wehrle All rights reserved.
Publications
Wehrle, E. and Gufler, V. (2021) Lightweight engineering design of nonlinear dynamic systems with gradient-based structural design optimization Proceedings of the Munich Symposium on Lightweight Design 2020, Springer Berlin Heidelberg, 44-57, DOI: 10.1007/978-3-662-63143-0_5.
Gufler, V., Wehrle, E. and Zwölfer, A. (2021) A review of flexible multibody dynamics for gradient-based design optimization Multibody System Dynamics, 53, 379-409, DOI: 10.1007/s11044-021-09802-z.
Gufler, V., Wehrle, E. and Vidoni, R. (2021) Sensitivitätsanalyse flexibler Mehrkörpersysteme für die Unsicherheitsanalyse und Entwurfsoptimierung IFToMM D-A-CH 2021.
Wehrle, E.; Gufler, V. & Vidoni, R. Optimal in-operation redesign of mechanical systems considering vibrations---A new methodology based on frequency-band constraint formulation and efficient sensitivity analysis Machines, 2020, 8, 11, DOI: 10.3390/machines8010011.
Gufler, V., E. Wehrle, and R. Vidoni. (2020) Multiphysical design optimization of multibody systems: Application to a Tyrolean weir cleaning mechanism. In Mechanisms and Machine Science, pp. 459–467. DOI: 10.1007/978-3-030-55807-9_52
Gufler, V., E. Wehrle, and R. Vidoni (2020). Mehrkörperdynamik und Entwurfsoptimierung unter Unsicherheit vom Rechenreinigungsmechanismus eines Tiroler Wehres. In IFToMM D-A-CH.
Wehrle, E.; Palomba, I. & Vidoni, R. (2018) In-operation structural modification of planetary gear sets using design optimization methods Mechanism Design for Robotics, Springer International Publishing, 395-405, DOI: 10.1007/978-3-030-00365-4_47.
Wehrle, E.; Palomba, I. & Vidoni, R. (2018) Vibrational behavior of epicyclic gear trains with lumped-parameter models: Analysis and design optimization under uncertainty ASME 2018 International Design Engineering Technical Conferences & Computers and Information in Engineering Conference IDETC/CIE 2018, American Society of Mechanical Engineers, DOI: 10.1115/detc2018-86427.
Wehrle, E. (2018) Modeling and design optimization of dynamic structural systems under uncertainty: Application to epicyclic gearing World Congress in Computational Mechnanics.
Boursier Niutta, C.; Wehrle, E. J.; Duddeck, F. & Belingardi, G. (2018) Surrogate modeling in design optimization of structures with discontinuous responses: A new approach for ill-posed problems in crashworthiness design Structural and Multidisciplinary Optimization, 57, 1857-1869, DOI: 10.1007/s00158-018-1958-7.
Wehrle, E. J.; Concli, F.; Cortese, L. & Vidoni, R. (2017) Design optimization of planetary gear trains under dynamic constraints and parameter uncertainty ECCOMAS Thematic Conference on Multibody Dynamics.
Wehrle, E. J. (2015). Design optimization of lightweight space frame structures considering crashworthiness and parameter uncertainty. Dr.-Ing. diss., Lehrstuhl für Leichtbau, Technische Universität München.
Wehrle, E. J., Q. Xu, and H. Baier (2014). Investigation, optimal design and uncertainty analysis of crash-absorbing extruded aluminium structures. Procedia CIRP 18, 27–32.
and a number of further master, bachelor and semester theses.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file DesOptPy-2022.1.5.tar.gz
.
File metadata
- Download URL: DesOptPy-2022.1.5.tar.gz
- Upload date:
- Size: 803.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.27.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ee6321a9d307454ddef56060d481425c6e57826bb29eb8e946b3e8c4e6dce32 |
|
MD5 | 7053cfdbc040a8960367e94914f18be8 |
|
BLAKE2b-256 | 0f11ae15d8cf8bda5174fac6dc7921d287a80ece788964a1c34ae06cc98b6212 |