Giter VIP home page Giter VIP logo

willowierhail5 / opensees Goto Github PK

View Code? Open in Web Editor NEW

This project forked from stairlab/openseesrt

0.0 0.0 0.0 310.78 MB

Direct and idiomatic C++ bindings to the OpenSees framework for finite element analysis.

License: BSD 2-Clause "Simplified" License

Shell 1.33% JavaScript 3.93% C++ 9.61% Python 53.24% Lua 0.14% Tcl 26.00% CSS 4.53% Makefile 0.18% CMake 0.05% Dockerfile 0.05% SCSS 0.90% Jinja 0.03%

opensees's Introduction

opensees

PEER Logo

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



Latest PyPI version PyPI Downloads

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 analysis kernel which eliminates reliance on global variables for state and memory management. New template classes in 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 ...

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.

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

Getting Started

  • To start a Tcl interpreter run the shell command:

    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:

    import openseespy.opensees

    to

    import opensees.openseespy

    For true stateless modeling, the Model class should be used instead of the legacy model function; documentation is under development.

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

OpenSeesRT Logo
PEER Logo Caltrans Logo BRACE2 Logo

opensees's People

Contributors

claudioperez avatar chrystalchern avatar ioannis-vm avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.