beamRCsect.dir1PositvRebarRows = def_simple_RC_section.LongReinfLayers( [fi10s75r30]) beamRCsect.dir1NegatvRebarRows = def_simple_RC_section.LongReinfLayers( [fi16s75r30]) beamRCsect.dir2PositvRebarRows = def_simple_RC_section.LongReinfLayers( [fi10s75r30]) beamRCsect.dir2NegatvRebarRows = def_simple_RC_section.LongReinfLayers( [fi16s75r30]) sections.append(beamRCsect) feProblem = xc.FEProblem() feProblem.errFileName = "/tmp/erase.err" # Don't print(errors.) preprocessor = feProblem.getPreprocessor nodes = preprocessor.getNodeHandler # Problem type modelSpace = predefined_spaces.StructuralMechanics3D( nodes) #Defines the dimension of #the space: nodes by three coordinates (x,y,z) and six #DOF for each node (Ux,Uy,Uz,thetaX,thetaY,thetaZ) nodes.defaultTag = 0 #First node number. nod = nodes.newNodeXYZ(0, 0.0, 0.0) nod = nodes.newNodeXYZ(Lbeam, 0.0, 0.0) nod = nodes.newNodeXYZ(0.0, Lbeam, 0.0) nod = nodes.newNodeXYZ(0.0, 0.0, Lbeam) # Geometric transformations trfs = preprocessor.getTransfCooHandler # Coord. trasformation for beam in global X direction #local Z axis of the element # parallel to global -Y (it matches # the direction of the local Z axis of the reinforced
import math from model import fix_node_6dof from model import nodalReactions from solution import predefined_solutions prueba = xc.ProblemaEF() preprocessor = prueba.getPreprocessor nodes = preprocessor.getNodeLoader p1 = geom.Pos3d(0, 0, 0) p2 = geom.Pos3d(1, 0, 0) p3 = geom.Pos3d(1, 1, 0) p4 = geom.Pos3d(0, 1, 0) # Problem type modelSpace = predefined_spaces.StructuralMechanics3D(nodes) nodes.newNodeIDXYZ(1, p1.x, p1.y, p1.z) nodes.newNodeIDXYZ(2, p2.x, p2.y, p2.z) nodes.newNodeIDXYZ(3, p3.x, p3.y, p3.z) nodes.newNodeIDXYZ(4, p4.x, p4.y, p4.z) p10 = geom.Pos3d(p1.x, p1.y, p1.z) n10 = nodes.newNodeIDXYZ(10, p10.x, p10.y, p10.z) # 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]))
#Other data nDivIJ = 20 #number of cells (fibers) in the IJ direction (cross-section coordinate Y) nDivJK = 20 #number of cells (fibers) in the JK direction (cross-section coordinate Z) areaFi26 = math.pi * (26e-3)**2 / 4.0 l = 1e-7 # Distance between nodes # Model definition problem = xc.FEProblem() #necesary to create this instance of #the class xc.FEProblem() preprocessor = problem.getPreprocessor nodes = preprocessor.getNodeHandler #nodes container modelSpace = predefined_spaces.StructuralMechanics3D( nodes ) #Defines the dimension of nodes three coordinates (x,y,z) and six DOF for each node (Ux,Uy,Uz,thetaX,thetaY,thetaZ) nodes.defaultTag = 1 #First node number. nod = nodes.newNodeXYZ(1.0, 0, 0) #node 1 defined by its (x,y,z) global coordinates nod = nodes.newNodeXYZ(1.0 + l, 0, 0) #node 2 defined by its (x,y,z) global coordinates # Materials definition concrete = EC2_materials.EC2Concrete( "C33", -33e6, 1.5) #concrete according to EC2 fck=33 MPa #Reinforcing steel. rfSteel = EC2_materials.S450C #reinforcing steel according to EC2 fyk=450 MPa steelDiagram = rfSteel.defDiagK(