Пример #1
0
from materials import typical_materials

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

# nverborrea= 0

ndivX = 5
ndivY = 8

feProblem = xc.FEProblem()
preprocessor = feProblem.getPreprocessor
elast2d = typical_materials.defElasticIsotropicPlaneStress(
    preprocessor, "elast2d", 30e6, 0.3, 0.0)

nodes = preprocessor.getNodeHandler

nodes.dimSpace = 3  # 3 coordinates for each node.
nodes.numDOFs = 2  # Two degrees of freedom for each node.
nodes.newSeedNode()
seedElemHandler = preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial = "elast2d"
seedElemHandler.dimElem = 3  # Dimension of element space
seedElemHandler.defaultTag = 1  #Tag for the next element.
quad4n = seedElemHandler.newElement("FourNodeQuad", xc.ID([0, 0, 0, 0]))

unifGrids = preprocessor.getMultiBlockTopology.getUniformGrids
uGrid = unifGrids.newUniformGrid()
Пример #2
0
#   1   2   5

n1 = nodes.newNodeIDXY(1, 0, 0)
n2 = nodes.newNodeIDXY(2, 1, 0)
n3 = nodes.newNodeIDXY(3, 1, 1)
n4 = nodes.newNodeIDXY(4, 0, 1)
n5 = nodes.newNodeIDXY(5, 2, 0)
n6 = nodes.newNodeIDXY(6, 2, 1)
n7 = nodes.newNodeIDXY(7, 2, 2)
n8 = nodes.newNodeIDXY(8, 1, 2)
totalSet = preprocessor.getSets.getSet('total')
bnd0 = totalSet.getBnd(0.0)
pmin0 = bnd0.pMin
pmax0 = bnd0.pMax

elast2d = typical_materials.defElasticIsotropicPlaneStress(
    preprocessor, "elast2d", E, nu, rho)
# Elements definition
elements = preprocessor.getElementHandler
elements.defaultMaterial = "elast2d"
a = elements.newElement("FourNodeQuad", xc.ID([1, 2, 3, 4]))
b = elements.newElement("FourNodeQuad", xc.ID([2, 5, 6, 3]))
c = elements.newElement("FourNodeQuad", xc.ID([3, 6, 7, 8]))

bnd1 = totalSet.getBnd(0.0)
pmin1 = bnd1.pMin
pmax1 = bnd1.pMax

ratio = math.sqrt(pmin0.x**2 + pmin0.y**2 + pmin0.z**2)
ratio += math.sqrt((pmax0.x - 2)**2 + (pmax0.y - 2)**2 + pmax0.z**2)
ratio += math.sqrt(pmin1.x**2 + pmin1.y**2 + pmin1.z**2)
ratio += math.sqrt((pmax1.x - 2)**2 + (pmax1.y - 2)**2 + pmax1.z**2)
Пример #3
0
#   +---+---+5
#   | a |3 
#   +---+
#   1   2   5


n1= nodes.newNodeIDXY(1,0,0)
n2= nodes.newNodeIDXY(2,1,0)
n3= nodes.newNodeIDXY(3,1,1)
n4= nodes.newNodeIDXY(4,0,1)
n6= nodes.newNodeIDXY(5,2,1)
n7= nodes.newNodeIDXY(6,2,2)
n8= nodes.newNodeIDXY(7,1,2)


elast2d= typical_materials.defElasticIsotropicPlaneStress(preprocessor, "elast2d",E,nu,rho)
# Elements definition
elements= preprocessor.getElementHandler
elements.defaultMaterial= "elast2d"
a= elements.newElement("FourNodeQuad",xc.ID([1,2,3,4]))
b= elements.newElement("FourNodeQuad",xc.ID([3,5,6,7]))

totalSet= preprocessor.getSets.getSet('total')
polygons= totalSet.getElements.getContours(True)

length= polygons[0].getLength()+polygons[1].getLength()

ratio1= (length-8.0)/8.0


''' 
Пример #4
0
import xc_base
import geom
import xc
from solution import predefined_solutions
from model import predefined_spaces
from materials import typical_materials
# from postprocess import output_handler

# Problem type
feProblem = xc.FEProblem()
preprocessor = feProblem.getPreprocessor
# Materials definition
elast2d = typical_materials.defElasticIsotropicPlaneStress(preprocessor,
                                                           "elast2d",
                                                           E=1e6,
                                                           nu=0.25,
                                                           rho=0.0)

nodes = preprocessor.getNodeHandler
modelSpace = predefined_spaces.SolidMechanics2D(nodes)
nod0 = nodes.newNodeXY(0, 0)
nod1 = nodes.newNodeXY(1, 0)
nod2 = nodes.newNodeXY(0, 1)
nod3 = nodes.newNodeXY(1, 1)

elements = preprocessor.getElementHandler
elements.defaultMaterial = elast2d.name

quad0 = elements.newElement('FourNodeQuad',
                            xc.ID([nod0.tag, nod1.tag, nod3.tag, nod2.tag]))
Пример #5
0
from materials import typical_materials

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

# feProblem.setVerbosityLevel(0)

ndivX= 5
ndivY= 8

feProblem= xc.FEProblem()
preprocessor=  feProblem.getPreprocessor
elast2d= typical_materials.defElasticIsotropicPlaneStress(preprocessor, "elast2d",30e6,0.3,0.0)

nodes= preprocessor.getNodeHandler

nodes.dimSpace= 3 # 3 coordinates for each node.
nodes.numDOFs= 2 # Two degrees of freedom for each node.
nodes.newSeedNode()
seedElemHandler= preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial= "elast2d"
seedElemHandler.dimElem= 3 # Dimension of element space
seedElemHandler.defaultTag= 1 #Tag for the next element.
quad4n= seedElemHandler.newElement("FourNodeQuad",xc.ID([0,0,0,0]))

unifGrids= preprocessor.getMultiBlockTopology.getUniformGrids
uGrid= unifGrids.newUniformGrid()
Пример #6
0
h = 60e-3  # Height of the beam cross section (m)
t = 20e-3  # Thicknessof the beam cross section (m)
E = 210e9  # Young’s modulus (Pa)
nu = 0.3  # Poisson’s ratio
sg_yield = 235e6  # Allowable stress: yield stress of steel (Pa)

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

# Material definition
steel2d = typical_materials.defElasticIsotropicPlaneStress(preprocessor,
                                                           "steel2d",
                                                           E=E,
                                                           nu=nu,
                                                           rho=0.0)

# Problem geometry
# The “bottom-up method” generates the geometry of the system
# going  from  key  points (0D) to lines (1D) and areas (2D)
# up to volumes (3D).

p1 = modelSpace.newKPoint(0.0, h / 2.0)
p2 = modelSpace.newKPoint(L / 2.0, h / 2.0)
p3 = modelSpace.newKPoint(L / 2.0, -h / 2.0)
p4 = modelSpace.newKPoint(0.0, -h / 2.0)

s = modelSpace.newSurface([p1, p2, p3, p4])
s.setElemSizeIJ(6.5 * 3e-3, 3e-3)