def nuevoZeroLengthSecc2d(preprocessor, nmbS, tagNodo, tagElem): idNod1 = tagNodo idNod2 = (tagNodo + 1) # Define nodes nodes.newNodeIDXYZ(idNod1, tagNodo, 0, 0) nodes.newNodeIDXYZ(idNod2, tagNodo, 0, 0) coacciones = preprocessor.getConstraintLoader fix_node_6dof.fixNode6DOF(coacciones, idNod1) fix_node_6dof.Nodo6DOFGirosLibres(coacciones, idNod2) # Definimos elementos elementos = preprocessor.getElementLoader elementos.defaultMaterial = nmbS elementos.defaultTag = tagElem #Tag for the next element. zls = elementos.newElement("zero_length_section", xc.ID([idNod1, idNod2]))
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 casos = cargas.getLoadPatterns #Load modulation. ts = casos.newTimeSeries("constant_ts", "ts") casos.currentTimeSeries = "ts" #Load case definition lp0 = casos.newLoadPattern("default", "0") casos.currentLoadPattern = "0"
n4 = nodes.newNodeXYZ(p4.x, p4.y, p4.z) p10 = geom.Pos3d(0.5, 0.5, 0.0) n10 = nodes.newNodeXYZ(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([n1.tag, n2.tag, n3.tag, n4.tag])) # Constraints coacciones = preprocessor.getConstraintLoader fix_node_6dof.Nodo6DOFGirosLibres(coacciones, n1.tag) fix_node_6dof.Nodo6DOFGirosLibres(coacciones, n2.tag) fix_node_6dof.Nodo6DOFGirosLibres(coacciones, n3.tag) fix_node_6dof.Nodo6DOFGirosLibres(coacciones, n4.tag) #fix_node_6dof.fixNode6DOF(coacciones, 1) #fix_node_6dof.fixNode6DOF(coacciones, 2) #fix_node_6dof.fixNode6DOF(coacciones, 3) #fix_node_6dof.fixNode6DOF(coacciones, 4) #Glued node. gluedDOFs = [0, 1, 2, 3, 4, 5] loadOnDOFs = [0, 0, 0, 0, 0, 0] for i in range(0, 6): if i not in gluedDOFs: coacciones.newSPConstraint(n10.tag, i, 0.0) else: