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

CooMaxX= 2
CooMaxY= 1
old_stderr= sys.stderr

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

modelSpace= predefined_spaces.SolidMechanics2D(nodes)# Model space definition

# Definition of points.
points= preprocessor.getMultiBlockTopology.getPoints
pt1= points.newPoint(geom.Pos3d(0.0,0.0,0.0))
pt2= points.newPoint(geom.Pos3d(CooMaxX/2,0.0,0.0))
pt3= points.newPoint(geom.Pos3d(CooMaxX,0.0,0.0))
pt4= points.newPoint(geom.Pos3d(0.0,CooMaxY,0.0))
pt5= points.newPoint(geom.Pos3d(CooMaxX/2,CooMaxY,0.0))
pt6= points.newPoint(geom.Pos3d(CooMaxX,CooMaxY,0.0))

# Definition of quadrilateral surfaces.
surfaces= preprocessor.getMultiBlockTopology.getSurfaces
s1= surfaces.newQuadSurfacePts(pt1.tag,pt2.tag,pt5.tag,pt4.tag)
s2= surfaces.newQuadSurfacePts(pt2.tag,pt3.tag,pt6.tag,pt5.tag)
F2= 1000/2 # Force magnitude 2 (pounds)

import xc_base
import geom
import xc
from model import predefined_spaces
from solution import predefined_solutions
from materials import typical_materials


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

nodes.defaultTag= 1 #First node number.
nod= nodes.newNodeXY(0,0)
nod= nodes.newNodeXY(0.0,l-a-b)
nod= nodes.newNodeXY(0.0,l-a)
nod= nodes.newNodeXY(0.0,l)

# Materials definition
elast= typical_materials.defElasticMaterial(preprocessor, "elast",E)
    
''' We define nodes at the points where loads will be applied.
    We will not compute stresses so we can use an arbitrary
    cross section of unit area.'''
    
# Elements definition
示例#3
0
CooMaxY = 1
E = 30e6  # Young modulus (psi)
nu = 0.3  # Coeficiente de Poison
rho = 0.0  # Densidad
old_stderr = sys.stderr

numNodes = 0
numElem = 0
# Problem type
feProblem = xc.FEProblem()
feProblem.logFileName = "/tmp/borrar.log"  # Ignore warning messages
feProblem.errFileName = "/tmp/borrar.err"  # Ignore warning messages
preprocessor = feProblem.getPreprocessor
nodes = preprocessor.getNodeHandler

modelSpace = predefined_spaces.SolidMechanics2D(nodes)  # Materials definition
elast = typical_materials.defElasticMaterial(preprocessor, "elast", 3000)

nodes.newSeedNode()

elast2d = typical_materials.defElasticIsotropicPlaneStress(
    preprocessor, "elast2d", E, nu, rho)

seedElemHandler = preprocessor.getElementHandler.seedElemHandler
seedElemHandler.defaultMaterial = "elast2d"
elem = seedElemHandler.newElement("FourNodeQuad", 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 / 2, 0.0, 0.0))
pt = points.newPntIDPos3d(3, geom.Pos3d(CooMaxX, 0.0, 0.0))