Opensees Community
1.11K subscribers
500 photos
158 videos
62 files
166 links
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
Download Telegram
Mrs Alicia asked a quite surprising question about the equation mentioned above for Zerolength Element command. Here, you can read her question and my answer!!

@OpenSeesCommunity

Mrs Alicia: As i understood, consideration of mentioned equation is essential for both of nodes which linked by Zerolength Element. Right?

Answer: No, Consideration of mentioned equation for only one of nodes which linked by Zerolength Element, would be enough.
Also, it should be carefully considered that nodal degrees-of-freedom corresponding to the defined material directions, for one (both) of nodes which linked by Zerolength Element, should be released.

@OpenSeesCommunity
According to users requests about the equation mentioned above for ZeroLength Element command, take the following model for instance:

Units: Kips, Inches, second

model BasicBuilder -ndm 3 -ndf 6

node 1 0.000 277.850 0.000 ;
node 100 0.000 277.850 0.000 ;
fix 1 0 1 1 1 1 1 ;
fix 100 0 1 0 0 0 0 ;
equalDOF 100 1 1 ;
uniaxialMaterial ElasticPPGap 2 381.800 -334.100 -0.5 ;

element zeroLength 1 1 100 -mat 2 - dir 3 ;


Equation cotrol in node 1 :

5 + 1 = 6 Right

πŸ†” https://t.me/OpenSeesCommunity
The father of fuzzy logic, Professor Lotfi Asker Zadeh has passed away. He is best known for proposing the fuzzy mathematics in the 1960s.
The thing to remember about fuzzy logic is that it is not the same as probability. Not even a little bit the same.
May peace be on him and condolences to his dear family, colleagues and the scientifics community at large for this loss.
As i accounted an equation for Zero-Length Element command a little while ago, take the example 2 for instance:

Units: Kips, Inches, second

model BasicBuilder -ndm 2 -ndf 3

node 1 0.000 277.850 0.000 ;
node 100 0.000 277.850 0.000 ;
equalDOF 1 100 1 2 ;
uniaxialMaterial Steel02 300 42.06 29007 0.029 18.5 0.925 0.15 ;

element zeroLength 1 1 100 -mat 300 - dir 6 ;


Equation cotrol in node 1 :

2 + 1 = 3 Right

πŸ†” https://t.me/OpenSeesCommunity
Sometimes we are going to accomplish Three-dimensional simulation of a bridge that has a continuous concrete deck with the bents being integral, and the dual-column bent caps for the bridge are supported by reinforced concrete columns.
Today, i wanna begin talking about a special way of fusing, or some people might say, confusing, bridge bent caps and unreal elastic beams. It means, in order to prevent bending of the bent caps in the model about the global vertical axis, another element is introduced with large EI values that restricts bending only about the vertical axis.
It goes without saying that the bridge bent cap and unreal elastic beam are both connected to two same nodes. But that's pretty much where the similarities end.
This way approximates the behavior of the bent cap being integral to the superstructure.

πŸ†” https://t.me/OpenSeesCommunity
As i accounted for a new special way of fusing, bridge bent caps and unreal elastic beams, to three-dimensional simulation of bridge a little while ago, take example 3 for instance:

# Units: Kips, Inches , Second

model BasicBuilder -ndm 3 -ndf 6

# Bent Nodes/Masses
node 200 432.000 290.250 0.000;
node 201 432.000 290.250 63.500;
node 202 432.000 290.250 131.500;
node 203 432.000 290.250 199.500;
node 204 432.000 290.250 267.500;
node 205 432.000 290.250 335.500;
node 206 432.000 290.250 399.000;
mass 200 0.0067724 0.0067724 0.0067724 0.0 0.0 0.0;
mass 201 0.0140248 0.0140248 0.0140248 0.0 0.0 0.0;
mass 202 0.0145047 0.0145047 0.0145047 0.0 0.0 0.0;
mass 203 0.0145047 0.0145047 0.0145047 0.0 0.0 0.0;
mass 204 0.0145047 0.0145047 0.0145047 0.0 0.0 0.0;
mass 205 0.0140248 0.0140248 0.0140248 0.0 0.0 0.0;
mass 206 0.0067724 0.0067724 0.0067724 0.0 0.0 0.0;

# Cover Concrete
# fc1U=-4.29 ksi
# eps1U=-0.002023 in./in.
# fc2U=0.0 ksi
# eps2U=-0.005 in./in.
# Ec=3733.391219789322 ksi
uniaxialMaterial Concrete01 4 -4.290 -0.002023 0.0 -0.005 ;

# Core Concrete
# fc1C=-4.464 ksi
# eps1C=-0.002433 in./in.
# eps2C=-0.010 in./in.
uniaxialMaterial Concrete04 3 -4.464 -0.002433 -0.01 3733.4 0.0 0.0 0.0 ;

# Reinforcing Steel
# Fy=40.0 ksi
# Fu=40.0 ksi
# Es=29000.0 ksi
# ey=0.001379
# eu=0.2 in./in.
uniaxialMaterial Hysteretic 5 20.0 0.0006897 40.0 0.0013793 40.0 0.20 -20.0 -0.0006897 -40.0 -0.0013793 -40.0 -0.20 1.0 1.0 0.0 0.0 0.0 ;

# Bent Dimensions: H=60.5 , B=16.0 ;
section fiberSec 2300 { ;
# Define the core patch
patch quad 3 16 16 -28.115000000000002 5.865 -28.115000000000002 -5.865 25.615000000000002 -5.865 25.615000000000002 5.865
# Define the four cover patches
patch quad 4 1 4 -30.25 8.0 -28.115000000000002 5.865 25.615000000000002 5.865 30.25 8.0
patch quad 4 1 4 -28.115000000000002 -5.865 -30.25 -8.0 30.25 -8.0 25.615000000000002 -5.865
patch quad 4 4 1 -30.25 8.0 -30.25 -8.0 -28.115000000000002 -5.865 -28.115000000000002 5.865
patch quad 4 4 1 25.615000000000002 5.865 25.615000000000002 -5.865 30.25 -8.0 30.25 8.0

# Define reinfocement layers
# Top layer
layer straight 5 3 1.27 25.615000000000002 5.865 25.615000000000002 -5.865; # top layer reinforcement
# Top middle layer
layer straight 5 2 0.2 7.949999999999999 5.865 7.949999999999999 -5.865; # top layer reinforcement
# Bottom middle layer
layer straight 5 2 0.2 -10.45 5.865 -10.45 -5.865; # bottom layer reinforcement
# Bottom layer
layer straight 5 3 1.27 -28.115000000000002 5.865 -28.115000000000002 -5.865; # bottom layer
reinfocement
}; # end of fibersection definition
uniaxialMaterial Elastic 2310 1.0e+010
section Aggregator 2320 2310 T -section 2300
geomTransf Linear 2330 -1 0 0

# Bent Elements
element dispBeamColumn 200 200 201 5 2320 2330;
element dispBeamColumn 201 201 202 5 2320 2330;
element dispBeamColumn 202 202 203 5 2320 2330;
element dispBeamColumn 203 203 204 5 2320 2330;
element dispBeamColumn 204 204 205 5 2320 2330;
element dispBeamColumn 205 205 206 5 2320 2330;
element elasticBeamColumn 2020 201 202 1e-007 4e+003 1e-007 1e-007 6e+007 1e-007 2330
element elasticBeamColumn 2030 202 203 1e-007 4e+003 1e-007 1e-007 6e+007 1e-007 2330
element elasticBeamColumn 2040 203 204 1e-007 4e+003 1e-007 1e-007 6e+007 1e-007 2330
element elasticBeamColumn 2050 204 205 1e-007 4e+003 1e-007 1e-007 6e+007 1e-007 2330

πŸ†” https://t.me/OpenSeesCommunity
OpenSee 2012 - Geotechnical Modeling.mp4
323.4 MB
Prof. Pedro Arduino (University of washington) discusses geotechnical modeling and provides examples. πŸ‘‡πŸ‘‡πŸ‘‡

πŸ†” https://t.me/OpenSeesCommunity
The critiques reactions really tore the Prof. Julie Ferguson's cources (University of California) to pieces because of her extremely fascinating/controversial teaching method.
You can see what is causing all the fuss. She explains Seismic Waves.πŸ‘‡πŸ‘‡πŸ‘‡

πŸ†” https://t.me/OpenSeesCommunity
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
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
According to growth of the channel Contents, you can also join here:πŸ‘‡πŸ‘‡πŸ‘‡

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
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 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
(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
(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
Forwarded from Opensees Community
According to growth of the channel Contents, you can also join here:πŸ‘‡πŸ‘‡πŸ‘‡

https://www.instagram.com/openseescommunity