I created a small model with zerolength element connecting two point with the same co-ordinates
then i changed the coordinates so they are different
i got the same response in both cases
Is that possible???
This is the model
# --------------------------------------------------------------------------------------------------
# 2D Portal Frame-- Build Model
# nonlinearBeamColumn element, inelastic fiber section
#
# ^Y
# |
# 3_________(3)________4 __
# | | |
# | | |
# | | |
# (1) (2) LCol
# | | |
# | | |
# | | |
# =1= =2= _|_ -------->X
# |----------LBeam------------|
#
# SET UP ----------------------------------------------------------------------------
wipe; # clear memory of all past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
set dataDir cu; # set up name of data directory
file mkdir $dataDir; # create data directory
# source LibUnits.tcl; # define basic and system units
# define GEOMETRY -------------------------------------------------------------
set LCol [expr 80.75]; # column length
set LBeam [expr 1.]; # beam length
set Weight [expr 100.]; # superstructure weight
# define section geometry
set HCol [expr 11.]; # Column Depth
set BCol [expr 11.]; # Column Width
set HBeam [expr 14.5]; # Beam Depth
set BBeam [expr 11.]; # Beam Width
# calculated parameters
set PCol [expr $Weight/2]; # nodal dead-load weight per column
# calculated geometry parameters
set ACol [expr $BCol*$HCol]; # cross-sectional area
set ABeam [expr $BBeam*$HBeam];
set IzCol [expr 1./12.*$BCol*pow($HCol,3)]; # Column moment of inertia
set IzBeam [expr 1./12.*$BBeam*pow($HBeam,3)]; # Beam moment of inertia
# nodal coordinates:
node 1 0 0; # node#, X, Y
node 2 10 10;
# Single point constraints -- Boundary Conditions
fix 1 1 1 1; # node DX DY RZ
fix 2 0 0 1; # node DX DY RZ
#
uniaxialMaterial Hysteretic 203 0.2 0.15 0. 1. -0.2 -0.05 -2 -0.5 1 0.00000001 0 0;
uniaxialMaterial Hysteretic 403 0.15 0.15 0. 1. -0.2 -0.05 -2 -0.5 1 0.00000001 0 0;
# define geometric transformation: performs a linear geometric transformation of beam stiffness and resisting force from the basic system to the global-coordinate system
set ColTransfTag 1; # associate a tag to column transformation
geomTransf Linear $ColTransfTag
# element connectivity:
element zeroLength 1 1 2 -mat 203 403 -dir 1 2
# Define RECORDERS -------------------------------------------------------------
recorder Node -file $dataDir/Disp.out -time -node 2 -dof 1 2 disp; # displacements of free nodes
recorder Node -file $dataDir/RBase.out -time -node 1 -dof 1 2 reaction; # support reaction
# Gravity-analysis parameters -- load-controlled static analysis
set Tol 1.0e-8;
set NstepGravity 1 ; # set variable which will be used to apply gravity in 10 steps
set DGravity [expr 1./$NstepGravity]; # load increment
integrator LoadControl $DGravity;
test NormDispIncr $Tol 10 ;
algorithm ModifiedNewton -initial
constraints Plain;
#numberer Plain;
numberer RCM;
#system BandGeneral;
system UmfPack
analysis Static;
#algorithm Newton;
analyze $NstepGravity; # apply vertical loads in 10 steps
# ------------------------------------------------- maintain constant gravity loads and reset time to zero
loadConst -time 0.0
# --------------------------------------------------------------------------------------------------
# Example4. 2D Portal Frame-- Static Reversed-Cyclic Analysis
# Silvia Mazzoni & Frank McKenna, 2006
# execute this file after you have built the model, and after you apply gravity
#
set LunitTXT "inch"; # define basic-unit text for output
set FunitTXT "kip"; # define basic-unit text for output
set TunitTXT "sec"; # define basic-unit text for output
# we need to set up parameters that are particular to the model.
set IDctrlNode 2; # node where displacement is read for displacement control
set IDctrlDOF 2; # degree of freedom of displacement read for displacement contro
# characteristics of cyclic analysis
set iDmax "0.001 .002 .003 .005 .0075 .009 .01 0.02 0.03 "; # vector of displacement-cycle peaks, in terms of storey drift ratio
set Dincr [expr 0.00001*$LCol]; # displacement increment for pushover. you want this to be very small, but not too small to slow down the analysis
set Fact $LCol; # scale drift ratio by storey height for displacement cycles
set CycleType Full; # you can do Full / Push / Half cycles with the proc
set Ncycles 1; # specify the number of cycles at each peak
# create load pattern for lateral pushover load
set Hload1 [expr $Weight/2]; # define the lateral load as a proportion of the weight so that the pseudo time equals the lateral-load coefficient when using linear load pattern
set Hload2 [expr $Weight/1.5]; # define the lateral load as a proportion of the weight so that the pseudo time equals the lateral-load coefficient when using linear load pattern
set iPushNode "2"; # define nodes where lateral load is applied in static lateral analysis
pattern Plain 200 Linear {; # define load pattern -- generalized
foreach PushNode $iPushNode {
load $PushNode $Hload1 $Hload2 0.0 0.0 0.0 0.0
}
}
# ----------- set up analysis parameters
source LibAnalysisStaticParameters.tcl; # constraintsHandler,DOFnumberer,system-ofequations,convergenceTest,solutionAlgorithm,integrator
# --------------------------------- perform Static Cyclic Displacements Analysis
source GeneratePeaks.tcl
set fmt1 "%s Cyclic analysis: CtrlNode %.3i, dof %.1i, Disp=%.4f %s"; # format for screen/file output of DONE/PROBLEM analysis
foreach Dmax $iDmax {
set iDstep [GeneratePeaks $Dmax $Dincr $CycleType $Fact]; # this proc is defined above
for {set i 1} {$i <= $Ncycles} {incr i 1} {
set zeroD 0
set D0 0.0
foreach Dstep $iDstep {
set D1 $Dstep
set Dincr [expr $D1 - $D0]
integrator DisplacementControl $IDctrlNode $IDctrlDOF $Dincr
analysis Static
set tc [getTime]
puts "$tc"
# ----------------------------------------------first analyze command------------------------
set ok [analyze 1]
# ----------------------------------------------if convergence failure-------------------------
if {$ok != 0} {
# if analysis fails, we try some other stuff
# performance is slower inside this loop global maxNumIterStatic; # max no. of iterations performed before "failure to converge" is ret'd
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr $Tol 2000 0
algorithm Newton -initial
set ok [analyze 1]
test $testTypeStatic $TolStatic $maxNumIterStatic 0
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1 ]
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch 0.8
set ok [analyze 1]
algorithm $algorithmTypeStatic
}
if {$ok != 0} {
set putout [format $fmt1 "PROBLEM" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
puts $putout
return -1
}; # end if
}; # end if
# -----------------------------------------------------------------------------------------------------
set D0 $D1; # move to next step
}; # end Dstep
}; # end i
}; # end of iDmaxCycl
# -----------------------------------------------------------------------------------------------------
if {$ok != 0 } {
puts [format $fmt1 "PROBLEM" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
} else {
puts [format $fmt1 "DONE" $IDctrlNode $IDctrlDOF [nodeDisp $IDctrlNode $IDctrlDOF] $LunitTXT]
}
Zerolength element
Moderators: silvia, selimgunay, Moderators