I would like to use absorbing boundaries in a soil model coded using OpenSeesPy.
These are modeled as 2D or 3D elements. Documentation (as well as a TCL example) is available at:
https://opensees.github.io/OpenSeesDocu ... ndary.html
I have not been able to find this type of element in OpenSeesPy. Could someone clarify the current situation with respect to this? Thanks.
Search found 8 matches
- Sun Apr 09, 2023 1:45 am
- Forum: OpenSeesPy
- Topic: Absorbing boundaries for soil models
- Replies: 0
- Views: 8475
- Wed Mar 01, 2023 11:59 pm
- Forum: OpenSeesPy
- Topic: Paraview recorder
- Replies: 4
- Views: 2250
- Mon Feb 27, 2023 2:41 pm
- Forum: OpenSeesPy
- Topic: Paraview recorder
- Replies: 4
- Views: 2250
Paraview recorder
Hello,
I would like to visualize an OpenSeesPy geotechnical model (i.e., with UCSD quad materials plus constraints) in Paraview and have tried to implement the PVD recorder as indicated in the OpenSeesPy online documentation, but this does not go through as I receive a warning that "the PVD recorder cannot be read".
Would anyone be able to contribute a functioning example of OpenSeesPy code implementing the recorder?
Thanks.
I would like to visualize an OpenSeesPy geotechnical model (i.e., with UCSD quad materials plus constraints) in Paraview and have tried to implement the PVD recorder as indicated in the OpenSeesPy online documentation, but this does not go through as I receive a warning that "the PVD recorder cannot be read".
Would anyone be able to contribute a functioning example of OpenSeesPy code implementing the recorder?
Thanks.
- Tue Jan 17, 2023 6:30 am
- Forum: OpenSeesPy
- Topic: Plotting equalDOF with opsvis
- Replies: 0
- Views: 9742
Plotting equalDOF with opsvis
Hello,
Is it possible to plot equalDOF constraints using opsvis?
Thanks.
Is it possible to plot equalDOF constraints using opsvis?
Thanks.
- Wed Jan 04, 2023 10:55 am
- Forum: OpenSeesPy
- Topic: quadUP elements not supported following quadrilateral meshing
- Replies: 1
- Views: 1605
quadUP elements not supported following quadrilateral meshing
Hello,
I have created quadrilateral meshes using and am able to successfully assign 'tri31' elements of 'ElasticIsotropic' materials.
When I try to assign 'PressureIndependMultiYield' materials, the routine crashes and I receive an error message "Restarting kernel..."
Moreover, if I try to assign 'quadUP' elements, I receive the error message "element quadUP is not currently supported in mesh".
Could someone provide guidance as to why this is occurring? I was not able to find any reference regarding limitations in assigning materials and elements to quadrilateral meshes. Or am I missing out on something else? Thank you.
I have created quadrilateral meshes using
Code: Select all
op.mesh('quad', etc.
When I try to assign 'PressureIndependMultiYield' materials, the routine crashes and I receive an error message "Restarting kernel..."
Moreover, if I try to assign 'quadUP' elements, I receive the error message "element quadUP is not currently supported in mesh".
Could someone provide guidance as to why this is occurring? I was not able to find any reference regarding limitations in assigning materials and elements to quadrilateral meshes. Or am I missing out on something else? Thank you.
- Fri Dec 30, 2022 6:48 am
- Forum: OpenSeesPy
- Topic: Meshing error during iterative definition of nodes
- Replies: 3
- Views: 1941
Re: Meshing error during iterative definition of nodes
Alternatively, I could implement the meshing algorithm for each of the boundary shapes and retrieve the set of nodes generated during meshing, then start with a new boundary by increasing the node tag by 1. I'll see if I am able to retrieve existing nodes (perhaps using a dictionary).
- Fri Dec 30, 2022 6:44 am
- Forum: OpenSeesPy
- Topic: Meshing error during iterative definition of nodes
- Replies: 3
- Views: 1941
Re: Meshing error during iterative definition of nodes
Hello Michael, thanks for clarifying. If I understand correctly, I guess I should define all the container shapes (rectangles, rhombuses) defining the geometry recursively in a first step and subsequently perform the meshing. The challenging part seems to be figuring out how many nodes will be generated by meshing within each shape (these are variable in size) to assign tags to the meshing-generated nodes. Apologies if these issues are trivial but I am a newby and have not been able to find examples involving recursive mesh generation.
- Fri Dec 30, 2022 3:08 am
- Forum: OpenSeesPy
- Topic: Meshing error during iterative definition of nodes
- Replies: 3
- Views: 1941
Meshing error during iterative definition of nodes
Hello,
I am setting up the geometry of a soil model using OpenSeesPy, defining consecutive layered rectangles for subsequent meshing and iteratively defining the vertices of the recatngles and node tags.
Running the code at the bottom of the post results in the error "Domain::addNode - node with tag 5 already exists in model" during iteration 2 (jj=1), though node coordinates for Node 5 seem to be correct and the node tag 5 does not seem to be assigned in the first iteration (jj=0) - please see screen text output below:
Iteration 1 (jj=0)
Node tags:
1 2 3 4
[1, -550, -25.0]
[2, -550, 0.0]
[3, -450.0, 0.0]
[4, -450.0, -25.0]
Iteration 2 (jj=1)
Node tags:
5 6 7 8
[5, -550, -50.0]
[6, -550, -25.0]
[7, -450.0, -25.0]
[8, -450.0, -50.0]
Could anyone help me understand what I am doing wrong?
Regards.
Code:
# ==============================================================================
# IMPORTS
# ==============================================================================
import openseespy.opensees as op
#from random import random
# ==============================================================================
# DEFINING GEOMETRIC PARAMETERS
# ==============================================================================
# Geometric parameters are expressed in [m]
H=300
# Width of left basin side
Lol=200
# Width of right basin side
Lor=500
# Internal semi-width
Li=150
# Defining height of elementary layer
Dz=25
# Defining depths of stratigraphic interfaces
n_int=int(H/Dz+1)
z_int=np.linspace(0,-H,n_int)
print(z_int)
# Defining number of layers in soil deposit
n_lay=len(z_int)-1
# # ==============================================================================
# # DEFINING GEOMETRY
# # ==============================================================================
op.wipe()
# nodes_dict = dict()
# For each layer, define the meshing rectangle
for ii in range(n_lay):
#print(ii)
# Part 1:
X11=-(Li+2*Lol)
X21=-(Li+2*Lol)
X31=-(Li+1.5*Lol)
X41=-(Li+1.5*Lol)
Y11=z_int[ii+1]
Y21=z_int[ii]
Y31=z_int[ii]
Y41=z_int[ii+1]
print(4*ii+1,4*ii+2,4*ii+3,4*ii+4)
# Defining nodes
if ii<1:
print('Layer ',ii+1)
print([4*ii+1,X11,Y11])
print([4*ii+2,X21,Y21])
print([4*ii+3,X31,Y31])
print([4*ii+4,X41,Y41])
print('')
op.node(4*ii+1,X11,Y11)
op.node(4*ii+2,X21,Y21)
op.node(4*ii+3,X31,Y31)
op.node(4*ii+4,X41,Y41)
else:
print('Layer ',ii+1)
print([4*ii+1,X11,Y11])
print([4*ii+2,X21,Y21])
print([4*ii+3,X31,Y31])
print([4*ii+4,X41,Y41])
print('')
op.node(4*ii+1,X11,Y11)
op.node(4*ii+4,X41,Y41)
# Defining mesh size
c = Dz/5
# Defining mesh
# tag Npts nodes type dof size
op.mesh('line',4*ii+1, 2, *[4*ii+1,4*ii+2], 0, 2, c)
op.mesh('line',4*ii+2, 2, *[4*ii+2,4*ii+3], 0, 2, c)
op.mesh('line',4*ii+3, 2, *[4*ii+3,4*ii+4], 0, 2, c)
op.mesh('line',4*ii+4, 2, *[4*ii+4,4*ii+1], 0, 2, c)
I am setting up the geometry of a soil model using OpenSeesPy, defining consecutive layered rectangles for subsequent meshing and iteratively defining the vertices of the recatngles and node tags.
Running the code at the bottom of the post results in the error "Domain::addNode - node with tag 5 already exists in model" during iteration 2 (jj=1), though node coordinates for Node 5 seem to be correct and the node tag 5 does not seem to be assigned in the first iteration (jj=0) - please see screen text output below:
Iteration 1 (jj=0)
Node tags:
1 2 3 4
[1, -550, -25.0]
[2, -550, 0.0]
[3, -450.0, 0.0]
[4, -450.0, -25.0]
Iteration 2 (jj=1)
Node tags:
5 6 7 8
[5, -550, -50.0]
[6, -550, -25.0]
[7, -450.0, -25.0]
[8, -450.0, -50.0]
Could anyone help me understand what I am doing wrong?
Regards.
Code:
# ==============================================================================
# IMPORTS
# ==============================================================================
import openseespy.opensees as op
#from random import random
# ==============================================================================
# DEFINING GEOMETRIC PARAMETERS
# ==============================================================================
# Geometric parameters are expressed in [m]
H=300
# Width of left basin side
Lol=200
# Width of right basin side
Lor=500
# Internal semi-width
Li=150
# Defining height of elementary layer
Dz=25
# Defining depths of stratigraphic interfaces
n_int=int(H/Dz+1)
z_int=np.linspace(0,-H,n_int)
print(z_int)
# Defining number of layers in soil deposit
n_lay=len(z_int)-1
# # ==============================================================================
# # DEFINING GEOMETRY
# # ==============================================================================
op.wipe()
# nodes_dict = dict()
# For each layer, define the meshing rectangle
for ii in range(n_lay):
#print(ii)
# Part 1:
X11=-(Li+2*Lol)
X21=-(Li+2*Lol)
X31=-(Li+1.5*Lol)
X41=-(Li+1.5*Lol)
Y11=z_int[ii+1]
Y21=z_int[ii]
Y31=z_int[ii]
Y41=z_int[ii+1]
print(4*ii+1,4*ii+2,4*ii+3,4*ii+4)
# Defining nodes
if ii<1:
print('Layer ',ii+1)
print([4*ii+1,X11,Y11])
print([4*ii+2,X21,Y21])
print([4*ii+3,X31,Y31])
print([4*ii+4,X41,Y41])
print('')
op.node(4*ii+1,X11,Y11)
op.node(4*ii+2,X21,Y21)
op.node(4*ii+3,X31,Y31)
op.node(4*ii+4,X41,Y41)
else:
print('Layer ',ii+1)
print([4*ii+1,X11,Y11])
print([4*ii+2,X21,Y21])
print([4*ii+3,X31,Y31])
print([4*ii+4,X41,Y41])
print('')
op.node(4*ii+1,X11,Y11)
op.node(4*ii+4,X41,Y41)
# Defining mesh size
c = Dz/5
# Defining mesh
# tag Npts nodes type dof size
op.mesh('line',4*ii+1, 2, *[4*ii+1,4*ii+2], 0, 2, c)
op.mesh('line',4*ii+2, 2, *[4*ii+2,4*ii+3], 0, 2, c)
op.mesh('line',4*ii+3, 2, *[4*ii+3,4*ii+4], 0, 2, c)
op.mesh('line',4*ii+4, 2, *[4*ii+4,4*ii+1], 0, 2, c)