Metadata-Version: 2.1
Name: opswrapper
Version: 1.0.3
Summary: Python helpers for writing OpenSees scripts.
Home-page: https://github.com/otaithleigh/opswrapper
Author: Peter Talley
Author-email: ptalley2@vols.utk.edu
License: MIT
Description: opswrapper
        ++++++++++
        
        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
        ==============
        
        .. code:: python
        
            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:
        
        .. code:: python
        
            >>> str(Elastic(1, 29000))
            'uniaxialMaterial 1 29000'
        
        A float format specifier may be specified when used with the built-in format
        commands:
        
        .. code:: python
        
            >>> format(Elastic(1, 29000), 'e')
            'uniaxialMaterial 1 2.900000e+4'
            >>> f'{Elastic(1, 29000):.2e}'
            'uniaxialMaterial 1 2.90e+04'
        
        Specifiers for other numeric types may be passed using the `tcl_code` method:
        
        .. code:: python
        
            >>> 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`:
        
        .. code:: python
        
            >>> 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.
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
