平面薄膜单元.docx
《平面薄膜单元.docx》由会员分享,可在线阅读,更多相关《平面薄膜单元.docx(15页珍藏版)》请在冰豆网上搜索。
![平面薄膜单元.docx](https://file1.bdocx.com/fileroot1/2023-2/2/a189ffb9-25fe-4f3b-a02c-190834a4dfaf/a189ffb9-25fe-4f3b-a02c-190834a4dfaf1.gif)
平面薄膜单元
#N_FSW13.tcl
#
#Applyaxialloadfirst
#------------------------------
#Units:
N,mm,sec,MPa
#------------------------------
#------------------------------
#Startofmodelgeneration
#------------------------------
#4.1
#------------------------------------------------------------------------------
#CreateModelBuilderforbeamsandcolumns(withtwo-dimensionsand3DOF/node)
#------------------------------------------------------------------------------
modelbasic-ndm2-ndf3
#---------------------------------------------------------
#Createnodesneededforbeamsandcolumns(3dof)
#---------------------------------------------------------
#setdimensionofthewallandmesh
setL1068;
setH1068;
setdeltaL356;
setdeltaH356;
setnL[expr$L/$deltaL];
setnH[expr$H/$deltaH];
sett76.2;
setbeamTypenonlinearBeamColumn
#Createnodesforbeamsandcolumns
#tagXY
setnodeStartID[expr($nH+1)*($nL+1)+1];
seteleStartID[expr$nH*$nL+1]
setj0;
while{$j<[expr$nH+1]}{
if{$j<[expr$nH]}{
node[expr$nodeStartID+$j*2]0.0[expr$deltaH*$j]
node[expr$nodeStartID+$j*2+1][expr$L][expr$deltaH*$j]
}else{
seti0;
while{$i<[expr$nL+1]}{
node[expr$nodeStartID+$j*2+$i][expr$i*$deltaL][expr$H]
seti[expr$i+1]
}
}
setj[expr$j+1]
}
node273560.0
node287120.0
#--------------------------------------------------
#Definematerialsfornonlinearcolumnsandbeams
#--------------------------------------------------
#CONCRETEtagf'cec0f'cuecu
#Coreconcrete(confined)
uniaxialMaterialConcrete011-64.7-0.0024-13.0-0.006
#Coverconcrete(unconfined)
uniaxialMaterialConcrete012-57.0-0.002-0.0-0.005
#STEEL
#Reinforcingsteel
setfy370.0;#Yieldstressfor#7bar
setE216082.0;#Young'smodulus
#tagfyE0b
uniaxialMaterialSteel013$fy$E0.023
#uniaxialMaterialSteelZ013$fy$E49.750.033
#-----------------------------------------------
#Definecross-sectionfornonlinearcolumns
#-----------------------------------------------
#setsomeparamaters
setcolWidth152.4
setcolDepth152.4
setcover20.0
setAs126.7;#areaofno.4bars
#somevariablesderivedfromtheparameters
setcy1[expr$colDepth/2.0]
setcz1[expr$colWidth/2.0]
sectionFiber1{
#Createtheconcretecorefibers
patchrect1101[expr$cover-$cy1][expr$cover-$cz1][expr$cy1-$cover][expr$cz1-$cover]
#Createtheconcretecoverfibers(top,bottom,left,right)
patchrect2101[expr-$cy1][expr$cz1-$cover]$cy1$cz1
patchrect2101[expr-$cy1][expr-$cz1]$cy1[expr$cover-$cz1]
patchrect221[expr-$cy1][expr$cover-$cz1][expr$cover-$cy1][expr$cz1-$cover]
patchrect221[expr$cy1-$cover][expr$cover-$cz1]$cy1[expr$cz1-$cover]
#Createthereinforcingfibers(4layers)
layerstraight33$As[expr$cy1-$cover][expr$cz1-$cover][expr$cy1-$cover][expr$cover-$cz1]
layerstraight33$As[expr$cover-$cy1][expr$cz1-$cover][expr$cover-$cy1][expr$cover-$cz1]
}
#-----------------------------------------------
#Definecross-sectionfornonlinearbeams
#-----------------------------------------------
#setsomeparamaters
setbeamWidth152.4
setbeamDepth152.4
#somevariablesderivedfromtheparameters
setby1[expr$beamDepth/2.0]
setbz1[expr$beamWidth/2.0]
sectionFiber2{
#Createtheconcretecorefibers
patchrect1101[expr$cover-$by1][expr$cover-$bz1][expr$by1-$cover][expr$bz1-$cover]
#Createtheconcretecoverfibers(top,bottom,left,right)
patchrect2101[expr-$by1][expr$bz1-$cover]$by1$bz1
patchrect2101[expr-$by1][expr-$bz1]$by1[expr$cover-$bz1]
patchrect221[expr-$by1][expr$cover-$bz1][expr$cover-$by1][expr$bz1-$cover]
patchrect221[expr$by1-$cover][expr$cover-$bz1]$by1[expr$bz1-$cover]
#Createthereinforcingfibers(2layers)
layerstraight33$As[expr$by1-$cover][expr$bz1-$cover][expr$by1-$cover][expr$cover-$bz1]
layerstraight33$As[expr$cover-$by1][expr$bz1-$cover][expr$cover-$by1][expr$cover-$bz1]
}
#-------------------------------------------------------
#Definecolumnelements
#-------------------------------------------------------
geomTransfLinear1
setnp3
setiterNum10
setiterTol1e-3
setj0;
while{$j<[expr$nH]}{
if{$j<[expr$nH-1]}{
#definethecolumnselements
element$beamType[expr$eleStartID+$j*2][expr$nodeStartID+$j*2][expr$nodeStartID+$j*2+2]$np11-iter$iterNum$iterTol
element$beamType[expr$eleStartID+$j*2+1][expr$nodeStartID+$j*2+1][expr$nodeStartID+$j*2+3]$np11-iter$iterNum$iterTol
}else{
element$beamType[expr$eleStartID+$j*2][expr$nodeStartID+$j*2][expr$nodeStartID+$j*2+2]$np11-iter$iterNum$iterTol
element$beamType[expr$eleStartID+$j*2+1][expr$nodeStartID+$j*2+1][expr$nodeStartID+$nH*2+$nL]$np11-iter$iterNum$iterTol
}
setj[expr$j+1]
}
#----------------------------------------------------------
#Definebeamelments
#---------------------------------------------------------
geomTransfLinear2
setj[expr$nH];
setbA48000;
setbE2e15;
setbI1e10;
seti0;
while{$i<[expr$nL]}{
element$beamType[expr$eleStartID+$j*2+$i][expr$nodeStartID+$j*2+$i][expr$nodeStartID+$j*2+1+$i]$np22-iter$iterNum$iterTol
#elementelasticBeamColumn[expr$eleStartID+$j*2+$i][expr$nodeStartID+$j*2+$i][expr$nodeStartID+$j*2+1+$i]$bA$bE$bI2
seti[expr$i+1]
}
element$beamType191727$np22-iter$iterNum$iterTol
element$beamType202728$np22-iter$iterNum$iterTol
element$beamType212818$np22-iter$iterNum$iterTol
#4.2
#-------------------------------------------------------------------------
#CreateModelBuilderfor2Delement(withtwo-dimensionsand2DOF/node)
#-------------------------------------------------------------------------
modelbasic-ndm2-ndf2
#Createnodes&addtoDomain-command:
nodenodeIdxCrdyCrd
setj0;
while{$j<[expr$nH+1]}{
seti0;
while{$i<[expr$nL+1]}{
node[expr$j*($nL+1)+$i+1][expr$i*$deltaL][expr$j*$deltaH]
seti[expr$i+1]
}
setj[expr$j+1]
}
#fixoneendasapin,theotherendasaroller
fix111
fix401
#tienodesbetweenbeam,columnand2Delements
equalDOF11712
equalDOF41812
equalDOF51912
equalDOF82012
equalDOF92112
equalDOF122212
equalDOF132312
equalDOF142412
equalDOF152512
equalDOF162612
equalDOF22712
equalDOF32812
#-----------------------------------------------------------------
#Definematerialsfor2DReinforceConcretePlaneStresselement
#-----------------------------------------------------------------
#setfcfyE
setwfc57.0;
setwfy419.2;
setwE187544.0;
setrou10.0023;
setrou20.0023;
#UniaxialMaterial:
steelZ01
#tagfyE0fpcrou
uniaxialMaterialSteelZ0111$wfy$wE$wfc$rou1
uniaxialMaterialSteelZ0112$wfy$wE$wfc$rou2
#UniaxialMaterial:
concreteZ01
#ConcreteZ01tagf'cec0
uniaxialMaterialConcreteZ0113[expr-$wfc]-0.0025
uniaxialMaterialConcreteZ0114[expr-$wfc]-0.0025
setpi3.141592654
#NDMaterial:
ReinforceConcretePlaneStress
#tagrhos1s2c1c2angle1angle2rou1rou2fpcfyE0
nDMaterialFAReinforcedConcretePlaneStress150.011121314[expr0.0*$pi][expr0.5*$pi]$rou1$rou2$wfc$wfy$wE0.002
#-----------------------------------------------------------------
#Define2DReinforceConcretePlaneStresselement
#-----------------------------------------------------------------
setj0;
while{$j<$nH}{
seti0;
while{$i<$nL}{
#Createquadelements-command:
#elementquadeleIDnode1node2node3node4thicktypematID
elementquad[expr$j*$nL+$i+1][expr$j*($nL+1)+$i+1][expr$j*($nL+1)+$i+2][expr($j+1)*($nL+1)+$i+2][expr($j+1)*($nL+1)+$i+1]$tPlaneStress15
seti[expr$i+1]
}
setj[expr$j+1]
}
#4.3
#---------------------------
#Definehorizontalloads
#---------------------------
setN89000.0;
#CreateaPlainloadpatternwithalinearTimeSeries
patternPlain1"Linear"{
#Createthenodalload-command:
loadnodeIDxForceyForce
load130[expr-$N]
load160[expr-$N]
}
#4.4
#------------------------------
#Endofmodelgeneration
#------------------------------
#------------------------------
#Startofanalysisgeneration
#------------------------------
#Createthesystemofequation,asparsesolverwithpartialpivoting
systemBandGeneral
#Createtheconstrainthandler
constraintsPlain
#CreatetheDOFnumberer
numbererPlain
#Createtheconvergencetest
testNormDispIncr1.0e-4101
#Createthesolutionalgorithm
algorithmKrylovNewton
#Createtheintegrationscheme,theDisplacementControlscheme
integratorLoadControl0.1
#Createtheanalysisobject
analysisStatic
#initializeincaseweneedtodoaninitialstiffnessiteration
#initialize
#------------------------------
#Endofanalysisgeneration
#------------------------------
#Createarecordertomonitornodaldisplacements
#recorderNode-fileN_FSW13.out-time-node15-dof123disp
#performtheanalysis
analyze10
#Printoutthestateofnodes,ifwanted
#printnode1314151626272818
#Printoutthestateofelements,ifwanted
#printele4
#4.5
#Setthegravityloadstobeconstant&resetthetimeinthedomain
loadConst-time0.0
#----------------------------------------------------
#EndofModelGeneration&InitialGravityAnalysis
#----------------------------------------------------
#----------------------------------------------------
#Startofadditionalmodelingforlat