# Null Space Optimizer
`nullspace_optimizer` is a Python package implementing the null space
algorithm for nonlinear constrained optimization. It has been developped
in the context of topology optimization problems with the level-set and
the density method, but it can in principle be used for solving
arbitrary smooth nonlinear equality and inequality constrained
optimization problems of the form
```math
\begin{aligned}
\begin{aligned}
\min_{x\in \mathcal{X}}& \quad J(x)\\
\textrm{s.t.} & \left\{\begin{aligned}
g_i(x)&=0, \text{ for all } 1\leqslant i\leqslant p,\\
h_j(x) &\leqslant 0, \text{ for all }1\leqslant j \leqslant q,\\
\end{aligned}\right.
\end{aligned}
\end{aligned}
```
![Optimization trajectories produced by the Null Space Optimizer for an
inequality constrained optimization problem with different
initialization.](docs/source/img/nullspace.png){.align-center width="400px"}
## Official documentation
[Official documentation](https://null-space-optimizer.readthedocs.io/en/latest/index.html)
## Contribute and support
- Issue tracker:
<https://gitlab.com/florian.feppon/null-space-optimizer/-/issues>
- Source code:
<https://gitlab.com/florian.feppon/null-space-optimizer>
If I am not responding on the issue tracker, feel free to send me an
email to florian.feppon\[at\]kuleuven.be
## Citation
Please cite either of the following references when using this source:
> Feppon F., Allaire G. and Dapogny C. *Null space gradient flows for
> constrained optimization with applications to shape optimization.*
> 2020. ESAIM: COCV, 26 90
> [doi:10.1051/cocv/2020015](https://doi.org/10.1051/cocv/2020015)
> Feppon F. *Density based topology optimization with the Null Space Optimizer: a
> tutorial and a comparison* (2024).
> [Structural and Multidisciplinary Optimization, 67(4), 1-34](https://link.springer.com/article/10.1007/s00158-023-03710-w).
``` bibtex
@article{feppon2020optim,
author = {{Feppon, F.} and {Allaire, G.} and {Dapogny, C.}},
doi = {10.1051/cocv/2020015},
journal = {ESAIM: COCV},
pages = {90},
title = {Null space gradient flows for constrained optimization with applications to shape optimization},
url = {https://doi.org/10.1051/cocv/2020015},
volume = 26,
year = 2020
}
```
``` bibtex
@article{Feppon2024density,
title = "Density-based topology optimization with the Null Space Optimizer: a tutorial and a comparison",
author = "Feppon, Florian",
journal = "Structural and Multidisciplinary Optimization",
publisher = "Springer",
volume = 67,
number = 1,
pages = "1--34",
month = jan,
year = 2024
}
```
## Licence
The Null Space Optimizer is a free software distributed under the terms
of the GNU General Public Licence
[GPL3](https://www.gnu.org/licenses/gpl-3.0.html).
Raw data
{
"_id": null,
"home_page": "https://null-space-optimizer.readthedocs.io/en/latest/",
"name": "nullspace-optimizer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "nonlinear constrained optimization",
"author": "Florian Feppon",
"author_email": "florian.feppon@kuleuven.be",
"download_url": null,
"platform": null,
"description": "# Null Space Optimizer\n\n`nullspace_optimizer` is a Python package implementing the null space\nalgorithm for nonlinear constrained optimization. It has been developped\nin the context of topology optimization problems with the level-set and\nthe density method, but it can in principle be used for solving\narbitrary smooth nonlinear equality and inequality constrained\noptimization problems of the form\n\n```math \n\\begin{aligned}\n\\begin{aligned}\n \\min_{x\\in \\mathcal{X}}& \\quad J(x)\\\\\n \\textrm{s.t.} & \\left\\{\\begin{aligned}\n g_i(x)&=0, \\text{ for all } 1\\leqslant i\\leqslant p,\\\\\n h_j(x) &\\leqslant 0, \\text{ for all }1\\leqslant j \\leqslant q,\\\\ \n \\end{aligned}\\right.\n\\end{aligned}\n\\end{aligned} \n```\n\n![Optimization trajectories produced by the Null Space Optimizer for an\ninequality constrained optimization problem with different\ninitialization.](docs/source/img/nullspace.png){.align-center width=\"400px\"}\n \n## Official documentation \n \n[Official documentation](https://null-space-optimizer.readthedocs.io/en/latest/index.html)\n\n## Contribute and support\n\n- Issue tracker:\n <https://gitlab.com/florian.feppon/null-space-optimizer/-/issues>\n- Source code:\n <https://gitlab.com/florian.feppon/null-space-optimizer>\n\nIf I am not responding on the issue tracker, feel free to send me an\nemail to florian.feppon\\[at\\]kuleuven.be\n\n## Citation\n\nPlease cite either of the following references when using this source:\n\n> Feppon F., Allaire G. and Dapogny C. *Null space gradient flows for\n> constrained optimization with applications to shape optimization.*\n> 2020. ESAIM: COCV, 26 90\n> [doi:10.1051/cocv/2020015](https://doi.org/10.1051/cocv/2020015)\n\n> Feppon F. *Density based topology optimization with the Null Space Optimizer: a\n> tutorial and a comparison* (2024). \n> [Structural and Multidisciplinary Optimization, 67(4), 1-34](https://link.springer.com/article/10.1007/s00158-023-03710-w).\n\n``` bibtex\n@article{feppon2020optim,\n author = {{Feppon, F.} and {Allaire, G.} and {Dapogny, C.}},\n doi = {10.1051/cocv/2020015},\n journal = {ESAIM: COCV},\n pages = {90},\n title = {Null space gradient flows for constrained optimization with applications to shape optimization},\n url = {https://doi.org/10.1051/cocv/2020015},\n volume = 26,\n year = 2020\n}\n```\n\n``` bibtex\n@article{Feppon2024density,\n title = \"Density-based topology optimization with the Null Space Optimizer: a tutorial and a comparison\",\n author = \"Feppon, Florian\",\n journal = \"Structural and Multidisciplinary Optimization\",\n publisher = \"Springer\",\n volume = 67,\n number = 1,\n pages = \"1--34\",\n month = jan,\n year = 2024\n}\n```\n\n## Licence\n\nThe Null Space Optimizer is a free software distributed under the terms\nof the GNU General Public Licence\n[GPL3](https://www.gnu.org/licenses/gpl-3.0.html).\n",
"bugtrack_url": null,
"license": "GNU GPL version 3",
"summary": "Null space algorithm for nonlinear constrained optimization",
"version": "1.2.5",
"project_urls": {
"Homepage": "https://null-space-optimizer.readthedocs.io/en/latest/"
},
"split_keywords": [
"nonlinear",
"constrained",
"optimization"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f83ec08db950faf236c0d4e21b72bd7cfb93b567356e36c63c47dd4c46799b8d",
"md5": "fff8a15d6d9fcee803eb68559b003df8",
"sha256": "0df860c0f819e7eefa0434f4f1a458b2a536e141d9aaa74f3eaa3a8313a59fbb"
},
"downloads": -1,
"filename": "nullspace_optimizer-1.2.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fff8a15d6d9fcee803eb68559b003df8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 104536,
"upload_time": "2024-04-24T06:05:03",
"upload_time_iso_8601": "2024-04-24T06:05:03.442229Z",
"url": "https://files.pythonhosted.org/packages/f8/3e/c08db950faf236c0d4e21b72bd7cfb93b567356e36c63c47dd4c46799b8d/nullspace_optimizer-1.2.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-24 06:05:03",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "nullspace-optimizer"
}