Ejemplo n.º 1
0
concrProp=tm.MaterialData(name='concrProp',E=concrete.Ecm(),nu=concrete.nuc,rho=concrete.density())
#Geometric sections
#rectangular sections
from materials.sections import section_properties as sectpr
geomSectPile=sectpr.RectangularSection(name='geomSectPile',b=LeqPile,h=LeqPile)
# Elastic material-section
pile_mat=tm.BeamMaterialData(name='pile_mat', section=geomSectPile, material=concrProp)
pile_mat.setupElasticShear3DSection(preprocessor=prep)

#                         ***FE model - MESH***
pile_mesh=fem.LinSetToMesh(linSet=pile,matSect=pile_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,1,0]),elemType='ElasticBeam3d',dimElemSpace=3,coordTransfType='linear')
fem.multi_mesh(preprocessor=prep,lstMeshSets=[pile_mesh])


#                       ***BOUNDARY CONDITIONS***
pileBC=sbc.PileFoundation(setPile=pile,pileDiam=fiPile,E=concrete.Ecm(),pileType='endBearing',pileBearingCapacity=bearCap,groundLevel=zGround,soilsProp=soils)
pileBC.generateSpringsPile(alphaKh_x=1,alphaKh_y=1,alphaKv_z=1)
springs=pileBC.springs
springSet=preprocessor.getSets.defSet('springSet')
for e in springs:
    springSet.getElements.append(e)
    #print 'z:',e.getCooCentroid(True)[2], ' Kx (t/m):',round(e.getMaterials()[0].E*1e-4,2)
springSet.fillDownwards()
allSets=pile+springSet
'''
from postprocess.xcVtk.FE_model import vtk_FE_graphic
displaySettings= vtk_FE_graphic.DisplaySettingsFE()
displaySettings.displayMesh(xcSets=allSets,caption='Mesh',nodeSize=0.5,scaleConstr=0.10)
'''
pTop=gridGeom.getPntXYZ((0,0,0))
nTop=pTop.getNode()
Ejemplo n.º 2
0
def gen_piles(preprocessor,
              topNodPiles,
              pileLength,
              pileMat,
              eSize,
              pileType,
              bearingCapPile,
              soils,
              nameSetPiles,
              alphaK=[1, 1, 1]):
    '''Generate piles that start in a pile-cap. Return the set of piles created.

    :param preprocessor: preprocessor
    :param topNodPiles: nodes of the pile-cap where piles start.
    :param pileLength: length of each pile.
    :param pileMat: pile section-material.
    :param eSize: size of the elements.
    :param pileType: type of pile 'endBearing' or 'friction'.
    :param bearingCapPile: total bearing capacity of the pile
    :param soils: list of soil definition  [(zBottom,type, prop), ...]  where 'zBottom' is the global 
                  Z coordinate of the bottom level of the soil, type is the type o soil ("sand" or "clay")
                  prop is the soil property : compactness [Pa/m] for sandy soils and undrained soil shear
                  strength for clay soils.
    :param nameSetPiles: name of the set of piles created.
    :param alphaK: coefficients [alphaKh_x,alphaKh_y,alphaKh_z] to take into account the pile group
                    effect (defaults to [1,1,1])
    '''
    piles = preprocessor.getSets.defSet(nameSetPiles)
    for n in topNodPiles:
        auxPileSet = preprocessor.getSets.defSet('auxPileSet')
        x, y, z = n.getCoo[0], n.getCoo[1], n.getCoo[2]
        p1 = preprocessor.getMultiBlockTopology.getPoints.newPntFromPos3d(
            geom.Pos3d(x, y, z))
        p0 = preprocessor.getMultiBlockTopology.getPoints.newPntFromPos3d(
            geom.Pos3d(x, y, z - pileLength))
        l = preprocessor.getMultiBlockTopology.getLines.newLine(p0.tag, p1.tag)
        auxPileSet.getLines.append(l)
        auxPileSet.fillDownwards()
        pile_mesh = fem.LinSetToMesh(linSet=auxPileSet,
                                     matSect=pileMat,
                                     elemSize=eSize,
                                     vDirLAxZ=xc.Vector([0, 1, 0]),
                                     elemType='ElasticBeam3d',
                                     dimElemSpace=3,
                                     coordTransfType='linear')
        fem.multi_mesh(preprocessor=preprocessor, lstMeshSets=[pile_mesh])
        pileBC = sbc.PileFoundation(setPile=auxPileSet,
                                    pileDiam=pileDiam,
                                    E=pileMat.E,
                                    pileType=pileType,
                                    pileBearingCapacity=bearingCapPile,
                                    groundLevel=z,
                                    soilsProp=soils)
        pileBC.generateSpringsPile(alphaK[0], alphaK[1], alphaK[2])
        springs = pileBC.springs
        n1 = p1.getNode()
        n0 = p0.getNode()
        modelSpace.fixNode('FF0_000', n0.tag)
        modelSpace.setRigidBeamBetweenNodes(n.tag, n1.tag)
        piles += auxPileSet
        preprocessor.getSets.removeSet('auxPileSet')
    return piles