Hi Dears,
I Modeled a 5 Story MRF. I want to apply a set of lateral displacement to perform a Displacement-Based Pushover. But I couldn't do this. As mentioned Dr. McKenna I can't use 'Transformation' as my constraints Handler and nor 'penalty' handler didn't converged. now I want to know how I can perform such an analysis. I bring my whole code here. Meantime I could apply load pattern to my model therefore I think my model doesn't have any problem.
I really appreciate it if someone could help me.
this is a scheme of frame.
[img]http://www.freeimagehosting.net/image.p ... dcd97b.jpg[/img]
[code]
wipe;
model BasicBuilder -ndm 2 -ndf 3;
set g 980.6;
set PI 3.141592653;
set b 0.001;
set numIntgrPts 3;
uniaxialMaterial Steel01 2601 3643935 29264694566 $b;
uniaxialMaterial Steel01 2801 4376962 37922653261 $b;
uniaxialMaterial Steel01 3001 5308257 49322355130 $b;
uniaxialMaterial Steel01 3201 6121305 61752823162 $b;
uniaxialMaterial Steel01 3401 6868705 73554398672 $b;
uniaxialMaterial Steel01 3601 7662793 86798511555 $b;
uniaxialMaterial Steel01 4001 9244750 116138094309 $b;
uniaxialMaterial Steel01 4501 11416922 161212166648 $b;
uniaxialMaterial Steel01 5001 13826707 216711094526 $b;
uniaxialMaterial Steel01 5501 16064220 276636586469 $b;
uniaxialMaterial Steel01 6001 18476440 346602296421 $b;
uniaxialMaterial Steel01 6501 21046891 418881923866 $b;
uniaxialMaterial Steel01 7001 23939857 521296011637 $b;
uniaxialMaterial Steel01 8001 29247706 725510822544 $b;
uniaxialMaterial Steel01 9001 36011626 1000536379299 $b;
uniaxialMaterial Steel01 10001 42482161 1306482939860 $b;
uniaxialMaterial Steel01 11001 58532110 1954757660926 $b;
uniaxialMaterial Elastic 2602 247800000;
uniaxialMaterial Elastic 2802 275100000;
uniaxialMaterial Elastic 3002 312900000;
uniaxialMaterial Elastic 3202 338100000;
uniaxialMaterial Elastic 3402 359100000;
uniaxialMaterial Elastic 3602 380100000;
uniaxialMaterial Elastic 4002 415800000;
uniaxialMaterial Elastic 4502 457800000;
uniaxialMaterial Elastic 5002 501900000;
uniaxialMaterial Elastic 5502 533400000;
uniaxialMaterial Elastic 6002 567000000;
uniaxialMaterial Elastic 6502 600600000;
uniaxialMaterial Elastic 7002 642600000;
uniaxialMaterial Elastic 8002 701400000;
uniaxialMaterial Elastic 9002 779100000;
uniaxialMaterial Elastic 10002 840000000;
uniaxialMaterial Elastic 11002 1073100000;
section Aggregator 260 2601 Mz 2602 P;
section Aggregator 280 2801 Mz 2802 P;
section Aggregator 320 3201 Mz 3202 P;
section Aggregator 300 3001 Mz 3002 P;
section Aggregator 340 3401 Mz 3402 P;
section Aggregator 360 3601 Mz 3602 P;
section Aggregator 400 4001 Mz 4002 P;
section Aggregator 450 4501 Mz 4502 P;
section Aggregator 500 5001 Mz 5002 P;
section Aggregator 550 5501 Mz 5502 P;
section Aggregator 600 6001 Mz 6002 P;
section Aggregator 650 6501 Mz 6502 P;
section Aggregator 700 7001 Mz 7002 P;
section Aggregator 800 8001 Mz 8002 P;
section Aggregator 900 9001 Mz 9002 P;
section Aggregator 1000 10001 Mz 10002 P;
section Aggregator 1100 11001 Mz 11002 P;
node 1 0 0;
node 2 1000 0;
node 3 2000 0;
node 4 3000 0;
node 11 0 340;
node 12 1000 340;
node 13 2000 340;
node 14 3000 340;
node 21 0 700;
node 22 1000 700;
node 23 2000 700;
node 24 3000 700;
node 31 0 1060;
node 32 1000 1060;
node 33 2000 1060;
node 34 3000 1060;
node 41 0 1420;
node 42 1000 1420;
node 43 2000 1420;
node 44 3000 1420;
node 51 0 1780;
node 52 1000 1780;
node 53 2000 1780;
node 54 3000 1780;
node 114 0 285;
node 124 1000 285;
node 134 2000 285;
node 144 3000 285;
node 214 0 645;
node 224 1000 645;
node 234 2000 645;
node 244 3000 645;
node 314 0 1005;
node 324 1000 1005;
node 334 2000 1005;
node 344 3000 1005;
node 414 0 1370;
node 424 1000 1370;
node 434 2000 1370;
node 444 3000 1370;
node 514 0 1740;
node 524 1000 1740;
node 534 2000 1740;
node 544 3000 1740;
node 111 55 340;
node 121 1055 340;
node 131 2055 340;
node 211 40 700;
node 221 1050 700;
node 231 2050 700;
node 311 27.5 1060;
node 321 1035 1060;
node 331 2035 1060;
node 411 22.5 1420;
node 421 1027.5 1420;
node 431 2027.5 1420;
node 511 16 1780;
node 521 1017 1780;
node 531 2017 1780;
node 123 945 340;
node 133 1945 340;
node 143 2945 340;
node 223 950 700;
node 233 1950 700;
node 243 2960 700;
node 323 965 1060;
node 333 1965 1060;
node 343 2972.5 1060;
node 423 972.5 1420;
node 433 1972.5 1420;
node 443 2977.5 1420;
node 523 983 1780;
node 533 1983 1780;
node 543 2984 1780;
mass 1 0 0 0;
mass 2 0 0 0;
mass 3 0 0 0;
mass 4 0 0 0;
mass 11 30.49 0 0;
mass 12 60.98 0 0;
mass 13 60.98 0 0;
mass 14 30.49 0 0;
mass 21 30.49 0 0;
mass 22 60.98 0 0;
mass 23 60.98 0 0;
mass 24 30.49 0 0;
mass 31 30.49 0 0;
mass 32 60.98 0 0;
mass 33 60.98 0 0;
mass 34 30.49 0 0;
mass 41 30.49 0 0;
mass 42 60.98 0 0;
mass 43 60.98 0 0;
mass 44 30.49 0 0;
mass 51 24.49 0 0;
mass 52 48.98 0 0;
mass 53 48.98 0 0;
mass 54 24.49 0 0;
fix 1 1 1 1;
fix 2 1 1 1;
fix 3 1 1 1;
fix 4 1 1 1;
geomTransf Linear 1;
set transfTag 1;
element nonlinearBeamColumn 101 1 114 $numIntgrPts 1100 $transfTag;
element nonlinearBeamColumn 102 2 124 $numIntgrPts 1100 $transfTag;
element nonlinearBeamColumn 103 3 134 $numIntgrPts 1100 $transfTag;
element nonlinearBeamColumn 104 4 144 $numIntgrPts 1100 $transfTag;
element nonlinearBeamColumn 111 11 214 $numIntgrPts 800 $transfTag;
element nonlinearBeamColumn 112 12 224 $numIntgrPts 1000 $transfTag;
element nonlinearBeamColumn 113 13 234 $numIntgrPts 1000 $transfTag;
element nonlinearBeamColumn 114 14 244 $numIntgrPts 800 $transfTag;
element nonlinearBeamColumn 121 21 314 $numIntgrPts 550 $transfTag;
element nonlinearBeamColumn 122 22 324 $numIntgrPts 700 $transfTag;
element nonlinearBeamColumn 123 23 334 $numIntgrPts 700 $transfTag;
element nonlinearBeamColumn 124 24 344 $numIntgrPts 550 $transfTag;
element nonlinearBeamColumn 131 31 414 $numIntgrPts 400 $transfTag;
element nonlinearBeamColumn 132 32 424 $numIntgrPts 500 $transfTag;
element nonlinearBeamColumn 133 33 434 $numIntgrPts 500 $transfTag;
element nonlinearBeamColumn 134 34 444 $numIntgrPts 400 $transfTag;
element nonlinearBeamColumn 141 41 514 $numIntgrPts 320 $transfTag;
element nonlinearBeamColumn 142 42 524 $numIntgrPts 340 $transfTag;
element nonlinearBeamColumn 143 43 534 $numIntgrPts 340 $transfTag;
element nonlinearBeamColumn 144 44 544 $numIntgrPts 320 $transfTag;
element nonlinearBeamColumn 11 111 123 $numIntgrPts 360 $transfTag;
element nonlinearBeamColumn 12 121 133 $numIntgrPts 360 $transfTag;
element nonlinearBeamColumn 13 131 143 $numIntgrPts 360 $transfTag;
element nonlinearBeamColumn 21 211 223 $numIntgrPts 550 $transfTag;
element nonlinearBeamColumn 22 221 233 $numIntgrPts 500 $transfTag;
element nonlinearBeamColumn 23 231 243 $numIntgrPts 550 $transfTag;
element nonlinearBeamColumn 31 311 323 $numIntgrPts 550 $transfTag;
element nonlinearBeamColumn 32 321 333 $numIntgrPts 500 $transfTag;
element nonlinearBeamColumn 33 331 343 $numIntgrPts 550 $transfTag;
element nonlinearBeamColumn 41 411 423 $numIntgrPts 500 $transfTag;
element nonlinearBeamColumn 42 421 433 $numIntgrPts 500 $transfTag;
element nonlinearBeamColumn 43 431 443 $numIntgrPts 500 $transfTag;
element nonlinearBeamColumn 51 511 523 $numIntgrPts 340 $transfTag;
element nonlinearBeamColumn 52 521 533 $numIntgrPts 400 $transfTag;
element nonlinearBeamColumn 53 531 543 $numIntgrPts 340 $transfTag;
rigidLink beam 11 111;
rigidLink beam 11 114;
rigidLink beam 12 121;
rigidLink beam 12 123;
rigidLink beam 12 124;
rigidLink beam 13 131;
rigidLink beam 13 133;
rigidLink beam 13 134;
rigidLink beam 14 143;
rigidLink beam 14 144;
rigidLink beam 21 211;
rigidLink beam 21 214;
rigidLink beam 22 221;
rigidLink beam 22 223;
rigidLink beam 22 224;
rigidLink beam 23 231;
rigidLink beam 23 233;
rigidLink beam 23 234;
rigidLink beam 24 243;
rigidLink beam 24 244;
rigidLink beam 31 311;
rigidLink beam 31 314;
rigidLink beam 32 321;
rigidLink beam 32 323;
rigidLink beam 32 324;
rigidLink beam 33 331;
rigidLink beam 33 333;
rigidLink beam 33 334;
rigidLink beam 34 343;
rigidLink beam 34 344;
rigidLink beam 41 411;
rigidLink beam 41 414;
rigidLink beam 42 421;
rigidLink beam 42 423;
rigidLink beam 42 424;
rigidLink beam 43 431;
rigidLink beam 43 433;
rigidLink beam 43 434;
rigidLink beam 44 443;
rigidLink beam 44 444;
rigidLink beam 51 511;
rigidLink beam 51 514;
rigidLink beam 52 521;
rigidLink beam 52 523;
rigidLink beam 52 524;
rigidLink beam 53 531;
rigidLink beam 53 533;
rigidLink beam 53 534;
rigidLink beam 54 543;
rigidLink beam 54 544;
set M(1) [expr 30.49*6];
set M(2) [expr 30.49*6];
set M(3) [expr 30.49*6];
set M(4) [expr 30.49*6];
set M(5) [expr 24.49*6];
set p1 11;
set p2 21;
set p3 31;
set p4 41;
set p5 51;
set nMode 4;
set nStory 5;
recorder Node -file "NodeDisplacement1.txt" -node 11 21 31 41 51 -dof 1 disp;
recorder Node -file "NodeDisplacement2.txt" -node 12 22 32 42 52 -dof 1 disp;
recorder Node -file "NodeDisplacement3.txt" -node 13 23 33 43 53 -dof 1 disp;
recorder Node -file "NodeDisplacement4.txt" -node 14 24 34 44 54 -dof 1 disp;
recorder Element -file "StoryShear1.txt" -ele 101 102 103 104 globalForce;
recorder Element -file "StoryShear2.txt" -ele 111 112 113 114 globalForce;
recorder Element -file "StoryShear3.txt" -ele 121 122 123 124 globalForce;
recorder Element -file "StoryShear4.txt" -ele 131 132 133 134 globalForce;
recorder Element -file "StoryShear5.txt" -ele 141 142 143 144 globalForce;
set du 0.5;
set nStep 600;
for {set j 1} {$j<= $nStory} {incr j 1} {
set Displacement($j) $j;
};
pattern Plain 1 Linear {
sp 11 1 $Displacement(1);
sp 21 1 $Displacement(2);
sp 31 1 $Displacement(3);
sp 41 1 $Displacement(4);
sp 51 1 $Displacement(5);
};
constraints Penalty 1.0e12 1.0e12;
numberer RCM;
system UmfPack;
test EnergyIncr 1.0e-8 1000
algorithm Newton;
integrator DisplacementControl 51 1 $du;
analysis Static;
for {set j1 1} {$j1<=$nStep} {incr j1 +1} {
set ok [analyze 1];
if {$ok != 0} {
if {$ok != 0} {
puts "Trying Newton with Initial Tangent ..";
test NormDispIncr 1.e-8 2000 0;
algorithm Newton -initial;
set ok [analyze 1];
test EnergyIncr 1.e-8 6 0;
algorithm Newton;
};
if {$ok != 0} {
puts "Trying Broyden ..";
algorithm Broyden 800;
set ok [analyze 1 ];
algorithm Newton; };
if {$ok != 0} {
puts "Trying NewtonWithLineSearch ..";
algorithm NewtonLineSearch 0.8;
set ok [analyze 1];
algorithm Newton; };
if {$ok != 0} {
puts "Trying Krylov-Newton .."
algorithm KrylovNewton;
set ok [analyze 1];
algorithm Newton; };
if {$ok != 0} {
puts "Trying Newton with Initial Tangent ..";
test NormDispIncr 1.e-6 10000 0;
algorithm Newton -initial;
set ok [analyze 1];
test EnergyIncr 1.e-8 6 0;
algorithm Newton; };
if {$ok != 0} {
exec "notepad.exe";
};
};
puts $j1
};
[/code]
Thanks a lot
question on applying displacement
Moderators: silvia, selimgunay, Moderators
node 51 cannot be constrained in the same direction that you are using it to determine the load factor in the displacement control command .. also you are probably going to need to apply loads to the load pattern and not sp constraints due to the workings of DisplacementControl .. if you want to impose the diplacements at all floors just keep sp constraints and constraint at node 51 in load pattern and use loadcontrol and not displacement control to impose those displacements.
Dear Dr. Francis,
Thank you very much for reply
Conducting a displacement-based pushover, I mean that in each analysis step, I am going to control lateral displacement of each floor to be a pre-defined percent of top floor’s (node 51), in spite of conventional pushover in which nodal control is applied on application of “load” at each floor.
I am not sure that this terminology is correct; however in conventional pushover examples in Example Manual, you have used “displacement control” integrator in addition to “load” command.
In your post you said that I must use “load control” integrator, keep sp constraints and constraint at node 51 in load pattern. Is it some thing like this?
[code]
pattern Plain 1 Linear {sp 51 1 $Displacement(5)}
integrator LoadControl $du;
sp 11 1 $Displacement(1)
sp 21 1 $Displacement(2)
sp 31 1 $Displacement(3)
sp 41 1 $Displacement(4)
[/code]
regards
Thank you very much for reply
Conducting a displacement-based pushover, I mean that in each analysis step, I am going to control lateral displacement of each floor to be a pre-defined percent of top floor’s (node 51), in spite of conventional pushover in which nodal control is applied on application of “load” at each floor.
I am not sure that this terminology is correct; however in conventional pushover examples in Example Manual, you have used “displacement control” integrator in addition to “load” command.
In your post you said that I must use “load control” integrator, keep sp constraints and constraint at node 51 in load pattern. Is it some thing like this?
[code]
pattern Plain 1 Linear {sp 51 1 $Displacement(5)}
integrator LoadControl $du;
sp 11 1 $Displacement(1)
sp 21 1 $Displacement(2)
sp 31 1 $Displacement(3)
sp 41 1 $Displacement(4)
[/code]
regards
the integrator is outside the load pattern command .. you just need to change the integrator in your origina script form DisplacementControl to LoadControl .. at each time step you will get the pseudo time * the sp constraint displacement set at the node .. so set the pseudo time increment in Load Factor accordingly.
Thanks a lot; it works well
Just as a note for others I summarize what you said and write here the code. Also I used high stiffness “elasticBeamColumn” instead of rigid link.
[code]
pattern Plain 1 Linear {
sp 51 1 $Displacement(5)
sp 11 1 $Displacement(1);
sp 21 1 $Displacement(2);
sp 31 1 $Displacement(3);
sp 41 1 $Displacement(4);
}
constraints Transformation; #we can use Penalty too
.
.
.
integrator LoadControl [expr $du/$Displacement(5)];
#integrator DisplacementControl 51 1 [expr $du];
#using “DisplacementControl” with “Transformation” C-Handler we get error
[/code]
I have another problem. Would you please check it . . In each time step, I can conduct “Eigen” analysis, recognizing period elongation, however I can’t get new mode shapes, i.e. using “Eigen“ command inside the “for” loop, recorder always report zero (except for initial value of mode shape values). Is it because of “sp”?
regards
Just as a note for others I summarize what you said and write here the code. Also I used high stiffness “elasticBeamColumn” instead of rigid link.
[code]
pattern Plain 1 Linear {
sp 51 1 $Displacement(5)
sp 11 1 $Displacement(1);
sp 21 1 $Displacement(2);
sp 31 1 $Displacement(3);
sp 41 1 $Displacement(4);
}
constraints Transformation; #we can use Penalty too
.
.
.
integrator LoadControl [expr $du/$Displacement(5)];
#integrator DisplacementControl 51 1 [expr $du];
#using “DisplacementControl” with “Transformation” C-Handler we get error
[/code]
I have another problem. Would you please check it . . In each time step, I can conduct “Eigen” analysis, recognizing period elongation, however I can’t get new mode shapes, i.e. using “Eigen“ command inside the “for” loop, recorder always report zero (except for initial value of mode shape values). Is it because of “sp”?
regards