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)
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.
#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")
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
# -*- 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)