Error while determining Eigen vectors for three storey frame

HOME FORUM User Discussions Error while determining Eigen vectors for three storey frame

Tagged: 

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #26860
    Amruth
    Participant

    Hello, I have an error with the code and i could not recognize it. I request you to help me in correcting. Following code is mentioned below

    Thank you

     

    # # Natural frequency calculations for the test structure
    # units used in code m, kg, N

    wipe

    # mass input in kg
    set m1 2.0512
    set m2 1.8852
    set m3 1.7192
    set numModes 3

    #input materials
    # For Columns made of Acrylic
    set Ac 0.014; #0.035×0.4
    set Ic 1.43e-6; #0.4×0.035^3/12
    set Ec 2.74e+9
    # For Slabs made of Aluminum
    set As 0.045; #0.3×0.15
    set Is 3.375e-4; #0.15×0.3^3/12
    set Es 6.89476e10;
    #geometry of 1 floor
    set L 0.3.
    set h 0.4.

    # create data directory
    file mkdir modes;

    # define the model
    #———————————
    #model builder
    model BasicBuilder -ndm 2 -ndf 3

    # nodal coordinates:
    node 1 0. 0. ;
    node 2 $L 0. ;
    node 3 0. $h ;
    node 4 $L $h ;
    node 5 0. [expr 2*$h];
    node 6 $L [expr 2*$h];
    node 7 0. [expr 3*$h];
    node 8 $L [expr 3*$h];

    # Single point constraints — Boundary Conditions
    fix 1 1 1 1;
    fix 2 1 1 1;

    # This command is used to construct a multi-point constraint between nodes (MP constraints)
    equalDOF 3 4 2 3; #impose the displacements at dof’s 2 and 3 of node 4 to be the same as those of node 3
    equalDOF 5 6 2 3; #impose the displacements at dof’s 2 and 3 of node 6 to be the same as those of node 5
    equalDOF 7 8 2 3; #impose the displacements at dof’s 2 and 3 of node 8 to be the same as those of node 7

    # assign mass
    mass 3 [expr $m1/2.] 0. 0. ;
    mass 4 [expr $m1/2.] 0. 0. ;
    mass 5 [expr $m2/2.] 0. 0. ;
    mass 6 [expr $m2/2.] 0. 0. ;
    mass 7 [expr $m3/2.] 0. 0. ;
    mass 8 [expr $m3/2.] 0. 0. ;

    # define geometric transformation:
    set TransfTag 1;
    geomTransf Linear $TransfTag ;

    # define elements:
    # columns
    element elasticBeamColumn 1 1 3 $Ac $Ec $Ic $TransfTag;
    element elasticBeamColumn 2 3 5 $Ac $Ec $Ic $TransfTag;
    element elasticBeamColumn 3 5 7 $Ac $Ec $Ic $TransfTag;
    element elasticBeamColumn 4 2 4 $Ac $Ec $Ic $TransfTag;
    element elasticBeamColumn 5 4 6 $Ac $Ec $Ic $TransfTag;
    element elasticBeamColumn 6 6 8 $Ac $Ec $Ic $TransfTag;

    # slabs
    element elasticBeamColumn 7 3 4 $As $Es $Is $TransfTag;
    element elasticBeamColumn 8 5 6 $As $Es $Is $TransfTag;
    element elasticBeamColumn 9 7 8 $As $Es $Is $TransfTag;

    # record eigenvectors
    #———————-
    for { set k 1 } { $k <= $numModes } { incr k } {
    recorder Node -file [format “modes/mode%i.out” $k] -nodeRange 1 8 -dof 1 2 3 “eigen $k”
    }

    # perform eigen analysis
    #—————————–
    set lambda [eigen $numModes];

    # calculate frequencies and periods of the structure
    #—————————————————
    set omega {}
    set f {}
    set T {}
    set pi 3.141593

    foreach lam $lambda {
    lappend omega [expr sqrt($lam)]
    lappend f [expr sqrt($lam)/(2*$pi)]
    lappend T [expr (2*$pi)/sqrt($lam)]
    }

    puts “periods are $T”

    # write the output file consisting of periods
    #——————————————–
    set period “modes/Periods.txt”
    set Periods [open $period “w”]
    foreach t $T {
    puts $Periods ” $t”
    }
    close $Periods

    # create display for mode shapes
    #———————————
    # $windowTitle $xLoc $yLoc $xPixels $yPixels
    recorder display “Mode Shape 1” 10 10 500 500 -wipe
    prp $h $h 1; # projection reference point (prp); defines the center of projection (viewer eye)
    vup 0 1 0; # view-up vector (vup)
    vpn 0 0 1; # view-plane normal (vpn)
    viewWindow -200 200 -200 200; # coordiantes of the window relative to prp
    display -1 5 20; # the 1st arg. is the tag for display mode (ex. -1 is for the first mode shape)
    # the 2nd arg. is magnification factor for nodes, the 3rd arg. is magnif. factor of deformed shape
    recorder display “Mode Shape 2” 10 510 500 500 -wipe
    prp $h $h 1;
    vup 0 1 0;
    vpn 0 0 1;
    viewWindow -200 200 -200 200
    display -2 5 20

    recorder display “Mode Shape 3” 10 550 500 500 -wipe
    prp $h $h 1;
    vup 0 1 0;
    vpn 0 0 1;
    viewWindow -200 200 -200 200
    display -3 5 20

    # Run a one step gravity load with no loading (to record eigenvectors)
    #———————————————————————–
    integrator LoadControl 0 1 0 0

    # Convergence test
    # tolerance maxIter displayCode
    test EnergyIncr 1.0e-10 100 0

    # Solution algorithm
    algorithm Newton

    # DOF numberer
    numberer RCM

    # Constraint handler
    constraints Transformation

    # System of equations solver
    system ProfileSPD

    analysis Static
    set res [analyze 1]
    if {$res < 0} {
    puts “Modal analysis failed”
    }

    # get values of eigenvectors for translational DOFs
    #—————————————————
    set f11 [nodeEigenvector 3 1 1] ; #gives the value of eigenvector that corresponds to mode 1 at node 3 in dof 1
    set f21 [nodeEigenvector 5 1 1]

    set f12 [nodeEigenvector 3 2 1]
    set f22 [nodeEigenvector 5 2 1]

    set f33 [nodeEigenvector 5 3 1]
    set f43 [nodeEigenvector 7 3 1]

    set f34 [nodeEigenvector 5 3 1]
    set f44 [nodeEigenvector 7 3 1]

    puts “eigenvector 1: [list [expr {$f11/$f21}] [expr {$f21/$f21}] ]”
    puts “eigenvector 2: [list [expr {$f12/$f22}] [expr {$f22/$f22}] ]”

    puts “eigenvector 1: [list [expr {$f33/$f43}] [expr {$f43/$f43}] ]”
    puts “eigenvector 2: [list [expr {$f34/$f44}] [expr {$f44/$f44}] ]”

    #26861
    Amruth
    Participant

    Sorry all,

     

    I got it corrected

    (Resolved)

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.