Skip to main content

Nonlinear finite element analysis.

Project description

opensees

PEER Logo

Nonlinear finite element analysis.


Latest PyPI version PyPI Downloads

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

This package is experimental and not yet intended for public use.

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.

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 library, which is documented in the OpenSees documentation website. OpenSeesPy can be installed by running the following command:

pip install opensees[py]

Getting Started

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

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:

    interp = opensees.tcl.Interpreter()
    interp.eval("model Basic -ndm 2")
    interp.eval("print -json")
    
  • To start an interactive interpreter run the shell command:

    python -m opensees
    

    To quit the interpreter, just run exit:

    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:

    import openseespy.opensees
    

    to

    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

See also

  • osmg OpenSees Model Generator
  • sees Modern rendering library
  • mdof Optimized system identification library
  • sdof Optimized integration for single degree of freedom systems

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

Support

PEER Logo Caltrans Logo STAIRlab Logo

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

opensees-0.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.1 MB view hashes)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

opensees-0.1.4-cp312-cp312-win_amd64.whl (90.2 MB view hashes)

Uploaded CPython 3.12 Windows x86-64

opensees-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.1 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

opensees-0.1.4-cp311-cp311-win_amd64.whl (90.2 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

opensees-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.1 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

opensees-0.1.4-cp310-cp310-win_amd64.whl (90.2 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

opensees-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

opensees-0.1.4-cp39-cp39-win_amd64.whl (90.2 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

opensees-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.1 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page