コード例 #1
0
ファイル: test_imposed_meshing.py プロジェクト: gwiedemair/xc
st.clear()
auxrg = [
    gm.IJKRange((0, 1, lastZpos), (1, lastYpos - 1, lastZpos)),
    gm.IJKRange((lastXpos - 1, 1, lastZpos),
                (lastXpos, lastYpos - 1, lastZpos))
]
auxSet = gridGeom.getSetSurfMultiRegion(lstIJKRange=auxrg, nameSet='auxSet')
st = sets.get_subset_lin_parallel_to_axis(axis='X',
                                          fromSet=auxSet,
                                          toSetName='st',
                                          tol=0.1)
fem.assign_ndiv_to_lines_in_set(lnSet=st, ndiv=3)
st.clear()
#Meshing
flatwall_mesh = fem.SurfSetToMesh(surfSet=flatwall,
                                  matSect=wall_mat,
                                  elemSize=None,
                                  elemType='ShellMITC4')
flatwall_mesh.generateMesh(prep)
cylwall_mesh = fem.SurfSetToMesh(surfSet=cylwall,
                                 matSect=wall_mat,
                                 elemSize=None,
                                 elemType='ShellMITC4')
cylwall_mesh.generateMesh(prep)
flatdeck_mesh = fem.SurfSetToMesh(surfSet=flatdeck,
                                  matSect=deck_mat,
                                  elemSize=None,
                                  elemType='ShellMITC4')
flatdeck_mesh.generateMesh(prep)
cyldeck_mesh = fem.SurfSetToMesh(surfSet=cyldeck,
                                 matSect=deck_mat,
                                 elemSize=None,
コード例 #2
0
  #   name:         name identifying the section
  #   section:      instance of a class that defines the geometric and
  #                 mechanical characteristiscs
  #                 of a section (e.g: RectangularSection, CircularSection,
  #                 ISection, ...)
  #   material:     instance of a class that defines the elastic modulus,
  #                 shear modulus and mass density of the material
riostrEstr_mat= tm.BeamMaterialData(name= 'riostrEstr_mat', section=geomSectRiostrEstr, material=concrProp)
riostrEstr_mat.setupElasticShear3DSection(preprocessor=prep)


#                         ***FE model - MESH***
riostrEstr1_mesh=fem.LinSetToMesh(linSet=riostrEstr1,matSect=riostrEstr_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,-1,0]),elemType='ElasticBeam3d',dimElemSpace=3,coordTransfType='linear')
riostrEstr2_mesh=fem.LinSetToMesh(linSet=riostrEstr2,matSect=riostrEstr_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,-1,0]),elemType='ElasticBeam3d',dimElemSpace=3,coordTransfType='linear')

losInfV1_mesh=fem.SurfSetToMesh(surfSet=losInfV1,matSect=losInf_mat,elemSize=eSize,elemType='ShellMITC4')
losInfV2_mesh=fem.SurfSetToMesh(surfSet=losInfV2,matSect=losInf_mat,elemSize=eSize,elemType='ShellMITC4')
losInfV3_mesh=fem.SurfSetToMesh(surfSet=losInfV3,matSect=losInf_mat,elemSize=eSize,elemType='ShellMITC4')
losInfRP1_mesh=fem.SurfSetToMesh(surfSet=losInfRP1,matSect=losInf_mat,elemSize=eSize,elemType='ShellMITC4')
losInfRP2_mesh=fem.SurfSetToMesh(surfSet=losInfRP2,matSect=losInf_mat,elemSize=eSize,elemType='ShellMITC4')

losSupV1_mesh=fem.SurfSetToMesh(surfSet=losSupV1,matSect=losSup_mat,elemSize=eSize,elemType='ShellMITC4')
losSupV2_mesh=fem.SurfSetToMesh(surfSet=losSupV2,matSect=losSup_mat,elemSize=eSize,elemType='ShellMITC4')
losSupV3_mesh=fem.SurfSetToMesh(surfSet=losSupV3,matSect=losSup_mat,elemSize=eSize,elemType='ShellMITC4')
losSupRP1_mesh=fem.SurfSetToMesh(surfSet=losSupRP1,matSect=losSup_mat,elemSize=eSize,elemType='ShellMITC4')
losSupRP2_mesh=fem.SurfSetToMesh(surfSet=losSupRP2,matSect=losSup_mat,elemSize=eSize,elemType='ShellMITC4')

murAligV1_mesh=fem.SurfSetToMesh(surfSet=murAligV1,matSect=murAlig_mat,elemSize=eSize,elemType='ShellMITC4')
murAligV2_mesh=fem.SurfSetToMesh(surfSet=murAligV2,matSect=murAlig_mat,elemSize=eSize,elemType='ShellMITC4')
murAligV3_mesh=fem.SurfSetToMesh(surfSet=murAligV3,matSect=murAlig_mat,elemSize=eSize,elemType='ShellMITC4')
コード例 #3
0
ファイル: model_data.py プロジェクト: berndhahnebach/XCmodels
#                         ***FE model - MESH***

cabl_mesh = fem.LinSetToMesh(linSet=cables,
                             matSect=cabl_mat,
                             elemSize=eSize_cabl,
                             vDirLAxZ=xc.Vector([0, 0, 1]),
                             elemType='corot_truss',
                             dimElemSpace=3)
cabl_mesh.generateMesh(prep)  # mesh this set of lines

for e in cables.getElements:
    e.area = area_cable

deck_mesh = fem.SurfSetToMesh(surfSet=deck,
                              matSect=deck_mat,
                              elemSize=eSize_deck,
                              elemType='ShellMITC4')
deck_mesh.generateMesh(prep)  #mesh the set of surfaces

curb_mesh = fem.SurfSetToMesh(surfSet=curb,
                              matSect=curb_mat,
                              elemSize=eSize_deck,
                              elemType='ShellMITC4')
curb_mesh.generateMesh(prep)  #mesh the set of surfaces

#fem.multi_mesh(preprocessor=prep,lstMeshSets=[beamY_mesh,columnZ_mesh,found_mesh,wall_mesh])     #mesh these sets

shells = deck + curb
shells.description = "deck"

roadway_rg = gm.IJKRange((1, 0, 0), (2, lastYpos, 0))
コード例 #4
0
# Isotropic elastic section-material appropiate for plate and shell analysis
wall_mat = tm.DeckMaterialData(name='wall_mat',
                               thickness=thickness,
                               material=steelProp)
wall_mat.setupElasticSection(preprocessor=prep)  #creates the section-material

#                         ***FE model - MESH***
# Enforced line division
st = sets.get_subset_lin_parallel_to_axis(axis='Z',
                                          fromSet=tankwall,
                                          toSetName='st')
fem.assign_ndiv_to_lines_in_set(lnSet=st, ndiv=20)
st.clear()
#Meshing
tankwall_mesh = fem.SurfSetToMesh(surfSet=tankwall,
                                  matSect=wall_mat,
                                  elemSize=None,
                                  elemType='ShellMITC4')
tankwall_mesh.generateMesh(prep)

#out.displayFEMesh()
#out.displayLocalAxes()

#local axis Z toward exterior of cylindrical body

#                       ***BOUNDARY CONDITIONS***

#fixed DOF (ux:'0FF_FFF', uy:'F0F_FFF', uz:'FF0_FFF',
#           rx:'FFF_0FF', ry:'FFF_F0F', rz:'FFF_FF0')
nodBase = sets.get_set_nodes_plane_XY(setName='nodBase',
                                      setBusq=tankwall,
                                      zCoord=zList[0],
コード例 #5
0
ファイル: test_inertia_loads_07.py プロジェクト: smohaorg/xc
                                    setName='ring',
                                    closeCyl='Y')
#out=outHndl.OutputHandler(modelSpace)
#out.displayBlocks()

steel = tm.defElasticIsotropic3d(preprocessor=preprocessor,
                                 name='steel',
                                 E=172e9,
                                 nu=0.3,
                                 rho=matRho)
ring_mat = tm.defMembranePlateFiberSection(preprocessor,
                                           name='ring_mat',
                                           h=t,
                                           nDMaterial=steel)
ring_mesh = fem.SurfSetToMesh(surfSet=ring,
                              matSect=ring_mat,
                              elemSize=0.5,
                              elemType='ShellMITC4')
fem.multi_mesh(prep, [ring_mesh])

# Constraints
xcTotalSet = modelSpace.getTotalSet()
constrainedNodes = list()
for n in xcTotalSet.nodes:
    modelSpace.fixNode000_FFF(n.tag)
    constrainedNodes.append(n)

#out.displayFEMesh()

selfWeight = loads.InertialLoad(name='selfWeight',
                                lstSets=[ring],
                                vAccel=xc.Vector([0.0, 0.0,
コード例 #6
0
wall_mat.setupElasticSection(preprocessor=prep)  #creates de section-material

#Sections geometry
#rectangular sections
geomSectColumns = sectpr.RectangularSection(name='geomSectColumns',
                                            b=0.25,
                                            h=0.25)
columns_mat = tm.BeamMaterialData(name='columns_mat',
                                  section=geomSectColumns,
                                  material=mat_cols)
columns_mat.setupElasticShear3DSection(preprocessor=prep)

#                         ***FE model - MESH***
eSize = 0.5
floor1_mesh = fem.SurfSetToMesh(surfSet=floor1,
                                matSect=deck_mat,
                                elemSize=eSize,
                                elemType='ShellMITC4')
floor2_mesh = fem.SurfSetToMesh(surfSet=floor2,
                                matSect=deck_mat,
                                elemSize=eSize,
                                elemType='ShellMITC4')
#wall_mesh=fem.SurfSetToMesh(surfSet=wall,matSect=wall_mat,elemSize=eSize,elemType='ShellMITC4')
columns_mesh = fem.LinSetToMesh(linSet=columns,
                                matSect=columns_mat,
                                elemSize=eSize,
                                vDirLAxZ=xc.Vector([1, 0, 0]),
                                elemType='ElasticBeam3d',
                                dimElemSpace=3,
                                coordTransfType='linear')

fem.multi_mesh(preprocessor=prep,
コード例 #7
0
ファイル: model_data.py プロジェクト: berndhahnebach/XCmodels
    preprocessor=prep)  #creates de section-material
slab_step3_mat = tm.DeckMaterialData(name='slab_step3_mat',
                                     thickness=thick_steps[2],
                                     material=concrete)
slab_step3_mat.setupElasticSection(
    preprocessor=prep)  #creates de section-material
slab_step4_mat = tm.DeckMaterialData(name='slab_step4_mat',
                                     thickness=thick_steps[3],
                                     material=concrete)
slab_step4_mat.setupElasticSection(
    preprocessor=prep)  #creates de section-material

#                         ***FE model - MESH***

slab_unif_mesh = fem.SurfSetToMesh(surfSet=slab_unif,
                                   matSect=slab_unif_mat,
                                   elemSize=eSize,
                                   elemType='ShellMITC4')
slab_step1_mesh = fem.SurfSetToMesh(surfSet=slab_step1,
                                    matSect=slab_step1_mat,
                                    elemSize=eSize,
                                    elemType='ShellMITC4')
slab_step2_mesh = fem.SurfSetToMesh(surfSet=slab_step2,
                                    matSect=slab_step2_mat,
                                    elemSize=eSize,
                                    elemType='ShellMITC4')
slab_step3_mesh = fem.SurfSetToMesh(surfSet=slab_step3,
                                    matSect=slab_step3_mat,
                                    elemSize=eSize,
                                    elemType='ShellMITC4')
slab_step4_mesh = fem.SurfSetToMesh(surfSet=slab_step4,
                                    matSect=slab_step4_mat,
コード例 #8
0
  #                 shear modulus and mass density of the material

muretes_mat= tm.BeamMaterialData(name= 'muretes_mat', section=geomSectMuretes, material=concrDeck)
muretes_mat.setupElasticShear3DSection(preprocessor=prep)

# Isotropic elastic section-material appropiate for plate and shell analysis
deck_mat= tm.DeckMaterialData(name= 'deck_mat', thickness= deckTh,material=concrDeck)
deck_mat.setupElasticSection(preprocessor=prep)   #creates de section-material
wall_mat= tm.DeckMaterialData(name= 'wall_mat', thickness= wallTh,material=concrWalls)
wall_mat.setupElasticSection(preprocessor=prep)   #creates de section-material
found_mat= tm.DeckMaterialData(name= 'found_mat', thickness= baseSlabTh,material=concrFound)
found_mat.setupElasticSection(preprocessor=prep)   #creates de section-material

#                         ***FE model - MESH***

losCimExt_mesh=fem.SurfSetToMesh(surfSet=losCimExt,matSect=found_mat,elemType='ShellMITC4',elemSize=eSize)
losCimCent_mesh=fem.SurfSetToMesh(surfSet=losCimCent,matSect=found_mat,elemType='ShellMITC4',elemSize=eSize)
hastIzqInf_mesh=fem.SurfSetToMesh(surfSet=hastIzqInf,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastIzqCent_mesh=fem.SurfSetToMesh(surfSet=hastIzqCent,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastIzqSup_mesh=fem.SurfSetToMesh(surfSet=hastIzqSup,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastDerInf_mesh=fem.SurfSetToMesh(surfSet=hastDerInf,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastDerCent_mesh=fem.SurfSetToMesh(surfSet=hastDerCent,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastDerSup_mesh=fem.SurfSetToMesh(surfSet=hastDerSup,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
dintExt_mesh=fem.SurfSetToMesh(surfSet=dintExt,matSect=deck_mat,elemType='ShellMITC4',elemSize=eSize)
dintCent_mesh=fem.SurfSetToMesh(surfSet=dintCent,matSect=deck_mat,elemType='ShellMITC4',elemSize=eSize)

fem.multi_mesh(preprocessor=prep,lstMeshSets=[losCimExt_mesh,losCimCent_mesh,hastIzqInf_mesh,hastIzqCent_mesh,hastIzqSup_mesh,hastDerInf_mesh,hastDerCent_mesh,hastDerSup_mesh,dintExt_mesh,dintCent_mesh])

murete_i_mesh=fem.LinSetToMesh(linSet=murete_i,matSect=muretes_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,0,1]),elemType='ElasticBeam3d',coordTransfType='linear')
murete_i_mesh.generateMesh(prep)    # mesh this set of lines
murete_d_mesh=fem.LinSetToMesh(linSet=murete_d,matSect=muretes_mat,elemSize=eSize,vDirLAxZ=xc.Vector([0,0,1]),elemType='ElasticBeam3d',coordTransfType='linear')
コード例 #9
0
  #                 shear modulus and mass density of the material

muretes_mat= tm.BeamMaterialData(name= 'muretes_mat', section=geomSectMuretes, material=concrDeck)
muretes_mat.setupElasticShear3DSection(preprocessor=prep)

# Isotropic elastic section-material appropiate for plate and shell analysis
deck_mat= tm.DeckMaterialData(name= 'deck_mat', thickness= deckTh,material=concrDeck)
deck_mat.setupElasticSection(preprocessor=prep)   #creates de section-material
wall_mat= tm.DeckMaterialData(name= 'wall_mat', thickness= wallTh,material=concrWalls)
wall_mat.setupElasticSection(preprocessor=prep)   #creates de section-material
found_mat= tm.DeckMaterialData(name= 'found_mat', thickness= baseSlabTh,material=concrFound)
found_mat.setupElasticSection(preprocessor=prep)   #creates de section-material

#                         ***FE model - MESH***

losCimExt_M1_mesh=fem.SurfSetToMesh(surfSet=losCimExt_M1,matSect=found_mat,elemType='ShellMITC4',elemSize=eSize)
losCimExt_M2_mesh=fem.SurfSetToMesh(surfSet=losCimExt_M2,matSect=found_mat,elemType='ShellMITC4',elemSize=eSize)
losCimExt_M3_mesh=fem.SurfSetToMesh(surfSet=losCimExt_M3,matSect=found_mat,elemType='ShellMITC4',elemSize=eSize)

losCimCent_M1_mesh=fem.SurfSetToMesh(surfSet=losCimCent_M1,matSect=found_mat,elemType='ShellMITC4',elemSize=eSize)
losCimCent_M2_mesh=fem.SurfSetToMesh(surfSet=losCimCent_M2,matSect=found_mat,elemType='ShellMITC4',elemSize=eSize)
losCimCent_M3_mesh=fem.SurfSetToMesh(surfSet=losCimCent_M3,matSect=found_mat,elemType='ShellMITC4',elemSize=eSize)

hastIzq_M1_mesh=fem.SurfSetToMesh(surfSet=hastIzq_M1,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastIzq_M2_mesh=fem.SurfSetToMesh(surfSet=hastIzq_M2,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastIzq_M3_mesh=fem.SurfSetToMesh(surfSet=hastIzq_M3,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)

hastDer_M1_mesh=fem.SurfSetToMesh(surfSet=hastDer_M1,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastDer_M2_mesh=fem.SurfSetToMesh(surfSet=hastDer_M2,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
hastDer_M3_mesh=fem.SurfSetToMesh(surfSet=hastDer_M3,matSect=wall_mat,elemType='ShellMITC4',elemSize=eSize)
コード例 #10
0
                               thickness=deckTh,
                               material=concrDeck)
deck_mat.setupElasticSection(preprocessor=prep)  #creates de section-material
wall_mat = tm.DeckMaterialData(name='wall_mat',
                               thickness=wallTh,
                               material=concrWalls)
wall_mat.setupElasticSection(preprocessor=prep)  #creates de section-material
found_mat = tm.DeckMaterialData(name='found_mat',
                                thickness=baseSlabTh,
                                material=concrFound)
found_mat.setupElasticSection(preprocessor=prep)  #creates de section-material

#                         ***FE model - MESH***

losCim_mesh = fem.SurfSetToMesh(surfSet=losCim,
                                matSect=found_mat,
                                elemType='ShellMITC4',
                                elemSize=eSize)
hastiales_mesh = fem.SurfSetToMesh(surfSet=hastiales,
                                   matSect=wall_mat,
                                   elemType='ShellMITC4',
                                   elemSize=eSize)
dintel_mesh = fem.SurfSetToMesh(surfSet=dintel,
                                matSect=deck_mat,
                                elemType='ShellMITC4',
                                elemSize=eSize)

fem.multi_mesh(preprocessor=prep,
               lstMeshSets=[losCim_mesh, hastiales_mesh, dintel_mesh])

murete_i_mesh = fem.LinSetToMesh(linSet=murete_i,
                                 matSect=muretes_mat,
コード例 #11
0
                                material=concrFound)
found_mat.setupElasticSection(preprocessor=prep)

#                         ***FE model - MESH***

# Types of surfaces to be discretized from the defined
# material, type of element and size of the elements.
# Parameters:
#   name:     name to identify the type of surface
#   material: name of the material that makes up the surface
#   elemType: element type to be used in the discretization
#   elemSize: mean size of the elements
#   ranges:   lists of grid ranges to delimit the surfaces of
#             the type in question
foundExtSlab_mesh = fem.SurfSetToMesh(surfSet=foundExtSlab,
                                      matSect=found_mat,
                                      elemType='ShellMITC4',
                                      elemSize=eSize)
foundIntSlab_mesh = fem.SurfSetToMesh(surfSet=foundIntSlab,
                                      matSect=found_mat,
                                      elemType='ShellMITC4',
                                      elemSize=eSize)

leftDownWall_mesh = fem.SurfSetToMesh(surfSet=leftDownWall,
                                      matSect=downWall_mat,
                                      elemType='ShellMITC4',
                                      elemSize=eSize)
leftUpWall_mesh = fem.SurfSetToMesh(surfSet=leftUpWall,
                                    matSect=upWall_mat,
                                    elemType='ShellMITC4',
                                    elemSize=eSize)
rightDownWall_mesh = fem.SurfSetToMesh(surfSet=rightDownWall,
コード例 #12
0
                                  thickness=espAletdZ1,
                                  material=concrData)
aletdZ1_mat.setupElasticSection(preprocessor=prep)
aletdZ2_mat = tm.DeckMaterialData(name='aletdZ2_mat',
                                  thickness=espAletdZ2,
                                  material=concrData)
aletdZ2_mat.setupElasticSection(preprocessor=prep)
aletdZ3_mat = tm.DeckMaterialData(name='aletdZ3_mat',
                                  thickness=espAletdZ3,
                                  material=concrData)
aletdZ3_mat.setupElasticSection(preprocessor=prep)

#                         ***FE model - MESH***

zap_mesh = fem.SurfSetToMesh(surfSet=zap,
                             matSect=zap_mat,
                             elemSize=eSize,
                             elemType='ShellMITC4')

murestrZ1_mesh = fem.SurfSetToMesh(surfSet=murestrZ1,
                                   matSect=murestr_mat,
                                   elemSize=eSize,
                                   elemType='ShellMITC4')
murestrZ2_mesh = fem.SurfSetToMesh(surfSet=murestrZ2,
                                   matSect=murestr_mat,
                                   elemSize=eSize,
                                   elemType='ShellMITC4')

aletiZ1_mesh = fem.SurfSetToMesh(surfSet=aletiZ1,
                                 matSect=aletiZ1_mat,
                                 elemSize=eSize,
                                 elemType='ShellMITC4')
コード例 #13
0
                               thickness=deckTh,
                               material=concrDeck)
deck_mat.setupElasticSection(preprocessor=prep)  #creates de section-material
wall_mat = tm.DeckMaterialData(name='wall_mat',
                               thickness=wallTh,
                               material=concrWalls)
wall_mat.setupElasticSection(preprocessor=prep)  #creates de section-material
found_mat = tm.DeckMaterialData(name='found_mat',
                                thickness=baseSlabTh,
                                material=concrFound)
found_mat.setupElasticSection(preprocessor=prep)  #creates de section-material

#                         ***FE model - MESH***

foundExtSlab_mesh = fem.SurfSetToMesh(surfSet=foundExtSlab,
                                      matSect=found_mat,
                                      elemType='ShellMITC4',
                                      elemSize=eSize)
foundIntSlab_mesh = fem.SurfSetToMesh(surfSet=foundIntSlab,
                                      matSect=found_mat,
                                      elemType='ShellMITC4',
                                      elemSize=eSize)
leftWall_mesh = fem.SurfSetToMesh(surfSet=leftWall,
                                  matSect=wall_mat,
                                  elemType='ShellMITC4',
                                  elemSize=eSize)
rightWall_mesh = fem.SurfSetToMesh(surfSet=rightWall,
                                   matSect=wall_mat,
                                   elemType='ShellMITC4',
                                   elemSize=eSize)
deckExtSlab_mesh = fem.SurfSetToMesh(surfSet=deckExtSlab,
                                     matSect=deck_mat,
コード例 #14
0
                                       corbelsConcr.Ecm(), corbelsConcr.nuc,
                                       corbelsConcr.density()))

# Elastomeric bearings.

neop = bridge_bearings.ElastomericBearing(G=900e3, a=0.15, b=0.2, e=0.02)
neop.defineMaterials(preprocessor)

# print polT5.getIx(), polT5.getCenterOfMass()
# print polT6.getIx(), polT6.getCenterOfMass()
# print polT4.getIx(), polT4.getCenterOfMass()

# Mesh

deckMesh = fem.SurfSetToMesh(surfSet=deckSurfaces,
                             matSect=deckMat,
                             elemSize=0.5,
                             elemType='ShellMITC4')
deckMesh.generateMesh(preprocessor)  #do meshing

#Precast beams.
linX = modelSpace.newLinearCrdTransf("linX", xc.Vector([1, 0, 0]))
type4Beams = fem.RawLineSetToMesh(linSet=beamLinesType4,
                                  matSect=beamType4Section,
                                  elemSize=None,
                                  coordTransf=linX,
                                  elemType='ElasticBeam3d',
                                  dimElemSpace=3)
type4Beams.generateMesh(preprocessor)  #do meshing
type5Beams = fem.RawLineSetToMesh(linSet=beamLinesType5,
                                  matSect=beamType5Section,
                                  elemSize=None,
コード例 #15
0
                                   dimElemSpace=3,
                                   coordTransfType='linear')
beamY_mesh = fem.LinSetToMesh(linSet=beamY,
                              matSect=beamY_mat,
                              elemSize=eSize,
                              vDirLAxZ=xc.Vector([1, 0, 0]),
                              elemType='ElasticBeam3d',
                              coordTransfType='linear')
columnZconcr_mesh = fem.LinSetToMesh(linSet=columnZconcr,
                                     matSect=columnZconcr_mat,
                                     elemSize=eSize,
                                     vDirLAxZ=xc.Vector([1, 0, 0]),
                                     elemType='ElasticBeam3d',
                                     coordTransfType='linear')
decklv1_mesh = fem.SurfSetToMesh(surfSet=decklv1,
                                 matSect=deck_mat,
                                 elemSize=eSize,
                                 elemType='ShellMITC4')
decklv1_mesh.generateMesh(prep)  #mesh the set of surfaces
decklv2_mesh = fem.SurfSetToMesh(surfSet=decklv2,
                                 matSect=deck_mat,
                                 elemSize=eSize,
                                 elemType='ShellMITC4')
decklv2_mesh.generateMesh(prep)  #mesh the set of surfaces
wall_mesh = fem.SurfSetToMesh(surfSet=wall,
                              matSect=wall_mat,
                              elemSize=eSize,
                              elemType='ShellMITC4')
wall_mesh.generateMesh(prep)
foot_mesh = fem.SurfSetToMesh(surfSet=foot,
                              matSect=foot_mat,
                              elemSize=eSize,
コード例 #16
0
ファイル: test_wind_cylindr_02.py プロジェクト: smohaorg/xc
tank = grid.genSurfOneXYZRegion(xyzRange=((R, 0, zBase), (R, Angcoo[-1],
                                                          zTop)),
                                setName='tank',
                                closeCyl='Y')

steel = astm.A36
steel_prop = tm.MaterialData(name='steel',
                             E=steel.E,
                             nu=steel.nu,
                             rho=steel.rho)
tank_mat = tm.DeckMaterialData(name='tank_mat',
                               thickness=thickness,
                               material=steel_prop)
tank_mat.setupElasticSection(preprocessor=prep)  #creates the section-materia
tank_mesh = fem.SurfSetToMesh(surfSet=tank,
                              matSect=tank_mat,
                              elemSize=0.25,
                              elemType='ShellMITC4')
tank_mesh.generateMesh(prep)

# Boundary condition
nodBase = sets.get_set_nodes_plane_XY(setName='nodBase',
                                      setBusq=tank,
                                      zCoord=zBase,
                                      tol=0.001)
for n in nodBase.nodes:
    modelSpace.fixNode('000_FFF', n.tag)

# Loading
windParams = bw.windParams(v, Kd, Kzt, I, alpha, zg)
tankWind = bw.cylindrWind(2 * R, height, windParams, windComp, zGround, xCent,
                          yCent)
コード例 #17
0
roof=gridGeom.genSurfMultiRegion(lstIJKRange=roof_rg,setName='roof')

roof.description='Roof'
roof.color=cfg.colors['purple01']

#                         *** MATERIALS *** 
concrProp=tm.MaterialData(name='concrProp',E=concrete.Ecm(),nu=concrete.nuc,rho=concrete.density())

# Isotropic elastic section-material appropiate for plate and shell analysis
roof_mat=tm.DeckMaterialData(name='roof_mat',thickness= roof_th,material=concrProp)
roof_mat.setupElasticSection(preprocessor=prep)   #creates the section-material


#                         ***FE model - MESH***

roof_mesh=fem.SurfSetToMesh(surfSet=roof,matSect=roof_mat,elemSize=eSize,elemType='ShellMITC4')
roof_mesh.generateMesh(prep) 

#                       ***BOUNDARY CONDITIONS***
#fixed DOF (ux:'0FF_FFF', uy:'F0F_FFF', uz:'FF0_FFF',
#           rx:'FFF_0FF', ry:'FFF_F0F', rz:'FFF_FF0')
p1=gridGeom.getPntGrid(indPnt=(0,0,lastZpos))
modelSpace.fixNode('000_FFF',p1.getNode().tag)
p2=gridGeom.getPntGrid(indPnt=(lastXpos,0,lastZpos))
modelSpace.fixNode('000_FFF',p2.getNode().tag)
p3=gridGeom.getPntGrid(indPnt=(0,lastYpos,lastZpos))
modelSpace.fixNode('000_FFF',p3.getNode().tag)
p4=gridGeom.getPntGrid(indPnt=(lastXpos,lastYpos,lastZpos))
modelSpace.fixNode('000_FFF',p4.getNode().tag)

#                       ***ACTIONS***