Search found 93 matches

by buddhasarah
Wed Nov 23, 2016 1:12 am
Forum: OpenSees.exe Users
Topic: Problem when using central difference method
Replies: 3
Views: 4224

Re: Problem when using central difference method

Thank you very much Dr. Frank~
The problem has been solved.
Actually I first tried to reduce the time step to an extremely small degree. However, convergence cannot be achieved until I increase the nodal mass in rotational direction to a certain degree.
Although the convergence problem of the typical example presented above has been solved, the result of some models in which large number of DOF exist always disperses no matter how small time step is.
Can you give me some suggestions for this?

Thank you very much!
by buddhasarah
Tue Nov 08, 2016 2:01 am
Forum: OpenSees.exe Users
Topic: Problem when using central difference method
Replies: 3
Views: 4224

Problem when using central difference method

Hello, I tried to analyze an elastic cantilever beam by using central difference method but got very weird results (deformation increases to unreasonably large level). But I can get good results if newmark method was applied using the same code. THANK YOU VERY MUCH in advance if you can help me.

# ---- source code ------------------------------------------------------------------

wipe; # clear memory of all past model definitions
file mkdir Data; # create data directory
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs


# define GEOMETRY -------------------------------------------------------------
set LCol 3000; # column length
set Weight 6000000000.; # superstructure weight

# calculated parameters
set PCol $Weight; # nodal dead-load weight per column
set g 9806; # g.
set Mass [expr $PCol/$g]; # nodal mass


# nodal coordinates:
node 1 0 0; # node#, X, Y
node 2 0 $LCol

# Single point constraints -- Boundary Conditions
fix 1 1 1 1; # node DX DY RZ

# nodal masses:
mass 2 $Mass $Mass 1e-9; # node#, Mx My Mz, Mass=Weight/g, neglect rotational inertia at nodes

# Define ELEMENTS & SECTIONS -------------------------------------------------------------

# MATERIAL parameters

set ColTransfTag 1; # associate a tag to column transformation
geomTransf Linear $ColTransfTag ;

element elasticBeamColumn 1 1 2 250000 30000 62500000000 $ColTransfTag;

recorder Drift -file Drift.txt -time -iNode 1 -jNode 2 -dof 1 -perpDirn 2 ; # lateral drift

# define GRAVITY -------------------------------------------------------------
pattern Plain 1 Linear {
#load 2 0 -$PCol 0
load 2 [expr 0.1*$PCol] 0 0
}
system ProfileSPD
integrator LoadControl 1.0 1 1.0 10.0
test EnergyIncr 1.0e-12 10 0
algorithm Newton
numberer RCM
constraints Plain
analysis Static
# Perform the analysis
analyze 10



# ---------------------------------------
# Create and Perform the dynamic analysis
# ---------------------------------------

# Remove the static analysis & reset the time to 0.0
wipeAnalysis
setTime 0.0

# Now remove the loads and let the beam vibrate
remove loadPattern 1

# Create the transient analysis

algorithm Linear
numberer RCM
constraints Plain
integrator CentralDifferenceNoDamping
system Diagonal
analysis Transient
analyze 10000 0.025

# ------ Part of results -----------------------------------------------------------------------------------
1 0.96
2 1.92
3 2.88
4 3.84
5 4.8
6 5.76
7 6.72
8 7.68
9 8.64
10 9.6
0.025 9.59796
0.05 9.07433
0.075 8.1178e+017
0.1 -1.26841e+036
0.125 1.98189e+054
0.15 -3.0967e+072
0.175 4.83859e+090
0.2 -7.56029e+108
0.225 1.1813e+127
0.25 -1.84577e+145
0.275 2.88402e+163
0.3 -4.50628e+181
0.325 7.04107e+199
0.35 -1.10017e+218
0.375 1.71901e+236
0.4 -2.68596e+254
0.425 4.1968e+272
0.45 -6.55751e+290
0.475 1.#INF
0.5 -1.#IND
0.525 -1.#IND
0.55 -1.#IND
0.575 -1.#IND
0.6 -1.#IND
0.625 -1.#IND
0.65 -1.#IND
0.675 -1.#IND
0.7 -1.#IND
0.725 -1.#IND
0.75 -1.#IND
0.775 -1.#IND
0.8 -1.#IND
0.825 -1.#IND
0.85 -1.#IND
0.875 -1.#IND
0.9 -1.#IND
0.925 -1.#IND
0.95 -1.#IND
0.975 -1.#IND
by buddhasarah
Sat Jan 26, 2013 2:49 am
Forum: Framework
Topic: about the stiffness matrix
Replies: 5
Views: 6949

Re: about the stiffness matrix

Thank you for your reply Frank! But the only two DOFs for the 2D zerolength element are both rotational DOFs, I think there's actually a way to tell the system which DOF it means. There are some other elements such as Joint2D element which does not follow the "x y Rz" or "x y z Rx Ry Rz" DOF rule either.
by buddhasarah
Tue Jan 08, 2013 12:50 am
Forum: Framework
Topic: Question about new recorder
Replies: 0
Views: 2629

Question about new recorder

Hello, I made a new element and I tried to make a new recorder to record something that cannot be done by the exsiting recorders.
I browse the OpenSees developer folder and found SumElementForcesRecorder.cpp which is a demonstration of new recorder. The essential part of the recorder seems to be "const Vector &force = theElements[0]->getResistingForce();" which gets resisting force vectors which corresponds to the number of DOFs. However in my case, I have many internal elements which are far more than the DOFs. So I tried to make a new public method which is able to obtain forces of every internal elements and I tried "const Vector &force = theElements[0]->getInternalNodalForce();"
##################################################
class MyElement : public Element
{
public:
const Vector &getInternalNodalForce(void);
...........
}
##################################################


######### And I add it to the Element.h too #########################################
class Element : public DomainComponent
{
public:
...............
virtual const Vector &getInternalNodalForce(void) =0;
..................
}
##################################################

It was successfulled compiled but "getInternalNodalForce()" cannot be invoked in "const Vector &force = theElements[0]->getInternalNodalForce();"

Can you tell me how I can make it work?
THANK YOU VERY MUCH in advance!
by buddhasarah
Mon Jan 07, 2013 9:15 pm
Forum: Framework
Topic: about the stiffness matrix
Replies: 5
Views: 6949

Re: about the stiffness matrix

Thank you for your reply Frank! I was doing the same as what you said. I made the output matrix be 6x6 and constrained the translational DOFs of node 2 in OpenSees input TCL script (using "fix 2 1 1 0" command). It worked fined but I actually need to build a much more complex model with many external nodes but with only translational or rotional DOFs relevant. So I actually need to constrain a large number of DOFs in TCL script manually, which is annoying and easy to make mistake.

I found that some elements such as 2D zerolength element outputs 2x2 stiffness matrix instead of outputing 6x6 matrix, but I can't figure out how it tells the system which 2DOFs it means. If I can do the same thing, my work can really be much easier and more reliable.

Thank you Frank!
by buddhasarah
Fri Jan 04, 2013 5:18 am
Forum: Framework
Topic: about the stiffness matrix
Replies: 5
Views: 6949

about the stiffness matrix

Hello, I am trying to make a new 2D element which containes 2 nodes and has 4 degrees of freedom (2 translational DOFs and 1 rotational DOF for the first node and 1 rotational DOF for the second). Therefore the stiffness matrix of the element is 4 by 4. But how can I tell global stiffness integrator that the first 3*3 matrix within the 4*4 stiffness matrix are for the first node and the rest of it is for the second node?
Thank you very much in advance!
by buddhasarah
Wed Dec 12, 2012 4:12 am
Forum: Framework
Topic: Problem in OpenSeesDeveloper
Replies: 0
Views: 2678

Problem in OpenSeesDeveloper

Dear fmk:
I tried to add new material "elasticPPCPP" in OpenSeesDeveloper package. I followed "WindowsInstructions.txt" exactly and successfully compiled the dll. However, when I ran "example1.tcl", The prompt windows shows "ElasticPPcpp unaxial material - Written by fmk UC Berkeley Copyright 2008 - Use at your Own Peril" and stoped there with an windows error. I also tried "Truss2D" element, it successfully compiled with a dll but as I ran the "example1.tcl", a window popped up with the following prompt:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Debug Error!
Program: C:.....OpenSees.exe
Module: D:.....Truss2D.dll
File:

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Is it because the version of OpenSeesDeveloper package is too old and it is not compatable with the latest OpenSees? I am using "OpenSees 2.4.0", Visual Stadio 2010.



Thank you very much in advance!
by buddhasarah
Sat May 26, 2012 9:35 pm
Forum: Framework
Topic: Question about commitState()
Replies: 1
Views: 2906

Question about commitState()

Hello, I have a question about commitState(). As you can see in the code below, "theMaterial" points to "commitState()", but what class does this "commitState()" belong to and why the name of class does not need to be stated? Thank you in advance!
------------------------------------------------
Truss2D::commitState()
{
return theMaterial->commitState();
}
by buddhasarah
Tue May 22, 2012 10:38 pm
Forum: Framework
Topic: question about parentheses and square brackets
Replies: 4
Views: 5821

question about parentheses and square brackets

I have a question about the usage of parentheses and square brackets in OpenSees's code. The following code is a small section from the OpenSees source code, I guess the both "connectedExternalNodes(0)" and "theNodes[0]" means the first cell of "connectedExternalNodes" and "theNodes" array respectively. But why the former uses parentheses while the latter uses square brackets? The lower code is another similar example with the same question. Thank you very much in advance!
#####################################
// Set connected external node IDs
connectedExternalNodes(0) = nd1;
connectedExternalNodes(1) = nd2;

theNodes[0] = 0;
theNodes[1] = 0;
#####################################
q(0) += q0[0];
q(1) += q0[1];
q(2) += q0[2];
#######################################
by buddhasarah
Sat Mar 03, 2012 1:22 am
Forum: OpenSees.exe Users
Topic: FB element section level convergence problem
Replies: 1
Views: 2587

FB element section level convergence problem

Hello, I made flexibility based fiber beam-column element program but it was found hard to converge in section level. I set the convergence criteria as the ratio of (absolute sum of risidual section force) to the (absolute sum of the section force applied at the first step of state determination iteration) smaller than 1e-8.
I want to know exactly how OpenSees set the section level convergence criteria, THANK YOU VERY MUCH in advance!
by buddhasarah
Tue Dec 27, 2011 10:01 pm
Forum: OpenSees.exe Users
Topic: Displacement control problem
Replies: 0
Views: 2091

Displacement control problem

Hello, I have a question on displacement control algorithm. According to some iteration based displacement control algorithms, they seem to be indepentent from newton raphson or newton iteration method. But in Opensees, using displacement control with newton raphson or newton method takes different calculation time. So it means using newton raphson or newton method does effect the process. Can the dear moderator explain why and how this happens?
Thank you very much in advance!
by buddhasarah
Mon Dec 19, 2011 9:06 pm
Forum: OpenSees.exe Users
Topic: Displacement control
Replies: 0
Views: 2032

Displacement control

hello, I was trying to find out the displacement contorl theory and I found the following link in OpenSees site:
http://opensees.berkeley.edu/wiki/index ... nt_Control
However, the explanation of the theory seems to be too short. Can anyone tell me the reference in which more detailed information can be found.
THANK YOU VERY MUCH in advance!
by buddhasarah
Fri Aug 19, 2011 5:18 am
Forum: OpenSees.exe Users
Topic: Displacement control method used in OpenSees
Replies: 10
Views: 10587

Re: Displacement control method used in OpenSees

Vesna, thank you for your quick reply!

I meant when performing a pushover analysis, the pushover curve will go up and might reaches peak and then goes down (negative slope), how does OpenSees calculate when the pushover curve goes into negative slope?

Thank you again for your help!
by buddhasarah
Wed Aug 17, 2011 7:19 pm
Forum: OpenSees.exe Users
Topic: Displacement control method used in OpenSees
Replies: 10
Views: 10587

Re: Displacement control method used in OpenSees

Thank you for your quick reply vesna!
Actually I know exactly what to do in OpenSees, just what I want to know is the theory, can you tell me which theory OpenSees uses for
1. Displacement control method
2. derivation of nonlinearBeamColumn
3. Negative post yield treatment

THANK YOU AGAIN!
by buddhasarah
Wed Aug 17, 2011 9:39 am
Forum: OpenSees.exe Users
Topic: Displacement control method used in OpenSees
Replies: 10
Views: 10587

Displacement control method used in OpenSees

Hello, I want to konw the detailed principle of displacement control based pushover of a nonlinearBeamColumn, and I know that there are some different technique to treat negative post yield behavior and different displacement control methods, please tell me or give me some references showing which method OpenSees is using.

The principles I need to know
1. Displacement control method used in OpenSees
2. derivation of nonlinearBeamColumn
3. Negative post yield treatment used in OpenSees

THANK YOU VERY MUCH in advance!