Пример #1
0
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)  
Пример #2
0
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.
Пример #3
0
#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")
Пример #4
0
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
Пример #5
0
# -*- 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)