zhuminjie / OpenSeesPyDoc

OpenSeesPy Documentation
http://openseespydoc.readthedocs.io
Other
146 stars 106 forks source link

Brick Element with ndf = 6 #178

Closed DomenicoGaudioso closed 4 years ago

DomenicoGaudioso commented 4 years ago

Hello, I have two questions: 1) Is it possible to analyze a beam element that is rigidly connected to abrick element? 2) Is it possible to analyze a brick element with a nodal load having both forces and moments?

I attach the scripts for the 2 questions. Both seem not to work. Did I miss the type of analysis?

Brick BricKandBeam

The code for first question: `from openseespy.opensees import *

Start of model generation

wipe() model("BasicBuilder", "-ndm",3, "-ndf",6)

g = 9.81 E = 1000.0 nu = 0.25 rho=6.75/g nDMaterial('ElasticIsotropic', 1, E, nu, rho )

Define geometry

z1 = 10 z2 = 20

node(1, [0, 0, 0]) node(2, [10, 0, 0]) node(3, [10, 10, 0]) node(4, [0, 10, 0])

node(5, [0, 0, z1]) node(6, [10, 0, z1]) node(7, [10, 10, z1]) node(8, [0, 10, z1])

node(9, [0, 0, z2]) node(10, [10, 0, z2]) node(11, [10, 10, z2]) node(12, [0, 10, z2])

node(13, [0, 0, z2]) node(14, [0, 0, z2*4])

geomTransf('Linear', 1 , *[0,0,1])

element( 'bbarBrick' , 1 , [1,2,3,4,5,6,7,8] , 1 ) element( 'bbarBrick' , 2 , [5,6,7,8,9,10,11,12] , 1 ) element( 'ElasticTimoshenkoBeam' , 3 , 13,14 , 10000, 500, 0.4, 0.3, 0.3, 0.002, 0.21, 0.21, 1 )

point constraints

fix(1, 1, 1, 1, 1, 1, 1) fix(2, 1, 1, 1, 1, 1, 1) fix(3, 1, 1, 1, 1, 1, 1) fix(4, 1, 1, 1, 1, 1, 1)

create a Linear time series

timeSeries("Linear", 1)

create a Plain load pattern

pattern("Plain", 1, 1, "-fact", 1.0) load(14, 10, 0, 0, 0, 10.0, 0.0)

Start of static analysis (creation of the analysis & analysis itself)

system("BandSPD") numberer('Plain') constraints("Plain") integrator("LoadControl", 1.0 ) algorithm("Newton") analysis("Static") analyze(1)

End of static analysis

print( nodeDisp(6)) `

The code for second question:

`###import the OpenSees Python module from openseespy.opensees import *

Start of model generation and create ModelBuilder

wipe() model("BasicBuilder", "-ndm",3, "-ndf",6)

g = 9.81 E = 1000.0 nu = 0.25 rho=6.75/g nDMaterial('ElasticIsotropic', 1, E, nu, rho )

Define geometry

z1 = 10 z2 = 20

node(1, [0, 0, 0]) node(2, [10, 0, 0]) node(3, [10, 10, 0]) node(4, [0, 10, 0])

node(5, [0, 0, z1]) node(6, [10, 0, z1]) node(7, [10, 10, z1]) node(8, [0, 10, z1])

node(9, [0, 0, z2]) node(10, [10, 0, z2]) node(11, [10, 10, z2]) node(12, [0, 10, z2])

element( 'bbarBrick' , 1 , [1,2,3,4,5,6,7,8] , 1 ) element( 'bbarBrick' , 2 , [5,6,7,8,9,10,11,12] , 1 )

point constraints

fix(1, 1, 1, 1, 1, 1, 1) fix(2, 1, 1, 1, 1, 1, 1) fix(3, 1, 1, 1, 1, 1, 1) fix(4, 1, 1, 1, 1, 1, 1)

create a Linear time series and load pattern

timeSeries("Linear", 1) pattern("Plain", 1, 1, "-fact", 1.0) load(5, 10, 0, 0, 0.0, 10.0, 0.0)

Start of static analysis

system("BandSPD") numberer('Plain') constraints("Plain") integrator("LoadControl", 1.0 ) algorithm("Newton") analysis("Static") analyze(1)

End of static analysis

print( nodeDisp(6)) `

u-anurag commented 4 years ago

The Brick element can only be defined with -ndm 3 -ndf 3.

DomenicoGaudioso commented 4 years ago

Thanks @u-anurag , I understand that they must be defined with -ndm 3 -ndf 3. I would like to know how to do a Soil-Foundation-Structure-Interaction analysis.

image taken from the STKO website to illustrate the example I would like to make.

STKO_post

mhscott commented 4 years ago

Please contact STKO for information on how to model the examples they have posted on their website.

u-anurag commented 4 years ago

Here is one example on OpenSees Tcl wiki on how to define nodes with -ndf 3 and -ndf 6 in the same model. https://opensees.berkeley.edu/wiki/index.php/Laterally-Loaded_Pile_Foundation

Also, as Dr. Scott suggested, you could contact SKTO team if you need to understand the model.

Marco-Pellegrino commented 4 years ago

Hi Scott, sorry if you misunderstood the question.

Me and Domenico are wondering if there is a way to have a beam ( ndm = 3 ndf = 6 ) in the same model where Brick coexists. ( ndm = 3 ndf = 6 )

This could be a case where a beam is connected to a pile for example.

image

Best, Marco

zhuminjie commented 4 years ago

Not sure how STKO implements it. In theory, you can call model command multiple times to change ndf. Although you cannot share nodes between beam and brick, alternatives are to use equalDOF or contact elements.

mhscott commented 4 years ago

You should contact the STKO technical support team.

Marco-Pellegrino commented 4 years ago

Scott, what kind of reply is this one? We are trying to use openSeesPy because we think is great and what you are able to say is: "Ask to STKO."

Me and Domenico are trying to open the use of OpenSees to everyone with Grasshopper. That's the reason for this question. Are you not interested in know how to implement this kind of behaviour with openSees? Do you have an STKO license to do those kind of analyses?

Best, Marco

mhscott commented 4 years ago

If you are trying to model something you have seen on the STKO website, you should contact STKO is all I mean. I do not have an STKO license.

Also, this is a GitHub repo for documentation. Modeling issues should be posted at the github.com/OpenSees/OpenSees site.