Python helpers for writing OpenSees scripts.
Project description
Python wrappers and helpers for (Tcl) OpenSees analyses.
Installation
Conda:
conda install -c otaithleigh opswrapper
Usage
The objects provided in this package largely line up with their OpenSees Tcl counterparts. The general workflow is to create a list of objects, and then call str on them while printing to a file. Each entry in the list will become a line in the Tcl script, allowing for mixing of raw Tcl code and opswrapper objects.
Simple Example
import opswrapper as ops
model = []
model.append(ops.Model(ndm=2, ndf=3))
model.append(ops.Node(1, 0, 0))
model.append(ops.Node(2, 0, 10))
model.append(ops.material.Elastic(1, 29000))
model.append(ops.element.Truss(1, 1, 2, mat=1, A=10))
print(*model, sep='\n')
Output:
model basic -ndm 2 -ndf 3 node 1 0 0 node 2 0 10 uniaxialMaterial Elastic 1 29000 element truss 1 1 2 10 1
Formatting
Objects can be formatted via multiple ways. The simplest is to convert them to str:
>>> str(Elastic(1, 29000.))
'uniaxialMaterial 1 29000'
A float format specifier may be specified when used with the built-in format commands:
>>> format(Elastic(1, 29000.), 'e')
'uniaxialMaterial 1 2.900000e+4'
>>> f'{Elastic(1, 29000.):.2e}'
'uniaxialMaterial 1 2.90e+04'
Specifiers for other types may be passed using the tcl_code method:
>>> Elastic(1, 29000.).tcl_code({int: '4d'})
'uniaxialMaterial Elastic 1 29000'
Defaults can be set on a global basis using base.set_global_format_spec, on a per-class basis using cls.set_class_format_spec, or on a per-object basis using self.set_format_spec:
>>> set_global_format_spec({float: '#.3g'})
>>> section.Elastic2D.set_class_format_spec({float: '#.3g'})
>>> s = section.Elastic2D(...)
>>> s.set_format_spec({float: '#.3g'})
Each of these methods return the previously-set modifiers if you wish to restore them later.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for opswrapper-2.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52cbcb21a2694c35243f9c1ade22451e5c15ee730e971113b382f701461220b9 |
|
MD5 | affbdd26c21844f6f1580624294945b6 |
|
BLAKE2b-256 | c0e2de78980c59db3503a0d06481cf69984f171343e3954047d33f720baf2e16 |