Exemplo n.º 1
0
def gen_AISCbeams_from_lineSet(lineSet, mat, beamName):
    '''Return a list with a single AISCbeam generated from all the lines included in lineSet

    :param lineSet: set of lines to generate one AISCbeam
    :param mat: material for all beams
    :param beamName: beam name
    '''
    lstOneBeam = list()
    lineSet.fillDownwards()
    lstLin = [l for l in lineSet.lines]
    beamLength = 0
    for l in lstLin:
        beamLength += l.getLength()
    print('Member:' + beamName + ', length=' + str(beamLength))
    lstOneBeam.append(
        aisc.Member(name=beamName,
                    section=mat,
                    unbracedLengthX=beamLength,
                    lstLines=lstLin))
    lstOneBeam[-1].installULSControlRecorder("element_prop_recorder")
    return lstOneBeam
Exemplo n.º 2
0
def gen_AISCbeams_from_SetLines(setLines, mat, prefName):
    '''Return a list of AISCbeams generated from each line in setLines

    :param setLines: set of lines, each line generates one AISCbeam
    :param mat: material for all beams
    :param prefName: prefix for the beam names
    '''
    setMng = setLines.getPreprocessor.getSets
    lstAISCbeams = list()
    cont = 0
    for l in setLines.lines:
        nmBeam = prefName + str(cont)
        beamLength = l.getLength()
        lstAISCbeams.append(
            aisc.Member(name=nmBeam,
                        section=mat,
                        unbracedLengthX=beamLength,
                        lstLines=[l]))
        lstAISCbeams[-1].installULSControlRecorder("element_prop_recorder")
        print('Member:' + nmBeam + ', length=' + str(beamLength))
        cont += 1
    return lstAISCbeams
Exemplo n.º 3
0
inch2meter= 0.0254
MPa2ksi= 0.145038
kN2kips= 0.2248
N2kips= 0.2248e-3
kip2kN= 1.0/kN2kips
foot2meter= 0.3048
m2Toin2= 1.0/inch2meter**2

#Materials
## Steel material
steel= ASTM_materials.A500
steel.gammaM= 1.00
## Shape geometry
shape= ASTM_materials.HSSShape(steel,'HSS12X10X3/8')
## Steel column
column= aisc.Member('column', shape,20.0*foot2meter, kx= 0.8, ky= 0.8, kz= 0.8)

## Load.
Pd= 510*kip2kN

## Compressive strength
Pu= column.getDesignCompressiveStrength()
PuRef= 2309144.43171 #518*kip2kN*1e3
ratio= abs(Pu-PuRef)/PuRef

'''
print('Pd= ',Pd/1e3,' kN / (',Pd*N2kips,'kips)')
print('Pu= ',Pu/1e3,' kN / (',Pu*N2kips,'kips)')
print('PuRef= ',PuRef/1e3,' kN / (',PuRef*N2kips,'kips)')
print('ratio= ',ratio)
'''
Exemplo n.º 4
0
analysis = predefined_solutions.simple_static_linear(steelBeam)

## Shear strength
preprocessor.resetLoadCase()
preprocessor.getLoadHandler.addToDomain('combULS01')
result = analysis.analyze(1)
nodes.calculateNodalReactions(True, 1e-7)
VMax = -1e23
VMin = -VMax
for e in xcTotalSet.elements:
    VMax = max(VMax, max(e.getV1, e.getV2))
    VMin = min(VMin, min(e.getV1, e.getV2))
VMaxRef = -(1.2 * deadLoad + 1.6 * liveLoad) * span / 2.0
ratio1 = abs((VMax - VMaxRef) / VMaxRef)

member = aisc.Member('member', shape, unbracedLengthX=span)

Aw = member.shape.getAw()
AwRef = 3.46 * inch2meter**2
ratio2 = abs((Aw - AwRef) / AwRef)
Vu = member.getDesignShearStrength()
VuRef = 0.9 * 0.6 * member.shape.steelType.fy * Aw * 1.0
ratio3 = abs((Vu - VuRef) / VuRef)
VuRefText = 0.9 * 95.5e3 * kip2kN
ratio4 = abs((Vu - VuRefText) / VuRefText)
'''
print('VMax= ',VMax/1e3,' kN (', VMax*kN2kips/1e3, 'kips)')
print('VMaxRef= ',VMaxRef/1e3,' kN (', VMaxRef*kN2kips/1e3, 'kips)')
print('ratio1= ',ratio1)
print('t= ', shape.get('t')/inch2meter, 'in')
print('Aw= ',Aw*1e4,' cm2')
Exemplo n.º 5
0
        hws.append(hw)
    # size = len(hws)

    i = hws.index(max(hws))
    shape = beamLine[i].getElements[0].getProp('crossSection')
    if beamLine[i].getCentroid().z < h_col:
        unbracedLengthX = length
        unbracedLengthZ = h_col
        unbracedLengthY = length
    else:
        unbracedLengthX = 2
        unbracedLengthZ = math.sqrt((span/2) ** 2 + dy ** 2)
        unbracedLengthY = 2
    member= aisc.Member(name= beamName, section= shape, 
            unbracedLengthX=unbracedLengthX,
            unbracedLengthY= unbracedLengthY,
            unbracedLengthZ=unbracedLengthZ,
            lstLines= beamLine) # , sectionClassif= aisc.SectionClassif.noncompact)
    aiscMembers.append(member)

for m in aiscMembers:
    m.installULSControlRecorder(recorderType="element_prop_recorder")

# Prepare to exporting reactions
def getPointAxes(p):
    xAxes= ['A','C','E','G']
    yAxes= ['1']
    j= '1'
    i= xAxes[int(round(p.x/25,0))]
    return (j, i)
result = analysis.analyze(1)
nodes.calculateNodalReactions(True, 1e-7)
MMax = -1e23
MMin = -MMax
for e in xcTotalSet.elements:
    MMax = max(MMax, max(e.getM1, e.getM2))
    MMin = min(MMin, min(e.getM1, e.getM2))
MMaxRef = -(1.2 * deadLoad[1] + 1.6 * liveLoad[1]) * span**2 / 8.0
ratio2 = abs((MMax - MMaxRef) / MMaxRef)

# Because the beam is continuously braced and compact, only the
# yielding limit state applies.
uLx = 0.5  # continuosly braced.
beam = aisc.Member(l1.name,
                   shape,
                   unbracedLengthX=uLx,
                   unbracedLengthY=span,
                   unbracedLengthZ=span,
                   lstLines=[l1])
Mu = beam.getDesignFlexuralStrength()
MuRef = 6.67e3 * kip2kN * foot2meter
ratio3 = abs((Mu - MuRef) / MuRef)
'''
print('nDiv= ', l1.nDiv)
print('span= ', span, ' m(',span/foot2meter,' ft)')
print('Iz= ', Iz, ' m4(',Iz/inch2meter**4,' in4)')
print('E= ', E/1e9, ' GPa(',E/1e6*MPa2ksi,' ksi)')
print('refD1= ', refD1*1e3, ' mm(',refD1/inch2meter,' in)')
print('d1= ', d1*1e3, ' mm(',d1/inch2meter,' in)')
print('ratio1= ',ratio1)
print('dY= ',d1*1e3,' mm/', d1/inch2meter,' in; ratio= L/', 1/deflection, 'L= ', span, ' m')
print('MMaxRef= ',MMaxRef/1e3,' kN m')
Exemplo n.º 7
0
## Set combinations to compute.
loadCombinations = preprocessor.getLoadHandler.getLoadCombinations

## Limit states to calculate internal forces for.
limitStates = [
    lsd.normalStressesResistance,  # Normal stresses resistance.
    lsd.
    shearResistance,  # Shear stresses resistance (IS THE SAME AS NORMAL STRESSES, THIS IS WHY IT'S COMMENTED OUT).
]

## Create AISC Member objects.
lines = [l1]
Lx = l1.getLength()
member = aisc.Member(name=l1.name,
                     section=shape,
                     unbracedLengthX=Lx,
                     lstLines=[l1])

aiscMembers = [member]
for m in aiscMembers:
    m.installULSControlRecorder(recorderType="element_prop_recorder")

## Compute internal forces for each combination
for ls in limitStates:
    ls.saveAll(combContainer, xcTotalSet, lstSteelBeams=aiscMembers)

outCfg = lsd.VerifOutVars(setCalc=xcTotalSet,
                          appendToResFile='Y',
                          listFile='N',
                          calcMeanCF='Y')
limitState = lsd.normalStressesResistance
Exemplo n.º 8
0
## Flexural strength
preprocessor.resetLoadCase()
preprocessor.getLoadHandler.addToDomain('combULS01')
result = analysis.analyze(1)
nodes.calculateNodalReactions(True, 1e-7)
MMax = -1e23
MMin = -MMax
for e in xcTotalSet.elements:
    MMax = max(MMax, max(e.getM1, e.getM2))
    MMin = min(MMin, min(e.getM1, e.getM2))
MMaxRef = -1.2 * deadLoad[1] * span**2 / 8.0 - 1.6 * liveLoad[1] * span**2 / 8.0
ratio2 = abs((MMax - MMaxRef) / MMaxRef)

beam = aisc.Member(l1.name,
                   shape,
                   unbracedLengthX=l1.getLength(),
                   unbracedLengthY=l1.getLength(),
                   unbracedLengthZ=l1.getLength(),
                   lstLines=[l1])
Mu = beam.getDesignFlexuralStrength(majorAxis=False)
MuRef = 165.4965e3
MuRefText = 0.9 * 136e3 * kip2kN * foot2meter
ratio3 = abs((Mu - MuRef) / MuRef)
ratio4 = abs((Mu - MuRefText) / MuRefText)
'''
print('span= ', span, ' m(',span/foot2meter,' ft)')
print('Iy= ', Iy, ' m4(',Iy/inch2meter**4,' in4)')
print('E= ', E/1e9, ' GPa(',E/1e6*MPa2ksi,' ksi)')
print('refD1= ', refD1*1e3, ' mm(',refD1/inch2meter,' in)')
print('d1= ', d1*1e3, ' mm(',d1/inch2meter,' in)')
print('ratio1= ',ratio1)
print('dY= ',d1*1e3,' mm/', d1/inch2meter,' in; ratio= L/', 1/deflection, 'L= ', span, ' m')
kN2kips = 0.2248
N2kips = 0.2248e-3
kip2kN = 1.0 / kN2kips
kip2N = 1e3 * kip2kN
foot2meter = 0.3048
m2Toin2 = 1.0 / inch2meter**2

#Materials
## Steel material
steel = ASTM_materials.A992
steel.gammaM = 1.00
## Shape geometry
shape = ASTM_materials.WShape(steel, 'W14X99')
## Steel column
column = aisc.Member('column',
                     shape,
                     unbracedLengthX=14.0 * foot2meter,
                     Cb=1.0)

## Load.
Pd = -400.0 * kip2N
Mzd = 250.0 * kip2N * foot2meter
Myd = 80.0 * kip2N * foot2meter

## Compressive strength
CF = column.getBiaxialBendingEfficiency(Nd=Pd, Myd=Myd, Mzd=Mzd)
NcRd = CF[1]  # available axial strength.
NcRdRef = 1130 * kip2N
McRdy = CF[2]  # available flexural strength minor axis.
McRdz = CF[3]  # available flexural strength major axis.
ratio1 = abs(CF[0] - 0.9233821660167778) / 0.9233821660167778
ratio2 = abs(NcRd - 5059.76358542e3) / 5059.763585423e3
Exemplo n.º 10
0
preprocessor.getLoadHandler.addToDomain('combULS01')
result= analysis.analyze(1)
nodes.calculateNodalReactions(True,1e-7)
MMax= -1e23
MMin= -MMax
for e in xcTotalSet.elements:
  MMax= max(MMax,max(e.getM1, e.getM2))
  MMin= min(MMin,min(e.getM1, e.getM2))
MMaxRef= -(1.2*deadLoad[1]+1.6*liveLoad[1])*span**2/8.0
ratio1= abs((MMax-MMaxRef)/MMaxRef)

Mp= shape.getPlasticMoment()
Mu= Mp
worstBeam= None
for l in [l1,l2,l3]:
    beam= aisc.Member(l.name, shape, unbracedLengthX= unbracedLength, unbracedLengthY= span, unbracedLengthZ= span, lstLines= [l])
    Mui= beam.getDesignFlexuralStrength()
    if(Mui<Mu):
        Mu= min(Mu, Mui)
        worstBeam= beam
Fy= shape.steelType.fy
Sz= shape.get('Wzel')
Lp= shape.getLp(majorAxis= True)
Lr= shape.getLr(majorAxis= True)
Cb= worstBeam.getLateralTorsionalBucklingModificationFactor()
MuRef= 0.9*Cb*(Mp-(Mp-0.7*Fy*Sz)*((unbracedLength-Lp)/(Lr-Lp)))
ratio2= abs((Mu-MuRef)/MuRef)
MuRefText= 0.9*339e3*kip2kN*foot2meter
ratio3= abs((Mu-MuRefText)/MuRefText)
'''
print('MMaxRef= ',MMaxRef/1e3,' kN m')
Exemplo n.º 11
0
loadCombinations = preprocessor.getLoadHandler.getLoadCombinations

## Limit states to calculate internal forces for.
limitStates = [
    lsd.normalStressesResistance,  # Normal stresses resistance.
    lsd.
    shearResistance,  # Shear stresses resistance (IS THE SAME AS NORMAL STRESSES, THIS IS WHY IT'S COMMENTED OUT).
]

## Create AISC Member objects.
aiscMembers = list()
for l in xcTotalSet.getLines:
    #Lx= l.getLength()
    Lx = 0.5  # continuously braced.
    member = aisc.Member(name=l.name,
                         section=shape,
                         unbracedLengthX=Lx,
                         lstLines=[l])
    #member.setControlPoints()
    member.installULSControlRecorder(recorderType="element_prop_recorder")
    aiscMembers.append(member)

## Compute internal forces for each combination
for ls in limitStates:
    ls.saveAll(combContainer, xcTotalSet, lstSteelBeams=aiscMembers)

## Check limit state
outCfg = lsd.VerifOutVars(setCalc=xcTotalSet,
                          appendToResFile='Y',
                          listFile='N',
                          calcMeanCF='Y')
limitState = lsd.shearResistance
Exemplo n.º 12
0
inch2meter = 0.0254
MPa2ksi = 0.145038
kN2kips = 0.2248
N2kips = 0.2248e-3
kip2kN = 1.0 / kN2kips
foot2meter = 0.3048
m2Toin2 = 1.0 / inch2meter**2

#Materials
## Steel material
steel = ASTM_materials.A992
steel.gammaM = 1.00
## Shape geometry
shape = ASTM_materials.WShape(steel, 'W14X90')
## Steel column
column = aisc.Member('column', shape, 30.0 * foot2meter, kx=0.5, ky=0.5)

## Load.
Pd = 840e3 * kip2kN

## Compressive strength
Pu = column.getDesignCompressiveStrength()
PuRef = 4179269.12295  # 929*kip2kN*1e3
ratio = abs(Pu - PuRef) / PuRef
'''
print('Pd= ',Pd/1e3,' kN / (',Pd*N2kips,'kips)')
print('Pu= ',Pu/1e3,' kN / (',Pu*N2kips,'kips)')
print('PuRef= ',PuRef/1e3,' kN / (',PuRef*N2kips,'kips)')
print('ratio= ',ratio)
'''
Exemplo n.º 13
0
loadCombinations = preprocessor.getLoadHandler.getLoadCombinations

### Limit states to calculate internal forces for.
limitState = lsd.vonMisesStressResistance
limitState.vonMisesStressId = 'avg_von_mises_stress'
limitStates = [limitState]

### Compute internal forces for each combination
for ls in limitStates:
    ls.saveAll(combContainer, setCalc)
### Check material resistance.
outCfg = lsd.VerifOutVars(setCalc=setCalc,
                          appendToResFile='N',
                          listFile='N',
                          calcMeanCF='Y')
limitState.controller = aisc.VonMisesStressController(limitState.label)
average = limitState.runChecking(outCfg)

from postprocess import output_handler
oh = output_handler.OutputHandler(modelSpace)
oh.displayFEMesh()
oh.displayField(limitStateLabel=limitState.label,
                section=None,
                argument='CF',
                component=None,
                setToDisplay=None,
                fileName=None)
oh.displayLoads()
#oh.displayDispRot('uY')
#oh.displayStrains('epsilon_xx')
#oh.displayStresses('sigma_11')
Exemplo n.º 14
0
inch2meter = 0.0254
MPa2ksi = 0.145038
kN2kips = 0.2248
N2kips = 0.2248e-3
kip2kN = 1.0 / kN2kips
foot2meter = 0.3048
m2Toin2 = 1.0 / inch2meter**2

#Materials
## Steel material
steel = ASTM_materials.A992
steel.gammaM = 1.00
## Shape geometry
shape = ASTM_materials.WShape(steel, 'W14X132')
## Steel column
column = aisc.Member('column', shape, 30.0 * foot2meter)

## Load.
Pd = 840e3 * kip2kN

## Compressive strength
Pu = column.getDesignCompressiveStrength()
PuRef = 4098332.2632  # 893*kip2kN*1e3
ratio = abs(Pu - PuRef) / PuRef
'''
print('Pd= ',Pd/1e3,' kN / (',Pd*N2kips,'kips)')
print('Pu= ',Pu/1e3,' kN / (',Pu*N2kips,'kips)')
print('PuRef= ',PuRef/1e3,' kN / (',PuRef*N2kips,'kips)')
print('ratio= ',ratio)
'''