Beispiel #1
0
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.
Beispiel #4
0
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.
Beispiel #5
0
__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)
Beispiel #6
0
__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.')
  
Beispiel #7
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)
Beispiel #8
0
__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.')
Beispiel #9
0
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)
Beispiel #10
0
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)
Beispiel #11
0
__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.')
Beispiel #12
0
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
Beispiel #13
0
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)
Beispiel #14
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")
Beispiel #15
0
# -*- 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)
Beispiel #16
0
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]
Beispiel #18
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
Beispiel #19
0
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)
Beispiel #20
0
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.')
Beispiel #21
0
__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
Beispiel #23
0
####!!!!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(
Beispiel #24
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)  
Beispiel #25
0
__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.')