strange results from '-eigen' analysis

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

Moderators: silvia, selimgunay, Moderators

Post Reply
kampix01
Posts: 14
Joined: Thu Mar 15, 2012 10:04 pm
Location: University of Innsbruck

strange results from '-eigen' analysis

Post by kampix01 »

As you can see in my minimal example below I just want to do an '-eigen' analysis of a two node system connected by a zero length element during a RCYCD analysis. To be able to solve a '-generalized' problem, I've to define a mass at node 2. But defining the mass with value 1 should in the end lead to the '-standard' eigenvalue problem. Therefore I expected to get exactly the current stiffness of my zero length element.
BUT:
input Ke = 236007739.679903
output K_current = 236007700.0000000000

so where is the problem??? The first seven numbers are ok, but all after the seventh one is always zero.

when I do a calculation with:
input Ke = 23600.7739679903
the output is: K_current = 23600.7700000000

again the first seven numbers are ok, but all after is just wrong.

HAS ANYBODY AN IDEA WHERE THERE COULD BE AN ERROR???? thank you



here the minimal example:

# USER INPUT ====================================
# RCYCD: 0 ... 2 ... 0 ... -2 ... 0
# (each 10 calculation increments)
set targetdisplacements {0.0000 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 1.8000 1.6000 1.4000 1.2000 1.0000 0.8000 0.6000 0.4000 0.2000 0.0000 -0.2000 -0.4000 -0.6000 -0.8000 -1.0000 -1.2000 -1.4000 -1.6000 -1.8000 -2.0000 -1.8000 -1.6000 -1.4000 -1.2000 -1.0000 -0.8000 -0.6000 -0.4000 -0.2000 0.0000};
set scaling "x_y";

# DIMENSION and DOFs ============================
# global model dim and dof ------------------
model basic -ndm 1 -ndf 1;

# GEOMETRY ======================================
# main node --------------------------------
node 1 0.0 0.0;
# additional nodes - at 'top' ---------------
node 2 0.0 0.0;

# BOUNDARY CONDITIONS ===========================
# global boundary conditions ----------------
fix 1 1;
# mass --------------------------------------
mass 2 1;

# MATERIAL ======================================
set F_y 230887.056491;
# set K_e 236007739.679903;
set K_e 23600.7739679903;
set x_y [expr $F_y/$K_e];
set AS_P 0.10;
uniaxialMaterial Steel01 1 $F_y $K_e $AS_P;

# ELEMENTS ======================================
# ZeroLength - translational spring (0-6) ---
element zeroLength 99 1 2 -mat 1 -dir 1;

# RCYCD ANALYSIS ================================
set ndeci 10;

# degree of freedom for rcycd analysis
set controlDOF 1;

# load
pattern Plain 3 Linear {load 2 1.0;}

# analysis objects
constraints Plain;
numberer RCM;
system BandGeneral;
set tol 1.e-8;
set iter 10;
set iter_NC 2000;
set conv 0;
set testtype "test NormDispIncr $tol $iter $conv";
set testtypt_NC "test NormDispIncr $tol $iter_NC $conv";
eval $testtype;
algorithm Newton;

puts "\n"
puts "-----------------------------------------------"
puts "initial elastic stiffness Ke = $K_e"
puts "-----------------------------------------------"

# loop over peakpoints ----------------------
set nRCYCDpoints [llength $targetdisplacements];

set D0 [format %.${ndeci}f 0.0];
for {set i 0} {$i<=$nRCYCDpoints-1} {incr i 1} {

switch -regexp $scaling {
"x_y" {set Fact_x $x_y; set Fact_F $F_y;}
"none" {set Fact_x 1.0; set Fact_F 1.0;}
}

# current RCYCD peakpoints
set Dstep [lindex $targetdisplacements $i]
# set increment related to scaling factor
set D1 [format %.${ndeci}f [expr $Dstep*$Fact_x]];
# displacement increment applied for calculation
set Dincr [format %.${ndeci}f [expr $D1-$D0]];

# define integrator object
integrator DisplacementControl 2 $controlDOF $Dincr
analysis Static

# analyse one increment
set ok [analyze 1];

# get current displacement of control node
set x_tmp [format %.${ndeci}f [nodeDisp 2 $controlDOF]];

# get current elastic stiffness
set type "-generalized";
set solver "-fullGenLapack";
set K_tmp [format %.${ndeci}f [eigen $type $solver 1]]

# append to list
lappend x $x_tmp;
lappend K $K_tmp;

# display output
puts "$i \t factored target displacement = $D1 \t K_current = $K_tmp \t x_current = $x_tmp"

# move to next step
set D0 $D1;
}
mhscott
Posts: 880
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Re: strange results from '-eigen' analysis

Post by mhscott »

Probably not an error because the eigenvalue solver uses approximate numerical methods with a fixed tolerance. Check the results for eigenvalues of MDOF systems.
Post Reply