Note
Go to the end to download the full example code.
Fluid-structure interaction¶
This example originates from the GitHub repository maintained by Professor Quan Gu of Xiamen University. Refer to: OpenSeesXMU
import matplotlib.pyplot as plt
import openseespy.opensees as ops
import opstool as opst
ops.wipe()
ops.model("basic", "-ndm", 3, "-ndf", 3)
ops.node(1, 1.0, 0.0, 0.0)
ops.node(2, 1.0, 1.0, 0.0)
ops.node(3, 0.0, 1.0, 0.0)
ops.node(4, 0.0, 0.0, 0.0)
ops.node(5, 1.0, 0.0, 1.0)
ops.node(6, 1.0, 1.0, 1.0)
ops.node(7, 0.0, 1.0, 1.0)
ops.node(8, 0.0, 0.0, 1.0)
ops.nDMaterial("TruncatedDP", 1, 3, 2400000, 14957000000.0, 17677000000.0, 0.11, 26614000.0, -2068400.0)
ops.element("bbarBrick", 1, 1, 2, 3, 4, 5, 6, 7, 8, 1, 0, 0, -23520000.0)
LinearCap nDmaterial - Written: Quan Gu and Zhijian Qiu
ops.element("VS3D4", 5, 3, 4, 8, 7, 25000000000.0, 100000000000.0, 2600, 475, 1.33, 0.67)
ops.element("VS3D4", 6, 1, 2, 6, 5, 25000000000.0, 100000000000.0, 2600, 475, 1.33, 0.67)
ops.element("VS3D4", 7, 1, 2, 3, 4, 25000000000.0, 100000000000.0, 2600, 475, 1.33, 0.67)
ops.element("VS3D4", 8, 1, 5, 8, 4, 25000000000.0, 100000000000.0, 2600, 475, 1.33, 0.67)
ops.model("basic", "-ndm", 3, "-ndf", 1)
ops.node(9, 1.0, 1.0, 0.0)
ops.node(10, 1.0, 2.0, 0.0)
ops.node(11, 0.0, 2.0, 0.0)
ops.node(12, 0.0, 1.0, 0.0)
ops.node(13, 1.0, 1.0, 1.0)
ops.node(14, 1.0, 2.0, 1.0)
ops.node(15, 0.0, 2.0, 1.0)
ops.node(16, 0.0, 1.0, 1.0)
ops.nDMaterial("AcousticMedium", 2, 2070000000.0, 1000)
ops.element("AC3D8", 3, 9, 10, 11, 12, 13, 14, 15, 16, 2)
ops.element("ASI3D8", 2, 2, 3, 6, 7, 9, 12, 13, 16)
ops.element("AV3D4", 4, 10, 11, 15, 14, 2)
ops.fix(13, 1)
ops.fix(14, 1)
ops.fix(15, 1)
ops.fix(16, 1)
fig = opst.vis.plotly.plot_model()
fig
# fig.write_html("model.html", full_html=False, include_plotlyjs="cdn")
# fig.show()
ops.timeSeries("Path", 1, "-dt", 0.01, "-filePath", "utils/elcentro.txt", "-factor", 3)
ops.pattern("Plain", 111, 1)
ops.load(1, 1000000.0, 0, 1000000.0)
ops.load(2, 1000000.0, 0, 1000000.0)
ops.load(3, 1000000.0, 0, 1000000.0)
ops.load(4, 1000000.0, 0, 1000000.0)
ops.wipeAnalysis()
ops.constraints("Transformation")
ops.system("BandGeneral")
ops.numberer("Plain")
ops.test("NormDispIncr", 1e-05, 20, 0)
ops.algorithm("Newton")
ops.integrator("Newmark", 0.5, 0.25)
ops.analysis("Transient")
ODB = opst.post.CreateODB(odb_tag="FSI", project_gauss_to_nodes="copy")
N = 1600
for i in range(N):
ops.analyze(1, 0.01)
ODB.fetch_response_step()
ODB.save_response()
ops.wipeAnalysis()
print("Dynamic analysis done...")
OPSTOOL™ :: All responses data with _odb_tag = FSI saved in
G:\opstool\docs\.opstool.output\RespStepData-FSI.odb!
Dynamic analysis done...
node_resp = opst.post.get_nodal_responses(odb_tag="FSI")
OPSTOOL™ :: Loading all response data from G:\opstool\docs\.opstool.output\RespStepData-FSI.odb ...
node5_resp = node_resp.sel(nodeTags=5)
node6_resp = node_resp.sel(nodeTags=6)
plt.plot(node5_resp.time, node5_resp["disp"].sel(DOFs="UX"), "b-", label="Node 5 - Disp X")
plt.plot(node6_resp.time, node6_resp["disp"].sel(DOFs="UX"), "r--", label="Node 6 - Disp X")
plt.legend()
plt.show()

plt.plot(node5_resp.time, node5_resp["accel"].sel(DOFs="UX"), "b-", label="Node 5 - Accel X")
plt.plot(node6_resp.time, node6_resp["accel"].sel(DOFs="UX"), "r--", label="Node 6 - Accel X")
plt.legend()
plt.show()

opst.post.get_element_responses(odb_tag="FSI", ele_type="Brick")
OPSTOOL™ :: Loading Brick response data from G:\opstool\docs\.opstool.output\RespStepData-FSI.odb ...
<xarray.DatasetView> Size: 4MB
Dimensions: (time: 1601, nodeTags: 8, eleTags: 2,
GaussPoints: 8, strainDOFs: 6, stressDOFs: 6,
measures: 7)
Coordinates:
* time (time) float32 6kB 0.0 0.01 0.02 ... 15.98 15.99 16.0
* nodeTags (nodeTags) int64 64B 1 2 3 4 5 6 7 8
* eleTags (eleTags) int64 16B 1 3
* GaussPoints (GaussPoints) int64 64B 1 2 3 4 5 6 7 8
* strainDOFs (strainDOFs) <U5 120B 'eps11' 'eps22' ... 'eps13'
* stressDOFs (stressDOFs) <U7 168B 'sigma11' ... 'sigma13'
* measures (measures) <U9 252B 'p1' 'p2' ... 'tau_oct' 'tau_max'
Data variables:
PorePressureAtNodes (time, nodeTags) float64 102kB 0.0 0.0 ... 0.0 0.0
Strains (time, eleTags, GaussPoints, strainDOFs) float32 615kB ...
StrainsAtNodes (time, nodeTags, strainDOFs) float32 307kB 0.0 ......
StrainsAtNodesErr (time, nodeTags, strainDOFs) float32 307kB 0.0 ......
StressAtNodesErr (time, nodeTags, stressDOFs) float32 307kB 0.0 ......
Stresses (time, eleTags, GaussPoints, stressDOFs) float32 615kB ...
StressesAtNodes (time, nodeTags, stressDOFs) float32 307kB 0.0 ......
StressMeasures (time, eleTags, GaussPoints, measures) float32 717kB ...
StressMeasuresAtNodes (time, nodeTags, measures) float32 359kB 0.0 ... 3...
Attributes: (12/16)
sigma11, sigma22, sigma33: Normal stress (strain) along x, y, z.
sigma12, sigma23, sigma13: Shear stress (strain).
para#i: The additional output of stress, w...
p1, p2, p3: Principal stresses, p3=0 for 2D pl...
sigma_vm: Von Mises stress.
tau_max: Maximum shear stress, 0.5*(p1-p3).
... ...
sigma_mohr_coulomb_c_phi_eq: Mohr-Coulomb equivalent stress (us...
sigma_mohr_coulomb_c_phi_intensity: Mohr-Coulomb intensity (using cohe...
sigma_drucker_prager_sy_eq: Drucker-Prager equivalent stress (...
sigma_drucker_prager_sy_intensity: Drucker-Prager intensity (using te...
sigma_drucker_prager_c_phi_eq: Drucker-Prager equivalent stress (...
sigma_drucker_prager_c_phi_intensity: Drucker-Prager intensity (using co...xarray.DatasetView
- time: 1601
- nodeTags: 8
- eleTags: 2
- GaussPoints: 8
- strainDOFs: 6
- stressDOFs: 6
- measures: 7
- time(time)float320.0 0.01 0.02 ... 15.98 15.99 16.0
array([0.000e+00, 1.000e-02, 2.000e-02, ..., 1.598e+01, 1.599e+01, 1.600e+01], shape=(1601,), dtype=float32) - nodeTags(nodeTags)int641 2 3 4 5 6 7 8
array([1, 2, 3, 4, 5, 6, 7, 8])
- eleTags(eleTags)int641 3
array([1, 3])
- GaussPoints(GaussPoints)int641 2 3 4 5 6 7 8
array([1, 2, 3, 4, 5, 6, 7, 8])
- strainDOFs(strainDOFs)<U5'eps11' 'eps22' ... 'eps23' 'eps13'
array(['eps11', 'eps22', 'eps33', 'eps12', 'eps23', 'eps13'], dtype='<U5')
- stressDOFs(stressDOFs)<U7'sigma11' 'sigma22' ... 'sigma13'
array(['sigma11', 'sigma22', 'sigma33', 'sigma12', 'sigma23', 'sigma13'], dtype='<U7') - measures(measures)<U9'p1' 'p2' ... 'tau_oct' 'tau_max'
array(['p1', 'p2', 'p3', 'sigma_vm', 'sigma_oct', 'tau_oct', 'tau_max'], dtype='<U9')
- PorePressureAtNodes(time, nodeTags)float640.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
array([[0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], ..., [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.], [0., 0., 0., ..., 0., 0., 0.]], shape=(1601, 8)) - Strains(time, eleTags, GaussPoints, strainDOFs)float32-0.0 -0.0 -0.0 -0.0 ... nan nan nan
array([[[[-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00], [-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00], [-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00], ..., [-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00], [-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00], [-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00]], [[ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan], ... -1.52175862e-05, -4.78572792e-06, -2.70592573e-05], [-9.68738925e-03, -9.68197919e-03, -9.52646416e-03, -1.94657950e-05, -3.07503319e-06, 1.00282805e-05], [-9.69627127e-03, -9.72247403e-03, -9.47708637e-03, 1.61149990e-06, -4.72992042e-06, 2.07065909e-06]], [[ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan], ..., [ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan]]]], shape=(1601, 2, 8, 6), dtype=float32) - StrainsAtNodes(time, nodeTags, strainDOFs)float320.0 0.0 0.0 ... -4.73e-06 2.071e-06
array([[[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], ..., [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]], [[-5.37224366e-07, -3.08646605e-07, 4.06955451e-06, 3.74680305e-08, 4.35972333e-06, -3.09737409e-08], [-4.71550607e-07, -5.63889103e-07, 4.25912322e-06, 3.82484195e-08, 4.83451049e-06, -3.09737409e-08], [-5.37224366e-07, -3.08646605e-07, 4.06955451e-06, -3.74680305e-08, 4.35972333e-06, 3.09737409e-08], ... -1.02892018e-05, -1.21940420e-05, -1.73886074e-05], [-9.69516207e-03, -9.68732033e-03, -9.50580090e-03, -2.77891359e-05, 1.71513432e-06, 2.29020006e-05], [-9.70407762e-03, -9.72962193e-03, -9.45458282e-03, 6.52017025e-06, 1.55442046e-06, 1.26784180e-05]], [[-9.66311060e-03, -9.68392938e-03, -9.54879168e-03, -3.96168325e-05, 4.09985078e-05, 2.23185816e-06], [-9.67202429e-03, -9.72396974e-03, -9.49983858e-03, -1.91755717e-05, 3.97109725e-05, -6.09311292e-06], [-9.66631528e-03, -9.69417114e-03, -9.53534618e-03, -2.29843099e-05, 4.18611344e-05, 3.11652148e-05], ..., [-9.69360489e-03, -9.71189141e-03, -9.49033536e-03, -1.52175862e-05, -4.78572792e-06, -2.70592573e-05], [-9.68738925e-03, -9.68197919e-03, -9.52646416e-03, -1.94657950e-05, -3.07503319e-06, 1.00282805e-05], [-9.69627127e-03, -9.72247403e-03, -9.47708637e-03, 1.61149990e-06, -4.72992042e-06, 2.07065909e-06]]], shape=(1601, 8, 6), dtype=float32) - StrainsAtNodesErr(time, nodeTags, strainDOFs)float320.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
array([[[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], ..., [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]], [[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], ..., [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]], [[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], ..., ... ..., [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]], [[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], ..., [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]], [[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], ..., [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]]], shape=(1601, 8, 6), dtype=float32) - StressAtNodesErr(time, nodeTags, stressDOFs)float320.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
array([[[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], ..., [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]], [[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], ..., [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]], [[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], ..., ... ..., [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]], [[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], ..., [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]], [[0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], ..., [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0.]]], shape=(1601, 8, 6), dtype=float32) - Stresses(time, eleTags, GaussPoints, stressDOFs)float32-0.0 -0.0 -0.0 -0.0 ... nan nan nan
array([[[[-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00], [-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00], [-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00], ..., [-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00], [-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00], [-0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00, -0.00000000e+00]], [[ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan], ... -4.55218875e+05, -1.43160266e+05, -8.09450625e+05], [ 1.87708375e+06, 2.03890438e+06, 6.69098650e+06, -5.82299750e+05, -9.19865469e+04, 2.99986000e+05], [ 1.61137425e+06, 8.27538562e+05, 8.16806150e+06, 4.82064062e+04, -1.41490844e+05, 6.19416992e+04]], [[ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan], ..., [ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan], [ nan, nan, nan, nan, nan, nan]]]], shape=(1601, 2, 8, 6), dtype=float32) - StressesAtNodes(time, nodeTags, stressDOFs)float320.0 0.0 ... -1.415e+05 6.194e+04
array([[[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], ..., [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]], [[ 8.77010156e+03, 1.56077764e+04, 1.46577281e+05, 1.12081860e+03, 1.30416766e+05, -9.26548523e+02], [ 1.07346660e+04, 7.97245264e+03, 1.52248047e+05, 1.14416321e+03, 1.44619547e+05, -9.26548523e+02], [ 8.77010156e+03, 1.56077764e+04, 1.46577281e+05, -1.12081860e+03, 1.30416766e+05, 9.26548523e+02], ... -3.07791156e+05, -3.64772594e+05, -5.20162781e+05], [ 1.70271862e+06, 1.93730788e+06, 7.36726250e+06, -8.31284250e+05, 5.13065312e+04, 6.85090438e+05], [ 1.43600912e+06, 6.71876938e+05, 8.89940300e+06, 1.95044375e+05, 4.64989336e+04, 3.79262188e+05]], [[ 2.60332825e+06, 1.98056388e+06, 6.02308250e+06, -1.18509800e+06, 1.22642938e+06, 6.67638047e+04], [ 2.33669450e+06, 7.82806500e+05, 7.48747350e+06, -5.73618000e+05, 1.18791400e+06, -1.82269391e+05], [ 2.50747475e+06, 1.67420462e+06, 6.42529550e+06, -6.87552625e+05, 1.25223400e+06, 9.32276188e+05], ..., [ 1.69113775e+06, 1.14410038e+06, 7.77173650e+06, -4.55218875e+05, -1.43160266e+05, -8.09450625e+05], [ 1.87708375e+06, 2.03890438e+06, 6.69098650e+06, -5.82299750e+05, -9.19865469e+04, 2.99986000e+05], [ 1.61137425e+06, 8.27538562e+05, 8.16806150e+06, 4.82064062e+04, -1.41490844e+05, 6.19416992e+04]]], shape=(1601, 8, 6), dtype=float32) - StressMeasures(time, eleTags, GaussPoints, measures)float32-0.0 -0.0 -0.0 0.0 ... 0.0 0.0 0.0
array([[[[-0.0000000e+00, -0.0000000e+00, -0.0000000e+00, ..., -0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [-0.0000000e+00, -0.0000000e+00, -0.0000000e+00, ..., -0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [-0.0000000e+00, -0.0000000e+00, -0.0000000e+00, ..., -0.0000000e+00, 0.0000000e+00, 0.0000000e+00], ..., [-0.0000000e+00, -0.0000000e+00, -0.0000000e+00, ..., -0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [-0.0000000e+00, -0.0000000e+00, -0.0000000e+00, ..., -0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [-0.0000000e+00, -0.0000000e+00, -0.0000000e+00, ..., -0.0000000e+00, 0.0000000e+00, 0.0000000e+00]], [[ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], ... 3.5356582e+06, 3.1001088e+06, 3.5169170e+06], [ 6.7131595e+06, 2.5289382e+06, 1.3648769e+06, ..., 3.5356582e+06, 2.2965402e+06, 2.6741412e+06], [ 8.1713550e+06, 1.6138982e+06, 8.2172106e+05, ..., 3.5356580e+06, 3.2938480e+06, 3.6748170e+06]], [[ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], ..., [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00]]]], shape=(1601, 2, 8, 7), dtype=float32) - StressMeasuresAtNodes(time, nodeTags, measures)float320.0 0.0 0.0 ... 3.294e+06 3.675e+06
array([[[ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], ..., [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00], [ 0.0000000e+00, 0.0000000e+00, 0.0000000e+00, ..., 0.0000000e+00, 0.0000000e+00, 0.0000000e+00]], [[ 2.2702689e+05, 8.7980908e+03, -6.4869828e+04, ..., 5.6985051e+04, 1.2394195e+05, 1.4594836e+05], [ 2.4172312e+05, 1.0757636e+04, -8.1525602e+04, ..., 5.6985051e+04, 1.3595383e+05, 1.6162436e+05], [ 2.2702689e+05, 8.7980908e+03, -6.4869828e+04, ..., 5.6985051e+04, 1.2394195e+05, 1.4594836e+05], ... 3.6690962e+06, 3.4356742e+06, 3.8479668e+06], [ 7.4493600e+06, 2.6253118e+06, 9.3261731e+05, ..., 3.6690962e+06, 2.7609295e+06, 3.2583712e+06], [ 8.9190110e+06, 1.4635400e+06, 6.2473812e+05, ..., 3.6690962e+06, 3.7280112e+06, 4.1471365e+06]], [[ 6.3846305e+06, 3.3613635e+06, 8.6098038e+05, ..., 3.5356580e+06, 2.2583862e+06, 2.7618250e+06], [ 7.7061030e+06, 2.4727948e+06, 4.2807678e+05, ..., 3.5356582e+06, 3.0648192e+06, 3.6390130e+06], [ 6.8650565e+06, 2.8870178e+06, 8.5490062e+05, ..., 3.5356582e+06, 2.4961362e+06, 3.0050780e+06], ..., [ 7.8786715e+06, 1.8834654e+06, 8.4483762e+05, ..., 3.5356582e+06, 3.1001088e+06, 3.5169170e+06], [ 6.7131595e+06, 2.5289382e+06, 1.3648769e+06, ..., 3.5356582e+06, 2.2965402e+06, 2.6741412e+06], [ 8.1713550e+06, 1.6138982e+06, 8.2172106e+05, ..., 3.5356580e+06, 3.2938480e+06, 3.6748170e+06]]], shape=(1601, 8, 7), dtype=float32)
- sigma11, sigma22, sigma33 :
- Normal stress (strain) along x, y, z.
- sigma12, sigma23, sigma13 :
- Shear stress (strain).
- para#i :
- The additional output of stress, which is useful for some elements, such as * eta_r * for some u-p elements. eta_r--Ratio between the shear (deviatoric) stress and peak shear strength at the current confinement.
- p1, p2, p3 :
- Principal stresses, p3=0 for 2D plane stress condition, p3!=0 for 3D plane strain condition.
- sigma_vm :
- Von Mises stress.
- tau_max :
- Maximum shear stress, 0.5*(p1-p3).
- sigma_oct :
- Octahedral normal stress, (p1+p2+p3)/3.
- tau_oct :
- Octahedral shear stress, sqrt(2/3*J2).
- sigma_mohr_coulomb_sy_eq :
- Mohr-Coulomb equivalent stress (using tensile and compressive strengths).
- sigma_mohr_coulomb_sy_intensity :
- Mohr-Coulomb intensity (using tensile and compressive strengths).
- sigma_mohr_coulomb_c_phi_eq :
- Mohr-Coulomb equivalent stress (using cohesion and friction angle).
- sigma_mohr_coulomb_c_phi_intensity :
- Mohr-Coulomb intensity (using cohesion and friction angle).
- sigma_drucker_prager_sy_eq :
- Drucker-Prager equivalent stress (using tensile and compressive strengths).
- sigma_drucker_prager_sy_intensity :
- Drucker-Prager intensity (using tensile and compressive strengths).
- sigma_drucker_prager_c_phi_eq :
- Drucker-Prager equivalent stress (using cohesion and friction angle).
- sigma_drucker_prager_c_phi_intensity :
- Drucker-Prager intensity (using cohesion and friction angle).
opst.post.get_element_responses(odb_tag="FSI", ele_type="Plane")
OPSTOOL™ :: Loading Plane response data from G:\opstool\docs\.opstool.output\RespStepData-FSI.odb ...
<xarray.DatasetView> Size: 698kB
Dimensions: (time: 1601, nodeTags: 16, eleTags: 6, GaussPoints: 1,
strainDOFs: 1, stressDOFs: 1)
Coordinates:
* time (time) float32 6kB 0.0 0.01 0.02 ... 15.98 15.99 16.0
* nodeTags (nodeTags) int64 128B 2 3 6 7 9 12 13 ... 15 14 4 8 1 5
* eleTags (eleTags) int64 48B 2 4 5 6 7 8
* GaussPoints (GaussPoints) int64 8B 1
* strainDOFs (strainDOFs) <U5 20B 'eps11'
* stressDOFs (stressDOFs) <U7 28B 'sigma11'
Data variables:
PorePressureAtNodes (time, nodeTags) float64 205kB 0.0 0.0 ... 0.1273
Strains (time, eleTags, GaussPoints, strainDOFs) float32 38kB ...
StrainsAtNodes (time, nodeTags, strainDOFs) float32 102kB 0.0 ... 0.0
StrainsAtNodesErr (time, nodeTags, strainDOFs) float32 102kB 0.0 ... 0.0
StressAtNodesErr (time, nodeTags, stressDOFs) float32 102kB 0.0 ... 0.0
Stresses (time, eleTags, GaussPoints, stressDOFs) float32 38kB ...
StressesAtNodes (time, nodeTags, stressDOFs) float32 102kB 0.0 ... 0.0
Attributes: (12/17)
sigma11, sigma22, sigma12: Normal stress and shear stress in ...
sigma33: Out-of-plane normal stress.
para#i: The additional output of stress, w...
p1, p2, p3: Principal stresses, p3=0 for 2D pl...
theta: Angle (degrees) between x-axis and...
sigma_vm: Von Mises stress.
... ...
sigma_mohr_coulomb_c_phi_eq: Mohr-Coulomb equivalent stress (us...
sigma_mohr_coulomb_c_phi_intensity: Mohr-Coulomb intensity (using cohe...
sigma_drucker_prager_sy_eq: Drucker-Prager equivalent stress (...
sigma_drucker_prager_sy_intensity: Drucker-Prager intensity (using te...
sigma_drucker_prager_c_phi_eq: Drucker-Prager equivalent stress (...
sigma_drucker_prager_c_phi_intensity: Drucker-Prager intensity (using co...xarray.DatasetView
- time: 1601
- nodeTags: 16
- eleTags: 6
- GaussPoints: 1
- strainDOFs: 1
- stressDOFs: 1
- time(time)float320.0 0.01 0.02 ... 15.98 15.99 16.0
array([0.000e+00, 1.000e-02, 2.000e-02, ..., 1.598e+01, 1.599e+01, 1.600e+01], shape=(1601,), dtype=float32) - nodeTags(nodeTags)int642 3 6 7 9 12 13 ... 15 14 4 8 1 5
array([ 2, 3, 6, 7, 9, 12, 13, 16, 10, 11, 15, 14, 4, 8, 1, 5])
- eleTags(eleTags)int642 4 5 6 7 8
array([2, 4, 5, 6, 7, 8])
- GaussPoints(GaussPoints)int641
array([1])
- strainDOFs(strainDOFs)<U5'eps11'
array(['eps11'], dtype='<U5')
- stressDOFs(stressDOFs)<U7'sigma11'
array(['sigma11'], dtype='<U7')
- PorePressureAtNodes(time, nodeTags)float640.0 0.0 0.0 ... 0.1264 0.1273
array([[ 0. , 0. , 0. , ..., 0. , 0. , 0. ], [-0.0452276 , -0.0452276 , -0.0462832 , ..., -0.04187474, -0.04114809, -0.04187474], [-0.1277419 , -0.1277419 , -0.12985039, ..., -0.11352554, -0.11223987, -0.11352554], ..., [ 0.21838197, 0.13546818, 0.22139202, ..., 0.09215979, 0.17392767, 0.17665702], [ 0.1967098 , 0.14349319, 0.19939174, ..., 0.09908106, 0.15396342, 0.15604345], [ 0.16661494, 0.14517131, 0.16750473, ..., 0.1017523 , 0.12642903, 0.12727135]], shape=(1601, 16)) - Strains(time, eleTags, GaussPoints, strainDOFs)float320.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
array([[[[0.]], [[0.]], [[0.]], [[0.]], [[0.]], [[0.]]], [[[0.]], [[0.]], [[0.]], [[0.]], ... [[0.]], [[0.]], [[0.]], [[0.]]], [[[0.]], [[0.]], [[0.]], [[0.]], [[0.]], [[0.]]]], shape=(1601, 6, 1, 1), dtype=float32) - StrainsAtNodes(time, nodeTags, strainDOFs)float320.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
array([[[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., ... ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]]], shape=(1601, 16, 1), dtype=float32) - StrainsAtNodesErr(time, nodeTags, strainDOFs)float320.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
array([[[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., ... ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]]], shape=(1601, 16, 1), dtype=float32) - StressAtNodesErr(time, nodeTags, stressDOFs)float320.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
array([[[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., ... ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]]], shape=(1601, 16, 1), dtype=float32) - Stresses(time, eleTags, GaussPoints, stressDOFs)float320.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
array([[[[0.]], [[0.]], [[0.]], [[0.]], [[0.]], [[0.]]], [[[0.]], [[0.]], [[0.]], [[0.]], ... [[0.]], [[0.]], [[0.]], [[0.]]], [[[0.]], [[0.]], [[0.]], [[0.]], [[0.]], [[0.]]]], shape=(1601, 6, 1, 1), dtype=float32) - StressesAtNodes(time, nodeTags, stressDOFs)float320.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
array([[[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., ... ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]], [[0.], [0.], [0.], ..., [0.], [0.], [0.]]], shape=(1601, 16, 1), dtype=float32)
- sigma11, sigma22, sigma12 :
- Normal stress and shear stress in the x-y plane.
- sigma33 :
- Out-of-plane normal stress.
- para#i :
- The additional output of stress, which is useful for some elements, such as * eta_r * for some u-p elements. eta_r--Ratio between the shear (deviatoric) stress and peak shear strength at the current confinement.
- p1, p2, p3 :
- Principal stresses, p3=0 for 2D plane stress condition, p3!=0 for 3D plane strain condition.
- theta :
- Angle (degrees) between x-axis and principal axis 1.
- sigma_vm :
- Von Mises stress.
- tau_max :
- Maximum shear stress, 0.5*(p1-p3).
- sigma_oct :
- Octahedral normal stress, (p1+p2+p3)/3.
- tau_oct :
- Octahedral shear stress, sqrt(2/3*J2).
- sigma_mohr_coulomb_sy_eq :
- Mohr-Coulomb equivalent stress (using tensile and compressive strengths).
- sigma_mohr_coulomb_sy_intensity :
- Mohr-Coulomb intensity (using tensile and compressive strengths).
- sigma_mohr_coulomb_c_phi_eq :
- Mohr-Coulomb equivalent stress (using cohesion and friction angle).
- sigma_mohr_coulomb_c_phi_intensity :
- Mohr-Coulomb intensity (using cohesion and friction angle).
- sigma_drucker_prager_sy_eq :
- Drucker-Prager equivalent stress (using tensile and compressive strengths).
- sigma_drucker_prager_sy_intensity :
- Drucker-Prager intensity (using tensile and compressive strengths).
- sigma_drucker_prager_c_phi_eq :
- Drucker-Prager equivalent stress (using cohesion and friction angle).
- sigma_drucker_prager_c_phi_intensity :
- Drucker-Prager intensity (using cohesion and friction angle).
Total running time of the script: (0 minutes 4.681 seconds)