def getMinReinfAreaUnderFlexion(self,concrete,thickness): '''Return the minimun amount of bonded reinforcement to control cracking for reinforced concrete sections under flexion. :param concrete: concrete material. :param thickness: thickness of the bended member. ''' retval= SIA262_limit_state_checking.MinReinfAreaUnderFlexion(concrete,self.getEffectiveCover(),self.f1.crackControlRequirement,self.getSpacing(),thickness) return retval
def getMinReinfAreaUnderTension(self,concrete,thickness): '''Return the minimun amount of bonded reinforcement to control cracking for reinforced concrete sections under tension. :param concrete: concrete material. :param thickness: thickness of the tensioned member. ''' retval= SIA262_limit_state_checking.MinReinfAreaUnderTension(concrete,self.crackControlRequirement,self.spacing,thickness) return retval
def getVR(self,concrete,Nd,Md,b,thickness): '''Return the shear resistance of the (b x thickness) rectangular section. :param concrete: concrete material. :param Nd: design axial force. :param Md: design bending moment. :param b: width of the rectangular section. :param thickness: height of the rectangular section. ''' return SIA262_limit_state_checking.VuNoShearRebars(concrete,self.steel,Nd,Md,self.getAs(),b,self.d(thickness))
# -*- coding: utf-8 -*- import os #Project directory structure execfile("../env_config.py") from postprocess import limit_state_data as lsd from postprocess import RC_material_distribution from materials.sia262 import SIA262_limit_state_checking lsd.LimitStateData.envConfig = cfg #Reinforced concrete sections on each element. reinfConcreteSections = RC_material_distribution.loadRCMaterialDistribution() #Checking material for limit state. limitStress = 350e6 #XXX limitStateLabel = lsd.freqLoadsCrackControl.label lsd.freqLoadsCrackControl.controller = SIA262_limit_state_checking.CrackControlSIA262PlanB( limitStateLabel, limitStress) lsd.freqLoadsCrackControl.check(reinfConcreteSections)
# -*- coding: utf-8 -*- import os #Project directory structure execfile("./project_directories.py") from postprocess import limit_state_data as lsd from postprocess import RC_material_distribution from materials.sia262 import SIA262_limit_state_checking lsd.LimitStateData.internal_forces_results_directory= './'+internal_forces_results_directory lsd.LimitStateData.check_results_directory= './'+check_results_directory #Reinforced concrete sections on each element. reinfConcreteSections= RC_material_distribution.loadRCMaterialDistribution() #Checking material for limit state. limitStateLabel= lsd.shearResistance.label lsd.shearResistance.controller= SIA262_limit_state_checking.ShearController(limitStateLabel) meanFCs= lsd.shearResistance.check(reinfConcreteSections)
VdMax = max(Vd, Va) print 'Vd= ', Vd / 1e3, ' kN/m MVRd= ', MVRd / 1e3, ' kN m/m Va= ', Va / 1e3, 'kN/m VdMax= ', VdMax / 1e3, ' kN/m' #Reinforcement from materials.sia262 import SIA262_materials concrete = SIA262_materials.c50_60 reinfSteel = SIA262_materials.B500A d = 0.25 - 0.035 - 20e-3 / 2.0 As = ng_simple_bending_reinforcement.AsSimpleBending(-MdMax, -concrete.fcd(), reinfSteel.fyd(), 1.0, d) print 'As= ', As * 1e6, ' mm2' VRd = SIA262_limit_state_checking.VuNoShearRebars(concrete, reinfSteel, 0.0, -MVRd, As, 2.5 / 2.0, d) print 'VRd= ', VRd / 1e3, ' kN VdMax= ', VdMax / 1e3, ' kN' #Reinforcement 2 Md2 = beam.getBendingMomentUnderUniformLoad( qd, 0.0) + beam.getBendingMomentUnderConcentratedLoad(Qd, 1.0 - 0.2, 1.2) Ma2 = beam.getBendingMomentUnderUniformLoad( qa, 0.0) + beam.getBendingMomentUnderConcentratedLoad(Qa, 2.45 - 0.2, 1.2) MdMax2 = min(Md2, Ma2) print 'Md2= ', Md2 / 1e3, ' kN m/m Ma2= ', Ma2 / 1e3, 'kN m/m MdMax2= ', MdMax2 / 1e3, ' kN m/m' As2 = ng_simple_bending_reinforcement.AsSimpleBending(-MdMax2, -concrete.fcd(), reinfSteel.fyd(), 1.0, d) print 'As2= ', As2 * 1e6, ' mm2'
MdVdMax = Md aVdMax = a xVdMax = x print 'aMdMax= ', aMdMax, ' xMdMax= ', xMdMax, ' MdMax= ', MdMax / 1e3, ' kN m/m VdMdMax= ', VMdMax / 1e3, ' kN m/m' print 'aVdMax= ', aVdMax, ' xVdMax= ', xVdMax, ' VdMax= ', VdMax / 1e3, ' kN/m MVdMax= ', MVdMax / 1e3, ' kN m/m' # fig = pyplot.figure() # ax = Axes3D(fig) # ax.scatter(sequence_containing_x_vals, sequence_containing_y_vals, sequence_containing_z_vals) # pyplot.show() #Reinforcement from materials.sia262 import SIA262_materials from materials.sia262 import SIA262_limit_state_checking concrete = SIA262_materials.c50_60 reinfSteel = SIA262_materials.B500A b = 1.0 d = 0.8 * 0.25 As = ng_simple_bending_reinforcement.AsSimpleBending(MdMax, -concrete.fcd(), reinfSteel.fyd(), b, d) print 'Bending As= ', As * 1e6, ' mm2' VRd = SIA262_limit_state_checking.VuNoShearRebars(concrete, reinfSteel, 0.0, MVdMax, As, b, d) print 'Situation Accidentelle VRd= ', VRd / 1e3, ' kN VdMax= ', VdMax / 1.35e3, ' kN'
from geotechnics import frictional_cohesional_soil as fcs from actions import load_cases from actions import combinations from actions.earth_pressure import earth_pressure #Géométrie b= 1.0 stemTopWidth= 0.25 cover= 55e-3 #Materials concrete= SIA262_materials.c30_37 steel= SIA262_materials.B500B #Typical reinforcement. A08_15= SIA262_limit_state_checking.SIARebarFamily(steel,8e-3,0.15,cover) A10_15= SIA262_limit_state_checking.SIARebarFamily(steel,10e-3,0.15,cover) A12_15= SIA262_limit_state_checking.SIARebarFamily(steel,12e-3,0.15,cover) A14_15= SIA262_limit_state_checking.SIARebarFamily(steel,14e-3,0.15,cover) A16_15= SIA262_limit_state_checking.SIARebarFamily(steel,16e-3,0.15,cover) A18_15= SIA262_limit_state_checking.SIARebarFamily(steel,18e-3,0.15,cover) A20_15= SIA262_limit_state_checking.SIARebarFamily(steel,20e-3,0.15,cover) A22_15= SIA262_limit_state_checking.SIARebarFamily(steel,22e-3,0.15,cover) A26_15= SIA262_limit_state_checking.SIARebarFamily(steel,26e-3,0.15,cover) A08_30= SIA262_limit_state_checking.SIARebarFamily(steel,8e-3,0.30,cover) A10_30= SIA262_limit_state_checking.SIARebarFamily(steel,10e-3,0.30,cover) A12_30= SIA262_limit_state_checking.SIARebarFamily(steel,12e-3,0.30,cover) A14_30= SIA262_limit_state_checking.SIARebarFamily(steel,14e-3,0.30,cover) A16_30= SIA262_limit_state_checking.SIARebarFamily(steel,16e-3,0.30,cover) A18_30= SIA262_limit_state_checking.SIARebarFamily(steel,18e-3,0.30,cover)
def getAsMinFlexion(self, concrete, epaisseur): retval = SIA262_limit_state_checking.AsMinFlexion( concrete, self.getEffectiveCover(), self.exigenceFissuration, self.ecartement, epaisseur) return retval
def getBasicAnchorageLength(self,concrete): ''' Return the basic anchorage length of the bars.''' return max(SIA262_limit_state_checking.getBasicAnchorageLength(self.getDiam(),concrete.fck,self.steel.fyd()),self.minDiams*self.diam)
__author__ = "Luis C. Pérez Tato (LCPT)" __copyright__ = "Copyright 2016, LCPT" __license__ = "GPL" __version__ = "3.0" __email__ = "*****@*****.**" ''' Wall stability ''' from materials.sia262 import SIA262_materials from materials.sia262 import SIA262_limit_state_checking from materials.sections import rebar_family from rough_calculations import ng_rc_section as rc beton = SIA262_materials.c30_37 acier = SIA262_materials.B500B A10_15 = SIA262_limit_state_checking.SIARebarFamily(acier, 10e-3, 0.15, 0.05) section = rc.RCSection(A10_15, beton, 1.0, 0.3) MR = section.getMR() VR = section.getVR(Nd=-6.17e3, Md=15.56e3) ratio1 = (MR - 50.2222855584e3) / 50.2222855584e3 ratio2 = (VR - 230.473590755e3) / 230.473590755e3 ''' print('MR= ', MR/1e3) print('ratio1= ', ratio1) print('VR= ', VR/1e3) print('ratio2= ', ratio2) ''' import os from misc_utils import log_messages as lmsg fname = os.path.basename(__file__)
# -*- coding: utf-8 -*- from postprocess import limit_state_data as lsd from postprocess import RC_material_distribution from materials.sia262 import SIA262_limit_state_checking as lscheck #Results directories execfile("../model_gen.py") #FE model generation #Reinforced concrete sections on each element. #reinfConcreteSections=RC_material_distribution.RCMaterialDistribution() #reinfConcreteSections.mapSectionsFileName='./mapSectionsReinforcement.pkl' reinfConcreteSections = RC_material_distribution.loadRCMaterialDistribution() setCalc = overallSet #set of elements for which to perform the checking limitStateLabel = lsd.normalStressesResistance.label lsd.normalStressesResistance.controller = lscheck.BiaxialBendingNormalStressController( limitStateLabel) meanFCs = lsd.normalStressesResistance.check(reinfConcreteSections, setCalc=setCalc)
def getAsMinTraction(self, concrete, epaisseur): retval = SIA262_limit_state_checking.AsMinTraction( concrete, self.exigenceFissuration, self.ecartement, epaisseur) return retval
__email__= "*****@*****.**" fctm= SIA262_materials.c25_30.fctm()/1e6 ratio1= abs(fctm-2.56496392002)/2.56496392002 concreteCover= 30e-3 ecartement= 150e-3 t= 0.30 sgAdmA= SIA262_materials.limitationContraintes("A",ecartement) ratio2= abs(sgAdmA-435e6)/435e6 sgAdmB= SIA262_materials.limitationContraintes("B",ecartement) ratio3= abs(sgAdmB-400e6)/400e6 sgAdmC= SIA262_materials.limitationContraintes("C",ecartement) ratio4= abs(sgAdmC-230e6)/230e6 kt= SIA262_materials.reductionFactorKT(t) AsTractionA= SIA262_limit_state_checking.AsMinTraction(SIA262_materials.c25_30,"A",ecartement,t) ratio5= abs(AsTractionA-1538.20924739e-6)/1538.20924739e-6 AsTractionB= SIA262_limit_state_checking.AsMinTraction(SIA262_materials.c25_30,"B",ecartement,t) ratio6= abs(AsTractionB-1672.80255653e-6)/1672.80255653e-6 AsTractionC= SIA262_limit_state_checking.AsMinTraction(SIA262_materials.c25_30,"C",ecartement,t) ratio7= abs(AsTractionC-2909.22183745e-6)/2909.22183745e-6 AsFlexionA= SIA262_limit_state_checking.AsMinFlexion(SIA262_materials.c25_30,concreteCover,"A",ecartement,t) ratio8= abs(AsFlexionA-346.647194688e-6)/346.647194688e-6 AsFlexionB= SIA262_limit_state_checking.AsMinFlexion(SIA262_materials.c25_30,concreteCover,"B",ecartement,t) ratio9= abs(AsFlexionB-376.978824223e-6)/376.978824223e-6 AsFlexionC= SIA262_limit_state_checking.AsMinFlexion(SIA262_materials.c25_30,concreteCover,"C",ecartement,t) ratio10= abs(AsFlexionC-655.615346475e-6)/655.615346475e-6 ''' print "fctm= ", fctm, " MPa" print "ratio1= ",ratio1
# -*- coding: utf-8 -*- from postprocess import limit_state_data as lsd from postprocess import RC_material_distribution from materials.sia262 import SIA262_limit_state_checking as lschck #Checking material for cracking limit state according to SIA262 execfile("../model_gen.py") #FE model generation lsd.LimitStateData.envConfig = cfg #choose env_config file: execfile("../env_config_deck.py") execfile("../env_config_abutment.py") # # variables that control the output of the checking (setCalc, # appendToResFile .py [defaults to 'N'], listFile .tex [defaults to 'N'] outCfg = lsd.VerifOutVars(setCalc=decks, appendToResFile='N', listFile='N') #Reinforced concrete sections on each element. reinfConcreteSections = RC_material_distribution.loadRCMaterialDistribution() #Checking material for limit state. limitStress = 350e6 #XXX limitStateLabel = lsd.quasiPermanentLoadsCrackControl.label lsd.quasiPermanentLoadsCrackControl.controller = lschck.CrackControlSIA262PlanB( limitStateLabel, limitStress) lsd.quasiPermanentLoadsCrackControl.check(reinfConcreteSections, outCfg)
from __future__ import division import sys from materials.sia262 import SIA262_materials from materials.sia262 import SIA262_limit_state_checking import math concrete = SIA262_materials.c30_37 concreteCover = 40e-3 rebarSpacing = 150e-3 deckThickness = 0.40 wallsThickness = 0.30 slabsThickness = 0.30 numberOfRebarsByLayer = 1 / 0.15 deckAsTraction = SIA262_limit_state_checking.AsMinTraction( concrete, 'B', rebarSpacing, deckThickness) deckTractionBarDiameter = 16e-3 deckTractionBarsArea = math.pi * (deckTractionBarDiameter / 2.0)**2 * 2 * numberOfRebarsByLayer deckAsFlexion = SIA262_limit_state_checking.AsMinFlexion( concrete, concreteCover, 'C', rebarSpacing, deckThickness) deckFlexionBarDiameter = 16e-3 deckFlexionBarsArea = math.pi * (deckFlexionBarDiameter / 2.0)**2 * numberOfRebarsByLayer deckAsFlexion = SIA262_limit_state_checking.AsMinFlexion( concrete, concreteCover, 'C', rebarSpacing, deckThickness) wallsAsTraction = SIA262_limit_state_checking.AsMinTraction( concrete, 'B', rebarSpacing, wallsThickness) wallsTractionBarDiameter = 14e-3 wallsTractionBarsArea = math.pi * (wallsTractionBarDiameter /
__email__ = "*****@*****.**" beton = SIA262_materials.c25_30 acier = SIA262_materials.B500A acier.gammaS = 1.15 #EC2 takes 500/435 Dmax = 32e-3 b = 1.0 d = 0.74 h = 0.8 Vd = 0.371e6 Md = 0.552e6 Nd = 0 rho = 0.33e-2 As = rho * h VRd = SIA262_limit_state_checking.VuNoShearRebars(beton, acier, Nd, Md, As, b, d) ratio1 = abs(VRd - 340.143003064e3) / 340.143003064e3 ''' print("rho= ", rho, " m") print("As= ", As*1e4, " cm2") print("VRd= ", VRd/1e3, " kN") print("ratio1= ", ratio1) ''' import os from misc_utils import log_messages as lmsg fname = os.path.basename(__file__) if (abs(ratio1) < 1e-11): print("test ", fname, ": ok.") else: lmsg.error(fname + ' ERROR.')
# -*- coding: utf-8 -*- from postprocess import limit_state_data as lsd from postprocess import RC_material_distribution from materials.sia262 import SIA262_limit_state_checking as lschck #Checking material for cracking limit state according to SIA262 execfile("../model_gen.py") #FE model generation lsd.LimitStateData.envConfig = cfg #choose env_config file: execfile("../env_config_deck.py") execfile("../env_config_abutment.py") # # variables that control the output of the checking (setCalc, # appendToResFile .py [defaults to 'N'], listFile .tex [defaults to 'N'] outCfg = lsd.VerifOutVars(setCalc=decks, appendToResFile='N', listFile='N') #Reinforced concrete sections on each element. reinfConcreteSections = RC_material_distribution.loadRCMaterialDistribution() #Checking material for limit state. limitStress = 350e6 #XXX limitStateLabel = lsd.freqLoadsCrackControl.label lsd.freqLoadsCrackControl.controller = lschck.CrackControlSIA262PlanB( limitStateLabel, limitStress) lsd.freqLoadsCrackControl.check(reinfConcreteSections, outCfg)
# -*- coding: utf-8 -*- from postprocess import limit_state_data as lsd from postprocess import RC_material_distribution from materials.sia262 import SIA262_limit_state_checking import os #Project directory structure execfile("../env_config.py") lsd.LimitStateData.envConfig = cfg #Reinforced concrete sections on each element. reinfConcreteSections = RC_material_distribution.loadRCMaterialDistribution() limitStateLabel = lsd.fatigueResistance.label lsd.fatigueResistance.controller = SIA262_limit_state_checking.FatigueController( limitStateLabel) lsd.fatigueResistance.check(reinfConcreteSections)
__email__= "*****@*****.**" fctm= SIA262_materials.c25_30.fctm()/1e6 ratio1= abs(fctm-2.56496392002)/2.56496392002 concreteCover= 30e-3 rebarSpacing= 150e-3 t= 0.30 sgAdmA= SIA262_materials.limitationContraintes("A",rebarSpacing) ratio2= abs(sgAdmA-435e6)/435e6 sgAdmB= SIA262_materials.limitationContraintes("B",rebarSpacing) ratio3= abs(sgAdmB-400e6)/400e6 sgAdmC= SIA262_materials.limitationContraintes("C",rebarSpacing) ratio4= abs(sgAdmC-230e6)/230e6 kt= SIA262_materials.reductionFactorKT(t) AsTractionA= SIA262_limit_state_checking.MinReinfAreaUnderTension(SIA262_materials.c25_30,"A",rebarSpacing,t) ratio5= abs(AsTractionA-1538.20924739e-6)/1538.20924739e-6 AsTractionB= SIA262_limit_state_checking.MinReinfAreaUnderTension(SIA262_materials.c25_30,"B",rebarSpacing,t) ratio6= abs(AsTractionB-1672.80255653e-6)/1672.80255653e-6 AsTractionC= SIA262_limit_state_checking.MinReinfAreaUnderTension(SIA262_materials.c25_30,"C",rebarSpacing,t) ratio7= abs(AsTractionC-2909.22183745e-6)/2909.22183745e-6 AsFlexionA= SIA262_limit_state_checking.MinReinfAreaUnderFlexion(SIA262_materials.c25_30,concreteCover,"A",rebarSpacing,t) ratio8= abs(AsFlexionA-346.647194688e-6)/346.647194688e-6 AsFlexionB= SIA262_limit_state_checking.MinReinfAreaUnderFlexion(SIA262_materials.c25_30,concreteCover,"B",rebarSpacing,t) ratio9= abs(AsFlexionB-376.978824223e-6)/376.978824223e-6 AsFlexionC= SIA262_limit_state_checking.MinReinfAreaUnderFlexion(SIA262_materials.c25_30,concreteCover,"C",rebarSpacing,t) ratio10= abs(AsFlexionC-655.615346475e-6)/655.615346475e-6 ''' print("fctm= ", fctm, " MPa") print("ratio1= ",ratio1)
#Load modulation. ts = casos.newTimeSeries("constant_ts", "ts") casos.currentTimeSeries = "ts" #Load case definition lp0 = casos.newLoadPattern("default", "0") lp0.newNodalLoad(2, xc.Vector([NDato, 0, 0, 0, MyDato, 3.55271e-15])) #We add the load case to domain. casos.addToDomain("0") # Solution procedure analisis = predefined_solutions.simple_newton_raphson(feProblem) analOk = analisis.analyze(10) secHAParamsFis = SIA262_limit_state_checking.CrackControlSIA262( 'SLS_crack', 400e6) elements = preprocessor.getElementLoader ele1 = elements.getElement(1) scc = ele1.getSection() sigma_s = secHAParamsFis.calcRebarStress(scc) ratio1 = (sigma_s - 166.925177095e6) / 166.925177095 ''' print "sigma_s= ",sigma_s/1e6, " MPa" print "ratio1= ",ratio1 ''' import os from miscUtils import LogMessages as lmsg fname = os.path.basename(__file__)
def getVR(self, concrete, Nd, Md, b, epaisseur): return SIA262_limit_state_checking.VuNoShearRebars( concrete, self.steel, Nd, Md, self.getAs(), b, self.d(epaisseur))
areaRebar=areaFi20, rebarsSpacing=sepL, nominalCover=basicCover + 12e-3) ]) sections.append(deckSections) import os pth = os.path.dirname(__file__) #print("pth= ", pth) if (not pth): pth = "." fname = os.path.basename(__file__) #Checking normal stresses. lsd.normalStressesResistance.controller = SIA262_limit_state_checking.BiaxialBendingNormalStressController( 'ULS_normalStress') cfg = default_config.EnvConfig(language='en', intForcPath='results/internalForces/', verifPath='results/verifications/', reportPath='./', resultsPath='annex/', grWidth='120mm') cfg.projectDirTree.workingDirectory = '/tmp/' + os.path.splitext(fname)[0] cfg.projectDirTree.createTree( ) # To allow copying existing internal force data into. lsd.LimitStateData.envConfig = cfg shutil.copy(pth + '/intForce_ULS_normalStressesResistance.csv', lsd.normalStressesResistance.getInternalForcesFileName()) #lsd.LimitStateData.internal_forces_results_directory= pth+'/' #lsd.LimitStateData.check_results_directory= '/tmp/' #lsd.normalStressesResistance.outputDataBaseFileName= 'ppTN'
# -*- coding: utf-8 -*- import os #Project directory structure execfile("./env_config.py") from postprocess import limit_state_data as lsd from postprocess import RC_material_distribution from materials.sia262 import SIA262_limit_state_checking lsd.LimitStateData.envConfig = cfg #Reinforced concrete sections on each element. reinfConcreteSections = RC_material_distribution.loadRCMaterialDistribution() #Checking material for limit state. limitStress = 230e6 #XXX limitStateLabel = lsd.quasiPermanentLoadsCrackControl.label lsd.quasiPermanentLoadsCrackControl.controller = SIA262_limit_state_checking.CrackControlSIA262PlanB( limitStateLabel, limitStress) lsd.quasiPermanentLoadsCrackControl.check(reinfConcreteSections)
lsd.LimitStateData.envConfig = cfg #choose env_config file: execfile("../env_config_deck.py") #execfile("../env_config_abutment.py") # #Reinforced concrete sections on each element. #reinfConcreteSections=RC_material_distribution.RCMaterialDistribution() #reinfConcreteSections.mapSectionsFileName='./mapSectionsReinforcement.pkl' reinfConcreteSections = RC_material_distribution.loadRCMaterialDistribution() #stcalc=setArmadosEstr #stcalc=setArmVol #stcalc=setArmCart #stcalc=setArmLosa #stcalc=setArmPil stcalc = setArmados #stcalc=setArmadosEstr #stcalc=setArmZapEstr #stcalc=setArmMurEstr # variables that control the output of the checking (setCalc, # appendToResFile .py [defaults to 'N'], listFile .tex [defaults to 'N'] outCfg = lsd.VerifOutVars(setCalc=stcalc, appendToResFile='N', listFile='N', calcMeanCF='N') limitState = lsd.normalStressesResistance limitState.controller = lscheck.BiaxialBendingNormalStressController( limitState.label) lsd.normalStressesResistance.check(reinfConcreteSections, outCfg)
def getBasicAnchorageLength(self, concrete): return max( SIA262_limit_state_checking.getBasicAnchorageLength( self.getDiam(), concrete.fck, self.steel.fyd()), self.minDiams * self.diam)