{"library":"openseespy","title":"OpenSeesPy","description":"OpenSeesPy is a Python 3 interpreter for the Open System for Earthquake Engineering Simulation (OpenSees), a powerful software framework for finite element analysis. It provides robust capabilities for structural analysis, including linear, nonlinear, static, and dynamic analysis of structures. Currently at version 3.8.0.0, the library is actively developed with frequent updates and releases.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install openseespy"],"cli":{"name":"opensees","version":"sh: 1: opensees: not found"}},"imports":["import openseespy.opensees as ops","import openseespy.postprocessing.Get_Rendering as opsplt"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import openseespy.opensees as ops\n\n# 1. Start a new model\nops.wipe()\nops.model('basic', '-ndm', 2, '-ndf', 3)\n\n# 2. Define nodes\nops.node(1, 0.0, 0.0)\nops.node(2, 100.0, 0.0)\nops.node(3, 0.0, 100.0)\n\n# 3. Set boundary conditions\nops.fix(1, 1, 1, 1) # Node 1: Fixed in x, y, and rotation\nops.fix(2, 0, 1, 0) # Node 2: Fixed in y\n\n# 4. Define material\n# uniaxialMaterial('Elastic', matTag, E)\nops.uniaxialMaterial('Elastic', 1, 200000.0) # Steel, E in appropriate units\n\n# 5. Define elements (e.g., truss element)\n# element('truss', eleTag, iNode, jNode, A, matTag)\nops.element('truss', 1, 1, 3, 10.0, 1)\nops.element('truss', 2, 2, 3, 10.0, 1)\n\n# 6. Define loads\n# Create a time series (constant load factor)\nops.timeSeries('Constant', 1)\n# Create a plain load pattern\nops.pattern('Plain', 1, 1)\n# Apply nodal load (Node 3: -10kN in y-direction)\nops.load(3, 0.0, -10.0, 0.0)\n\n# 7. Setup analysis\nops.constraints('Plain')\nops.numberer('RCM')\nops.system('BandSPD')\nops.test('NormDispIncr', 1e-6, 10)\nops.algorithm('Linear')\nops.integrator('LoadControl', 0.1)\nops.analysis('Static')\n\n# 8. Perform analysis\nops.analyze(10)\n\n# 9. Get results (example: node 3 displacement)\ndisp_y = ops.nodeDisp(3, 2)\nprint(f\"Vertical displacement at node 3: {disp_y:.4f}\")\n\nops.wipe() # Clear the model from memory","lang":"python","description":"This quickstart demonstrates a basic 2D truss analysis: defining nodes, boundary conditions, material, elements, applying a static load, running a static analysis, and retrieving nodal displacement. It includes best practices like `ops.wipe()` for model isolation.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"3.7.1.2","pypi_latest":"3.8.0.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.4,"avg_import_s":0.06,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"openseespy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"193.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"openseespy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":3.4,"import_time_s":null,"mem_mb":null,"disk_size":"194M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"openseespy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"195.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"openseespy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.9,"import_time_s":null,"mem_mb":null,"disk_size":"195M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"openseespy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"264.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"openseespy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":3.8,"import_time_s":0.05,"mem_mb":1.3,"disk_size":"265M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"openseespy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"264.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"openseespy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":3.6,"import_time_s":0.06,"mem_mb":1.4,"disk_size":"265M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"openseespy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"192.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"openseespy","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":3.5,"import_time_s":null,"mem_mb":null,"disk_size":"193M"}]}}