Welcome to opsvis
’s documentation!
Since October 2021, opsvis
is no longer distributed with the main
OpenSeesPy, and therefore must be installed separately with pip
.
The opsvis
postprocessing and plotting module is meant to be used
with Opensees Python (OpenSeesPy). First read the
OpenSeesPy documentation
before geting started with opsvis
.
This module can be mainly useful for students when learning the fundamentals of structural analysis (interpolated deformation of frame structures (static images or animations), section force distribution of frame structures, stress distribution in triangle, quadrilateral 2d elements, orientation of frame members in 3d space, fibers of a cross section, static and animated eigenvalue mode shapes etc.). This way, we can lower the bar in teaching and learning OpenSees at earlier years of civil engineering studies. However the visualization features for OpenSees can also be helpful for research studies.
Note that there are other OpenSeesPy visualization modules (for example
Get_Rendering
), however opsvis
is an alternative with some
distinct features (on the other hand the Get_Rendering
has other
features that opsvis
does not have), which for example allow us
to plot:
interpolated deformation of frame structures,
stresses of triangular and (four, eight and nine-node) quadrilateral 2d elements (calculation of Huber-Mieses-Hencky equivalent stress, principal stresses),
fibers of cross-sections,
models with extruded cross sections
animation of mode shapes.
Installation
pip install opsvis
Note the name of the PyPi package is without the underscore _
.
Usage
To use opsvis
in OpenSeesPy
scripts, your .py
file should start as follows:
import openseespy.opensees as ops
import opsvis as opsv
import matplotlib.pyplot as plt
# ... your OpenSeesPy model and analysis commands ...
opsv.plot_model()
sfac = opsv.plot_defo()
Commands
The main commands related to various aspects of OpenSees model visualization are as follows:
Helper functions include:
For examples go to: Examples.
Notes:
matplotlib’s
plt.axis('equal')
does not work for 3d plots therefore right angles are not guaranteed to be 90 degrees on the plotsplot_fiber_section
is inspired by MatlabplotSection.zip
written by D. Vamvatsikos available at http://users.ntua.gr/divamva/software.html