Search found 8 matches

by MUz
Sun Apr 09, 2023 1:45 am
Forum: OpenSeesPy
Topic: Absorbing boundaries for soil models
Replies: 0
Views: 8475

Absorbing boundaries for soil models

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.
by MUz
Wed Mar 01, 2023 11:59 pm
Forum: OpenSeesPy
Topic: Paraview recorder
Replies: 4
Views: 2250

Re: Paraview recorder

mhscott wrote: Tue Feb 28, 2023 6:56 am I'll attempt a minimal example using paraview.
Thank you very much!
by MUz
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.
by MUz
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.
by MUz
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

Code: Select all

op.mesh('quad', etc.
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.
by MUz
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

mhscott wrote: Fri Dec 30, 2022 6:02 am The mesh command creates a node with tag 5
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).
by MUz
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

mhscott wrote: Fri Dec 30, 2022 6:02 am The mesh command creates a node with tag 5
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.
by MUz
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)