コード例 #1
0
ファイル: concrete_base.py プロジェクト: lcpt/xc
    def defElasticMembranePlateSection(self, preprocessor,name,thickness):
      '''Constructs an elastic isotropic section material appropiate 
         for elastic analysis of plate and shell elements

      :param  preprocessor: preprocessor name
      :param  name:         name identifying the section
      :param  thickness:    section thickness.
      '''
      return typical_materials.defElasticMembranePlateSection(preprocessor,name,E= self.getEcm(), nu=self.nuc ,rho= self.density(),h= thickness)
コード例 #2
0
ファイル: element_section_map.py プロジェクト: smohaorg/xc
    def getElasticMembranePlateSection(self, preprocessor, reductionFactor= 1.0):
        ''' Return an elastic membrane plate section material.

        :param preprocessor: proprocessor for the finite element problem.
        :param reductionFactor: factor that divides the concrete elastic
                                modulus to simulate the effect of cracking,
                                normally between 1.0 and 7.0.
        '''
        shellMatName= self.name+'_membrane_plate'
        Ec= self.concrType.getEcm()/reductionFactor
        nu= 0.3
        thickness= self.depth
        rho= self.concrType.density()
        return typical_materials.defElasticMembranePlateSection(preprocessor,shellMatName,Ec,nu,rho,thickness)
コード例 #3
0
    def defElasticMembranePlateSection(self, preprocessor, name, thickness):
        '''Constructs an elastic isotropic section material appropiate 
         for elastic analysis of plate and shell elements

      :param  preprocessor: preprocessor name
      :param  name:         name identifying the section
      :param  thickness:    section thickness.
      '''
        return typical_materials.defElasticMembranePlateSection(
            preprocessor,
            name,
            E=self.getEcm(),
            nu=self.nuc,
            rho=self.density(),
            h=thickness)
コード例 #4
0
    def defElasticMembranePlateSection(self, preprocessor, name, thickness):
        '''Constructs an elastic isotropic section material appropiate 
           for elastic analysis of plate and shell elements

        :param  preprocessor: preprocessor name
        :param  name: name identifying the section
        :param  thickness: section thickness.
        '''
        retval= None
        materialHandler= preprocessor.getMaterialHandler
        if(materialHandler.materialExists(name)):
            lmsg.warning("Section: "+name+" already defined.")
            retval= materialHandler.getMaterial(name)
        else:
            retval= typical_materials.defElasticMembranePlateSection(preprocessor,name,E= self.getEcm(), nu=self.nuc ,rho= self.density(),h= thickness)
        return retval
コード例 #5
0
from model import predefined_spaces
from materials import typical_materials

# Problem type
feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
nodes= preprocessor.getNodeHandler

modelSpace= predefined_spaces.StructuralMechanics3D(nodes)
# Define materials
elast= typical_materials.defElasticMaterial(preprocessor, "elast",E)



# Define materials
nmb1= typical_materials.defElasticMembranePlateSection(preprocessor, "memb1",E,nu,0.0,thickness)



seedElemHandler= preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial= "memb1"
seedElemHandler.defaultTag= 1
elem= seedElemHandler.newElement("ShellMITC4",xc.ID([0,0,0,0]))



points= preprocessor.getMultiBlockTopology.getPoints
pt= points.newPntIDPos3d(1,geom.Pos3d(0.0,0.0,0.0))
pt= points.newPntIDPos3d(2,geom.Pos3d(CooMaxX,0.0,0.0))
pt= points.newPntIDPos3d(3,geom.Pos3d(CooMaxX,CooMaxY,0.0))
pt= points.newPntIDPos3d(4,geom.Pos3d(0.0,CooMaxY,0.0))
コード例 #6
0
 def setup(self,preprocessor):
   '''return the elastic isotropic section appropiate for plate and shell analysis
   '''
   typical_materials.defElasticMembranePlateSection(preprocessor,self.name,self.material.E,self.material.nu,self.getAreaDensity(),self.thickness)
コード例 #7
0
nod1 = nodes.newNodeXYZ(0, 0, 0)
nod2 = nodes.newNodeXYZ(1, 0, 0)
nod3 = nodes.newNodeXYZ(2, 0, 0)
nod4 = nodes.newNodeXYZ(3, 0, 0)
nod5 = nodes.newNodeXYZ(0, 1, 0)
nod6 = nodes.newNodeXYZ(1, 1, 0)
nod7 = nodes.newNodeXYZ(2, 1, 0)
nod8 = nodes.newNodeXYZ(3, 1, 0)
nod9 = nodes.newNodeXYZ(0, 2, 0)
nod10 = nodes.newNodeXYZ(1, 2, 0)
nod11 = nodes.newNodeXYZ(2, 2, 0)
nod12 = nodes.newNodeXYZ(3, 2, 0)

# Materials definition

deckMat = typical_materials.defElasticMembranePlateSection(
    preprocessor, "deckMat", Ec, nuC, densLosa, deckThk)

prestressingSteel = typical_materials.defSteel02(preprocessor,
                                                 "prestressingSteel", Ep, fy,
                                                 0.001, tInic)

elements = preprocessor.getElementHandler
# Reinforced concrete deck
elements.defaultMaterial = deckMat.name
elements.defaultTag = 1
elem = elements.newElement("ShellMITC4", xc.ID([1, 2, 6, 5]))

elem = elements.newElement("ShellMITC4", xc.ID([2, 3, 7, 6]))
elem = elements.newElement("ShellMITC4", xc.ID([3, 4, 8, 7]))
elem = elements.newElement("ShellMITC4", xc.ID([5, 6, 10, 9]))
elem = elements.newElement("ShellMITC4", xc.ID([6, 7, 11, 10]))
コード例 #8
0
ファイル: test_shell_mitc4_26.py プロジェクト: lcpt/xc
from materials import typical_materials
from solution import predefined_solutions

# Problem type
feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
nodes= preprocessor.getNodeHandler
modelSpace= predefined_spaces.StructuralMechanics3D(nodes)
nodes.newNodeIDXYZ(1,0,0,0)
nodes.newNodeIDXYZ(2,L,0,0)
nodes.newNodeIDXYZ(3,L,L,0)
nodes.newNodeIDXYZ(4,0,L,0)


# Materials definition
nmb1= typical_materials.defElasticMembranePlateSection(preprocessor, "memb1",E,nu,0.0,t)

elements= preprocessor.getElementHandler
elements.defaultMaterial= "memb1"
elements.defaultTag= 1
elem= elements.newElement("ShellMITC4",xc.ID([1,2,3,4]))


# Constraints

modelSpace.fixNode000_000(1)
modelSpace.fixNode000_000(4)

# Loads definition
loadHandler= preprocessor.getLoadHandler
コード例 #9
0
#
#   pt1                           pt2
#    +-----------------------------+
#    |                             |
#    |                             |
#    |                             |
#    +-----------------------------+ ---> z
#   pt0                           pt3
#
# We have finished with the definition of the geometry.

# *********Material*********
width_cantilever = 1.0
E = 210000.0e6
I = 1 / 12.0 * width_cantilever**4
canti_mat = typical_materials.defElasticMembranePlateSection(
    preprocessor, "canti_mat", E, 0.3, 0.0, width_cantilever)

# *********Elements: MITC9 *********
# Nine node element (quadratic interpolation):
#
#   4      7      3
#    +-----+-----+
#    |           |
#    |           |
#  8 +   9 +     + 6
#    |           |
#    |           |
#    +-----+-----+
#   1      5      2
#
seedElemHandler = preprocessor.getElementHandler.seedElemHandler
コード例 #10
0
parapetBody= surfaces.newQuadSurfacePts(pt3.tag,pt4.tag,pt5.tag,pt6.tag)
parapetHead= surfaces.newQuadSurfacePts(pt6.tag,pt5.tag,pt8.tag,pt7.tag)

model_surfaces= [deck,parapetBody,parapetHead]
for s in model_surfaces:
    #print s.name, s.getIVector, s.getJVector
    s.setElemSizeIJ(0.15,0.2)

# *** Materials *** 
fcmConcr=50e6
EcConcr=8500*(fcmConcr/1e6)**(1/3.0)*1e6
cpoisConcr=0.2                #Poisson's coefficient of concrete
densConcr= 2500               #specific mass of concrete (kg/m3)
concrete=tm.MaterialData(name='concrete',E=EcConcr,nu=cpoisConcr,rho=densConcr)

deck.material= tm.defElasticMembranePlateSection(prep, "deckMat",EcConcr,cpoisConcr,0.0,deckThickness)
parapetBody.material= tm.defElasticMembranePlateSection(prep, "parapetBodyMat",EcConcr,cpoisConcr,0.0,parapetBodyThickness)
parapetHead.material= tm.defElasticMembranePlateSection(prep, "parapetHeadMat",EcConcr,cpoisConcr,0.0,parapetHeadThickness)

# *** Meshing ***
seedElemHandler= prep.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial= "deckMat"
elem= seedElemHandler.newElement("ShellMITC4",xc.ID([0,0,0,0]))

for s in model_surfaces:
    seedElemHandler.defaultMaterial= s.material.name
    s.genMesh(xc.meshDir.I)

# *** Constraints ***
cl1= prep.getMultiBlockTopology.getLineWithEndPoints(pt1.tag,pt2.tag)
cl2= prep.getMultiBlockTopology.getLineWithEndPoints(pt2.tag,pt3.tag)
コード例 #11
0
ファイル: cantilever_eigenmodes_03.py プロジェクト: lcpt/xc
area= b*espChapa # Cross section area en m2
inertia1= 1/12.0*espChapa*b**3 # Moment of inertia in m4
inertia2= 1/12.0*b*espChapa**3 # Moment of inertia in m4
dens= 7800 # Density of the steel en kg/m3
m= b*h*dens

NumDiv= 10

# Problem type
feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
nodes= preprocessor.getNodeHandler

modelSpace= predefined_spaces.StructuralMechanics3D(nodes)
# Define materials
elast= typical_materials.defElasticMembranePlateSection(preprocessor, "elast",EMat,nuMat,espChapa*dens,espChapa)

points= preprocessor.getMultiBlockTopology.getPoints
pt1= points.newPntIDPos3d(1, geom.Pos3d(0.0,0.0,0) )
pt2= points.newPntIDPos3d(2, geom.Pos3d(b,0.0,0) )
pt3= points.newPntIDPos3d(3, geom.Pos3d(b,L,0) )
pt4= points.newPntIDPos3d(4, geom.Pos3d(0,L,0) )
surfaces= preprocessor.getMultiBlockTopology.getSurfaces
surfaces.defaultTag= 1
s= surfaces.newQuadSurfacePts(1,2,3,4)
s.nDivI= 1
s.nDivJ= NumDiv


nodes.newSeedNode()
コード例 #12
0
#Soil
kS = 30e6  #Module de réaction du sol (estimé).
backFillSoilModel = ep.RankineSoil(phi=math.radians(32),
                                   rho=2000)  #Characteristic values.
gSoil = backFillSoilModel.rho * gravity

#Floor.
EcFloor = Econcrete  # Concrete's Young modulus.

floor_set = layerSets['floor_a_middle'] + layerSets[
    'floor_stairs'] + layerSets['floor_middle_b']

floor40_set = layerSets['floor_a_middle']
hFloor40 = 0.40  # Floor thickness.
rhoFloor40 = hFloor40 * dens
shellFloor40 = typical_materials.defElasticMembranePlateSection(
    preprocessor, "shellFloor40", EcFloor, nu, rhoFloor40, hFloor40)
for s in floor40_set.getSurfaces:
    s.setProp('material', shellFloor40)
    s.setProp('selfWeight', xc.Vector([0.0, 0.0, -gravity * rhoFloor40]))

floor30_set = layerSets['floor_stairs'] + layerSets['floor_middle_b']
hFloor30 = 0.30  # Floor thickness.
rhoFloor30 = hFloor30 * dens
shellFloor30 = typical_materials.defElasticMembranePlateSection(
    preprocessor, "shellFloor30", EcFloor, nu, rhoFloor30, hFloor30)
for s in floor30_set.getSurfaces:
    s.setProp('material', shellFloor30)
    s.setProp('selfWeight', xc.Vector([0.0, 0.0, -gravity * rhoFloor30]))

floor_centroids = []
コード例 #13
0
__version__ = "3.0"
__email__ = "*****@*****.**"

R = 2.0
cos45 = math.cos(math.radians(45))
sin45 = cos45
E = 30e6  # Young modulus (psi)
nu = 0.3  # Coeficiente de Poison
rho = 0.0  # Densidad

nNodes = 0

prueba = xc.ProblemaEF()
preprocessor = prueba.getPreprocessor
elast = typical_materials.defElasticMaterial(preprocessor, "elast", 3000)
prueba = typical_materials.defElasticMembranePlateSection(
    preprocessor, "prueba", E, nu, rho, 0.25)

nodes = preprocessor.getNodeLoader
nodes.newSeedNode()

seedElemLoader = preprocessor.getElementLoader.seedElemLoader
seedElemLoader.defaultMaterial = "prueba"
seedElemLoader.defaultTag = 1
elem = seedElemLoader.newElement("shell_mitc4", xc.ID([0, 0, 0, 0]))

puntos = preprocessor.getCad.getPoints
pt = puntos.newPntIDPos3d(1, geom.Pos3d(R, 0.0, 0.0))
puntos.newPntFromPos3d(geom.Pos3d((R * cos45), (R * sin45), 0.0))
puntos.newPntFromPos3d(geom.Pos3d(0.0, R, 0.0))
puntos.newPntFromPos3d(geom.Pos3d(R, 0.0, 0.5))
puntos.newPntFromPos3d(geom.Pos3d((R * cos45), (R * sin45), 0.5))
コード例 #14
0
ファイル: test_shell_mitc9_03.py プロジェクト: lcpt/xc
#   pt1                           pt2
#    +-----------------------------+
#    |                             |
#    |                             |
#    |                             |
#    +-----------------------------+ ---> z
#   pt0                           pt3
#
# We have finished with the definition of the geometry.


# *********Material*********
width_cantilever = 1.0
E= 210000.0e6
I= 1/12.0*width_cantilever**4
canti_mat = typical_materials.defElasticMembranePlateSection(preprocessor, "canti_mat", E, 0.3, 0.0, width_cantilever)


# *********Elements*********
seedElemHandler = preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial = "canti_mat"
elem = seedElemHandler.newElement("ShellMITC9", xc.ID([0,0,0,0,0,0,0,0,0]))


# *********Mesh*********
f1 = preprocessor.getSets.getSet("f1")
f1.genMesh(xc.meshDir.I)


# *********Boundary conditions*********
# Fix all the 6 displacement and rotation DOFs
コード例 #15
0
ファイル: shell_edge_load_04.py プロジェクト: lcpt/xc
p= 10

# Problem type
prueba= xc.ProblemaEF()
prep= prueba.getPreprocessor
nodos= prep.getNodeHandler
predefined_spaces.gdls_resist_materiales3D(nodos)
nodos.newNodeIDXYZ(1,0,0,0)
nodos.newNodeIDXYZ(2,L,0,0)
nodos.newNodeIDXYZ(3,L,L,0)
nodos.newNodeIDXYZ(4,0,L,0)


# Definimos materiales

        memb1= typical_materials.defElasticMembranePlateSection(prep,"memb1",E,nu,dens,h)


elementos= prep.getElementHandler
elementos.defaultMaterial= "memb1"
elem= elementos.newElement("shell_mitc4",xc.ID([1,2,3,4]))


# Condiciones de contorno
coacciones= prep.getBoundaryCondHandler

fix_node_6dof.fixNode6DOF(coacciones,1)
fix_node_6dof.fixNode6DOF(coacciones,2)


# Definimos cargas
コード例 #16
0
ファイル: model_data.py プロジェクト: berndhahnebach/XCmodels
s2 = surfaces.newQuadSurfacePts(pt2b.tag, pt6b.tag, pt7a.tag, pt3a.tag)
s3 = surfaces.newQuadSurfacePts(pt3b.tag, pt7b.tag, pt8.tag, pt4.tag)

# **** Mesh parameters

# *** Materials ***
fcmConcr = 50e6
EcConcr = 8500 * (fcmConcr / 1e6)**(1 / 3.0) * 1e6
cpoisConcr = 0.2  #Poisson's coefficient of concrete
densConcr = 2500  #specific mass of concrete (kg/m3)
concrete = tm.MaterialData(name='concrete',
                           E=EcConcr,
                           nu=cpoisConcr,
                           rho=densConcr)

deckMat = tm.defElasticMembranePlateSection(prep, "deckMat", EcConcr,
                                            cpoisConcr, 0.0, deckTh)

# *** Meshing ***
seedElemHandler = prep.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial = "deckMat"
elem = seedElemHandler.newElement("ShellMITC4", xc.ID([0, 0, 0, 0]))

surfaces = [s1, s2, s3]

for s in surfaces:
    s.setElemSizeIJ(0.25, 0.25)
    s.genMesh(xc.meshDir.I)

# *** Constraints ***
cl1 = prep.getMultiBlockTopology.getLineWithEndPoints(pt1.tag, pt2a.tag)
cl2 = prep.getMultiBlockTopology.getLineWithEndPoints(pt2b.tag, pt3a.tag)
コード例 #17
0
ファイル: test_surface_meshing_05.py プロジェクト: lcpt/xc
__version__= "3.0"
__email__= "*****@*****.**"

R= 2.0
cos45= math.cos(math.radians(45))
sin45= cos45
E= 30e6 # Young modulus (psi)
nu= 0.3 # Poisson's ratio
rho= 0.0 # Density

nNodes= 0

feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
elast= typical_materials.defElasticMaterial(preprocessor, "elast",3000)
elasticMembranePlateSectionTest= typical_materials.defElasticMembranePlateSection(preprocessor, "elasticMembranePlateSectionTest",E,nu,rho,0.25)

nodes= preprocessor.getNodeHandler
nodes.newSeedNode()

seedElemHandler= preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial= "elasticMembranePlateSectionTest"
elem= seedElemHandler.newElement("ShellMITC4",xc.ID([0,0,0,0]))

points= preprocessor.getMultiBlockTopology.getPoints
pt= points.newPntIDPos3d(1,geom.Pos3d(R,0.0,0.0))
points.newPntFromPos3d(geom.Pos3d((R*cos45),(R*sin45),0.0))
points.newPntFromPos3d(geom.Pos3d(0.0,R,0.0))
points.newPntFromPos3d(geom.Pos3d(R,0.0,0.5))
points.newPntFromPos3d(geom.Pos3d((R*cos45),(R*sin45),0.5))
points.newPntFromPos3d(geom.Pos3d(0.0,R,0.5))
コード例 #18
0
feProblem = xc.FEProblem()
preprocessor = feProblem.getPreprocessor
nodes = preprocessor.getNodeHandler
# Problem type
modelSpace = predefined_spaces.StructuralMechanics3D(nodes)

feProblem.logFileName = "/tmp/erase.log"  # Nicely avoid warning messages.
numDivI = 1
numDivJ = 1
L = 10
E = 30e6  # Young modulus (psi)
nu = 0.3  # Poisson's ratio
rho = 0.0  # Density

matPrb = typical_materials.defElasticMembranePlateSection(
    preprocessor, "matPrb", E, nu, rho, 0.25)

seedElemHandler = preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial = matPrb.name
quad4n = seedElemHandler.newElement("ShellMITC4", xc.ID([0, 0, 0, 0]))

#                         3
#  4 +--------------------+--------------------+ 6
#    |                    |                    |
#    |                    |                    |
#    |                    |                    |
#  1 +--------------------+--------------------+ 5
#                         2

pt1 = modelSpace.newKPoint(0, 0, 0)
pt2 = modelSpace.newKPoint(L, 0, 0)
コード例 #19
0
L= 2
p= 10

# Tipo de problema
prueba= xc.ProblemaEF()
mdlr= prueba.getModelador
nodos= mdlr.getNodeLoader
predefined_spaces.gdls_resist_materiales3D(nodos)
nodos.newNodeIDXYZ(1,0,0,0)
nodos.newNodeIDXYZ(2,L,0,0)
nodos.newNodeIDXYZ(3,L,L,0)
nodos.newNodeIDXYZ(4,0,L,0)

# Definimos materiales

        memb1= typical_materials.defElasticMembranePlateSection(mdlr,"memb1",E,nu,dens,h)


elementos= mdlr.getElementLoader
elementos.defaultMaterial= "memb1"
elem= elementos.newElement("shell_mitc4",xc.ID([1,2,3,4]))


# Condiciones de contorno
coacciones= mdlr.getConstraintLoader

fix_node_6dof.fixNode6DOF(coacciones,1)
fix_node_6dof.fixNode6DOF(coacciones,2)


# Definimos cargas
コード例 #20
0
Ttop = 10  # Temperature at top side (Celsius degrees)
Tbottom = 0  # Temperature at bottom side (Celsius degrees)
thickness = 2e-2

feProblem = xc.FEProblem()
preprocessor = feProblem.getPreprocessor
nodes = preprocessor.getNodeHandler
modelSpace = predefined_spaces.StructuralMechanics3D(nodes)
nod1 = nodes.newNodeXYZ(0.0, b, 0.0)
nod2 = nodes.newNodeXYZ(L, b, 0.0)
nod3 = nodes.newNodeXYZ(L, 0.0, 0.0)
nod4 = nodes.newNodeXYZ(0, 0.0, 0.0)

# Materials definition

memb1 = typical_materials.defElasticMembranePlateSection(
    preprocessor=preprocessor, name="memb1", E=E, nu=0.3, rho=0.0, h=thickness)

# Elements definition
elements = preprocessor.getElementHandler
elements.defaultMaterial = memb1.name
elem1 = elements.newElement("ShellMITC4",
                            xc.ID([nod4.tag, nod3.tag, nod2.tag, nod1.tag]))

# Constraints
constraints = preprocessor.getBoundaryCondHandler

spc = constraints.newSPConstraint(nod1.tag, 0, 0.0)
spc = constraints.newSPConstraint(nod1.tag, 1, 0.0)
spc = constraints.newSPConstraint(nod1.tag, 2, 0.0)
spc = constraints.newSPConstraint(nod1.tag, 4, 0.0)
spc = constraints.newSPConstraint(nod4.tag, 0, 0.0)
コード例 #21
0
ファイル: test_surface_meshing_04.py プロジェクト: lcpt/xc
__email__= "*****@*****.**"

R= 2.0
cos45= math.cos(math.radians(45))
sin45= cos45
E= 30e6 # Young modulus (psi)
nu= 0.3 # Poisson's ratio
rho= 0.0 # Density

area= 0

feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor

elast= typical_materials.defElasticMaterial(preprocessor, "elast",3000)
matPrb= typical_materials.defElasticMembranePlateSection(preprocessor, "matPrb",E,nu,rho,0.25)

nodes= preprocessor.getNodeHandler
nodes.newSeedNode()

seedElemHandler= preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial= "matPrb"
elem= seedElemHandler.newElement("ShellMITC4",xc.ID([0,0,0,0]))


points= preprocessor.getMultiBlockTopology.getPoints
pt= points.newPntIDPos3d(1,geom.Pos3d(R,0.0,0.0))
points.newPntFromPos3d(geom.Pos3d((R*cos45),(R*sin45),0.0))
points.newPntFromPos3d(geom.Pos3d(0.0,R,0.0))
points.newPntFromPos3d(geom.Pos3d(R,0.0,1.0))
points.newPntFromPos3d(geom.Pos3d((R*cos45),(R*sin45),1.0))
コード例 #22
0
area= b*espChapa # Cross section area en m2
inertia1= 1/12.0*espChapa*b**3 # Moment of inertia in m4
inertia2= 1/12.0*b*espChapa**3 # Moment of inertia in m4
dens= 7800 # Density of the steel en kg/m3
m= b*h*dens

NumDiv= 10

# Problem type
feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
nodes= preprocessor.getNodeHandler

modelSpace= predefined_spaces.StructuralMechanics3D(nodes)
# Define materials
elast= typical_materials.defElasticMembranePlateSection(preprocessor, "elast",EMat,nuMat,dens,espChapa)

points= preprocessor.getMultiBlockTopology.getPoints
pt1= points.newPntIDPos3d(1, geom.Pos3d(0.0,0.0,0.0) )
pt2= points.newPntIDPos3d(2, geom.Pos3d(b,0.0,0.0) )
pt3= points.newPntIDPos3d(3, geom.Pos3d(b,L,0.0) )
pt4= points.newPntIDPos3d(4, geom.Pos3d(0,L,0.0) )
surfaces= preprocessor.getMultiBlockTopology.getSurfaces
surfaces.defaultTag= 1
s= surfaces.newQuadSurfacePts(pt1.tag,pt2.tag,pt3.tag,pt4.tag)
s.nDivI= 1
s.nDivJ= NumDiv

seedElemHandler= preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial= elast.name
seedElemHandler.defaultTag= 1
コード例 #23
0
pt4 = points.newPntFromPos3d(p4)
pt5 = points.newPntFromPos3d(p5)

### Define polygonal surfaces
surfaces = modelSpace.getSurfaceHandler()
polyFace = surfaces.newPolygonalFacePts(
    [pt1.tag, pt2.tag, pt3.tag, pt4.tag, pt5.tag])
pFaceHoles = list()
for b in bolts:
    pFace = getHoleAsPolygonalSurface(b, surfaces)
    pFaceHoles.append(pFace)

### Define material
mat = typical_materials.defElasticMembranePlateSection(preprocessor,
                                                       "mat",
                                                       E=2.1e9,
                                                       nu=0.3,
                                                       rho=7850,
                                                       h=0.015)

### Define template element
seedElemHandler = preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial = mat.name
elem = seedElemHandler.newElement("ShellMITC4", xc.ID([0, 0, 0, 0]))

### Generate mesh.
polyFace.setElemSize(1.5 * boltDiameter, True)
for h in pFaceHoles:
    h.setNDiv(1)
    polyFace.addHole(h)
polyFace.genMesh(xc.meshDir.I, False)
コード例 #24
0
nod = nodes.newNodeXYZ(0, 0, 0)
nod = nodes.newNodeXYZ(1, 0, 0)
nod = nodes.newNodeXYZ(2, 0, 0)
nod = nodes.newNodeXYZ(3, 0, 0)
nod = nodes.newNodeXYZ(0, 1, 0)
nod = nodes.newNodeXYZ(1, 1, 0)
nod = nodes.newNodeXYZ(2, 1, 0)
nod = nodes.newNodeXYZ(3, 1, 0)
nod = nodes.newNodeXYZ(0, 2, 0)
nod = nodes.newNodeXYZ(1, 2, 0)
nod = nodes.newNodeXYZ(2, 2, 0)
nod = nodes.newNodeXYZ(3, 2, 0)

# Materials definition

hLosa = typical_materials.defElasticMembranePlateSection(
    preprocessor, "hLosa", Ec, nuC, densLosa, hLosa)

typical_materials.defSteel02(preprocessor, "prestressingSteel", Ep, fy, 0.001,
                             tInic)

elements = preprocessor.getElementHandler
# Reinforced concrete deck
elements.defaultMaterial = "hLosa"
elements.defaultTag = 1
elem = elements.newElement("ShellMITC4", xc.ID([1, 2, 6, 5]))

elem = elements.newElement("ShellMITC4", xc.ID([2, 3, 7, 6]))
elem = elements.newElement("ShellMITC4", xc.ID([3, 4, 8, 7]))
elem = elements.newElement("ShellMITC4", xc.ID([5, 6, 10, 9]))
elem = elements.newElement("ShellMITC4", xc.ID([6, 7, 11, 10]))
elem = elements.newElement("ShellMITC4", xc.ID([7, 8, 12, 11]))
コード例 #25
0
__version__ = "3.0"
__email__ = "*****@*****.**"

R = 2.0
cos45 = math.cos(math.radians(45))
sin45 = cos45
E = 30e6  # Young modulus (psi)
nu = 0.3  # Coeficiente de Poison
rho = 0.0  # Densidad

nNodes = 0

feProblem = xc.FEProblem()
preprocessor = feProblem.getPreprocessor
elast = typical_materials.defElasticMaterial(preprocessor, "elast", 3000)
elasticMembranePlateSectionTest = typical_materials.defElasticMembranePlateSection(
    preprocessor, "elasticMembranePlateSectionTest", E, nu, rho, 0.25)

nodes = preprocessor.getNodeHandler
nodes.newSeedNode()

seedElemHandler = preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial = "elasticMembranePlateSectionTest"
seedElemHandler.defaultTag = 1
elem = seedElemHandler.newElement("ShellMITC4", xc.ID([0, 0, 0, 0]))

points = preprocessor.getMultiBlockTopology.getPoints
pt = points.newPntIDPos3d(1, geom.Pos3d(R, 0.0, 0.0))
points.newPntFromPos3d(geom.Pos3d((R * cos45), (R * sin45), 0.0))
points.newPntFromPos3d(geom.Pos3d(0.0, R, 0.0))
points.newPntFromPos3d(geom.Pos3d(R, 0.0, 0.5))
points.newPntFromPos3d(geom.Pos3d((R * cos45), (R * sin45), 0.5))
コード例 #26
0
ファイル: test_resisting_svd01.py プロジェクト: lcpt/xc
nod2= nodes.newNodeXYZ(1,0,0)
nod3= nodes.newNodeXYZ(2,0,0)
nod4= nodes.newNodeXYZ(3,0,0)
nod5= nodes.newNodeXYZ(0,1,0)
nod6= nodes.newNodeXYZ(1,1,0)
nod7= nodes.newNodeXYZ(2,1,0)
nod8= nodes.newNodeXYZ(3,1,0)
nod9= nodes.newNodeXYZ(0,2,0)
nod10= nodes.newNodeXYZ(1,2,0)
nod11= nodes.newNodeXYZ(2,2,0)
nod12= nodes.newNodeXYZ(3,2,0)


# Materials definition

hLosa= typical_materials.defElasticMembranePlateSection(preprocessor, "hLosa",Ec,nuC,densLosa,hLosa)

typical_materials.defSteel02(preprocessor, "prestressingSteel",Ep,fy,0.001,tInic)

elements= preprocessor.getElementHandler
# Reinforced concrete deck
elements.defaultMaterial= "hLosa"
elements.defaultTag= 1
elem= elements.newElement("ShellMITC4",xc.ID([1,2,6,5]))

elem= elements.newElement("ShellMITC4",xc.ID([2,3,7,6]))
elem= elements.newElement("ShellMITC4",xc.ID([3,4,8,7]))
elem= elements.newElement("ShellMITC4",xc.ID([5,6,10,9]))
elem= elements.newElement("ShellMITC4",xc.ID([6,7,11,10]))
elem= elements.newElement("ShellMITC4",xc.ID([7,8,12,11]))
コード例 #27
0
ファイル: test_shell_mitc4_22.py プロジェクト: dratsiox/xc
q = 1

# Problem type
prueba = xc.ProblemaEF()
preprocessor = prueba.getPreprocessor
nodes = preprocessor.getNodeLoader
modelSpace = predefined_spaces.StructuralMechanics3D(nodes)
nodes.newNodeIDXYZ(1, 0, 0, 0)
nodes.newNodeIDXYZ(2, 1, 0, 0)
nodes.newNodeIDXYZ(3, 1, 1, 0)
nodes.newNodeIDXYZ(4, 0, 1, 0)

# Materials definition

memb1 = typical_materials.defElasticMembranePlateSection(
    preprocessor, "memb1", E, nu, dens, h)

elementos = preprocessor.getElementLoader
elementos.defaultMaterial = "memb1"
elem = elementos.newElement("shell_mitc4", xc.ID([1, 2, 3, 4]))

# Constraints
coacciones = preprocessor.getConstraintLoader

fix_node_6dof.Nodo6DOFGirosLibres(coacciones, 1)
fix_node_6dof.Nodo6DOFGirosLibres(coacciones, 2)
fix_node_6dof.Nodo6DOFGirosLibres(coacciones, 3)
fix_node_6dof.Nodo6DOFGirosLibres(coacciones, 4)

# Loads definition
cargas = preprocessor.getLoadLoader
コード例 #28
0
quakeAccel = 1.25  #m/s2

#Material definition.
concrete = SIA262_materials.c30_37
nu = 0.3  # Poisson coefficient.
dens = 2500  # Density kg/m3.

#Deck.
#reductionFactor= 1.0 #
reductionFactor = 7.0  #Reduction factor
Econcrete = concrete.getEcm() / reductionFactor
EcDeck = Econcrete  # Concrete's Young modulus.
hDeck = 0.20  # Deck thickness.
rhoDeck = hDeck * dens

shellDeck = typical_materials.defElasticMembranePlateSection(
    preprocessor, "shellDeck", EcDeck, nu, rhoDeck, hDeck)

#Dock.
EcDock = Econcrete  # Concrete's Young modulus.
hDock = 0.18  # Dock thickness.
rhoDock = hDock * dens

shellDock = typical_materials.defElasticMembranePlateSection(
    preprocessor, "shellDock", EcDock, nu, rhoDock, hDock)

#Parapet.
EcParapet = Econcrete  # Concrete's Young modulus.
bParapet = 0.25  # Parapet thickness.
rhoParapet = bParapet * dens

shellParapet = typical_materials.defElasticMembranePlateSection(