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;
}
strange results from '-eigen' analysis
Moderators: silvia, selimgunay, Moderators
Re: strange results from '-eigen' analysis
Probably not an error because the eigenvalue solver uses approximate numerical methods with a fixed tolerance. Check the results for eigenvalues of MDOF systems.