opensees


Nameopensees JSON
Version 0.1.5 PyPI version JSON
download
home_pageNone
SummaryNonlinear finite element analysis.
upload_time2024-10-23 04:15:57
maintainerNone
docs_urlNone
authorClaudio M. Perez
requires_pythonNone
licenseBSD 2-Clause License Copyright (c) 2024, Claudio M. Perez Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords seismic computational-mechanics structural-analysis finite-element-analysis earthquake engineering
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # `opensees`

<img align="left" src="https://raw.githubusercontent.com/claudioperez/sdof/master/docs/assets/peer-black-300.png" width="150px" alt="PEER Logo">

Nonlinear finite element analysis.

<br>

<div style="align:center">

[![Latest PyPI version](https://img.shields.io/pypi/v/opensees?logo=pypi)](https://pypi.python.org/pypi/opensees)
[![](https://img.shields.io/conda/v/opensees/opensees?color=%23660505)](https://anaconda.org/opensees/opensees)
[![PyPI Downloads](https://img.shields.io/pypi/dm/opensees)](https://pypi.org/project/opensees)

</div>


`opensees` is a Python package that provides an intuitive API for nonlinear
finite element analysis, implemented in C++ through the OpenSees framework. 
OpenSees features state-of-the-art finite element formulations and solution 
algorithms, including mixed formulations for beams and solids, over 200 material models, and an
extensive collection of continuation algorithms to solve highly nonlinear
problems. 

The `opensees` package supports interactive post processing via the
[`sees`](https://pypi.org/project/sees) package.


The package may be used as a drop-in replacement for both `OpenSees.exe` and
OpenSeesPy (see *Getting Started* below), and generally provides a substantial performance boost.

<p style="text-align: center;">
<b>This package is <i>experimental</i> and not yet intended for public use.</b>
</p>


## Features

- **Performance** Switching Python scripts to use `opensees` typically results in a 4x to 5x performance boost.
- **Interactive Tasks**: Easily return stiffness, mass, and damping matrices as NumPy arrays and join meshes without duplicate nodes and constraints.
- **Extensive Modeling Library**: State-of-the-art element formulations with over 200 material models to choose from.
- **Continuation Algorithms**: Robust algorithms for solving highly nonlinear problems.
- **Intuitive and Reliable** The core OpenSees runtime has been redesigned so that all program 
  state is encapsulated in user-instantiated classes,
  and global variables/singletons are avoided. 
  This eliminates several preexisting vulnerabilities to inadvertent state corruption.


<!-- 
- **Semantics** Unlike interfaces which rely on global state, this package can be used 
  with true library semantics. 
-->

Additional features include:

- Convert OpenSeesPy scripts into equivalent Tcl files that can be used
  for faster processing or serialization. Unlike most conversion utilities,
  this conversion is done *exactly* and does not rely on hand-rolled parsing.

- The package can be installed with `pip` for Python versions 3.7 - 3.12 on Linux, MacOS and
  Windows, but eigenvalue analysis is currently broken on Windows.

> [!NOTE]
> This package is independent of the [`openseespy`](https://pypi.org/project/openseespy)
> library, which is documented in the OpenSees [documentation](https://opensees.github.io/OpenSeesDocumentation)
> website. OpenSeesPy can be installed by running the following command:
>
> ```shell
> pip install opensees[py]
> ```



### Getting Started

The `opensees` package can be installed into a Python environment
in the standard manner. For example, using `pip`:

```shell
pip install opensees
```

There are several ways to use the `opensees` package:

- To execute Tcl procedures from a Python script, just create an instance
  of the `opensees.tcl.Interpreter` class and call its `eval()` method:
  ```python
  interp = opensees.tcl.Interpreter()
  interp.eval("model Basic -ndm 2")
  interp.eval("print -json")
  ```

- To start an interactive interpreter run the shell command:

  ```bash
  python -m opensees
  ```
  To quit the interpreter, just run `exit`:
  ```tcl
  opensees > exit
  ```

- The `opensees` package exposes a compatibility layer that exactly reproduces
  the *OpenSeesPy* functions, but does so without mandating a single
  global program state. To run OpenSeesPy scripts, just change the import:

  ```python
  import openseespy.opensees
  ```
  to
  ```python
  import opensees.openseesrt
  ```
  For true stateless modeling, the `Model` class should be used instead of the legacy
  `model` function; documentation is under development.


## Development

To compile the project see [help/compiling](https://github.com/claudioperez/opensees/blob/master/help/compiling.md)

<!-- Badge links -->

[pypi-d-image]: https://img.shields.io/pypi/dm/opensees.svg
[license-badge]: https://img.shields.io/pypi/l/opensees.svg
[pypi-d-link]: https://pypi.org/project/opensees
[pypi-v-image]: https://img.shields.io/pypi/v/opensees.svg
[pypi-v-link]: https://pypi.org/project/opensees


## See also

- [`osmg`](https://pypi.org/project/osmg) OpenSees Model Generator
- [`sees`](https://pypi.org/project/sees) Modern rendering library
- [`mdof`](https://pypi.org/project/mdof) Optimized system identification library
- [`sdof`](https://pypi.org/project/sdof) Optimized integration for single degree of freedom systems

For more projects by the STAIRlab, visit https://github.com/STAIRlab .

## Support

<table align="center" style="border: 0;">

 <tr style="background-color:rgba(0, 0, 0, 0);">
  <td style="background-color:rgba(0, 0, 0, 0);" >
    <a href="https://peer.berkeley.edu">
    <img src="https://raw.githubusercontent.com/claudioperez/sdof/master/docs/assets/peer-black-300.png"
         alt="PEER Logo" width="200"/>
    </a>
  </td>

  <td>
    <a href="https://dot.ca.gov/">
    <img src="https://raw.githubusercontent.com/claudioperez/sdof/master/docs/assets/Caltrans.svg.png"
         alt="Caltrans Logo" width="200"/>
    </a>
  </td>

  <td>
    <!-- <a href="https://brace2.herokuapp.com"> -->
    <a href="https://stairlab.berkeley.edu">
    <img src="https://raw.githubusercontent.com/claudioperez/sdof/master/docs/assets/stairlab.svg"
         alt="STAIRlab Logo" width="200"/>
    </a>
  </td>
 
 </tr>
</table>


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "opensees",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "seismic, computational-mechanics, structural-analysis, finite-element-analysis, earthquake, engineering",
    "author": "Claudio M. Perez",
    "author_email": null,
    "download_url": null,
    "platform": null,
    "description": "# `opensees`\n\n<img align=\"left\" src=\"https://raw.githubusercontent.com/claudioperez/sdof/master/docs/assets/peer-black-300.png\" width=\"150px\" alt=\"PEER Logo\">\n\nNonlinear finite element analysis.\n\n<br>\n\n<div style=\"align:center\">\n\n[![Latest PyPI version](https://img.shields.io/pypi/v/opensees?logo=pypi)](https://pypi.python.org/pypi/opensees)\n[![](https://img.shields.io/conda/v/opensees/opensees?color=%23660505)](https://anaconda.org/opensees/opensees)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/opensees)](https://pypi.org/project/opensees)\n\n</div>\n\n\n`opensees` is a Python package that provides an intuitive API for nonlinear\nfinite element analysis, implemented in C++ through the OpenSees framework. \nOpenSees features state-of-the-art finite element formulations and solution \nalgorithms, including mixed formulations for beams and solids, over 200 material models, and an\nextensive collection of continuation algorithms to solve highly nonlinear\nproblems. \n\nThe `opensees` package supports interactive post processing via the\n[`sees`](https://pypi.org/project/sees) package.\n\n\nThe package may be used as a drop-in replacement for both `OpenSees.exe` and\nOpenSeesPy (see *Getting Started* below), and generally provides a substantial performance boost.\n\n<p style=\"text-align: center;\">\n<b>This package is <i>experimental</i> and not yet intended for public use.</b>\n</p>\n\n\n## Features\n\n- **Performance** Switching Python scripts to use `opensees` typically results in a 4x to 5x performance boost.\n- **Interactive Tasks**: Easily return stiffness, mass, and damping matrices as NumPy arrays and join meshes without duplicate nodes and constraints.\n- **Extensive Modeling Library**: State-of-the-art element formulations with over 200 material models to choose from.\n- **Continuation Algorithms**: Robust algorithms for solving highly nonlinear problems.\n- **Intuitive and Reliable** The core OpenSees runtime has been redesigned so that all program \n  state is encapsulated in user-instantiated classes,\n  and global variables/singletons are avoided. \n  This eliminates several preexisting vulnerabilities to inadvertent state corruption.\n\n\n<!-- \n- **Semantics** Unlike interfaces which rely on global state, this package can be used \n  with true library semantics. \n-->\n\nAdditional features include:\n\n- Convert OpenSeesPy scripts into equivalent Tcl files that can be used\n  for faster processing or serialization. Unlike most conversion utilities,\n  this conversion is done *exactly* and does not rely on hand-rolled parsing.\n\n- The package can be installed with `pip` for Python versions 3.7 - 3.12 on Linux, MacOS and\n  Windows, but eigenvalue analysis is currently broken on Windows.\n\n> [!NOTE]\n> This package is independent of the [`openseespy`](https://pypi.org/project/openseespy)\n> library, which is documented in the OpenSees [documentation](https://opensees.github.io/OpenSeesDocumentation)\n> website. OpenSeesPy can be installed by running the following command:\n>\n> ```shell\n> pip install opensees[py]\n> ```\n\n\n\n### Getting Started\n\nThe `opensees` package can be installed into a Python environment\nin the standard manner. For example, using `pip`:\n\n```shell\npip install opensees\n```\n\nThere are several ways to use the `opensees` package:\n\n- To execute Tcl procedures from a Python script, just create an instance\n  of the `opensees.tcl.Interpreter` class and call its `eval()` method:\n  ```python\n  interp = opensees.tcl.Interpreter()\n  interp.eval(\"model Basic -ndm 2\")\n  interp.eval(\"print -json\")\n  ```\n\n- To start an interactive interpreter run the shell command:\n\n  ```bash\n  python -m opensees\n  ```\n  To quit the interpreter, just run `exit`:\n  ```tcl\n  opensees > exit\n  ```\n\n- The `opensees` package exposes a compatibility layer that exactly reproduces\n  the *OpenSeesPy* functions, but does so without mandating a single\n  global program state. To run OpenSeesPy scripts, just change the import:\n\n  ```python\n  import openseespy.opensees\n  ```\n  to\n  ```python\n  import opensees.openseesrt\n  ```\n  For true stateless modeling, the `Model` class should be used instead of the legacy\n  `model` function; documentation is under development.\n\n\n## Development\n\nTo compile the project see [help/compiling](https://github.com/claudioperez/opensees/blob/master/help/compiling.md)\n\n<!-- Badge links -->\n\n[pypi-d-image]: https://img.shields.io/pypi/dm/opensees.svg\n[license-badge]: https://img.shields.io/pypi/l/opensees.svg\n[pypi-d-link]: https://pypi.org/project/opensees\n[pypi-v-image]: https://img.shields.io/pypi/v/opensees.svg\n[pypi-v-link]: https://pypi.org/project/opensees\n\n\n## See also\n\n- [`osmg`](https://pypi.org/project/osmg) OpenSees Model Generator\n- [`sees`](https://pypi.org/project/sees) Modern rendering library\n- [`mdof`](https://pypi.org/project/mdof) Optimized system identification library\n- [`sdof`](https://pypi.org/project/sdof) Optimized integration for single degree of freedom systems\n\nFor more projects by the STAIRlab, visit https://github.com/STAIRlab .\n\n## Support\n\n<table align=\"center\" style=\"border: 0;\">\n\n <tr style=\"background-color:rgba(0, 0, 0, 0);\">\n  <td style=\"background-color:rgba(0, 0, 0, 0);\" >\n    <a href=\"https://peer.berkeley.edu\">\n    <img src=\"https://raw.githubusercontent.com/claudioperez/sdof/master/docs/assets/peer-black-300.png\"\n         alt=\"PEER Logo\" width=\"200\"/>\n    </a>\n  </td>\n\n  <td>\n    <a href=\"https://dot.ca.gov/\">\n    <img src=\"https://raw.githubusercontent.com/claudioperez/sdof/master/docs/assets/Caltrans.svg.png\"\n         alt=\"Caltrans Logo\" width=\"200\"/>\n    </a>\n  </td>\n\n  <td>\n    <!-- <a href=\"https://brace2.herokuapp.com\"> -->\n    <a href=\"https://stairlab.berkeley.edu\">\n    <img src=\"https://raw.githubusercontent.com/claudioperez/sdof/master/docs/assets/stairlab.svg\"\n         alt=\"STAIRlab Logo\" width=\"200\"/>\n    </a>\n  </td>\n \n </tr>\n</table>\n\n",
    "bugtrack_url": null,
    "license": "BSD 2-Clause License  Copyright (c) 2024, Claudio M. Perez  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ",
    "summary": "Nonlinear finite element analysis.",
    "version": "0.1.5",
    "project_urls": {
        "Examples": "https://stairlab.github.io/opensees-gallery",
        "Repository": "https://github.com/claudioperez/OpenSeesRT"
    },
    "split_keywords": [
        "seismic",
        " computational-mechanics",
        " structural-analysis",
        " finite-element-analysis",
        " earthquake",
        " engineering"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c0de5e4b1087ba1cec4ae3047d35c5b828a56634a3cc480afe2d4a0a0b63d369",
                "md5": "88ef5bfa33dfea130f23fd13c6c48dc7",
                "sha256": "5670e0dd8a41f5c5d12109c6b84163bf24a220064e630f2e40f8c8433f6a927c"
            },
            "downloads": -1,
            "filename": "opensees-0.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "88ef5bfa33dfea130f23fd13c6c48dc7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 21053136,
            "upload_time": "2024-10-23T04:15:57",
            "upload_time_iso_8601": "2024-10-23T04:15:57.294187Z",
            "url": "https://files.pythonhosted.org/packages/c0/de/5e4b1087ba1cec4ae3047d35c5b828a56634a3cc480afe2d4a0a0b63d369/opensees-0.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d20e95308b50b7ad564b2718f579f3355c8f8f4d2df257946b6a391f5c813bc7",
                "md5": "8dd7ca1935fe419012918c5ca90efbff",
                "sha256": "3bcc91140ee5724f165c1287dbeb62782fe4dce35aa766617945e98f9030a64a"
            },
            "downloads": -1,
            "filename": "opensees-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8dd7ca1935fe419012918c5ca90efbff",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 21053137,
            "upload_time": "2024-10-23T04:16:01",
            "upload_time_iso_8601": "2024-10-23T04:16:01.208629Z",
            "url": "https://files.pythonhosted.org/packages/d2/0e/95308b50b7ad564b2718f579f3355c8f8f4d2df257946b6a391f5c813bc7/opensees-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b35e2903aac246a4b6cbba7fc914cda0d91a75e337b75362f54cf09773344a79",
                "md5": "0a2290e5e14c5ebb5179031946c5521c",
                "sha256": "05c56d478f67ffad6e79310b3f031963a32e42cb14d4fead3847a4092042b920"
            },
            "downloads": -1,
            "filename": "opensees-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0a2290e5e14c5ebb5179031946c5521c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 21053137,
            "upload_time": "2024-10-23T04:16:04",
            "upload_time_iso_8601": "2024-10-23T04:16:04.744364Z",
            "url": "https://files.pythonhosted.org/packages/b3/5e/2903aac246a4b6cbba7fc914cda0d91a75e337b75362f54cf09773344a79/opensees-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "887369f0189b9c45bca79b34e0d826c060c801fedb05d39481bc59d78bdb642b",
                "md5": "a2632d13fc3f57e3c0afe450d7cd2041",
                "sha256": "41c72acf9661432fb6ab98e03bfc629a5b402febe5e9f67a13cb543bac39eb5f"
            },
            "downloads": -1,
            "filename": "opensees-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a2632d13fc3f57e3c0afe450d7cd2041",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 21053137,
            "upload_time": "2024-10-23T04:16:09",
            "upload_time_iso_8601": "2024-10-23T04:16:09.315526Z",
            "url": "https://files.pythonhosted.org/packages/88/73/69f0189b9c45bca79b34e0d826c060c801fedb05d39481bc59d78bdb642b/opensees-0.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "81526f2d15575cf322eca0fedd4014fef28008638034ecb0e3587e2fa048de43",
                "md5": "ee76b566905cb0abc40d3fe534728897",
                "sha256": "ebb289c461c17566b6d35eaaea2b45380f6f564bdaf69a6e18fb7a09770c024a"
            },
            "downloads": -1,
            "filename": "opensees-0.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ee76b566905cb0abc40d3fe534728897",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 21053134,
            "upload_time": "2024-10-23T04:16:12",
            "upload_time_iso_8601": "2024-10-23T04:16:12.979035Z",
            "url": "https://files.pythonhosted.org/packages/81/52/6f2d15575cf322eca0fedd4014fef28008638034ecb0e3587e2fa048de43/opensees-0.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-23 04:15:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "claudioperez",
    "github_project": "OpenSeesRT",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "opensees"
}
        
Elapsed time: 0.36784s