In actuality, rigid offsets at beam column connections and brace to frame connections (to model the gusset plates) have long been simulated through separating an element to some segments at which each segment has a given stiffness.
While some are adamantly claiming that mentioned method should be given more prominence, many may take an opposit viewpoint and believe that using multi-segments element can give rise to changing in behavior of element.
Nevertheless, many (like me!!!) remain neutral, sharing this view that a myriad of factors should be taken into consideration so as to be able to prove which belief is closer to reality.
In near future, i will aptly elucidate a new method to consider rigid offsets.πππ
π https://t.me/OpenSeesCommunity
While some are adamantly claiming that mentioned method should be given more prominence, many may take an opposit viewpoint and believe that using multi-segments element can give rise to changing in behavior of element.
Nevertheless, many (like me!!!) remain neutral, sharing this view that a myriad of factors should be taken into consideration so as to be able to prove which belief is closer to reality.
In near future, i will aptly elucidate a new method to consider rigid offsets.πππ
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
Let me close today's discussion with a novel suggestion to keep in mind while you are simulating rigid offsets.
It is established beyond doubt that rigid offsets play a crucial role in structural behavior, especially in reinforced concrete moment frames.
Geometric Transformation Command has the potential to consider mentioned effects.
Furthermore, use of Geometric Transformation Command seems to be a relevant/meaningful approximation to simulate rigid offsets.πππ
π https://t.me/OpenSeesCommunity
It is established beyond doubt that rigid offsets play a crucial role in structural behavior, especially in reinforced concrete moment frames.
Geometric Transformation Command has the potential to consider mentioned effects.
Furthermore, use of Geometric Transformation Command seems to be a relevant/meaningful approximation to simulate rigid offsets.πππ
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
According to growth of the channel Contents, you can also join here:πππ
https://www.instagram.com/openseescommunity
https://www.instagram.com/openseescommunity
To know and understand more precisely and be involved in structural engineering concepts, in this video you can see the quasi-static testing of a full-scale steel braced frame equipped with Cast ConneX High-Strength Connectors.πππ
π https://t.me/OpenSeesCommunity
https://www.instagram.com/openseescommunity
π https://t.me/OpenSeesCommunity
https://www.instagram.com/openseescommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
As i accounted for a new special way, to consider rigid offsets a little while ago, take example 4 for instance:πππ
(Part 1);
# Units: N , Meter , seconds;
model BasicBuilder -ndm 3 -ndf 6; # Define the model builder,
# Define Building Geometry, Nodes, and Constraints
set NStories 1; # number of stories
set NBaysX 3; # number of frame bays in Direction X
set WBayX [expr 4.5]; # bay width in Direction X (meter)
set NBaysY 3; # number of frame bays in Direction X
set WBayY [expr 4.5]; # bay width in Direction Y (meter)
set HStory1 [expr 5.0]; # First story height in meter
set PierX1 0.0; # leftmost column line
set PierX2 [expr $PierX1 + $WBayX];
set PierX3 [expr $PierX2 + $WBayX];
set PierX4 [expr $PierX3 + $WBayX];
set PierY1 0.0; # leftmost column line
set PierY2 [expr $PierY1 + $WBayY];
set PierY3 [expr $PierY2 + $WBayY];
set PierY4 [expr $PierY3 + $WBayY];
set ground 0.0; # ground floor
set Floor1 [expr $ground + $HStory1];
# calculate nodal masses -- lump floor masses at frame nodes
set SquareG [expr 9.81 * 9.81]; # convert to mass value ,
acceleration due to gravity;
# Exterior Beams;
# W1 = 15 kN/m x 104 = 1560 kN
# Interior Beams;
# W2 = 10 kN/m x 63 = 630 kN
# Floor1Weight = W1 + W2 = 2190 kN
set FloorWeight 2190000; # weight of Floor 1 in N;
set NodalMassX [expr ($FloorWeight/$SquareG) / (16.0)]; # massX at each node on Floors
set NodalMassY [expr ($FloorWeight/$SquareG) / (16.0)]; # massY at each node on Floors
set NodalMassZ [expr ($FloorWeight/$SquareG) / (16.0)]; # massY at each node on Floors
set Negligible 1e-9; # a very smnumber to avoid problems with zero ;
node 1 $PierX1 $PierY1 $ground ;
node 2 $PierX2 $PierY1 $ground ;
node 3 $PierX3 $PierY1 $ground ;
node 4 $PierX4 $PierY1 $ground ;
node 5 $PierX1 $PierY2 $ground ;
node 6 $PierX2 $PierY2 $ground ;
node 7 $PierX3 $PierY2 $ground ;
node 8 $PierX4 $PierY2 $ground ;
node 9 $PierX1 $PierY3 $ground ;
node 10 $PierX2 $PierY3 $ground ;
node 11 $PierX3 $PierY3 $ground ;
node 12 $PierX4 $PierY3 $ground ;
node 13 $PierX1 $PierY4 $ground ;
node 14 $PierX2 $PierY4 $ground ;
node 15 $PierX3 $PierY4 $ground ;
node 16 $PierX4 $PierY4 $ground ;
node 101 $PierX1 $PierY1 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 102 $PierX2 $PierY1 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 103 $PierX3 $PierY1 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 104 $PierX4 $PierY1 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 105 $PierX1 $PierY2 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 106 $PierX2 $PierY2 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 107 $PierX3 $PierY2 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 108 $PierX4 $PierY2 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 109 $PierX1 $PierY3 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 110 $PierX2 $PierY3 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 111 $PierX3 $PierY3 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 112 $PierX4 $PierY3 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 113 $PierX1 $PierY4 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 114 $PierX2 $PierY4 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 115 $PierX3 $PierY4 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 116 $PierX4 $PierY4 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
π https://t.me/OpenSeesCommunity
(Part 1);
# Units: N , Meter , seconds;
model BasicBuilder -ndm 3 -ndf 6; # Define the model builder,
# Define Building Geometry, Nodes, and Constraints
set NStories 1; # number of stories
set NBaysX 3; # number of frame bays in Direction X
set WBayX [expr 4.5]; # bay width in Direction X (meter)
set NBaysY 3; # number of frame bays in Direction X
set WBayY [expr 4.5]; # bay width in Direction Y (meter)
set HStory1 [expr 5.0]; # First story height in meter
set PierX1 0.0; # leftmost column line
set PierX2 [expr $PierX1 + $WBayX];
set PierX3 [expr $PierX2 + $WBayX];
set PierX4 [expr $PierX3 + $WBayX];
set PierY1 0.0; # leftmost column line
set PierY2 [expr $PierY1 + $WBayY];
set PierY3 [expr $PierY2 + $WBayY];
set PierY4 [expr $PierY3 + $WBayY];
set ground 0.0; # ground floor
set Floor1 [expr $ground + $HStory1];
# calculate nodal masses -- lump floor masses at frame nodes
set SquareG [expr 9.81 * 9.81]; # convert to mass value ,
acceleration due to gravity;
# Exterior Beams;
# W1 = 15 kN/m x 104 = 1560 kN
# Interior Beams;
# W2 = 10 kN/m x 63 = 630 kN
# Floor1Weight = W1 + W2 = 2190 kN
set FloorWeight 2190000; # weight of Floor 1 in N;
set NodalMassX [expr ($FloorWeight/$SquareG) / (16.0)]; # massX at each node on Floors
set NodalMassY [expr ($FloorWeight/$SquareG) / (16.0)]; # massY at each node on Floors
set NodalMassZ [expr ($FloorWeight/$SquareG) / (16.0)]; # massY at each node on Floors
set Negligible 1e-9; # a very smnumber to avoid problems with zero ;
node 1 $PierX1 $PierY1 $ground ;
node 2 $PierX2 $PierY1 $ground ;
node 3 $PierX3 $PierY1 $ground ;
node 4 $PierX4 $PierY1 $ground ;
node 5 $PierX1 $PierY2 $ground ;
node 6 $PierX2 $PierY2 $ground ;
node 7 $PierX3 $PierY2 $ground ;
node 8 $PierX4 $PierY2 $ground ;
node 9 $PierX1 $PierY3 $ground ;
node 10 $PierX2 $PierY3 $ground ;
node 11 $PierX3 $PierY3 $ground ;
node 12 $PierX4 $PierY3 $ground ;
node 13 $PierX1 $PierY4 $ground ;
node 14 $PierX2 $PierY4 $ground ;
node 15 $PierX3 $PierY4 $ground ;
node 16 $PierX4 $PierY4 $ground ;
node 101 $PierX1 $PierY1 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 102 $PierX2 $PierY1 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 103 $PierX3 $PierY1 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 104 $PierX4 $PierY1 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 105 $PierX1 $PierY2 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 106 $PierX2 $PierY2 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 107 $PierX3 $PierY2 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 108 $PierX4 $PierY2 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 109 $PierX1 $PierY3 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 110 $PierX2 $PierY3 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 111 $PierX3 $PierY3 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 112 $PierX4 $PierY3 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 113 $PierX1 $PierY4 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 114 $PierX2 $PierY4 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 115 $PierX3 $PierY4 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
node 116 $PierX4 $PierY4 $Floor1 -mass $NodalMassX $NodalMassY $NodalMassZ $Negligible $Negligible $Negligible;
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
(Part 2);
set dof1 1; # constrain movement in dof 1 (X-direction);
for {set i 1} {$i <= $NStories} {incr i} {
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 2] $dof1;
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 3] $dof1;
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 4] $dof1;
equalDOF [expr ($i*100) + 5] [expr ($i*100) + 6] $dof1;
equalDOF [expr ($i*100) + 5] [expr ($i*100) + 7] $dof1;
equalDOF [expr ($i*100) + 5] [expr ($i*100) + 8] $dof1;
equalDOF [expr ($i*100) + 9] [expr ($i*100) + 10] $dof1;
equalDOF [expr ($i*100) + 9] [expr ($i*100) + 11] $dof1;
equalDOF [expr ($i*100) + 9] [expr ($i*100) + 12] $dof1;
equalDOF [expr ($i*100) + 13] [expr ($i*100) + 14] $dof1;
equalDOF [expr ($i*100) + 13] [expr ($i*100) + 15] $dof1;
equalDOF [expr ($i*100) + 13] [expr ($i*100) + 16] $dof1;
};
set dof2 2; # constrain movement in dof 2 (Y-direction);
for {set i 1} {$i <= $NStories} {incr i} {
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 5] $dof2;
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 9] $dof2;
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 13] $dof2;
equalDOF [expr ($i*100) + 2] [expr ($i*100) + 6] $dof2;
equalDOF [expr ($i*100) + 2] [expr ($i*100) + 10] $dof2;
equalDOF [expr ($i*100) + 2] [expr ($i*100) + 14] $dof2;
equalDOF [expr ($i*100) + 3] [expr ($i*100) + 7] $dof2;
equalDOF [expr ($i*100) + 3] [expr ($i*100) + 11] $dof2;
equalDOF [expr ($i*100) + 3] [expr ($i*100) + 15] $dof2;
equalDOF [expr ($i*100) + 4] [expr ($i*100) + 8] $dof2;
equalDOF [expr ($i*100) + 4] [expr ($i*100) + 12] $dof2;
equalDOF [expr ($i*100) + 4] [expr ($i*100) + 16] $dof2;
} ;
fix 1 1 1 1 1 1 1;
fix 2 1 1 1 1 1 1;
fix 3 1 1 1 1 1 1;
fix 4 1 1 1 1 1 1;
fix 5 1 1 1 1 1 1;
fix 6 1 1 1 1 1 1;
fix 7 1 1 1 1 1 1;
fix 8 1 1 1 1 1 1;
fix 9 1 1 1 1 1 1;
fix 10 1 1 1 1 1 1;
fix 11 1 1 1 1 1 1;
fix 12 1 1 1 1 1 1;
fix 13 1 1 1 1 1 1;
fix 14 1 1 1 1 1 1;
fix 15 1 1 1 1 1 1;
fix 16 1 1 1 1 1 1;
set CoreID 1; # material ID tag -- confined cover concrete
set CoverID 2; # material ID tag -- unconfined cover
set ReinfID 3; # material ID tag -- reinforcement
set fc -30700000 ; # Samples test , (N/m^2) ;
set Econ 21384000000 ; # (N/m^2)
set Fy 275000000 ; # (N/m^2)
set EtsConcrete [expr $Econ/10.]; # (N/m^2), tension softening stiffness for Concrete, also recommend to Consider as ($ft/0.002);
set Esteel 200000000000 ; # (N/m^2) #
################ Confined Concrete ##########
set fccore [expr (1.26394 * $fc)]; # Core Compressive Strength
(N/m^2)(+Tension, -Compression) ;
set epsc1 [expr (2 * $fccore / $Econ)];
set epsc2 [expr (5 * $epsc1)];
set fucore $fc;
########## Concrete02 variables ########### ;
set lambda 0.1 ; # ratio between unloading slope at
$epsc2 and initial slope ;
set ftc [expr (-0.1 *$fccore)]; # (N/m^2) , this value
always should be positive (Tension is +) and recommend to Consider as (- 0.1 * $fccore);
set b 0.02; # post-yield stiffness ratio of steel;
################ UnConfined Concrete ########## ;
set fccover $fc ; # (N/m^2);
set fucover [expr (0.1 * $fccover)]; # (N/m^2);
set ftucover [expr (-0.1 * $fccover)]; # (N/m^2);
uniaxialMaterial Concrete02 $CoreID $fccore $epsc1 $fucore $epsc2 $lambda $ftc $EtsConcrete; # CORE CONCRETE;
uniaxialMaterial Concrete02 $CoverID $fccover -0.003 $fucover -0.006 $lambda $ftucover $EtsConcrete ; #Cover CONCRETE;
set matTagReinforcingSteel $ReinfID ;
set fyReinforcingSteel $Fy ;
set fuReinforcingSteel 375000000 ;
set EsReinforcingSteel 200000000000 ;
set EshReinforcingSteel 50000000000 ;
set eshReinforcingSteel 0.024
set eultReinforcingSteel 0.053
set LsrReinforcingSteel 25 ;
set betaReinforcingSteel 1 ;
set rReinforcingSteel 0.4 ;
set gamaReinforcingSteel 0.5
uniaxialMaterial ReinforcingSteel $matTagReinforcingSteel
$fyReinforcingSteel $fuReinforcingSteel $EsReinforcingSteel
$EshReinforcingSteel $eshReinforcingSteel $eultReinforcingSteel -GABuck
$LsrReinforcingSteel $betaReinforcingSteel $rReinforcingSteel
$gamaReinforcingSteel ;
π https://t.me/OpenSeesCommunity
set dof1 1; # constrain movement in dof 1 (X-direction);
for {set i 1} {$i <= $NStories} {incr i} {
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 2] $dof1;
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 3] $dof1;
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 4] $dof1;
equalDOF [expr ($i*100) + 5] [expr ($i*100) + 6] $dof1;
equalDOF [expr ($i*100) + 5] [expr ($i*100) + 7] $dof1;
equalDOF [expr ($i*100) + 5] [expr ($i*100) + 8] $dof1;
equalDOF [expr ($i*100) + 9] [expr ($i*100) + 10] $dof1;
equalDOF [expr ($i*100) + 9] [expr ($i*100) + 11] $dof1;
equalDOF [expr ($i*100) + 9] [expr ($i*100) + 12] $dof1;
equalDOF [expr ($i*100) + 13] [expr ($i*100) + 14] $dof1;
equalDOF [expr ($i*100) + 13] [expr ($i*100) + 15] $dof1;
equalDOF [expr ($i*100) + 13] [expr ($i*100) + 16] $dof1;
};
set dof2 2; # constrain movement in dof 2 (Y-direction);
for {set i 1} {$i <= $NStories} {incr i} {
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 5] $dof2;
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 9] $dof2;
equalDOF [expr ($i*100) + 1] [expr ($i*100) + 13] $dof2;
equalDOF [expr ($i*100) + 2] [expr ($i*100) + 6] $dof2;
equalDOF [expr ($i*100) + 2] [expr ($i*100) + 10] $dof2;
equalDOF [expr ($i*100) + 2] [expr ($i*100) + 14] $dof2;
equalDOF [expr ($i*100) + 3] [expr ($i*100) + 7] $dof2;
equalDOF [expr ($i*100) + 3] [expr ($i*100) + 11] $dof2;
equalDOF [expr ($i*100) + 3] [expr ($i*100) + 15] $dof2;
equalDOF [expr ($i*100) + 4] [expr ($i*100) + 8] $dof2;
equalDOF [expr ($i*100) + 4] [expr ($i*100) + 12] $dof2;
equalDOF [expr ($i*100) + 4] [expr ($i*100) + 16] $dof2;
} ;
fix 1 1 1 1 1 1 1;
fix 2 1 1 1 1 1 1;
fix 3 1 1 1 1 1 1;
fix 4 1 1 1 1 1 1;
fix 5 1 1 1 1 1 1;
fix 6 1 1 1 1 1 1;
fix 7 1 1 1 1 1 1;
fix 8 1 1 1 1 1 1;
fix 9 1 1 1 1 1 1;
fix 10 1 1 1 1 1 1;
fix 11 1 1 1 1 1 1;
fix 12 1 1 1 1 1 1;
fix 13 1 1 1 1 1 1;
fix 14 1 1 1 1 1 1;
fix 15 1 1 1 1 1 1;
fix 16 1 1 1 1 1 1;
set CoreID 1; # material ID tag -- confined cover concrete
set CoverID 2; # material ID tag -- unconfined cover
set ReinfID 3; # material ID tag -- reinforcement
set fc -30700000 ; # Samples test , (N/m^2) ;
set Econ 21384000000 ; # (N/m^2)
set Fy 275000000 ; # (N/m^2)
set EtsConcrete [expr $Econ/10.]; # (N/m^2), tension softening stiffness for Concrete, also recommend to Consider as ($ft/0.002);
set Esteel 200000000000 ; # (N/m^2) #
################ Confined Concrete ##########
set fccore [expr (1.26394 * $fc)]; # Core Compressive Strength
(N/m^2)(+Tension, -Compression) ;
set epsc1 [expr (2 * $fccore / $Econ)];
set epsc2 [expr (5 * $epsc1)];
set fucore $fc;
########## Concrete02 variables ########### ;
set lambda 0.1 ; # ratio between unloading slope at
$epsc2 and initial slope ;
set ftc [expr (-0.1 *$fccore)]; # (N/m^2) , this value
always should be positive (Tension is +) and recommend to Consider as (- 0.1 * $fccore);
set b 0.02; # post-yield stiffness ratio of steel;
################ UnConfined Concrete ########## ;
set fccover $fc ; # (N/m^2);
set fucover [expr (0.1 * $fccover)]; # (N/m^2);
set ftucover [expr (-0.1 * $fccover)]; # (N/m^2);
uniaxialMaterial Concrete02 $CoreID $fccore $epsc1 $fucore $epsc2 $lambda $ftc $EtsConcrete; # CORE CONCRETE;
uniaxialMaterial Concrete02 $CoverID $fccover -0.003 $fucover -0.006 $lambda $ftucover $EtsConcrete ; #Cover CONCRETE;
set matTagReinforcingSteel $ReinfID ;
set fyReinforcingSteel $Fy ;
set fuReinforcingSteel 375000000 ;
set EsReinforcingSteel 200000000000 ;
set EshReinforcingSteel 50000000000 ;
set eshReinforcingSteel 0.024
set eultReinforcingSteel 0.053
set LsrReinforcingSteel 25 ;
set betaReinforcingSteel 1 ;
set rReinforcingSteel 0.4 ;
set gamaReinforcingSteel 0.5
uniaxialMaterial ReinforcingSteel $matTagReinforcingSteel
$fyReinforcingSteel $fuReinforcingSteel $EsReinforcingSteel
$EshReinforcingSteel $eshReinforcingSteel $eultReinforcingSteel -GABuck
$LsrReinforcingSteel $betaReinforcingSteel $rReinforcingSteel
$gamaReinforcingSteel ;
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
(Part 3);
## This Part is only to Define Material of Columns Story 1 ;
set ColStOneCoreID 6; # material ID tag -- confined
set ColStOneCoverID 7; # material ID tag -- unconfined
set ColStOneReinfID 8; # material ID tag -- reinforcement
set ColStOnefc -45700000 ; # Samples test , (N/m^2) ;
set ColStOneEcon 21384000000 ; # (N/m^2)
set ColStOneFy 275000000 ; # (N/m^2)
set ColStOneEtsConcrete [expr $ColStOneEcon/10.]; # (N/m^2), tension softening stiffness for Concrete, also recommend to Consider as ($ft/0.002);
set ColStOneEsteel 200000000000 ; # (N/m^2) #
################ Confined Concrete ##########
set ColStOnefccore [expr (1.26394 * $ColStOnefc)]; # Core Compressive Strength (N/m^2)(+Tension, -Compression)
set ColStOneepsc1 [expr (2 * $ColStOnefccore / $ColStOneEcon)];
set ColStOneepsc2 [expr (5 * $ColStOneepsc1)];
set ColStOnefucore $ColStOnefc;
########## Concrete02 variables ;
set ColStOnelambda 0.1 ; # ratio between unloading
slope at $epsc2 and initial slope ;
set ColStOneftc [expr (-0.1 *$ColStOnefccore)]; # (N/m^2) ,
this value always should be positive (Tension is +) and recommend to Consider as (-0.1 * $fccore);
set ColStOneb 0.02; # post-yield stiffness ratio of steel;
################ UnConfined Concrete ########## ;
set ColStOnefccover $ColStOnefc ; # (N/m^2);
set ColStOnefucover [expr (0.1 * $ColStOnefccover)]; #
(N/m^2);
set ColStOneftucover [expr (-0.1 * $ColStOnefccover)]; #
(N/m^2);
uniaxialMaterial Concrete02 $ColStOneCoreID $ColStOnefccore $ColStOneepsc1 $ColStOnefucore $ColStOneepsc2 $ColStOnelambda $ColStOneftc $ColStOneEtsConcrete; # CORE CONCRETE;
uniaxialMaterial Concrete02 $ColStOneCoverID $ColStOnefccover -0.003 $ColStOnefucover -0.006 $ColStOnelambda $ColStOneftucover $ColStOneEtsConcrete ; #Cover CONCRETE;
uniaxialMaterial ReinforcingSteel $ColStOneReinfID $fyReinforcingSteel
$fuReinforcingSteel $EsReinforcingSteel $EshReinforcingSteel
$eshReinforcingSteel $eultReinforcingSteel -GABuck $LsrReinforcingSteel $betaReinforcingSteel $rReinforcingSteel $gamaReinforcingSteel ;
set FrpID 9;
uniaxialMaterial Elastic 77 230000000000.0
uniaxialMaterial MinMax $FrpID 77 -min 0.0 -max 1.8e-2 ;
### ********************** ;
set tFrp 0.001 ; # 3 layer frp = 1 mm = 0.001 m ;
proc FRPColumn_Sec {id Hsec Bsec tcover ColStOneReinfID BarNum1 BarNum2
BarArea ColStOneCoreID ColStOneCoverID tFrp} { ;
section Fiber $id {
set FrpID 9;
#Core
.
#bottom cover
.
#top cover
.
#left cover
#Right cover
.
# Bottom frp
.
#Top frp
.
#Right frp
.
#Left frp
.
# bottom bars
.
# top bars
.
# left bars
.
# Right bars
.
}
} ;
proc BeamsXdirection_Sec {id Hsec Bsec tcover ReinfID BarNumtop
BarNumbottom BarAreatop BarAreabottom CoreID CoverID} { ;
section Fiber $id {
# Core
.
# bottom cover
.
# top cover
.
# left cover
.
# Right cover
.
# bottom bars
.
# top bars
.
}
} ;
proc BeamsYdirection_Sec {id Hsec Bsec tcover ReinfID BarNumtopsery1 BarNumbottomsery1 BarAreatopsery1 BarAreabottomsery1 BarNumtopsery2 BarNumbottomsery2 BarAreatopsery2 BarAreabottomsery2 CoreID CoverID} { ;
section Fiber $id {
#Core
.
#bottom cover
.
#top cover
.
#left cover
.
#Right cover
.
# bottom bars sery 1
.
# top bars sery 1
.
# bottom bars sery 2
.
# top bars sery 2
.
}
} ;
FRPColumn_Sec 70 0.35 0.35 0.04 8 5 3 0.000314 6 7 0.001 ;
# columnsStoryOne ;
BeamsXdirection_Sec 90 0.4 0.3 0.04 3 4 4 0.0002 0.0002 1 2;
BeamsYdirection_Sec 95 0.4 0.3 0.04 3 4 3 0.0002 0.0002 3 2
0.0002 0.0002 1 2;
set SecTagTorsion 71
set Ubig 1.e10; # a really large number
set Usmall [expr 1/$Ubig]; # a really small number
set nu 0.2; # Poisson's ratio
set Gc [expr $Econ/2./[expr 1+$nu]]; # Torsional stiffness
Modulus ;
set J $Ubig; # set large torsional stiffnes
# assign torsional Stiffness for 3D Model
uniaxialMaterial Elastic $SecTagTorsion $Ubig
π https://t.me/OpenSeesCommunity
## This Part is only to Define Material of Columns Story 1 ;
set ColStOneCoreID 6; # material ID tag -- confined
set ColStOneCoverID 7; # material ID tag -- unconfined
set ColStOneReinfID 8; # material ID tag -- reinforcement
set ColStOnefc -45700000 ; # Samples test , (N/m^2) ;
set ColStOneEcon 21384000000 ; # (N/m^2)
set ColStOneFy 275000000 ; # (N/m^2)
set ColStOneEtsConcrete [expr $ColStOneEcon/10.]; # (N/m^2), tension softening stiffness for Concrete, also recommend to Consider as ($ft/0.002);
set ColStOneEsteel 200000000000 ; # (N/m^2) #
################ Confined Concrete ##########
set ColStOnefccore [expr (1.26394 * $ColStOnefc)]; # Core Compressive Strength (N/m^2)(+Tension, -Compression)
set ColStOneepsc1 [expr (2 * $ColStOnefccore / $ColStOneEcon)];
set ColStOneepsc2 [expr (5 * $ColStOneepsc1)];
set ColStOnefucore $ColStOnefc;
########## Concrete02 variables ;
set ColStOnelambda 0.1 ; # ratio between unloading
slope at $epsc2 and initial slope ;
set ColStOneftc [expr (-0.1 *$ColStOnefccore)]; # (N/m^2) ,
this value always should be positive (Tension is +) and recommend to Consider as (-0.1 * $fccore);
set ColStOneb 0.02; # post-yield stiffness ratio of steel;
################ UnConfined Concrete ########## ;
set ColStOnefccover $ColStOnefc ; # (N/m^2);
set ColStOnefucover [expr (0.1 * $ColStOnefccover)]; #
(N/m^2);
set ColStOneftucover [expr (-0.1 * $ColStOnefccover)]; #
(N/m^2);
uniaxialMaterial Concrete02 $ColStOneCoreID $ColStOnefccore $ColStOneepsc1 $ColStOnefucore $ColStOneepsc2 $ColStOnelambda $ColStOneftc $ColStOneEtsConcrete; # CORE CONCRETE;
uniaxialMaterial Concrete02 $ColStOneCoverID $ColStOnefccover -0.003 $ColStOnefucover -0.006 $ColStOnelambda $ColStOneftucover $ColStOneEtsConcrete ; #Cover CONCRETE;
uniaxialMaterial ReinforcingSteel $ColStOneReinfID $fyReinforcingSteel
$fuReinforcingSteel $EsReinforcingSteel $EshReinforcingSteel
$eshReinforcingSteel $eultReinforcingSteel -GABuck $LsrReinforcingSteel $betaReinforcingSteel $rReinforcingSteel $gamaReinforcingSteel ;
set FrpID 9;
uniaxialMaterial Elastic 77 230000000000.0
uniaxialMaterial MinMax $FrpID 77 -min 0.0 -max 1.8e-2 ;
### ********************** ;
set tFrp 0.001 ; # 3 layer frp = 1 mm = 0.001 m ;
proc FRPColumn_Sec {id Hsec Bsec tcover ColStOneReinfID BarNum1 BarNum2
BarArea ColStOneCoreID ColStOneCoverID tFrp} { ;
section Fiber $id {
set FrpID 9;
#Core
.
#bottom cover
.
#top cover
.
#left cover
#Right cover
.
# Bottom frp
.
#Top frp
.
#Right frp
.
#Left frp
.
# bottom bars
.
# top bars
.
# left bars
.
# Right bars
.
}
} ;
proc BeamsXdirection_Sec {id Hsec Bsec tcover ReinfID BarNumtop
BarNumbottom BarAreatop BarAreabottom CoreID CoverID} { ;
section Fiber $id {
# Core
.
# bottom cover
.
# top cover
.
# left cover
.
# Right cover
.
# bottom bars
.
# top bars
.
}
} ;
proc BeamsYdirection_Sec {id Hsec Bsec tcover ReinfID BarNumtopsery1 BarNumbottomsery1 BarAreatopsery1 BarAreabottomsery1 BarNumtopsery2 BarNumbottomsery2 BarAreatopsery2 BarAreabottomsery2 CoreID CoverID} { ;
section Fiber $id {
#Core
.
#bottom cover
.
#top cover
.
#left cover
.
#Right cover
.
# bottom bars sery 1
.
# top bars sery 1
.
# bottom bars sery 2
.
# top bars sery 2
.
}
} ;
FRPColumn_Sec 70 0.35 0.35 0.04 8 5 3 0.000314 6 7 0.001 ;
# columnsStoryOne ;
BeamsXdirection_Sec 90 0.4 0.3 0.04 3 4 4 0.0002 0.0002 1 2;
BeamsYdirection_Sec 95 0.4 0.3 0.04 3 4 3 0.0002 0.0002 3 2
0.0002 0.0002 1 2;
set SecTagTorsion 71
set Ubig 1.e10; # a really large number
set Usmall [expr 1/$Ubig]; # a really small number
set nu 0.2; # Poisson's ratio
set Gc [expr $Econ/2./[expr 1+$nu]]; # Torsional stiffness
Modulus ;
set J $Ubig; # set large torsional stiffnes
# assign torsional Stiffness for 3D Model
uniaxialMaterial Elastic $SecTagTorsion $Ubig
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
(Part 4);
section Aggregator 700 $SecTagTorsion T -section 70
section Aggregator 900 $SecTagTorsion T -section 90
section Aggregator 950 $SecTagTorsion T -section 95
# set up geometric transformations of elements ;
geomTransf PDelta 1 0.0 0.0 -1.0 -jntOffset 0.17 0.0 0.0 0.17 0.0 0.0 ; # PDelta transformation for all beams Directon X ;
geomTransf PDelta 2 0.0 0.0 -1.0 -jntOffset 0.0 0.17 0.0 0.0 0.17 0.0 ; # PDelta transformation for all beams Directon Y ;
geomTransf PDelta 3 1.0 0.0 0.0 -jntOffset 0.0 0.0 0.17 0.0 0.0 0.17 ; # PDelta transformation for all Columns ;
# define nonlinear column elements using "element" command ;
# # Columns ;
element nonlinearBeamColumn 101 1 101 5 700 3
element nonlinearBeamColumn 102 2 102 5 700 3
element nonlinearBeamColumn 103 3 103 5 700 3
...
...
# Beams direction X ;
element nonlinearBeamColumn 1001 101 102 5 900 1
element nonlinearBeamColumn 1002 102 103 5 900 1
element nonlinearBeamColumn 1003 103 104 5 900 1
...
...
# Beams direction Y ;
element nonlinearBeamColumn 1013 101 105 5 950 2
element nonlinearBeamColumn 1014 105 109 5 950 2
element nonlinearBeamColumn 1015 109 113 5 950 2
...
...
puts " Congratulation !!! , Columns & Beams elements defined !!!."
puts " "
puts " "
π https://t.me/OpenSeesCommunity
section Aggregator 700 $SecTagTorsion T -section 70
section Aggregator 900 $SecTagTorsion T -section 90
section Aggregator 950 $SecTagTorsion T -section 95
# set up geometric transformations of elements ;
geomTransf PDelta 1 0.0 0.0 -1.0 -jntOffset 0.17 0.0 0.0 0.17 0.0 0.0 ; # PDelta transformation for all beams Directon X ;
geomTransf PDelta 2 0.0 0.0 -1.0 -jntOffset 0.0 0.17 0.0 0.0 0.17 0.0 ; # PDelta transformation for all beams Directon Y ;
geomTransf PDelta 3 1.0 0.0 0.0 -jntOffset 0.0 0.0 0.17 0.0 0.0 0.17 ; # PDelta transformation for all Columns ;
# define nonlinear column elements using "element" command ;
# # Columns ;
element nonlinearBeamColumn 101 1 101 5 700 3
element nonlinearBeamColumn 102 2 102 5 700 3
element nonlinearBeamColumn 103 3 103 5 700 3
...
...
# Beams direction X ;
element nonlinearBeamColumn 1001 101 102 5 900 1
element nonlinearBeamColumn 1002 102 103 5 900 1
element nonlinearBeamColumn 1003 103 104 5 900 1
...
...
# Beams direction Y ;
element nonlinearBeamColumn 1013 101 105 5 950 2
element nonlinearBeamColumn 1014 105 109 5 950 2
element nonlinearBeamColumn 1015 109 113 5 950 2
...
...
puts " Congratulation !!! , Columns & Beams elements defined !!!."
puts " "
puts " "
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
Forwarded from Opensees Community
According to growth of the channel Contents, you can also join here:πππ
https://www.instagram.com/openseescommunity
https://www.instagram.com/openseescommunity
The OpenSees applications allows developers to use their own material modules to the application. Unlike most other programs, the materials are added at run time and not at compile time. The advantage of this is the developers:
1- Do not need the OpenSees source files or libraries to compile and link the application.
2- Can share their modules with others without having to provide the source code.
For those new to programming NEVER EVER NEVER start with an empty file. Take something similar that works and make changes to that file. So, for the purpose of adding your code to OpenSees, C++, C and Fortran examples are provided here:
http://opensees.berkeley.edu/OpenSees/developer/ πππ
π https://t.me/OpenSeesCommunity
1- Do not need the OpenSees source files or libraries to compile and link the application.
2- Can share their modules with others without having to provide the source code.
For those new to programming NEVER EVER NEVER start with an empty file. Take something similar that works and make changes to that file. So, for the purpose of adding your code to OpenSees, C++, C and Fortran examples are provided here:
http://opensees.berkeley.edu/OpenSees/developer/ πππ
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
A powerful 7.3 magnitude earthquake near the Iran-Iraq border killed over 400 people and injured thousands, sent residents fleeing their homes into the night and was felt as far away as the Mediterranean coast. The quake was centered 19 miles (31 kilometers) outside the eastern Iraqi city of Halabja, according to the most recent measurements from the U.S. Geological Survey. It struck at 9:48 p.m. Iran time, just as people began retiring for the night. The quake's worst damage appeared to be in the town of Sarpol-e-Zahab in Kermanshah province, which sits in the Zagros Mountains that divide Iran and Iraq.
May peace be on them and condolences to their dear families, for this loss.πππ
π https://t.me/OpenSeesCommunity
May peace be on them and condolences to their dear families, for this loss.πππ
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
Forwarded from d d d d
Prof. Jack Baker (Stanford University) discusses methods of ground motion simulation and approaches for simulation validation.πππ
π https://t.me/OpenSeesCommunity2
π https://t.me/OpenSeesCommunity2
It is established beyond doubt that a structureβs behavior forms by selecting appreciable elements in modeling process. It takes a little practice to know when to use the different commands for different behaviors. I denominate this skill " Main Idea of Simulation ".
From my own perspective, the SFI_MVLEM command has a more profound impact on the accuracy growth of a RC Wall simulation. The SFI_MVLEM command is used to construct a Shear-Flexure Interaction Multiple-Vertical-Line-Element Model (SFI-MVLEM, Kolozvari et al., 2015a, b, c), which captures interaction between axial/flexural and shear behavior of RC structural walls and columns under cyclic loading. So, what you need is to know an important point, in case of using this command. In near future, i will aptly elucidate my viewpoint through one outstanding reason/idea.πππ
π https://t.me/OpenSeesCommunity
From my own perspective, the SFI_MVLEM command has a more profound impact on the accuracy growth of a RC Wall simulation. The SFI_MVLEM command is used to construct a Shear-Flexure Interaction Multiple-Vertical-Line-Element Model (SFI-MVLEM, Kolozvari et al., 2015a, b, c), which captures interaction between axial/flexural and shear behavior of RC structural walls and columns under cyclic loading. So, what you need is to know an important point, in case of using this command. In near future, i will aptly elucidate my viewpoint through one outstanding reason/idea.πππ
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
Let me close todayβs discussion with suggesting two appreciable points which i denominate them " Blue-Green Ideas ":
1-Do not panic for changing place of the RC Wall, in case of using SFI_MVLEM command. From my own perspective, either RC Wall is located in bay-1 or bay-2 or bay-3, you should consider it in bay-1. In other words, using this way you divide the structureβs behavior into two parts; " RC Wallβs behavior " and " RC Frameβs behavior ".
2- As may seem in the figure, bay-2 is unreal (Rigid diaphragms) and considered for connecting two mentioned parts of structure, in simulation process.πππ
π https://t.me/OpenSeesCommunity
1-Do not panic for changing place of the RC Wall, in case of using SFI_MVLEM command. From my own perspective, either RC Wall is located in bay-1 or bay-2 or bay-3, you should consider it in bay-1. In other words, using this way you divide the structureβs behavior into two parts; " RC Wallβs behavior " and " RC Frameβs behavior ".
2- As may seem in the figure, bay-2 is unreal (Rigid diaphragms) and considered for connecting two mentioned parts of structure, in simulation process.πππ
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
Install Opensees 2.5.0 + Active Tcl 8.5 + Tcl Editor (Windows 64-bit):
First uninstall all versions of ActiveTcl and Opensees which is existed in your Computer. Also erase Tcl and tcleditor folders in local Disk (C).
Then unzip attached file and accomplish steps1 to 3:
1. Copy tcleditor folder into Disk (C).
2. Install "ActiveTcl8.5.18.0.298892-win32-x86_64-threaded.exe".
3. Copy and replace OpenSees 2.5.0 (rev 6536) into "Disk C/tcleditor/bin".
4. Now, use it and enjoy!!
π https://t.me/OpenSeesCommunity
First uninstall all versions of ActiveTcl and Opensees which is existed in your Computer. Also erase Tcl and tcleditor folders in local Disk (C).
Then unzip attached file and accomplish steps1 to 3:
1. Copy tcleditor folder into Disk (C).
2. Install "ActiveTcl8.5.18.0.298892-win32-x86_64-threaded.exe".
3. Copy and replace OpenSees 2.5.0 (rev 6536) into "Disk C/tcleditor/bin".
4. Now, use it and enjoy!!
π https://t.me/OpenSeesCommunity
Telegram
Opensees Community
The Largest OpenSees Community of Iran (LOCI). Channel is managed by Dr. Afshin Alborzi.
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm
https://www.instagram.com/ledocteurafshina
YouTube: LOCI Community
Contact with administratorπ
@OpenSeesCommunity_pm