# (i.e. for shell elements we typically define two RC sections, one for each # main direction; in the case of beam elements the most common way is to define # RC sections in the front and back ends of the elements) reinfConcreteSectionDistribution = RC_material_distribution.RCMaterialDistribution( ) sections = reinfConcreteSectionDistribution.sectionDefinition #creates an RC sections container #Generic layers (rows of rebars). Other instance variables that we can define #for MainReinfLayers are coverLat and nRebars.If we define nRebars that #value overrides the rebarsSpacing barArea = 4e-4 barDiameter = math.sqrt(barArea) / math.pi reinfLayer = defSimpleRCSection.MainReinfLayer(rebarsDiam=barDiameter, areaRebar=barArea, rebarsSpacing=0.075, width=0.25, nominalCover=0.050) #instances of defSimpleRCSection.RecordRCSlabBeamSection that defines the #variables that make up THE TWO reinforced concrete sections in the two #reinforcement directions of a slab or the front and back ending sections #of a beam element reinfSteel = EHE_materials.B500S beamRCsect = defSimpleRCSection.RecordRCSlabBeamSection( name='beamRCsect', sectionDescr='beam section', concrType=concr, reinfSteelType=reinfSteel, width=sectionGeometry.b, depth=sectionGeometry.h)
concrete = SIA262_materials.c30_37 reinfSteel = SIA262_materials.B500A reinfConcreteSectionDistribution = RC_material_distribution.RCMaterialDistribution( ) sections = reinfConcreteSectionDistribution.sectionDefinition execfile('../generic_layers_aux.py') #instances of defSimpleRCSection.RecordRCSlabBeamSection that defines the #variables that make up THE TWO reinforced concrete sections in the two #reinforcement directions of a slab or the front and back ending sections #of a beam element Twofi20r50 = defSimpleRCSection.MainReinfLayer(rebarsDiam=20e-3, areaRebar=areaFi20, width=1.0, nominalCover=0.050) Twofi20r50.nRebars = 2 Twofi20r50.coverLat = 0.05 Twofi10r50 = defSimpleRCSection.MainReinfLayer(rebarsDiam=10e-3, areaRebar=areaFi10, width=1.0, nominalCover=0.050) Twofi10r50.nRebars = 2 Twofi10r50.coverLat = 0.05 cantlvRCSects = defSimpleRCSection.RecordRCSlabBeamSection( name='cantlvRCSects', sectionDescr='cantilever of shell elements', concrType=concrete,
__version__ = "3.0" __email__ = "*****@*****.**" areaFi22 = SIA262_materials.section_barres_courantes[22e-3] areaFi26 = SIA262_materials.section_barres_courantes[26e-3] datosScc1LosC = defSimpleRCSection.RecordRCSimpleSection() datosScc1LosC.sectionName = "secHA1LosC" datosScc1LosC.sectionDescr = "Deck. Central portion. Section normal to X axis." concr = EHE_materials.HA30 concr.alfacc = 0.85 #f_maxd= 0.85*fcd datosScc1LosC.concrType = concr datosScc1LosC.h = 0.35 datosScc1LosC.b = 1.0 datosScc1LosC.reinfSteelType = EHE_materials.B500S negRebRow = defSimpleRCSection.MainReinfLayer() negRebRow.setUp(nRebars=0, rebarsDiam=0.0, areaRebar=0.0, width=datosScc1LosC.b, cover=0.1) datosScc1LosC.negatvRebarRows = [negRebRow] posRebRow = defSimpleRCSection.MainReinfLayer() posRebRow.setUp(nRebars=6, rebarsDiam=26e-3, areaRebar=(areaFi22 + areaFi26) / 2.0, width=datosScc1LosC.b, cover=0.05 + 0.026 / 2.0) datosScc1LosC.positvRebarRows = [posRebRow] #datosScc1LosC.negatvRebars.setUp(0,0.0,0.0,datosScc1LosC.b,0.1)
concrete= SIA262_materials.c30_37 reinfSteel= SIA262_materials.SpecialII1956SIA161 #Define available sections for the elements (spatial distribution of RC sections). #It refers to the reinforced concrete sections associated with the element #(i.e. for shell elements we typically define two RC sections, one for each #main direction; in the case of beam elements the most common way is to define #RC sections in the front and back ends of the elements) reinfConcreteSectionDistribution= RC_material_distribution.RCMaterialDistribution() sections= reinfConcreteSectionDistribution.sectionDefinition #creates an RC sections container #Generic layers (rows of rebars). Other instance variables that we can define #for MainReinfLayers are coverLat and nRebars.If we define nRebars that #value overrides the rebarsSpacing fi10s200r44=defSimpleRCSection.MainReinfLayer(rebarsDiam=10e-3,areaRebar= areaFi10,rebarsSpacing=0.200,width=1.0,nominalCover=0.044) fi16s200r44=defSimpleRCSection.MainReinfLayer(rebarsDiam=16e-3,areaRebar= areaFi16,rebarsSpacing=0.200,width=1.0,nominalCover=0.044) fi20s200r44=defSimpleRCSection.MainReinfLayer(rebarsDiam=20e-3,areaRebar= areaFi20,rebarsSpacing=0.200,width=1.0,nominalCover=0.044) fi8s200r44=defSimpleRCSection.MainReinfLayer(rebarsDiam=8e-3,areaRebar= areaFi8,rebarsSpacing=0.200,width=1.0,nominalCover=0.044) #instances of defSimpleRCSection.RecordRCSlabBeamSection that defines the #variables that make up THE TWO reinforced concrete sections in the two #reinforcement directions of a slab or the front and back ending sections #of a beam element beamRCsect=defSimpleRCSection.RecordRCSlabBeamSection(name='beamRCsect',sectionDescr='beam section',concrType=concrete, reinfSteelType=reinfSteel,width=wbeam,depth=hbeam) beamRCsect.lstRCSects[0].positvRebarRows=[fi10s200r44] beamRCsect.lstRCSects[0].negatvRebarRows=[fi16s200r44] beamRCsect.lstRCSects[1].positvRebarRows=[fi10s200r44] beamRCsect.lstRCSects[1].negatvRebarRows=[fi16s200r44] sections.append(beamRCsect)
# Define available sections for the elements (spatial distribution of RC sections). # It refers to the reinforced concrete sections associated with the element # (i.e. for shell elements we typically define two RC sections, one for each # main direction; in the case of beam elements the most common way is to define # RC sections in the front and back ends of the elements) reinfConcreteSectionDistribution = RC_material_distribution.RCMaterialDistribution( ) sections = reinfConcreteSectionDistribution.sectionDefinition #creates an RC sections container #Generic layers (rows of rebars). Other instance variables that we can define #for MainReinfLayers are coverLat and nRebars.If we define nRebars that #value overrides the rebarsSpacing fi10s75r30 = defSimpleRCSection.MainReinfLayer(rebarsDiam=10e-3, areaRebar=areaFi10, rebarsSpacing=0.075, width=0.25, nominalCover=0.030) fi16s75r30 = defSimpleRCSection.MainReinfLayer(rebarsDiam=16e-3, areaRebar=areaFi16, rebarsSpacing=0.075, width=0.25, nominalCover=0.030) #instances of defSimpleRCSection.RecordRCSlabBeamSection that defines the #variables that make up THE TWO reinforced concrete sections in the two #reinforcement directions of a slab or the front and back ending sections #of a beam element beamRCsect = defSimpleRCSection.RecordRCSlabBeamSection( name='beamRCsect', sectionDescr='beam section',
sections = reinfConcreteSectionDistribution.sectionDefinition #execfile('../generic_layers_aux.py') execfile('../generic_fis.py') botColRCSects = defSimpleRCSection.RecordRCSlabBeamSection( name='botColRCSects', sectionDescr='fut fondation prefabriqué', concrType=concrete, reinfSteelType=reinfSteel, width=BCheight, depth=BCwidth) #auxiliar data layer1 = defSimpleRCSection.MainReinfLayer(rebarsDiam=22e-3, areaRebar=areaFi22, rebarsSpacing=coverForAll + 22e-3, width=BCheight, nominalCover=coverForAll) layer1.nRebars = 2 layer2 = defSimpleRCSection.MainReinfLayer(rebarsDiam=22e-3, areaRebar=areaFi22, rebarsSpacing=coverForAll + 22e-3, width=BCheight, nominalCover=coverForAll + 0.1) layer2.nRebars = 2 layer3 = defSimpleRCSection.MainReinfLayer(rebarsDiam=22e-3, areaRebar=areaFi22, rebarsSpacing=coverForAll + 22e-3, width=BCheight, nominalCover=coverForAll + 0.2) layer3.nRebars = 2
areaFi26 = SIA262_materials.section_barres_courantes[26e-3] areaFi30 = SIA262_materials.section_barres_courantes[30e-3] areaFi34 = SIA262_materials.section_barres_courantes[34e-3] areaFi40 = SIA262_materials.section_barres_courantes[40e-3] concrete = concrete.c35_45 #Rapport ERTEC 2013 page 10/28. reinfSteel = SIA262_materials.SpecialII1956SIA161 #Define available sections for the elements (spatial distribution of RC sections). reinfConcreteSectionDistribution = RC_material_distribution.RCMaterialDistribution( ) sections = reinfConcreteSectionDistribution.sectionDefinition #Generic layers (rows of rebars) fi8s125r30 = defSimpleRCSection.MainReinfLayer(rebarsDiam=8e-3, areaRebar=areaFi8, rebarsSpacing=0.125, width=1.0, nominalCover=0.030) fi8s125r44 = defSimpleRCSection.MainReinfLayer(rebarsDiam=8e-3, areaRebar=areaFi8, rebarsSpacing=0.125, width=1.0, nominalCover=0.044) fi10s200r44 = defSimpleRCSection.MainReinfLayer(rebarsDiam=10e-3, areaRebar=areaFi10, rebarsSpacing=0.200, width=1.0, nominalCover=0.044) fi10s250r42 = defSimpleRCSection.MainReinfLayer(rebarsDiam=10e-3, areaRebar=areaFi10, rebarsSpacing=0.250,
return retval def getPsi_sFromDiameter(phi): ''' Return factor used to modify development length based on reinforcement size according to table 25.4.2.4 of ACI 318-14. :param phi: bar diameter. ''' retval= 1.0 if(phi<standard_bars_diameters['#6']): retval= 0.8 return retval #Generic layers (rows of rebars) n2s150r45= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#2'],areaRebar= standard_bars_areas['#2'],rebarsSpacing= 0.150,width=1.0,nominalCover= 0.045) n2s150r50= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#2'],areaRebar= standard_bars_areas['#2'],rebarsSpacing= 0.150,width=1.0,nominalCover=0.050) n3s150r45= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#3'],areaRebar= standard_bars_areas['#3'],rebarsSpacing= 0.150,width=1.0,nominalCover= 0.045) n3s150r50= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#3'],areaRebar= standard_bars_areas['#3'],rebarsSpacing= 0.150,width=1.0,nominalCover=0.050) n4s150r45= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#4'],areaRebar= standard_bars_areas['#4'],rebarsSpacing= 0.150,width=1.0,nominalCover=0.040) n4s150r50= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#4'],areaRebar= standard_bars_areas['#4'],rebarsSpacing= 0.150,width=1.0,nominalCover=0.050) n5s150r45= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#5'],areaRebar= standard_bars_areas['#5'],rebarsSpacing= 0.150,width=1.0,nominalCover= 0.045) n5s150r50= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#5'],areaRebar= standard_bars_areas['#5'],rebarsSpacing= 0.150,width=1.0,nominalCover= 0.050) n6s150r45= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#6'],areaRebar= standard_bars_areas['#6'],rebarsSpacing= 0.150,width=1.0,nominalCover= 0.045) n6s150r50= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#6'],areaRebar= standard_bars_areas['#6'],rebarsSpacing= 0.150,width=1.0,nominalCover= 0.050) n7s150r45= defSimpleRCSection.MainReinfLayer(rebarsDiam=standard_bars_diameters['#7'],areaRebar= standard_bars_areas['#7'],rebarsSpacing= 0.150,width=1.0,nominalCover= 0.045)
from postprocess.xcVtk.FE_model import quick_graphics as QGrph # ***LIMIT STATE COMBINATIONS*** from actions import combinations as cc combContainer= cc.CombContainer() #Container of load combinations #Frequent combinations. combContainer.SLS.freq.add('ELSF01', '1.0*lcase01') combContainer.SLS.freq.add('ELSF02', '1.0*lcase02') # Reinforced concrete sections from materials.sections.fiber_section import defSimpleRCSection beamRCsect=defSimpleRCSection.RecordRCSlabBeamSection(name='beamRCsect',sectionDescr='beam',concrType=concrete, reinfSteelType=reinfSteel,width=width,depth=depth,elemSetName='beamSet') mainBottReinf=defSimpleRCSection.MainReinfLayer(rebarsDiam=fiBott,areaRebar=math.pi*fiBott**2/4.,width=width,nominalCover=cover) mainBottReinf.nRebars=nmbBarsBott beamRCsect.dir1NegatvRebarRows=[mainBottReinf] beamRCsect.dir2NegatvRebarRows=[mainBottReinf] #Assigning of sections from postprocess import RC_material_distribution from postprocess import element_section_map # Reinforced concrete material distribution over the elements of the FE model. # Concrete of type concrete01 with no tension branch reinfConcreteSectionDistribution= RC_material_distribution.RCMaterialDistribution() sections= reinfConcreteSectionDistribution.sectionDefinition #sections container beamRCsect.creaTwoSections() sections.append(beamRCsect) #Generation of the distribution of material extended to the elements of the
areaFi34= SIA262_materials.section_barres_courantes[34e-3] areaFi40= SIA262_materials.section_barres_courantes[40e-3] concrete= EHE_materials.HA30 concrete.alfacc=0.85 # f_maxd= 0.85*fcd concrete long term compressive strength factor (normally alfacc=1) reinfSteel= EHE_materials.B500S sccData=defSimpleRCSection.RecordRCSimpleSection() sccData.sectionName= "sccData" sccData.sectionDescr= "Prueba." sccData.concrType= concrete sccData.h= 0.5 sccData.b= 1.0 sccData.reinfSteelType= reinfSteel sccData.negatvRebarRows=[defSimpleRCSection.MainReinfLayer(rebarsDiam=40e-3,areaRebar= areaFi40,rebarsSpacing=0.15,width=1.0,nominalCover=0.25-0.19)] sccData.positvRebarRows=[defSimpleRCSection.MainReinfLayer(rebarsDiam=6e-3,areaRebar= areaFi6,rebarsSpacing=0.15,width=1.0,nominalCover=0.25-0.19)] #sccData.setMainReinfNeg(40e-3,areaFi40,0.15,0.25-0.19) #sccData.setMainReinfPos(6e-3,areaFi6,0.15,0.25-0.19) feProblem= xc.FEProblem() feProblem.logFileName= "/tmp/erase.log" # Don't print warnings. feProblem.errFileName= "/tmp/erase.err" # Don't print errors. preprocessor= feProblem.getPreprocessor sccData.defRCSimpleSection(preprocessor, 'd') param= xc.InteractionDiagramParameters() diag= sccData.defInteractionDiagramNMy(preprocessor) #from materials.sections.fiber_section import plotSectionGeometry as pg #pg.plotInteractionDiagram2D(diag)
areaFi16 = 2.01e-4 areaFi20 = 3.14e-4 areaFi25 = 4.608e-4 basicCover = 0.06 numReinfBarsT = 5 sepT = 1.0 / numReinfBarsT numReinfBarsL = 7 sepL = 1.0 / numReinfBarsL sections = reinfConcreteSections.sectionDefinition deckSections = defSimpleRCSection.RecordRCSlabBeamSection( "deck", "RC deck.", concrete, reinfSteel, 0.3) deckSections.dir2PositvRebarRows = [ defSimpleRCSection.MainReinfLayer(rebarsDiam=12e-3, areaRebar=areaFi12, rebarsSpacing=sepT, nominalCover=basicCover) ] deckSections.dir2NegatvRebarRows = [ defSimpleRCSection.MainReinfLayer(rebarsDiam=12e-3, areaRebar=areaFi12, rebarsSpacing=sepT, nominalCover=basicCover) ] deckSections.dir1PositvRebarRows = [ defSimpleRCSection.MainReinfLayer(rebarsDiam=20e-3, areaRebar=areaFi20, rebarsSpacing=sepL, nominalCover=basicCover + 12e-3) ] deckSections.dir1NegatvRebarRows = [
from model import predefined_spaces __author__ = "Luis C. Pérez Tato (LCPT) and Ana Ortega (AOO)" __copyright__ = "Copyright 2015, LCPT and AOO" __license__ = "GPL" __version__ = "3.0" __email__ = "*****@*****.**" datosScc1LosC = defSimpleRCSection.RecordRCSimpleSection() datosScc1LosC.sectionName = "secHA1LosC" datosScc1LosC.sectionDescr = "Losa. Central portion. Section normal to X axis." datosScc1LosC.concrType = EHE_materials.HA25 datosScc1LosC.depth = 0.25 datosScc1LosC.width = 1.0 datosScc1LosC.reinfSteelType = EHE_materials.B500S rebNeg = defSimpleRCSection.MainReinfLayer() rebNeg.setUp(nRebars=5, areaRebar=EHE_materials.Fi10, cover=0.025 + 0.010 + 0.010 / 2.0) datosScc1LosC.negatvRebarRows = [rebNeg] rebPos = defSimpleRCSection.MainReinfLayer() rebNeg.setUp(nRebars=5, areaRebar=EHE_materials.Fi10, cover=0.025 + 0.010 / 2.0) datosScc1LosC.positvRebarRows = [rebPos] # datosScc1LosC.nRebarsNeg= 5 # datosScc1LosC.areaRebarNeg= EHE_materials.Fi10 # datosScc1LosC.coverNeg= 0.025+0.010+0.010/2.0 # datosScc1LosC.nRebarsPos= 5 # datosScc1LosC.areaRebarPos= EHE_materials.Fi10
concrete = EHE_materials.HA30 concrete.alfacc = 0.85 # f_maxd= 0.85*fcd concrete long term compressive strength factor (normally alfacc=1) reinfSteel = EHE_materials.B500S sccData = defSimpleRCSection.RecordRCSimpleSection() sccData.sectionName = "sccData" sccData.sectionDescr = "Prueba." sccData.concrType = concrete sccData.h = 0.5 sccData.b = 1.0 sccData.reinfSteelType = reinfSteel sccData.negatvRebarRows = [ defSimpleRCSection.MainReinfLayer(rebarsDiam=40e-3, areaRebar=areaFi40, rebarsSpacing=0.15, width=1.0, nominalCover=0.25 - 0.19) ] sccData.positvRebarRows = [ defSimpleRCSection.MainReinfLayer(rebarsDiam=6e-3, areaRebar=areaFi6, rebarsSpacing=0.15, width=1.0, nominalCover=0.25 - 0.19) ] #sccData.setMainReinfNeg(40e-3,areaFi40,0.15,0.25-0.19) #sccData.setMainReinfPos(6e-3,areaFi6,0.15,0.25-0.19) feProblem = xc.FEProblem() feProblem.logFileName = "/tmp/erase.log" # Don't print warnings.
def rebars(fi,s,c): '''fi: bar diameter [mm], s: spacing [mm], c: cover [mm] ''' return defSimpleRCSection.MainReinfLayer(rebarsDiam=fi*1e-3,areaRebar= math.pi*(fi*1e-3)**2/4.0,rebarsSpacing=s*1e-3,width=1.0,nominalCover=c*1e-3)
areaFi26 = SIA262_materials.section_barres_courantes[26e-3] areaFi30 = SIA262_materials.section_barres_courantes[30e-3] areaFi34 = SIA262_materials.section_barres_courantes[34e-3] areaFi40 = SIA262_materials.section_barres_courantes[40e-3] concrete = SIA262_materials.c30_37 #Rapport ERTEC 2013 page 10/28. reinfSteel = SIA262_materials.B500B #Define available sections for the elements (spatial distribution of RC sections). reinfConcreteSectionDistribution = RC_material_distribution.RCMaterialDistribution( ) sections = reinfConcreteSectionDistribution.sectionDefinition #Generic layers (rows of rebars) fi8s150r40 = defSimpleRCSection.MainReinfLayer(rebarsDiam=8e-3, areaRebar=areaFi8, rebarsSpacing=0.150, width=1.0, nominalCover=0.040) fi8s150r50 = defSimpleRCSection.MainReinfLayer(rebarsDiam=8e-3, areaRebar=areaFi8, rebarsSpacing=0.150, width=1.0, nominalCover=0.050) fi10s150r40 = defSimpleRCSection.MainReinfLayer(rebarsDiam=10e-3, areaRebar=areaFi10, rebarsSpacing=0.150, width=1.0, nominalCover=0.040) fi10s150r50 = defSimpleRCSection.MainReinfLayer(rebarsDiam=10e-3, areaRebar=areaFi10,
execfile('generic_layers_aux.py') #instances of defSimpleRCSection.RecordRCSlabBeamSection that defines the #variables that make up THE TWO reinforced concrete sections in the two #reinforcement directions of a slab or the front and back ending sections #of a beam element deckRCSects = defSimpleRCSection.RecordRCSlabBeamSection( name='deckRCSects', sectionDescr='slab of shell elements', concrType=concrete, reinfSteelType=reinfSteel, depth=deckThickness) deckLong = defSimpleRCSection.MainReinfLayer(rebarsDiam=16e-3, areaRebar=areaFi16, rebarsSpacing=0.150, width=1.0, nominalCover=0.040) deckRCSects.dir1PositvRebarRows = [deckLong] #long. sup. deckRCSects.dir1NegatvRebarRows = [deckLong] #long. inf. deckTransv = defSimpleRCSection.MainReinfLayer( rebarsDiam=13e-3, areaRebar=(areaFi12 + areaFi14) / 2.0, rebarsSpacing=0.150, width=1.0, nominalCover=0.040) deckRCSects.dir2PositvRebarRows = [deckTransv] #transv. sup. deckRCSects.dir2NegatvRebarRows = [deckTransv] #transv. inf. deckRCSects.creaTwoSections() sections.append(deckRCSects)