def __init__(self,name,sectionDescr,concrType,reinfSteelType,depth,width=1.0, elemSet= None): '''Constructor. :param name: name given to the list of reinforced concrete sections. :param sectionDescr: section description. :param concrType: type of concrete (e.g. EHE_materials.HA25) :param reinfSteelType: type of reinforcement steel. :param depth: cross-section depth. :param width: cross-section width (defaults to 1.0). :param elemSet: set with the elements to which to assign the section. (defaults to None) ''' super(RCSlabBeamSection,self).__init__(name,directions= [1,2], gaussPoints= [1], elemSet= elemSet) self.sectionDescr= sectionDescr self.concrType= concrType self.reinfSteelType= reinfSteelType self.depth= depth self.width= width self.dir1PositvRebarRows= [] self.dir1NegatvRebarRows= [] self.dir2PositvRebarRows= [] self.dir2NegatvRebarRows= [] self.dir1ShReinfY= def_simple_RC_section.ShearReinforcement() self.dir1ShReinfZ= def_simple_RC_section.ShearReinforcement() self.dir2ShReinfY= def_simple_RC_section.ShearReinforcement() self.dir2ShReinfZ= def_simple_RC_section.ShearReinforcement()
def __init__(self, name='noName', sectionDescr=None, Rext=0.25, Rint=0.0, concrType=None, reinfSteelType=None): ''' Constructor. :param name: name of the section. :param Rext: external radius (defaults to 0.25). :param Rint: internal radius (defaults to 0.0). :param concrType: type of concrete (e.g. EHE_materials.HA25) :param reinfSteelType: type of reinforcement steel. ''' def_simple_RC_section.RCSectionBase.__init__( self, sectionDescr=sectionDescr, concrType=concrType, reinfSteelType=reinfSteelType, nIJ=20, nJK=5) section_properties.CircularSection.__init__(self, name, Rint=Rint, Rext=Rext) # Longitudinal reinforcement. self.mainReinf = def_simple_RC_section.LongReinfLayers( ) #list of ReinfRow data (positive face) # Transverse reinforcement. self.shReinf = def_simple_RC_section.ShearReinforcement() self.shReinf.familyName = "V"
def __init__(self, preprocessor, sectName, sectDescr, concrete, rfSteel, concrDiag, rfStDiag, geomSection, width, depth): self.concrete = concrete self.rfSteel = rfSteel self.geomSection = geomSection self.sectName = sectName self.sectDescr = sectDescr self.concrete = concrete self.rfSteel = rfSteel self.concrDiag = concrDiag self.rfStDiag = rfStDiag self.width = width self.depth = depth self.JTorsion = self.scc.getJTorsion() self.shReinfY = sHAs.ShearReinforcement() self.shReinfY.familyName = "Vy" self.shReinfZ = sHAs.ShearReinforcement() self.shReinfZ.familyName = "Vz" self.Ec = self.concrete.Ecm() self.Es = self.rfSteel.Es self.regions = self.geomSection.getRegions self.tangConcr = self.concrDiag.getTangent() self.GB = self.geomSection.getCenterOfMassGrossSection() self.AB = self.geomSection.getAreaGrossSection() self.IyB = self.geomSection.getIyGrossSection() self.IzB = self.geomSection.getIzGrossSection() self.PyzB = self.geomSection.getPyzGrossSection() self.reinforcement = self.geomSection.getReinfLayers #ListReinfLayer self.tangSteel = self.rfStDiag.getTangent() self.areaMainReinforcement = self.reinforcement.getAreaGrossSection() self.cover = self.reinforcement.getCover self.lista_fams_reinforcement = [] for f in self.reinforcement: datosFam = MainReinforcementLayer(f) self.lista_fams_reinforcement.append(datosFam) self.GH = self.geomSection.getCenterOfMassHomogenizedSection( self.tangConcr) # Center of gravity of the homogenized section self.AH = self.geomSection.getAreaHomogenizedSection( self.tangConcr) # Area of the homogenized section self.IyH = self.geomSection.getIyHomogenizedSection( self.tangConcr) # Inertia tensor of homogenized section. self.IzH = self.geomSection.getIzHomogenizedSection(self.tangConcr) self.PyzH = self.geomSection.getPyzHomogenizedSection(self.tangConcr)
#negativ: bottom face # murAligV2RCSects.dir1PositvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(8,200,rnom+12)]) # murAligV2RCSects.dir2PositvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(16,200,rnom)]) # murAligV2RCSects.dir1NegatvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(8,200,rnom+12)]) # murAligV2RCSects.dir2NegatvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(16,200,rnom)]) murAligV2RCSects.dir1PositvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(8, 200, rnom + 12)]) murAligV2RCSects.dir2PositvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(8, 200, rnom)]) murAligV2RCSects.dir1NegatvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(8, 200, rnom + 12)]) murAligV2RCSects.dir2NegatvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(8, 200, rnom)]) shear2 = rcs.ShearReinforcement(familyName="shear2", nShReinfBranches=2.0, areaShReinfBranch=areaFi16, shReinfSpacing=0.10, angAlphaShReinf=math.pi / 2.0, angThetaConcrStruts=math.pi / 4.0) murAligV2RCSects.dir2ShReinfY = shear2 diafRP1RCSects = element_section_map.RCSlabBeamSection( name='diafRP1RCSects', sectionDescr='diafragmas riostra pila', concrType=concrete, reinfSteelType=reinfSteel, depth=espDiafRP, elemSet=diafRP1) #D1: horizontal rebars #D2: vertical rebars #positiv: top face #negativ: bottom face
reinfSteelType=steel) section.nDivIJ = 10 # Longitudinal reinforcement rebarDiam = 16e-3 rebarArea = EHE_materials.Fi16 numOfRebars = 12 # Shear reinforcement shearReinfArea = EHE_materials.Fi6 shearReinfDiam = 6e-3 nBranches = 2 shearReinf = def_simple_RC_section.ShearReinforcement( familyName="sh", nShReinfBranches=nBranches, areaShReinfBranch=shearReinfArea, shReinfSpacing=0.2, angAlphaShReinf=math.pi / 2.0, angThetaConcrStruts=math.pi / 4.0) nCover = cover mainReinf = def_simple_RC_section.LongReinfLayers([ def_simple_RC_section.ReinfRow(rebarsDiam=rebarDiam, nRebars=numOfRebars, width=math.pi * (diameter - 2 * cover), nominalCover=nCover) ]) feProblem = xc.FEProblem() preprocessor = feProblem.getPreprocessor
def armaduraLosa(RCSet, recNom, arm1, arm2, arm4, arm5, arm6a, arm6b, arm7, arm8, arm9a, arm9b, arm10, ref1Inf, ref2Sup, ref3Mid, cercosRef, cercos): '''armaduras losa o riostra estribo. Diámetros armadura y separación en mm. arm1: losa, trasv inf. [diam,sep] arm2: cartabón, trasv inf. [diam,sep] arm4: voladizo, trasv inf. [diam,sep] arm5: losa, trasv sup. [diam,sep] arm6a: losa, long.inf. [diam,sep] arm6b: losa, long.inf.(2ª capa) [diam,sep]. Si=None, no aplica arm7: cartabón, long. inf. [diam,sep] arm8: voladizo, long. inf. [diam,sep] arm9a: losa, long. sup. [diam,sep] arm9b: losa, long. sup.(2ª capa) [diam,sep]. Si=None, no aplica arm10: voladizo, long. sup. [diam,sep] ref1Inf: refuerzo transversal inferior. Si=None, no aplica ref2Sup: refuerzo transversal superior. Si=None, no aplica ref3Mid: refuerzo transversal medio canto. Si=None, no aplica cercosRef: refuerzo cercos cercos: armadura de cortante en losa ''' RCSet.dir1PositvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(arm5[0], arm5[1], rnom)]) #transv. sup. RCSet.dir1NegatvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(arm1[0], arm1[1], rnom)]) #transv. inf. RCSet.dir2PositvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(arm9a[0], arm9a[1], rnom + arm5[0])]) #long. sup. RCSet.dir2NegatvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(arm6a[0], arm6a[1], rnom + arm1[0])]) #long. inf. recNomTrSup = rnom + arm5[0] + arm9a[0] if arm9b: RCSet.dir2PositvRebarRows.append( rcs.rebLayer_mm(arm9b[0], arm9b[1], recNomTrSup)) #long. sup. 2a. capa recNomTrSup += arm9b[0] if arm6b: RCSet.dir2NegatvRebarRows.append( rcs.rebLayer_mm(arm6b[0], arm6b[1], rnom + arm1[0] + arm6a[0])) #long. inf. 2a. capa if ref2Sup: RCSet.dir1PositvRebarRows.append( rcs.rebLayer_mm( ref2Sup[0], ref2Sup[1], recNomTrSup)) #refuerzo armadura transversal superior if ref1Inf: RCSet.dir1NegatvRebarRows.append( rcs.rebLayer_mm(ref1Inf[0], ref1Inf[1], rnom + arm1[0] + arm6a[0])) #refuerzo armadura transversal inferior if ref3Mid: RCSet.dir1NegatvRebarRows.append( rcs.rebLayer_mm(ref3Mid[0], ref3Mid[1], RCSet.depth / 2.)) if cercosRef: RCSet.dir2PositvRebarRows.append( rcs.rebLayer_mm(cercosRef[0], cercosRef[2], recNomTrSup)) #long. sup. 2a. capa RCSet.dir2NegatvRebarRows.append( rcs.rebLayer_mm(cercosRef[0], cercosRef[2], rnom + arm1[0] + arm6a[0])) #long. inf. 2a. capa # armadura de cortante if len(cercos) > 0: areaCercos = math.pi * (cercos[0] * 1e-3)**2 / 4. nRamas = cercos[1] separ = cercos[2] * 1e-3 if cercosRef: areaCercosRef = math.pi * (cercosRef[0] * 1e-3)**2 / 4. nRamasRef = cercosRef[1] separRef = cercosRef[2] * 1e-3 areaCercoEquiv = (nRamas * areaCercos / separ + nRamasRef * areaCercosRef / separRef) / nRamas * separ areaCercos = areaCercoEquiv RCSet.dir1ShReinfY = rcs.ShearReinforcement( familyName="sh", nShReinfBranches=nRamas, areaShReinfBranch=areaCercos, shReinfSpacing=separ, angAlphaShReinf=math.pi / 2.0, angThetaConcrStruts=math.pi / 4.0) RCSet.dir2ShReinfY = rcs.ShearReinforcement( familyName="sh", nShReinfBranches=cercos[1], areaShReinfBranch=math.pi * (cercos[0] * 1e-3)**2 / 4., shReinfSpacing=separ, angAlphaShReinf=math.pi / 2.0, angThetaConcrStruts=math.pi / 4.0)
cercos=cercos_L2) #armadura pilas pilasRCSects.dir1PositvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(lnPil[0], lnPil[1], rnom)]) pilasRCSects.dir1NegatvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(lnPil[0], lnPil[1], rnom)]) pilasRCSects.dir2PositvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(lnPil[0], lnPil[1], rnom)]) pilasRCSects.dir2NegatvRebarRows = def_simple_RC_section.LongReinfLayers( [rcs.rebLayer_mm(lnPil[0], lnPil[1], rnom)]) pilasRCSects.dir1ShReinfZ = rcs.ShearReinforcement( familyName="sh", nShReinfBranches=cercosPil[1], areaShReinfBranch=math.pi * (cercosPil[0] * 1e-3)**2 / 4., shReinfSpacing=cercosPil[2] * 1e-3, angAlphaShReinf=math.pi / 2.0, angThetaConcrStruts=math.pi / 4.0) pilasRCSects.dir2ShReinfZ = rcs.ShearReinforcement( familyName="sh", nShReinfBranches=cercosPil[1], areaShReinfBranch=math.pi * (cercosPil[0] * 1e-3)**2 / 4., shReinfSpacing=cercosPil[2] * 1e-3, angAlphaShReinf=math.pi / 2.0, angThetaConcrStruts=math.pi / 4.0) pilasRCSects.dir1ShReinfY = rcs.ShearReinforcement( familyName="sh", nShReinfBranches=cercosPil[1], areaShReinfBranch=math.pi * (cercosPil[0] * 1e-3)**2 / 4.,
areaRebar=areaFi10, rebarsSpacing=0.20, width=BCheight, nominalCover=coverForAll) layer4.nRebars = 5 layer5 = def_simple_RC_section.ReinfRow(rebarsDiam=10e-3, areaRebar=areaFi10, rebarsSpacing=0.20, width=BCheight, nominalCover=coverForAll + 0.15) layer5.nRebars = 6 shear1 = def_simple_RC_section.ShearReinforcement( familyName="sh1", nShReinfBranches=2.0, areaShReinfBranch=areaFi8, shReinfSpacing=0.15, angAlphaShReinf=math.pi / 2.0, angThetaConcrStruts=math.pi / 4.0) #end auxiliar data botColRCSects.dir1PositvRebarRows = def_simple_RC_section.LongReinfLayers( [layer1, layer2, layer3, layer4, layer5]) botColRCSects.dir1NegatvRebarRows = def_simple_RC_section.LongReinfLayers( [layer1, layer2, layer4, layer5]) botColRCSects.dir2PositvRebarRows = def_simple_RC_section.LongReinfLayers( [layer1, layer2, layer3, layer4, layer5]) botColRCSects.dir2NegatvRebarRows = def_simple_RC_section.LongReinfLayers( [layer1, layer2, layer4, layer5]) botColRCSects.dir1ShReinfY = shear1 botColRCSects.dir1ShReinfZ = shear1
reinfConcreteSectionDistribution= RC_material_distribution.RCMaterialDistribution() sections= reinfConcreteSectionDistribution.sectionDefinition execfile('../generic_layers_aux.py') #instances of element_section_map.RCSlabBeamSection 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 M1dintExtRCSects= element_section_map.RCSlabBeamSection(name='M1dintExtRCSects',sectionDescr='Módulo 1- dintel, zona extremos',concrType=concrete, reinfSteelType=reinfSteel,depth=deckTh) M1dintExtRCSects.dir1PositvRebarRows= def_simple_RC_section.LongReinfLayers([fi16s200r76]) #long. sup M1dintExtRCSects.dir1NegatvRebarRows= def_simple_RC_section.LongReinfLayers([fi16s200r85]) #long. inf. M1dintExtRCSects.dir2PositvRebarRows= def_simple_RC_section.LongReinfLayers([fi16s100r60]) #transv. sup. M1dintExtRCSects.dir2NegatvRebarRows= def_simple_RC_section.LongReinfLayers([fi25s200r60]) #transv. inf. sh1=def_simple_RC_section.ShearReinforcement(familyName= "sh1",nShReinfBranches= 4.0,areaShReinfBranch= areaFi8,shReinfSpacing= 0.25,angAlphaShReinf= math.radians(90),angThetaConcrStruts= math.radians(30)) M1dintExtRCSects.dir2ShReinfY=sh1 sections.append(M1dintExtRCSects) M1dintCentRCSects= element_section_map.RCSlabBeamSection(name='M1dintCentRCSects',sectionDescr='Módulo 1- dintel, zona central',concrType=concrete,reinfSteelType=reinfSteel,depth=deckTh) M1dintCentRCSects.dir1PositvRebarRows= def_simple_RC_section.LongReinfLayers([fi16s200r76]) #long. sup M1dintCentRCSects.dir1NegatvRebarRows= def_simple_RC_section.LongReinfLayers([fi16s200r85]) #long. inf. M1dintCentRCSects.dir2PositvRebarRows= def_simple_RC_section.LongReinfLayers([fi16s200r60]) #transv. sup. M1dintCentRCSects.dir2NegatvRebarRows= def_simple_RC_section.LongReinfLayers([fi25s200r60]) #transv. inf. sections.append(M1dintCentRCSects) M1losCimExtRCSects= element_section_map.RCSlabBeamSection(name='M1losCimExtRCSects',sectionDescr='Módulo 1- losa de cimentación, zona exterior',concrType=concrete, reinfSteelType=reinfSteel,depth=baseSlabTh) M1losCimExtRCSects.dir1PositvRebarRows= def_simple_RC_section.LongReinfLayers([fi16s200r76]) #long. sup M1losCimExtRCSects.dir1NegatvRebarRows= def_simple_RC_section.LongReinfLayers([fi16s200r76]) #long. inf.
reinfSteel = ACI_materials.A615G60 reinfSteel.gammaS = 1.0 / 0.75 lSqrtFck = concrete.getLambdaSqrtFck() lSqrtFckRef = 63.246 * ACI_materials.toPascal ratio1 = abs(lSqrtFck - lSqrtFckRef) / lSqrtFckRef bw = 12 * 0.0254 # 12 in d = 15 * 0.0254 # 15 in section = def_simple_RC_section.RCRectangularSection(name='test', concrType=concrete, reinfSteelType=reinfSteel, width=bw, depth=d / 0.9) section.shReinfY = def_simple_RC_section.ShearReinforcement( nShReinfBranches=1.0, areaShReinfBranch=0.592 * 0.0254**2, shReinfSpacing=1.0 * 0.3048) shearController = lsc.ShearController(lsd.shearResistance.label) shearController.setSection(section) Vc = shearController.getVcNoShearRebars(Nd=0.0) VcRef = 17.076 * 4.4482216e3 / 0.75 # kip->N ratio2 = abs(Vc - VcRef) / VcRef Vmax = shearController.getV_max(Nd=0.0) VmaxRef = 85.381 * 4.4482216e3 ratio3 = abs(Vmax - VmaxRef) / VmaxRef ratio4 = abs(0.0004774184 - section.shReinfY.getAs() * shearController.effectiveDepth) / 0.0004774184
NDato= 0 # Axial force when checking shear. MyDato= 1.9606e5 # Moment to check shear it's value is forced to obtain Vcu around 82.607 kN. MzDato= 0 # Moment value when checking shear. VDato= 125e3 # Shear value. # Longitudinal reinforcement rebarArea= EHE_materials.Fi20 rebarDiam= 20e-3 numOfRebars= 3 lowerRow= def_simple_RC_section.ReinfRow(areaRebar= rebarArea, width= width, nRebars= numOfRebars, nominalCover= cover-rebarDiam/2.0, nominalLatCover= cover-rebarDiam/2.0) upperRow= def_simple_RC_section.ReinfRow(areaRebar= rebarArea, width= width, nRebars= numOfRebars, nominalCover= cover-rebarDiam/2.0, nominalLatCover= cover-rebarDiam/2.0) # Transverse reinforcement diamATrsv= 6e-3 numRamas= 4 shearReinf= def_simple_RC_section.ShearReinforcement(familyName= "sh",nShReinfBranches= numRamas, areaShReinfBranch= EHE_materials.Fi6, shReinfSpacing= 0.2, angAlphaShReinf= math.pi/2.0,angThetaConcrStruts= math.pi/4.0) feProblem= xc.FEProblem() preprocessor= feProblem.getPreprocessor # Materials definition materialHandler= preprocessor.getMaterialHandler # Materials definition concr= EHE_materials.HA30 concr.alfacc= 0.85 # f_maxd= 0.85*fcd concrete long term compressive strength factor (normally alfacc=1) B500S= EHE_materials.B500S # Section geometry section= def_simple_RC_section.RCRectangularSection(name='test', width= width, depth= depth, concrType= concr, reinfSteelType= B500S) section.positvRebarRows= def_simple_RC_section.LongReinfLayers([lowerRow]) section.negatvRebarRows= def_simple_RC_section.LongReinfLayers([upperRow])
from postprocess import element_section_map # **Concrete sections #instances of element_section_map.RCSlabBeamSection that define 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= element_section_map.RCSlabBeamSection(name='deckRCSects',sectionDescr='slab of shell elements',concrType=concrete, reinfSteelType=reinfSteel,depth=deckTh,elemSet=decks) deckRCSects.dir1PositvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(12,150,35)]) deckRCSects.dir1NegatvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(12,200,35)]) deckRCSects.dir2PositvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(16,250,35)]) deckRCSects.dir2NegatvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(16,100,35)]) import math areaFi8=math.pi*0.008**2/4. shear1=rcs.ShearReinforcement(familyName= "shear1",nShReinfBranches= 1.0,areaShReinfBranch= areaFi8,shReinfSpacing= 0.20,angAlphaShReinf= math.pi/2.0,angThetaConcrStruts= math.radians(30)) shear2=rcs.ShearReinforcement(familyName= "shear2",nShReinfBranches= 1.0,areaShReinfBranch= areaFi8,shReinfSpacing= 0.15,angAlphaShReinf= math.pi/2.0,angThetaConcrStruts= math.radians(30)) deckRCSects.dir1ShReinfY=shear1 deckRCSects.dir2ShReinfY=shear2 footRCSects= element_section_map.RCSlabBeamSection(name='footRCSects',sectionDescr='footation',concrType=concrete, reinfSteelType=reinfSteel,depth=footTh,elemSet=foot) #D1: transversal rebars #D2: longitudinal rebars footRCSects.dir1PositvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(12,150,35)]) footRCSects.dir1NegatvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(12,150,35)]) footRCSects.dir2PositvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(16,150,35)]) footRCSects.dir2NegatvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(16,150,35)]) wallRCSects= element_section_map.RCSlabBeamSection(name='wallRCSects',sectionDescr='wall of shell elements',concrType=concrete, reinfSteelType=reinfSteel,depth=wallTh,elemSet=wall) wallRCSects.dir1PositvRebarRows= def_simple_RC_section.LongReinfLayers([rcs.rebLayer_mm(20,200,35)])