opensees


Nameopensees JSON
Version 0.0.61 PyPI version JSON
download
home_pageNone
SummaryA fast and stateless interface to the OpenSees framework for finite element analysis.
upload_time2024-04-29 04:53:50
maintainerNone
docs_urlNone
authorClaudio M. Perez
requires_pythonNone
licenseNone
keywords seismic 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="center" src="https://raw.githubusercontent.com/BRACE2/OpenSeesRT/master/docs/figures/banner.png" width="150px" alt="OpenSees">
-->

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


**A *fast* and *stateless* interface to the OpenSees framework for finite element analysis.**

<br>


<br>

<div style="align:center">

<!--
[![Latest conda-forge version](https://img.shields.io/conda/vn/conda-forge/opensees?logo=conda-forge&style=for-the-badge)](https://anaconda.org/conda-forge/opensees)
-->

<!-- [![PyPI Downloads][pypi-v-image]][pypi-v-link] -->

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

</div>

<!-- 
-------------------------------------------------------------------- 
-->

This is an experimental package that provides an *optimized* OpenSees Tcl interpreter,
as well as a new set of Python bindings that is both idiomatic, and free
of global state.

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.
Project objectives include:

- **Performance** The `opensees` package uses the experimental 
  [`OpenSeesRT`](https://github.com/claudioperez/OpenSeesRT) 
  analysis kernel which
  eliminates reliance on global variables for state and memory management. 
  New template classes in [`matrix/`](https://github.com/STAIRLab/OpenSeesRT/tree/master/SRC/matrix/)
  allow for stack-allocated
  matrices and vectors and eliminate the need for static local variables 
  which is leveraged to furnish substantial performance improvements. 
  Switching Python scripts
  to use `opensees` typically results in a 4x to 5x performance boost.

- **Reliability** 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. -->

<!--
- **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.


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


### Getting Started

- To start a Tcl interpreter run the shell command:

  ```bash
  python -m opensees
  ```

- The `opensees` package exposes a compatibility layer that exactly reproduces
  the original *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.openseespy
  ```
  For true stateless modeling, the `Model` class should be used instead of the legacy
  `model` function; documentation is under development.


<!-- 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);" colspan="3">
    <a>
    <img src="https://raw.githubusercontent.com/claudioperez/opensees/master/docs/figures/opensees.svg" 
         width="600" alt="OpenSeesRT Logo">
    </a>
  </td>
 </tr>

<tr>
  <td>
    <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">
    <img src="https://raw.githubusercontent.com/claudioperez/sdof/master/docs/assets/stairlab.svg"
         alt="BRACE2 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, structural-analysis, finite-element-analysis, earthquake, engineering",
    "author": "Claudio M. Perez",
    "author_email": null,
    "download_url": null,
    "platform": null,
    "description": "# `opensees`\n\n\n\n<!--\n<img align=\"center\" src=\"https://raw.githubusercontent.com/BRACE2/OpenSeesRT/master/docs/figures/banner.png\" width=\"150px\" alt=\"OpenSees\">\n-->\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\n\n**A *fast* and *stateless* interface to the OpenSees framework for finite element analysis.**\n\n<br>\n\n\n<br>\n\n<div style=\"align:center\">\n\n<!--\n[![Latest conda-forge version](https://img.shields.io/conda/vn/conda-forge/opensees?logo=conda-forge&style=for-the-badge)](https://anaconda.org/conda-forge/opensees)\n-->\n\n<!-- [![PyPI Downloads][pypi-v-image]][pypi-v-link] -->\n\n[![Latest PyPI version](https://img.shields.io/pypi/v/opensees?logo=pypi&style=for-the-badge)](https://pypi.python.org/pypi/opensees)\n[![](https://img.shields.io/conda/v/opensees/opensees?color=%23660505&style=for-the-badge)](https://anaconda.org/opensees/opensees)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/opensees?style=for-the-badge)](https://pypi.org/project/opensees)\n\n</div>\n\n<!-- \n-------------------------------------------------------------------- \n-->\n\nThis is an experimental package that provides an *optimized* OpenSees Tcl interpreter,\nas well as a new set of Python bindings that is both idiomatic, and free\nof global state.\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.\nProject objectives include:\n\n- **Performance** The `opensees` package uses the experimental \n  [`OpenSeesRT`](https://github.com/claudioperez/OpenSeesRT) \n  analysis kernel which\n  eliminates reliance on global variables for state and memory management. \n  New template classes in [`matrix/`](https://github.com/STAIRLab/OpenSeesRT/tree/master/SRC/matrix/)\n  allow for stack-allocated\n  matrices and vectors and eliminate the need for static local variables \n  which is leveraged to furnish substantial performance improvements. \n  Switching Python scripts\n  to use `opensees` typically results in a 4x to 5x performance boost.\n\n- **Reliability** 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- **Semantics** ... <!-- Unlike interfaces which rely on global state, this package can be used \n  with true library semantics. -->\n\n<!--\n- **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.\n\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### Getting Started\n\n- To start a Tcl interpreter run the shell command:\n\n  ```bash\n  python -m opensees\n  ```\n\n- The `opensees` package exposes a compatibility layer that exactly reproduces\n  the original *OpenSeesPy* functions, but does so without mandating a single\n  global program state. To run OpenSeesPy scripts, just change the import:\n  ```python\n  import openseespy.opensees\n  ```\n  to\n  ```python\n  import opensees.openseespy\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<!-- 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\nSee 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 <tr style=\"background-color:rgba(0, 0, 0, 0);\">\n  <td style=\"background-color:rgba(0, 0, 0, 0);\" colspan=\"3\">\n    <a>\n    <img src=\"https://raw.githubusercontent.com/claudioperez/opensees/master/docs/figures/opensees.svg\" \n         width=\"600\" alt=\"OpenSeesRT Logo\">\n    </a>\n  </td>\n </tr>\n\n<tr>\n  <td>\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    <img src=\"https://raw.githubusercontent.com/claudioperez/sdof/master/docs/assets/stairlab.svg\"\n         alt=\"BRACE2 Logo\" width=\"200\"/>\n    </a>\n  </td>\n \n </tr>\n</table>\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A fast and stateless interface to the OpenSees framework for finite element analysis.",
    "version": "0.0.61",
    "project_urls": {
        "Organization": "http://stairlab.berkeley.edu",
        "Repository": "http://github.com/claudioperez/OpenSeesRT"
    },
    "split_keywords": [
        "seismic",
        " structural-analysis",
        " finite-element-analysis",
        " earthquake",
        " engineering"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c0ac26c629eabb54bbb6a37c678848f506cb5c25e5a2cdd772a60f4a6184655a",
                "md5": "4d1d772e171bcba9d2257842c0bf271a",
                "sha256": "55d6b049fdb33f6c0c9abbaec692d93d03e6ef0a8d9ed0bb56c4352a7f38828d"
            },
            "downloads": -1,
            "filename": "opensees-0.0.61-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4d1d772e171bcba9d2257842c0bf271a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 20385644,
            "upload_time": "2024-04-29T04:53:50",
            "upload_time_iso_8601": "2024-04-29T04:53:50.094708Z",
            "url": "https://files.pythonhosted.org/packages/c0/ac/26c629eabb54bbb6a37c678848f506cb5c25e5a2cdd772a60f4a6184655a/opensees-0.0.61-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1197e594d9f7f453030039b10a19534c20af03cbfbf03184519e9bd31644a365",
                "md5": "274e7544e4104c697c2e7e82fff3534c",
                "sha256": "29558c8a728862ef26b917617ac138914c214dd47268ce2b3c6c02486afc3640"
            },
            "downloads": -1,
            "filename": "opensees-0.0.61-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "274e7544e4104c697c2e7e82fff3534c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 20388644,
            "upload_time": "2024-04-29T04:53:54",
            "upload_time_iso_8601": "2024-04-29T04:53:54.561452Z",
            "url": "https://files.pythonhosted.org/packages/11/97/e594d9f7f453030039b10a19534c20af03cbfbf03184519e9bd31644a365/opensees-0.0.61-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "de0b7b56577425a62422bfb705ed47cdfd5bfe45c1191913e5f7df6f3594c318",
                "md5": "6033ee8abac86aeba5ddec0e5df422a8",
                "sha256": "20ace75268fc670d83ef1628e832fd2c74a74b376d8ad3af93f0fc6e1d15d6be"
            },
            "downloads": -1,
            "filename": "opensees-0.0.61-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6033ee8abac86aeba5ddec0e5df422a8",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 20387090,
            "upload_time": "2024-04-29T04:53:58",
            "upload_time_iso_8601": "2024-04-29T04:53:58.008016Z",
            "url": "https://files.pythonhosted.org/packages/de/0b/7b56577425a62422bfb705ed47cdfd5bfe45c1191913e5f7df6f3594c318/opensees-0.0.61-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4e34879fa4a37d104e268051aa3a539165285e69ab0d0a3f0cb677cb5955f2ff",
                "md5": "aa0e98669a96e9fcae711c39b9698e22",
                "sha256": "b595865df1fca401d696171bc825844538dba6d46791974e7d438fdd774dba08"
            },
            "downloads": -1,
            "filename": "opensees-0.0.61-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "aa0e98669a96e9fcae711c39b9698e22",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 20376856,
            "upload_time": "2024-04-29T04:54:01",
            "upload_time_iso_8601": "2024-04-29T04:54:01.963988Z",
            "url": "https://files.pythonhosted.org/packages/4e/34/879fa4a37d104e268051aa3a539165285e69ab0d0a3f0cb677cb5955f2ff/opensees-0.0.61-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "64dacbb7c56cb40741ab69e5b93b2a6c807d32bcd983a84683abc35185fd54a3",
                "md5": "46ee1ae34ad92a83624bc839269bbcf1",
                "sha256": "189ec715c7b8b21d7be052615cee9039ab499d26ffc1822794c0b2d746f03687"
            },
            "downloads": -1,
            "filename": "opensees-0.0.61-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "46ee1ae34ad92a83624bc839269bbcf1",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 20384985,
            "upload_time": "2024-04-29T04:54:05",
            "upload_time_iso_8601": "2024-04-29T04:54:05.844575Z",
            "url": "https://files.pythonhosted.org/packages/64/da/cbb7c56cb40741ab69e5b93b2a6c807d32bcd983a84683abc35185fd54a3/opensees-0.0.61-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "425dc92f720e3e24ac1b74491804dd127f4a7c24ae73c2591b949305fbb3374b",
                "md5": "7de4e64b3063425eb99a97f29d932b12",
                "sha256": "57f97582e0f0b00ba83e03ad4ad51717ae0e5c02e5a5f2bd3f5743a143713474"
            },
            "downloads": -1,
            "filename": "opensees-0.0.61-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7de4e64b3063425eb99a97f29d932b12",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 20387225,
            "upload_time": "2024-04-29T04:54:09",
            "upload_time_iso_8601": "2024-04-29T04:54:09.459255Z",
            "url": "https://files.pythonhosted.org/packages/42/5d/c92f720e3e24ac1b74491804dd127f4a7c24ae73c2591b949305fbb3374b/opensees-0.0.61-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-29 04:53:50",
    "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.30738s