zerolenght element to simulate hinge

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
aizen
Posts: 38
Joined: Sun Nov 29, 2009 2:15 pm

zerolenght element to simulate hinge

Post by aizen » Sun Mar 28, 2010 2:33 pm

Dear all

I have to simulate an end release (3D hinge at the top of the column ) at one extreme of a element.

I have read that the solutions are two:

use equalDOF (In my case it does not work; error BandLinLapcksolver::solve()-LAPACK routine returned 52...static analysis...the algoritm failed at iteration:0 with domain at load factor 0.1 )

use a zerolenght element with a low stiffness for the rotation around x,y,z and a high stiffness for the traslation displacement along x, y, z.


If I use:

uniaxialMaterial Elastic 1 1000000000000;
uniaxialMaterial Elastic 2 0.001;
element zeroLength 1 1 2 -mat 1 1 1 2 2 2 -dir 1 2 3 4 5 6;

Opensees shows an error message :
domain error: argument not in valid range

If I use for Elastic 2 a value greater than 0.01 Opensees works.

What is the problem?

thanks

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk » Mon Mar 29, 2010 6:24 am

equalDOF does work , it's just you have not specified the correct dof if you get that errror ..

the other may be:
1) a conditioing problem with the matrix (some values too much smaller than others can be thought off as being 0.0
2) you are using a convergence test that uses the rhs of the matrix equation (NormUnbalance, NormEnergy,...)

aizen
Posts: 38
Joined: Sun Nov 29, 2009 2:15 pm

Post by aizen » Mon Mar 29, 2010 11:23 pm

Thanks fmk


I have used two nodes (1 and 2) with the same coordinates at the top of the column and the command :

equalDOF 1 2 1 2 3;

to create a 3D hinge (tghe two nodes have to be restrained only to have the same translation).


1) What do you mean?

2) I have to run the same type of analysis used in the example:

Dynamic Multiple-Support Earthquake Ground Motion

I have not change the file:

LibAnalysisDynamicParameters.tcl

and my structure is very simple:


a bridge with 8 piers and a continuous beam deck. A the top of the piers i have to use hinges to support the deck.

The problem is elastic and I use elasticBeamColumn element.

What should I change?

thanks

however I have controlled the results in the case in which I use the zerolenght element with a hight stiffness for the x y z direction and a low (0.01) stifness for the rotation and the results are similar to the ones given by other program.

I would only understand is the low stiffness can be reduced and if the model is correct or if in other analysis or in some cases the model can give error or wrong results


aizen

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk » Tue Mar 30, 2010 10:04 am

if the problem is elastic there should be no convergence problems .. if the script is simple post it.

aizen
Posts: 38
Joined: Sun Nov 29, 2009 2:15 pm

Post by aizen » Tue Apr 06, 2010 5:02 am

Dear Fmk

Thank you very much for your help

I have sent my files:

model file

parameter analisys file

ground motion inputs


Cordially


Aizen

aizen
Posts: 38
Joined: Sun Nov 29, 2009 2:15 pm

Post by aizen » Tue Apr 06, 2010 1:04 pm

Dear Fmk

I am sorry if I post again my request.

Thank you very much for all the help thus far.

I just wanted to know if I was wrong to send files via email.

Now you can see my files I would want confirmation on:

Why does not equalDOF work?

Why I can not use a very low stiffness to simulate rotational release?

is it correct to use that small masses
to have the number of modes that I need or I alter the analysis?

Can I use parameter file (LibAnalysisDynamicParameters.tcl) for my problem without change it?

Can you help me?

Thanks

cordially

Aizen

aizen
Posts: 38
Joined: Sun Nov 29, 2009 2:15 pm

Post by aizen » Wed Apr 07, 2010 1:46 pm

Dear fmk


should I post my file here to have an answer?

can you help me?


thanks


Aizen

aizen
Posts: 38
Joined: Sun Nov 29, 2009 2:15 pm

Post by aizen » Thu Apr 08, 2010 12:29 pm

Dear fmk


I have received a email with alink for a private message but it is not possible to read it.

Private messaging has been disabled on this board.

Can you help me?


aizen

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk » Thu Apr 08, 2010 5:49 pm

i only respond to posts on the form .. don't bother emailing me files, i get enough emails i have to deal with .. if i answer questions on the forum others can see what the soln is and it might save me from having to answer a similar question in the future.

aizen
Posts: 38
Joined: Sun Nov 29, 2009 2:15 pm

Post by aizen » Fri Apr 09, 2010 3:25 am

Dear fmk

I have sent you the files only due to the lenght of the inputs file. I am sorry If I have given you problems.

I post here my model file. The file LibAnalysisDynamicParameters.tcl is the original one.

My questions are the same:

1.I have to simulate a top hinge release.
Continuous girder is supported by 3d top hinge pier connection.
equalDOF does not work in my case (block1). Why is it? Why i can not use very small stifness for the rotation when I use zerolenght element (block 2)?

2.I have not changed any parameter in the LibAnalysisDynamicParameters.tcl
also if I am now studing a bridge with different support displacement hystory. Is it correct?

3.To use RAYLEIGH damping I have to use the modal analysis in opensees. I have only three DOF along the y direction but for having three modes in opensees, I have to use other three masses (6 DOF) along the x direction.
Is it sure that using small masses along the x direction, I have not changed the response of the bridge for different support displacements hystory analysis?


wipe;
model BasicBuilder -ndm 3 -ndf 6;
file mkdir Data;

set RIGIDFACTOR 10000000;

set L_pier 6;
set L_deck 22;
set A_pier [expr 16*$RIGIDFACTOR];
set A_deck [expr 11*$RIGIDFACTOR];
set Iz_pier 21;
set Iz_deck 100;
set J_pier [expr 41*$RIGIDFACTOR];
set J_deck [expr 10*$RIGIDFACTOR];
set Iy_pier 21;
set Iy_deck 3;
set Ec_pier 34000000;
set Ec_deck 32000000;
set Gc_pier 14000000;
set Gc_deck 13000000;

node 1 0 0 $L_pier;
node 2 $L_deck 0 $L_pier;
node 3 [expr 2*$L_deck ] 0 $L_pier;
node 4 0 0 $L_pier;
node 5 $L_deck 0 $L_pier;
node 6 [expr 2*$L_deck ] 0 $L_pier;
node 7 0 0 0;
node 8 $L_deck 0 0;
node 9 [expr 2*$L_deck] 0 0;

set MINFACTOR 10e-12;
set Mc 600;
set Ml 300;

mass 1 [expr $Ml*$MINFACTOR] $Ml 0 0 0 0;
mass 2 [expr $Mc*$MINFACTOR] $Mc 0 0 0 0;
mass 3 [expr $Ml*$MINFACTOR] $Ml 0 0 0 0;

fix 7 1 1 1 1 1 1;
fix 8 1 1 1 1 1 1;
fix 9 1 1 1 1 1 1;

# block 1
equalDOF 1 4 1 2 3;
equalDOF 2 5 1 2 3;
equalDOF 3 6 1 2 3;
# block 1

set pierTransfTag 1;
set deckTransfTag 2;

geomTransf Linear $pierTransfTag -1 0 0;
geomTransf Linear $deckTransfTag 0 0 1 ;

element elasticBeamColumn 1 1 2 $A_deck $Ec_deck $Gc_deck $J_deck $Iy_deck $Iz_deck $deckTransfTag;
element elasticBeamColumn 2 2 3 $A_deck $Ec_deck $Gc_deck $J_deck $Iy_deck $Iz_deck $deckTransfTag;

element elasticBeamColumn 3 4 7 $A_pier $Ec_pier $Gc_pier $J_pier $Iy_pier $Iz_pier $pierTransfTag;
element elasticBeamColumn 4 5 8 $A_pier $Ec_pier $Gc_pier $J_pier $Iy_pier $Iz_pier $pierTransfTag;
element elasticBeamColumn 5 6 9 $A_pier $Ec_pier $Gc_pier $J_pier $Iy_pier $Iz_pier $pierTransfTag;

# block 2
# uniaxialMaterial Elastic 1 1000000000000;
# uniaxialMaterial Elastic 2 0.01; # if I use value less than 0.01 it does not work. for example if I use 0.001

# element zeroLength 14 1 4 -mat 1 1 1 2 2 2 -dir 1 2 3 4 5 6;
# element zeroLength 25 2 5 -mat 1 1 1 2 2 2 -dir 1 2 3 4 5 6;
# element zeroLength 36 3 6 -mat 1 1 1 2 2 2 -dir 1 2 3 4 5 6;
# block 2

recorder Node -file Data/nodes.out -time -node 9 8 7 3 2 1 -dof 2 disp;

set Pz_deck 300;
pattern Plain 1 Linear {
eleLoad -ele 1 -type -beamUniform 0. -$Pz_deck 0.;
eleLoad -ele 2 -type -beamUniform 0. -$Pz_deck 0.;
eleLoad -ele 3 -type -beamUniform 0. -$Pz_deck 0.;
}

# Gravity-analysis parameters -- load-controlled static analysis
set Tol 1.0e-8;# convergence tolerance for test
variable constraintsTypeGravity Plain;# default;
constraints $constraintsTypeGravity ;# how it handles boundary conditions
numberer RCM;# renumber dof's to minimize band-width (optimization), if you want to
system BandGeneral ;# how to store and solve the system of equations in the analysis (large model: try UmfPack)
test EnergyIncr $Tol 6 ;# determine if convergence has been achieved at the end of an iteration step
algorithm Newton;# use Newton's solution algorithm: updates tangent stiffness at every iteration
set NstepGravity 10;# apply gravity in 10 steps
set DGravity [expr 1./$NstepGravity];# first load increment;
integrator LoadControl $DGravity;# determine the next time step for an analysis
analysis Static;# define type of analysis static or transient
analyze $NstepGravity;# apply gravity
# ------------------------------------------------- maintain constant gravity loads and reset time to zero
loadConst -time 0.0

# ------------ define & apply damping
# RAYLEIGH damping parameters, Where to put M/K-prop damping, switches
# D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit + $beatKinit*$Kinitial
set xDamp 0.02; # damping ratio FOR BRIDGE
set MpropSwitch 1.0;
set KcurrSwitch 0.0;
set KcommSwitch 1.0;
set KinitSwitch 0.0;

set N_modes 3;
set nEigenI 1;
set nEigenJ 2;
set lambdaN [eigen [expr $N_modes]]; # eigenvalue analysis for nEigenJ modes
set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j
set omegaI [expr pow($lambdaI,0.5)];
set omegaJ [expr pow($lambdaJ,0.5)];
set alphaM [expr $MpropSwitch*$xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop. damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$xDamp/($omegaI+$omegaJ)]; # initial-K; +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm;

# MultipleSupport Earthquake ground motion (different displacement input at spec'd support nodes) -- two nodes here
# ground-motion input:
set iSupportNode "7 8 9" ;# support nodes where ground motions are input, for multiple-support excitation
set iGMdirection "2 2 2"; #ground-motion direction -- for each support node
set iGMfact "1 1 1"; # ground-motion scaling factor -- for each support node
set iGMfile "uy1 uy2 uy3";
set dt 0.01
# set up ground-motion-analysis parameters
set DtAnalysis 0.01; # time-step Dt
set TmaxAnalysis 20.; # maximum duration of ground-motion analysis

# ----------- set up analysis parameters
source LibAnalysisDynamicParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator

# --------------------------------- perform Dynamic Ground-Motion Analysis
# the following commands are unique to the Multiple-Support Earthquake excitation
set IDloadTag 700;
set IDgmSeries 1; # for multipleSupport Excitation
set GMdir INPUT
# multiple-support excitation: displacement input at individual nodes
pattern MultipleSupport $IDloadTag {
foreach SupportNode $iSupportNode GMfile $iGMfile GMfact $iGMfact GMdirection $iGMdirection {
set IDgmSeries [expr $IDgmSeries +1]
set outFile $GMdir/$GMfile.TCL;
set DispSeries "Series -dt $dt -filePath $outFile -factor $GMfact"; # time series information
groundMotion $IDgmSeries Plain -disp $DispSeries
imposedMotion $SupportNode $GMdirection $IDgmSeries
}; # end foreach
}; # end pattern

set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
set ok [analyze $Nsteps $DtAnalysis];
# exit

Best Regards

Aizen

carlos
Posts: 23
Joined: Fri May 05, 2006 8:30 am
Location: Universidad Pais Vasco

Post by carlos » Mon Apr 12, 2010 10:28 am

Hi Aizen,

The element 1 (beam between 1 and 2) is able to rotate free in their axis if you only fix the translations DOF, so this is in my opinion the cause of the error. This is similar to modelizate a simply supported beam fixing the 1, 2 and 3 DOF. Usually this fails. This only happens in your model as the nodes 1,2,3 and 4,5,6 are aligned. If they would make a triangle, I guess it will run properly (I have do not try it).

Depending of your model I would suggest you to use:

equalDOF 1 4 1 2 3 4;

I think that other possibility is to add a Zerolentgh element for this DOF with a small stiffness.

I can not able to answer to your other questions.

Regards,

aizen
Posts: 38
Joined: Sun Nov 29, 2009 2:15 pm

Post by aizen » Wed Apr 14, 2010 2:57 pm

Dear Fmk

I have posted my files as you have requested.

I am sorry for my previous error of sending you the files.

Please, Can you help me?


thanks so much


Aizen

aizen
Posts: 38
Joined: Sun Nov 29, 2009 2:15 pm

Post by aizen » Mon May 10, 2010 12:40 pm

Thanks Carlos for your help

I will try to check it

Dear Fmk

Several days have passed waiting for a kind reply.

Can you help me please?


I am sorry to bother you but I need of help



thanks

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk » Mon May 10, 2010 1:17 pm

here is an example of an end release with equalDOF .. in the first part of the script there is no release, the second part of the script shows the dummy node and the equalDOF on the translational dof.

if your example failed with equalDOF it means you did not do it correctly OR there is other problems with your model. you need to sort it out.

[code]
# Simple Portal Frame Example

model basic -ndm 2 -ndf 3

set width 10.0
set height 10.0

node 1 0.0 0.0
node 2 $width 0.0
node 3 0.0 $height
node 4 $width $height

fix 1 1 1 0
fix 2 1 1 0

geomTransf Linear 1

element elasticBeamColumn 1 1 3 360 4030 8640 1
element elasticBeamColumn 2 2 4 360 4030 8640 1
element elasticBeamColumn 3 3 4 360 4030 8640 1

pattern Plain 1 "Linear" {
load 3 100.0 0.0 0.0
load 4 100.0 0.0 0.0
}

system BandGeneral
constraints Transformation
numberer RCM
test NormDispIncr 1e-12 3 0
algorithm Newton
integrator LoadControl 1.0
analysis Static
analyze 1

print ele 3


# RELEASED END MOMENT
remove element 3

reset
node 5 $width $height
element elasticBeamColumn 3 3 5 360 4030 8640 1
equalDOF 5 4 1 2
analyze 1

print ele 3
[/code]

aizen
Posts: 38
Joined: Sun Nov 29, 2009 2:15 pm

Post by aizen » Thu May 20, 2010 1:43 pm

Thank you very much

I will try what you said.

thanks


Aizen

Post Reply