Nd = 1224e3 # Design axial internal force. Md = 0 # Bending moment design value Vd = 125e3 # Effective design shear (clause 42.2.2). Td = 0 # Torque design value. d = 0.55 # Effective depth. z = 0.9 * d # Lever arm. Asl = 9.425e-4 AsAct = 0 # reinforcement area activa AsTrsv = math.pi * (6e-3 / 2)**2 * 4 / 0.2 # reinforcement area transversal Es = 200e9 # Elastic modulus of the steel de la reinforcement pasiva. Ep = Es # Elastic modulus of the steel de la reinforcement activa. Fp = 0 # Prestressing force on the cross-section (positive if in tension). Ae = 0.01 # Area enclosed by the mid-line of the effective hollow area. ue = 1 # Perimeter of the mid-line of the effective hollow area. epsilonX = EHE_limit_state_checking.getEpsilonXEHE08(Nd, Md, Vd, Td, z, Asl, AsAct, Es, Ep, Fp, Ae, ue) gammaC = 1.5 gammaS = 1.15 fck = 30e6 fcd = fck / gammaC fyk = 500e6 fyd = fyk / gammaS Ac = 0.4 * 0.6e-4 vChi = min(2, 1 + math.sqrt(200 / (d * 1000))) Fcv = EHE_limit_state_checking.getFcvEHE08(0.15, fck, gammaC, 0.4, d, vChi, 0.0, Asl, 0.0) thetaE = EHE_limit_state_checking.getCrackAngleEHE08(Nd, Md, Vd, Td, z, Asl, AsAct, Es, Ep, Fp, Ae, ue) theta = math.radians(45) alpha = math.radians(90) beta = EHE_limit_state_checking.getBetaVcuEHE08(theta, thetaE)
Ast = math.pi * (fiRebar * 1e-3)**2 / 4 spacement = 0.30 / 4. #rebars spacement [m] angRebars = 90 #Angle formed by the joining bars with the plane of the #joint (degrees) #End data tao_rd = Vd / areaContact #design longitudinal shear stress at joint [N/m2] tao_rd_comp = 0.17 #comparison longitudinal shear stress at joint [MPa] ratio1 = round(tao_rd * 1e-6, 2) - tao_rd_comp sigma_cd = Nd / areaContact #External design tensile stress perpendicular to the #plane of the joint [N/m] shJoint = EHEverif.LongShearJoints(concrtype, steelType, unitAreaContact, roughness, dynamic, sigma_cd, Ast, spacement, angRebars) beta = shJoint.getBetaCoef() beta_comp = 0.2 ratio2 = beta - beta_comp f_ctd = concrtype.fctd() #[N/m2] f_ctd_comp = 1.20 #MPa ratio3 = round(f_ctd * 1e-6, 2) - f_ctd_comp tao_u = shJoint.getUltShearStressWithReinf(tao_rd) tao_u_comp = 0.94 ratio4 = round(tao_u * 1e-6, 2) - tao_u_comp import os
lp1 = modelSpace.newLoadPattern(name='1') lp1.newNodalLoad(2, xc.Vector([NDato, 0, 0, 0, MzDato / 10.0, MyDato / 10.0])) lp2 = modelSpace.newLoadPattern(name='2') lp2.newNodalLoad(2, xc.Vector([NDato, 0, 0, 0, 0, 0])) # We add the load case to domain. modelSpace.addLoadCaseToDomain(lp0.name) # Solution procedure analysis = predefined_solutions.plain_newton_raphson(feProblem) analOk = analysis.analyze(10) if (analOk != 0): print("Error!; failed to converge.") exit() concreteSectionShearParams = EHE_limit_state_checking.ShearController( 'ULS_shear') elements = preprocessor.getElementHandler ele1 = elements.getElement(1) scc = ele1.getSection() concreteSectionShearParams.calcVuEHE08(scc, "", EHE_materials.HA25, EHE_materials.B500S, NDato, math.sqrt(MyDato**2 + MzDato**2), 0, 0) Vu2A = concreteSectionShearParams.Vu2 loadHandler = preprocessor.getLoadHandler.removeFromDomain( "0") # Remove this load. preprocessor.resetLoadCase() loadHandler = preprocessor.getLoadHandler.addToDomain( "1") # Add the other one.
lp2.newNodalLoad(2,xc.Vector([NDato,0,0,0,0,0])) #We add the load case to domain. casos.addToDomain("0") # Solution procedure analisis= predefined_solutions.simple_newton_raphson(feProblem) analOk= analisis.analyze(10) if(analOk!=0): print "Error!; failed to converge." exit() secHAParamsCortante= EHE_limit_state_checking.ShearController('ULS_shear') elements= preprocessor.getElementLoader ele1= elements.getElement(1) scc= ele1.getSection() secHAParamsCortante.calcVuEHE08(scc,"",EHE_materials.HA25,EHE_materials.B500S,NDato,math.sqrt(MyDato**2+MzDato**2),0,0) Vu2A= secHAParamsCortante.Vu2 cargas= preprocessor.getLoadLoader.removeFromDomain("0") # Quitamos la carga. preprocessor.resetLoadCase() cargas= preprocessor.getLoadLoader.addToDomain("1") # Añadimos la otra carga.
__email__ = "*****@*****.**" fck = 25e6 gammac = 1.5 concr = EHE_materials.EHEConcrete('HA', -fck, gammac) fctd = concr.fctkEHE08() / gammac fcd = concr.fcd() * (-1) d = 1.45 b0 = 0.6 I = 0.76 S = 0.619 alphaL = 1.0 NCd = 0 Ac = 2.3 AsPas = 32 * 3.14e-4 Vu2NoFis = EHE_limit_state_checking.getVu2EHE08NoAtNoFis( fctd, I, S, b0, alphaL, NCd, Ac) Vu2SiFis = EHE_limit_state_checking.getVu2EHE08NoAtSiFis( fck, fcd, 1.5, NCd, Ac, b0, d, AsPas, 0.0) vChi = min(2, 1 + math.sqrt(200 / (d * 1000))) Sgpcd = min(min(NCd / Ac, 0.3 * fcd), 12e6) Vu2Min = EHE_limit_state_checking.getFcvMinEHE08(fck, 1.5, d, vChi, Sgpcd) * b0 * d Vu2A = EHE_limit_state_checking.getVu2EHE08NoAt(1, 2, fck, fck, 1.5, I, S, alphaL, NCd, Ac, b0, d, AsPas, 0.0) Vu2B = EHE_limit_state_checking.getVu2EHE08NoAt(2, 1, fck, fck, 1.5, I, S, alphaL, NCd, Ac, b0, d, AsPas, 0.0) ratio1 = abs((Vu2NoFis - 881.781712e3) / 881.781712e3) ratio2 = abs((Vu2SiFis - 439233) / 439233)
__copyright__= "Copyright 2015, LCPT and AOO" __license__= "GPL" __version__= "3.0" __email__= "*****@*****.**" gammas= 1.15 #Partial safety factor for steel. numBarrasEstribo= 4 areaShReinfBranchsEstribo= numBarrasEstribo*EHE_materials.Fi6 sepEstribos= 0.2 AsTrsv= areaShReinfBranchsEstribo/sepEstribos z= 0.9*0.55 alpha= math.pi/2 theta= math.pi/4 fyd= 500e6/gammas Vsu= EHE_limit_state_checking.getVsuEHE08(z,alpha,theta,AsTrsv,fyd) ratio1= abs(Vsu-111.966e3)/111.966e3 ##print "areaShReinfBranchsEstribo= ",AsTrsv*1e4," cm2" ##print "Vsu= ",Vsu/1e3," kN" ##print "ratio1= ",ratio1," kN" import os from miscUtils import LogMessages as lmsg fname= os.path.basename(__file__) if ratio1<0.01: 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.ehe import EHE_limit_state_checking as lschck #Checking material for shear limit state according to EHE08 #from materials.sia262 import SIA262_limit_state_checking as lschck #Checking material for shear limit state according to SIA262 from postprocess.config import default_config # Verificacion of shear ULS for reinf. concrete elements workingDirectory = default_config.findWorkingDirectory() + '/' execfile(workingDirectory + 'model_gen.py') #FE model generation lsd.LimitStateData.envConfig = cfg #configuration defined in script #env_config.py #Reinforced concrete sections on each element. reinfConcreteSections = RC_material_distribution.loadRCMaterialDistribution() # 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') limitStateLabel = lsd.shearResistance.label lsd.shearResistance.controller = lschck.ShearController(limitStateLabel) lsd.shearResistance.check(reinfConcreteSections, outCfg)
__author__ = "Luis C. Pérez Tato (LCPT) and Ana Ortega (AOO)" __copyright__ = "Copyright 2015, LCPT and AOO" __license__ = "GPL" __version__ = "3.0" __email__ = "*****@*****.**" fck = 30e6 fcd = fck / 1.5 Ncd = 0 b = 0.35 h = 0.7 As = 0.0 Ac = b * h - As b0 = b d = h - 0.041 Vu1 = EHE_limit_state_checking.getVu1EHE08(fck, fcd, Ncd, Ac, b0, d, math.radians(90), math.radians(45)) ratio1 = abs((Vu1 - 1.3839e6) / 1.3839e6) ''' print("Vu1= ",Vu1/1e3," kN") print("ratio1= ",ratio1) ''' import os from misc_utils import log_messages as lmsg fname = os.path.basename(__file__) if ratio1 < 1e-12: print("test ", fname, ": ok.") else: lmsg.error(fname + ' ERROR.')
Ec = 20e9 sideLength = 1.0 feProblem = xc.FEProblem() preprocessor = feProblem.getPreprocessor concrete = typical_materials.defElasticMaterial(preprocessor, 'concrete', Ec) sectionGeometryTest = preprocessor.getMaterialHandler.newSectionGeometry( "sectionGeometryTest") regions = sectionGeometryTest.getRegions concrete = regions.newQuadRegion('concrete') concrete.pMin = geom.Pos2d(0.0, 0.0) concrete.pMax = geom.Pos2d(1.0, 1.0) pt = EHE_limit_state_checking.computeEffectiveHollowSectionParameters( sectionGeometryTest, 0.5, 0.03) ratio1 = (pt.A() - 1) ratio2 = (pt.u() - 4) / 4 ratio3 = (pt.he() - 0.25) / 0.25 ratio4 = (pt.Ae() - (0.75**2)) / (0.75**2) ratio5 = (pt.ue() - 3) / 3 ''' print("A= ",A) print("u= ",u) print("he= ",he) print("Ae= ",Ae) print("ue= ",ue) print("ratio1= ",ratio1) print("ratio2= ",ratio2) print("ratio3= ",ratio3)
Nd= 1224e3 #Design axial internal force. Md= 0 #Bending moment design value Vd= 125e3 #Effective design shear (clause 42.2.2). Td= 0 #Torque design value. d= 0.55 #Effective depth. z= 0.9*d #Lever arm. Asl= 9.425e-4 AsAct= 0 #reinforcement area activa AsTrsv= math.pi*(6e-3/2)**2*4/0.2 #reinforcement area transversal Es= 200e9 #Elastic modulus of the steel de la reinforcement pasiva. Ep= Es #Elastic modulus of the steel de la reinforcement activa. Fp= 0 #Prestressing force on the cross-section (positive if in tension). Ae= 0.01 #Area enclosed by the mid-line of the effective hollow area. ue= 1 #Perimeter of the mid-line of the effective hollow area. epsilonX= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,Asl,AsAct,Es,Ep,Fp,Ae,ue) gammaC= 1.5 gammaS= 1.15 fck= 30e6 fcd= fck/gammaC fyk= 500e6 fyd= fyk/gammaS Ac= 0.4*0.6e-4 vChi= min(2,1+math.sqrt(200/(d*1000))) Fcv= EHE_limit_state_checking.getFcvEHE08(0.15,fck,gammaC,0.4,d,vChi,0.0,Asl,0.0) thetaE= EHE_limit_state_checking.getCrackAngleEHE08(Nd,Md,Vd,Td,z,Asl,AsAct,Es,Ep,Fp,Ae,ue) theta= math.radians(45) alpha= math.radians(90) beta= EHE_limit_state_checking.getBetaVcuEHE08(theta,thetaE) Vcu= EHE_limit_state_checking.getVcuEHE08(fck,fcd,gammaC,0,Ac,0.4,d,z,Asl,0.0,theta,Nd,Md,Vd,Td,Es,Ep,Fp,Ae,ue) Vu1= EHE_limit_state_checking.getVu1EHE08(fck,fcd,0,Ac,0.4,d,alpha,theta)
__author__= "Luis C. Pérez Tato (LCPT) and Ana Ortega (AOO)" __copyright__= "Copyright 2015, LCPT and AOO" __license__= "GPL" __version__= "3.0" __email__= "*****@*****.**" fck= 30e6 fcd= fck/1.5 Ncd= 0 b= 0.35 h= 0.7 As= 0.0 Ac= b*h-As b0= b d= h-0.041 Vu1= EHE_limit_state_checking.getVu1EHE08(fck,fcd,Ncd,Ac,b0,d,math.radians(90),math.radians(45)) ratio1= abs((Vu1-1.3839e6)/1.3839e6) ''' print "Vu1= ",Vu1/1e3," kN" print "ratio1= ",ratio1 ''' import os from miscUtils import LogMessages as lmsg fname= os.path.basename(__file__) if ratio1<1e-12: print "test ",fname,": ok." else: lmsg.error(fname+' ERROR.')
from __future__ import division import sys from materials.ehe import EHE_materials from materials.ehe import EHE_limit_state_checking __author__= "Luis C. Pérez Tato (LCPT)" __copyright__= "Copyright 2014, LCPT" __license__= "GPL" __version__= "3.0" __email__= "*****@*****.**" Fvd=1000e3 #Vertical load on the corbel, positive downwards (N). Fhd=100e3 #Horizontal load on the corbel, positive outwards (N). concreteCorbel= EHE_limit_state_checking.ConcreteCorbel(EHE_materials.HA35,EHE_materials.B500S,'monolitica') #Joint type according to clause 64.1.2.1. a=0.6 #Distance (m) from the applied load axis and the plane of the corbel fixation (see figure 64.1.2 on EHE-08). fck=35E6 #Characteristic value of concrete strength (Pa). fyk=500E6 #Characteristic value of steel strength (Pa). # Results dmin= concreteCorbel.getMinimumEffectiveDepth(a) dminTeor= 0.988235294118 ratio1= abs(dmin-dminTeor)/dminTeor T1d= concreteCorbel.getMainReinforcementTension(Fvd,Fhd) T1dTeor= 814285.65 ratio2= abs(T1d-T1dTeor)/T1dTeor As1= concreteCorbel.getAreaNecMainReinforcement(Fvd,Fhd) As1Teor= T1dTeor/400e6
Nd= 0 Md= 0 #Absolute value of the design bending moment. Vd= 0 #Absolute value of effective design shear (clause 42.2.2). Td= 0 #Torque design value. z= 10 #Lever arm. AsPas= 1/4 #Area of passive longitudinal reinforcement anchored at a distance greater than the effective depth of the section. AsAct= 1/8 #Area of active (prestressed) longitudinal reinforcement anchored at a distance greater than the effective depth of the section. Es= 1000 #Elastic modulus of the steel de la reinforcement pasiva (AQUI FICTICIO). Ep= 2000 #Elastic modulus of the steel de la reinforcement activa (AQUI FICTICIO). Fp= 0 #Prestressing force in the cross-section (positive if in tension). Ae= 0.01 #Area enclosed by the mid-line of the effective hollow area. ue= 1 #Perimeter of the mid-line of the effective hollow area. Md= 10 epsilonX01= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,AsPas,AsAct,Es,Ep,Fp,Ae,ue) ratio1= abs(epsilonX01-1e-3)/1e-3 Md= 0 Vd= 1 epsilonX02= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,AsPas,AsAct,Es,Ep,Fp,Ae,ue) ratio2= abs(epsilonX02-2e-3)/2e-3 Vd= 0 Td= 0.02 epsilonX03= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,AsPas,AsAct,Es,Ep,Fp,Ae,ue) ratio3= abs(epsilonX03-1e-3)/1e-3 Td= 0 Nd= -1 epsilonX04= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,AsPas,AsAct,Es,Ep,Fp,Ae,ue) ratio4= abs(epsilonX04) Nd= 2 epsilonX05= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,AsPas,AsAct,Es,Ep,Fp,Ae,ue)
#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, VDato, 0, MyDato, MzDato])) #We add the load case to domain. casos.addToDomain("0") # Solution procedure analisis = predefined_solutions.simple_newton_raphson(feProblem) analOk = analisis.analyze(10) secHAParamsCortante = EHE_limit_state_checking.ShearController('ULS_shear') secHAParamsCortante.AsTrsv = EHE_materials.Fi6 * numRamas / 0.2 # reinforcement area transversal secHAParamsCortante.theta = math.radians(45) secHAParamsCortante.alpha = math.radians(90) secHAParamsTorsion = EHE_limit_state_checking.computeEffectiveHollowSectionParameters( geomSecHA, depth / 2.0, cover) elements = preprocessor.getElementLoader ele1 = elements.getElement(1) scc = ele1.getSection() N = scc.getStressResultantComponent("N") My = scc.getStressResultantComponent("My") Vy = scc.getStressResultantComponent("Vy") Mz = scc.getStressResultantComponent("Mz")
# -*- coding: utf-8 -*- from solution import predefined_solutions from postprocess import limit_state_data as lsd from postprocess import RC_material_distribution from materials.ehe import EHE_limit_state_checking as lschck #from materials.ec2 import EC2_limit_state_checking execfile("../model_gen.py") #FE model generation setCalc = decks #set of elements for which to perform the checking #Reinforced concrete sections on each element. #reinfConcreteSections=RC_material_distribution.RCMaterialDistribution() reinfConcreteSections = RC_material_distribution.loadRCMaterialDistribution() reinfConcreteSections.mapSectionsFileName = './mapSectionsReinforcementTenStiff.pkl' #Checking material for limit state. limitStateLabel = lsd.freqLoadsCrackControl.label lsd.freqLoadsCrackControl.controller = lschck.CrackStraightController( limitStateLabel=lsd.quasiPermanentLoadsCrackControl.label) lsd.freqLoadsCrackControl.controller.analysisToPerform = predefined_solutions.simple_static_modified_newton meanFCs = lsd.quasiPermanentLoadsCrackControl.check(reinfConcreteSections, setCalc=setCalc)
Nd= 0 Md= 0 # Absolute value of the design bending moment. Vd= 0 # Absolute value of effective design shear (clause 42.2.2). Td= 0 # Torque design value. z= 10 # Lever arm. AsPas= 1/4 # Area of passive longitudinal reinforcement anchored at a distance greater than the effective depth of the section. AsAct= 1/8 # Area of active (prestressed) longitudinal reinforcement anchored at a distance greater than the effective depth of the section. Es= 1000 # Elastic modulus of the steel de la reinforcement pasiva (AQUI FICTICIO). Ep= 2000 # Elastic modulus of the steel de la reinforcement activa (AQUI FICTICIO). Fp= 0 # Prestressing force in the cross-section (positive if in tension). Ae= 0.01 # Area enclosed by the mid-line of the effective hollow area. ue= 1 # Perimeter of the mid-line of the effective hollow area. Md= 10 epsilonX01= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,AsPas,AsAct,Es,Ep,Fp,Ae,ue) ratio1= abs(epsilonX01-1e-3)/1e-3 Md= 0 Vd= 1 epsilonX02= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,AsPas,AsAct,Es,Ep,Fp,Ae,ue) ratio2= abs(epsilonX02-2e-3)/2e-3 Vd= 0 Td= 0.02 epsilonX03= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,AsPas,AsAct,Es,Ep,Fp,Ae,ue) ratio3= abs(epsilonX03-1e-3)/1e-3 Td= 0 Nd= -1 epsilonX04= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,AsPas,AsAct,Es,Ep,Fp,Ae,ue) ratio4= abs(epsilonX04) Nd= 2 epsilonX05= EHE_limit_state_checking.getEpsilonXEHE08(Nd,Md,Vd,Td,z,AsPas,AsAct,Es,Ep,Fp,Ae,ue)
0.016: 0.32, 0.02: 0.48, 0.025: 0.75 } lbIIHA25B400 = { 0.006: 0.1714, 0.008: 0.2286, 0.01: 0.2857, 0.012: 0.3429, 0.016: 0.4571, 0.02: 0.672, 0.025: 1.05 } # Rebar controller. rebarControllerPosI = EHE_limit_state_checking.RebarController( concreteCover=cCover, pos='I') rebarControllerPosII = EHE_limit_state_checking.RebarController( concreteCover=cCover, pos='II') err = 0.0 for key in lbIHA25B500: lbRef = lbIHA25B500[key] lbI = rebarControllerPosI.getNetAnchorageLength(ha25, key, b500s, beta=1.0, efficiency=1.0) err += (lbRef - lbI)**2 for key in lbIIHA25B500: lbRef = lbIIHA25B500[key]
lp0.newNodalLoad(2, xc.Vector([Nd, 0, Vd, 0, Myd, Mzd])) # We add the load case to domain. modelSpace.addLoadCaseToDomain(lp0.name) # Solution procedure analysis = predefined_solutions.plain_newton_raphson(feProblem, mxNumIter=10) analOk = analysis.analyze(10) import os fname = os.path.basename(__file__) if (analOk < 0): lmsg.error(fname + ' ERROR. Failed to converge.') quit() shearController = EHE_limit_state_checking.ShearController('ULS_shear') secHAParamsTorsion = EHE_limit_state_checking.computeEffectiveHollowSectionParametersRCSection( section) elements = preprocessor.getElementHandler scc = elements.getElement(1).getSection() shearCF = shearController.checkSection(scc, secHAParamsTorsion) Vu1 = shearController.Vu1 Vu1Ref = 1.32e6 Vcu = shearController.Vcu VcuRef = 84.2e3 + 67.2e3 Vsu = shearController.Vsu VsuRef = 25.2e3 * 400e6 / steel.fyd( ) # They don't reduce the stress on shear reinf. Vu2 = shearController.Vu2
lPatterns.addToDomain("0") # Solution procedure analisis= predefined_solutions.simple_newton_raphson(feProblem) analOk= analisis.analyze(10) concreteSectionShearParams= EHE_limit_state_checking.ShearController('ULS_shear') concreteSectionShearParams.AsTrsv= EHE_materials.Fi6*numRamas/0.2 # reinforcement area transversal concreteSectionShearParams.theta= math.radians(45) concreteSectionShearParams.alpha= math.radians(90) secHAParamsTorsion= EHE_limit_state_checking.computeEffectiveHollowSectionParameters(geomSecHA,depth/2.0,cover) elements= preprocessor.getElementHandler ele1= elements.getElement(1) scc= ele1.getSection() N= scc.getStressResultantComponent("N") My= scc.getStressResultantComponent("My") Vy= scc.getStressResultantComponent("Vy") Mz= scc.getStressResultantComponent("Mz") Vz= scc.getStressResultantComponent("Vz") NTmp= N MTmp= math.sqrt((My)**2+(Mz)**2) VTmp= math.sqrt((Vy)**2+(Vz)**2) TTmp= scc.getStressResultantComponent("Mx") concreteSectionShearParams.calcVuEHE08(scc,secHAParamsTorsion,concr,B500S,NTmp,MTmp,VTmp,TTmp)
lp0.newNodalLoad(2, xc.Vector([Nd, 0, 0, 0, Myd, Mzd])) # We add the load case to domain. modelSpace.addLoadCaseToDomain(lp0.name) # Solution procedure analysis = predefined_solutions.plain_newton_raphson(feProblem, mxNumIter=10) analOk = analysis.analyze(10) import os fname = os.path.basename(__file__) if (analOk < 0): lmsg.error(fname + ' ERROR. Failed to converge.') quit() secHAParamsFis = EHE_limit_state_checking.CrackControl('SLS_crack') elements = preprocessor.getElementHandler scc = elements.getElement(1).getSection() secHAParamsFis.computeWk(scc, concr.matTagK, steel.matTagK, concr.fctm()) ratio1 = ((secHAParamsFis.Wk - 0.383585469616e-3) / 0.383585469616e-3) ''' print("Wk= ", secHAParamsFis.Wk*1e3,"mm") print("ratio1= ", ratio1) secHAParamsFis.printParams() ''' if (abs(ratio1) < 1e-10): print('test ' + fname + ': ok.') else: lmsg.error(fname + ' ERROR.')
__copyright__= "Copyright 2015, LCPT and AOO" __license__= "GPL" __version__= "3.0" __email__= "*****@*****.**" gammas= 1.15 # Partial safety factor for steel. stirrupRebarNumber= 4 areaShReinfBranchsEstribo= stirrupRebarNumber*EHE_materials.Fi6 sepEstribos= 0.2 AsTrsv= areaShReinfBranchsEstribo/sepEstribos z= 0.9*0.55 alpha= math.pi/2 theta= math.pi/4 fyd= 500e6/gammas Vsu= EHE_limit_state_checking.getVsuEHE08(z,alpha,theta,AsTrsv,fyd, circular= False) ratio1= abs(Vsu-111.966e3)/111.966e3 ''' print("areaShReinfBranchsEstribo= ",AsTrsv*1e4," cm2") print("Vsu= ",Vsu/1e3," kN") print("ratio1= ",ratio1," kN") ''' import os from misc_utils import log_messages as lmsg fname= os.path.basename(__file__) if ratio1<0.01: print('test '+fname+': ok.') else: lmsg.error(fname+' ERROR.')
Ec= 20e9 sideLength= 1.0 feProblem= xc.FEProblem() preprocessor= feProblem.getPreprocessor concrete= typical_materials.defElasticMaterial(preprocessor, 'concrete',Ec) sectionGeometryTest= preprocessor.getMaterialHandler.newSectionGeometry("sectionGeometryTest") regions= sectionGeometryTest.getRegions concrete= regions.newQuadRegion('concrete') concrete.pMin= geom.Pos2d(0.0,0.0) concrete.pMax= geom.Pos2d(1.0,1.0) pt= EHE_limit_state_checking.computeEffectiveHollowSectionParameters(sectionGeometryTest,0.5,0.03) ratio1= (pt.A()-1) ratio2= (pt.u()-4)/4 ratio3= (pt.he()-0.25)/0.25 ratio4= (pt.Ae()-(0.75**2))/(0.75**2) ratio5= (pt.ue()-3)/3 ''' print "A= ",A print "u= ",u print "he= ",he print "Ae= ",Ae print "ue= ",ue print "ratio1= ",ratio1
####!!!!To erase e0 = preprocessor.getElementHandler.getElement(0) e1 = preprocessor.getElementHandler.getElement(1) sect1E0 = reinfConcreteSectionDistribution.getSectionDefinitionsForElement( 0)[0] sect2E0 = reinfConcreteSectionDistribution.getSectionDefinitionsForElement( 0)[1] sect1E1 = reinfConcreteSectionDistribution.getSectionDefinitionsForElement( 1)[0] sect2E1 = reinfConcreteSectionDistribution.getSectionDefinitionsForElement( 1)[1] #### #Crack checking. lsd.freqLoadsCrackControl.controller = EHE_limit_state_checking.CrackStraightController( limitStateLabel=lsd.freqLoadsCrackControl.label) lsd.freqLoadsCrackControl.controller.analysisToPerform = predefined_solutions.plain_newton_raphson lsd.LimitStateData.check_results_directory = '/tmp/' lsd.normalStressesResistance.outputDataBaseFileName = 'resVerif' ###!!! Step by step sectContainer.createRCsections(preprocessor=preprocessor, matDiagType='k') sectContainer.calcInteractionDiagrams(preprocessor=preprocessor, matDiagType='k') from postprocess import phantom_model as phm phantomModel = phm.PhantomModel(preprocessor, reinfConcreteSectionDistribution) limitStateData = lsd.freqLoadsCrackControl intForcCombFileName = limitStateData.getInternalForcesFileName() controller = limitStateData.controller meanCFs = -1.0 phantomElements = phantomModel.build(
feProblem.clearAll() #Erase all the fake stuff #Checking shear. def custom_newton_raphson(prb): solution= predefined_solutions.SolutionProcedure() solution.convergenceTestTol= 1e-6 return solution.simpleNewtonRaphson(prb) import os pth= os.path.dirname(__file__) #print "pth= ", pth if(not pth): pth= "." fname= os.path.basename(__file__) limit_state_data.shearResistance.controller= EHE_limit_state_checking.ShearController(limitStateLabel= limit_state_data.shearResistance.label) limit_state_data.shearResistance.controller.verbose= False # Don't display log messages. limit_state_data.shearResistance.controller.analysisToPerform=custom_newton_raphson cfg=default_config.EnvConfig(language='en',intForcPath= 'results/internalForces/',verifPath= 'results/verifications/',annexPath= 'annex/',grWidth='120mm') cfg.projectDirTree.workingDirectory= '/tmp/'+os.path.splitext(fname)[0] cfg.projectDirTree.createTree() limit_state_data.LimitStateData.envConfig= cfg shutil.copy(pth+'/intForce_ULS_shearResistance.csv',limit_state_data.shearResistance.getInternalForcesFileName()) #limit_state_data.LimitStateData.internal_forces_results_directory= pth+'/' #limit_state_data.LimitStateData.check_results_directory= '/tmp/' #limit_state_data.normalStressesResistance.outputDataBaseFileName= 'resVerif' outCfg= limit_state_data.VerifOutVars(listFile='N',calcMeanCF='Y') (FEcheckedModel,meanFCs)= reinfConcreteSectionDistribution.runChecking(limit_state_data.shearResistance, matDiagType="d",threeDim= True,outputCfg=outCfg)
__author__ = "Luis C. Pérez Tato (LCPT) and Ana Ortega (AOO)" __copyright__ = "Copyright 2015, LCPT and AOO" __license__ = "GPL" __version__ = "3.0" __email__ = "*****@*****.**" gammas = 1.15 #Partial safety factor for steel. numBarrasEstribo = 4 areaShReinfBranchsEstribo = numBarrasEstribo * EHE_materials.Fi6 sepEstribos = 0.2 AsTrsv = areaShReinfBranchsEstribo / sepEstribos z = 0.9 * 0.55 alpha = math.pi / 2 theta = math.pi / 4 fyd = 500e6 / gammas Vsu = EHE_limit_state_checking.getVsuEHE08(z, alpha, theta, AsTrsv, fyd) ratio1 = abs(Vsu - 111.966e3) / 111.966e3 ##print "areaShReinfBranchsEstribo= ",AsTrsv*1e4," cm2" ##print "Vsu= ",Vsu/1e3," kN" ##print "ratio1= ",ratio1," kN" import os from misc_utils import log_messages as lmsg fname = os.path.basename(__file__) if ratio1 < 0.01: print "test ", fname, ": ok." else: lmsg.error(fname + ' ERROR.')