from materials.ec3 import EC3_limit_state_checking as EC3lsc
from materials.ec3 import EC3_materials

S355JR= EC3_materials.S355JR
gammaM0= 1.05
S355JR.gammaM= gammaM0 
IPE400= EC3_materials.IPEShape(S355JR,"IPE_400")


# Geometry
k1= 1.0; k2= 1.0
#Check results page 32
L= 6.0 # Bar length (m)
x= [0.0,0.25*L,0.5*L,0.75*L,1.0*L]
M= [-93.7,0,114.3,0,111.4]
Mi=intp.interpEquidistPoints(xi=x,yi=M,nDiv=4)
mgf= EC3lsc.MomentGradientFactorC1(Mi)
Mcr1= IPE400.getMcr(L,Mi)
Mcr1Teor= 164.7e3

ratio1= abs(Mcr1-Mcr1Teor)/Mcr1Teor
#NOTE: Here there is a big difference between the results
# from Lopez-Serna method
# 317 kN.m and those from the paper 164.7 kN.m
# In theory results from Lopez-Serna method are safe enough.

#Check results page 34
L= 3 # Bar length (m)
x= [0.0,0.25*L,0.5*L,0.75*L,1.0*L]
M= [-93.7e3,-93.7e3/2.0,0.0,114.3e3/2.0,114.3e3]
Mi=intp.interpEquidistPoints(xi=x,yi=M,nDiv=4)
import geom
import xc
from materials.ec3 import EC3_limit_state_checking as EC3lsc
from geom_utils import interpolation as intp

__author__= "Luis C. Pérez Tato (LCPT)"
__copyright__= "Copyright 2014, LCPT"
__license__= "GPL"
__version__= "3.0"
__email__= "*****@*****.**"


supportCoefs= EC3lsc.SupportCoefficients(k1= 1.0,k2= 1.0)
x= [0.0,0.25,0.5,0.75,1.0]
M= [50,122.5,105,-2.5,-200]
Mi=intp.interpEquidistPoints(xi=x,yi=M,nDiv=4)
mgf1= EC3lsc.MomentGradientFactorC1(Mi)
C11= mgf1.getC1(supportCoefs)
C11Teor= math.sqrt(35*200**2/(200**2+9*122.5**2+16*105**2+9*2.5**2))
x= [0.0,0.25,0.4,0.5,0.75,1.0]
M= [150,260,283.5,280,210,50]
Mi=intp.interpEquidistPoints(xi=x,yi=M,nDiv=4)
mgf2= EC3lsc.MomentGradientFactorC1(Mi)
C12= mgf2.getC1(supportCoefs)
C12Teor= math.sqrt(35*283.5**2/(283.5**2+9*260**2+16*280**2+9*210**2))

ratio1= abs(C11-C11Teor)/C11Teor
ratio2= abs(C12-C12Teor)/C12Teor

# print 'C1= ', C11
# print 'C1Teor= ', C11Teor
Exemple #3
0
        x.append(xi)
        M.append(float(Mi))
        xi += step
    return [x, M]


supportCoefs = EC3lsc.SupportCoefficients(k1=1.0, k2=1.0)
nDiv = 20
step = 2 / nDiv
psi = list()
c1 = list()
psii = -1.0
C1i = 0.0
for i in range(1, nDiv + 2):
    mD = caseASampleMoments(5.0, 10.0, psii)
    Mi = intp.interpEquidistPoints(xi=mD[0], yi=mD[1], nDiv=4)
    mgf = EC3lsc.MomentGradientFactorC1(Mi)
    C1i = mgf.getC1(supportCoefs)
    psi.append(psii)
    c1.append(C1i)
    psii += step

C1Teor = [
    2.4494897427831783, 2.5202394341199024, 2.551789158017712,
    2.539514968727602, 2.485250608738542, 2.3965787580611124,
    2.284160962880643, 2.158748288883464, 2.0291986247835694,
    1.9017865941611045, 1.7803963942770489, 1.6670801802983037,
    1.5626453420774271, 1.4671286132146033, 1.3801311186847085,
    1.301036207838119, 1.229142533193964, 1.1637407889826492,
    1.1041549711386875, 1.0497621901901266, 1.0
]
    x.append(xi)
    M.append(float(Mi))
    xi+= step
  return [x,M]


supportCoefs= EC3lsc.SupportCoefficients(k1= 1.0,k2= 1.0)
nDiv= 20
step= 2/nDiv
psi=list()
c1=list()
psii= -1.0
C1i= 0.0
for i in range(1,nDiv+2): 
  mD= caseASampleMoments(5.0,10.0,psii)
  Mi=intp.interpEquidistPoints(xi=mD[0],yi=mD[1],nDiv=4)
  mgf= EC3lsc.MomentGradientFactorC1(Mi)
  C1i= mgf.getC1(supportCoefs)
  psi.append(psii)
  c1.append(C1i)
  psii+= step

C1Teor=  [2.4494897427831783, 2.5202394341199024, 2.551789158017712, 2.539514968727602, 2.485250608738542, 2.3965787580611124, 2.284160962880643, 2.158748288883464, 2.0291986247835694, 1.9017865941611045, 1.7803963942770489, 1.6670801802983037, 1.5626453420774271, 1.4671286132146033, 1.3801311186847085, 1.301036207838119, 1.229142533193964, 1.1637407889826492, 1.1041549711386875, 1.0497621901901266, 1.0]
ratio1= 0
sz= len(C1Teor)
for i in range(0,sz):
  ratio1+= (c1[i]-C1Teor[i])**2

ratio1= math.sqrt(ratio1)

# print 'psi= ', psi