OpenSeesPyAssistant 1.1
OpenSeesPy for everyone
MemberModel Namespace Reference

Module for the member model. More...

Classes

class  ElasticElement
 Class that handles the storage and manipulation of a elastic element's information (mechanical and geometrical parameters, etc) and the initialisation in the model. More...
 
class  ElasticElementSteelIShape
 Class that is the children of ElasticElement and combine the class SteelIShape (section) to retrieve the information needed. More...
 
class  ForceBasedElement
 Class that handles the storage and manipulation of a force-based element's information (mechanical and geometrical parameters, etc) and the initialisation in the model. More...
 
class  ForceBasedElementFibersCircRCCircShape
 Class that is the children of ForceBasedElement and combine the class FibersCircRCCircShape (fiber section) to retrieve the information needed. More...
 
class  ForceBasedElementFibersIShapeSteelIShape
 Class that is the children of ForceBasedElement and combine the class FibersIShapeSteelIShape (fiber section) to retrieve the information needed. More...
 
class  ForceBasedElementFibersRectRCRectShape
 Class that is the children of ForceBasedElement and combine the class FibersRectRCRectShape (fiber section) to retrieve the information needed. More...
 
class  GIFBElement
 Class that handles the storage and manipulation of a Gradient-Inelastic Flexibility-based element's information (mechanical and geometrical parameters, etc) and the initialisation in the model. More...
 
class  GIFBElementFibersCircRCCircShape
 Class that is the children of GIFBElement and combine the class FibersCircRCCircShape (fiber section) to retrieve the information needed. More...
 
class  GIFBElementFibersRectRCRectShape
 Class that is the children of GIFBElement and combine the class FibersRectRCRectShape (fiber section) to retrieve the information needed. More...
 
class  GIFBElementRCCircShape
 Class that is the children of GIFBElement and combine the class RCCircShape (section) to retrieve the information needed. More...
 
class  GIFBElementRCRectShape
 Class that is the children of GIFBElement and combine the class RCRectShape (section) to retrieve the information needed. More...
 
class  MemberModel
 Parent abstract class for the storage and manipulation of a member's information (mechanical and geometrical parameters, etc) and the initialisation in the model. More...
 
class  PanelZone
 Class that handles the storage and manipulation of a panel zone's information (mechanical and geometrical parameters, etc) and the initialisation in the model. More...
 
class  PanelZoneRCS
 WIP: Class that is the children of PanelZone and it's used for the panel zone in a RCS (RC column continous, Steel beam). More...
 
class  PanelZoneSteelIShape
 Class that is the children of PanelZone and combine the class SteelIShape (section) to retrieve the information needed. More...
 
class  PanelZoneSteelIShapeGupta1999
 Class that is the children of PanelZoneSteelIShape and automatically create the spring material model Gupta 1999 (ID = master_node_ID). More...
 
class  PanelZoneSteelIShapeSkiadopoulos2021
 Class that is the children of PanelZoneSteelIShape and automatically create the spring material model Skiadopoulos 2021 (ID = master_node_ID). More...
 
class  SpringBasedElement
 Class that handles the storage and manipulation of a spring-based element's information (mechanical and geometrical parameters, etc) and the initialisation in the model. More...
 
class  SpringBasedElementModifiedIMKSteelIShape
 Class that is the children of SpringBasedElement and combine the class SteelIShape (section) to retrieve the information needed. More...
 
class  SpringBasedElementSteelIShape
 Class that is the children of SpringBasedElement and combine the class SteelIShape (section) to retrieve the information needed. More...
 

Functions

def DefinePanelZoneElements (MasterNodeID, E, RigidA, RigidI, TransfID)
 Function that defines the 8 panel zone elements. More...
 
def DefinePanelZoneNodes (int MasterNodeID, MidPanelZoneWidth, MidPanelZoneHeight)
 Function that defines the remaining 10 nodes of a panel zone given the dimensions and the master node (top center one). More...
 

Detailed Description

Module for the member model.

Carmine Schipani, 2021

Function Documentation

◆ DefinePanelZoneElements()

def MemberModel.DefinePanelZoneElements (   MasterNodeID,
  E,
  RigidA,
  RigidI,
  TransfID 
)

Function that defines the 8 panel zone elements.

For the ID convention, see DefinePanelZoneNodes.

Parameters
MasterNodeID(int): ID of the master node (central top node that should be a grid node).
E(float): Young modulus.
RigidA(float): A very rigid area.
RigidI(float): A very rigid moment of inertia.
TransfID(int): The geometric transformation (for more information, see OpenSeesPy documentation).
Returns
list: List of lists, wth each list containing the ID of the element, of node i and node j.

Definition at line 432 of file MemberModel.py.

432def DefinePanelZoneElements(MasterNodeID, E, RigidA, RigidI, TransfID):
433 """
434 Function that defines the 8 panel zone elements. For the ID convention, see DefinePanelZoneNodes.
435
436 @param MasterNodeID (int): ID of the master node (central top node that should be a grid node).
437 @param E (float): Young modulus.
438 @param RigidA (float): A very rigid area.
439 @param RigidI (float): A very rigid moment of inertia.
440 @param TransfID (int): The geometric transformation (for more information, see OpenSeesPy documentation).
441
442 @returns list: List of lists, wth each list containing the ID of the element, of node i and node j.
443 """
444 # Compute the ID of the nodes obeying to the convention used
445 xy = MasterNodeID
446 xy1 = IDConvention(xy, 1)
447 xy01 = IDConvention(xy, 1, 1)
448 xy02 = IDConvention(xy, 2, 1)
449 xy03 = IDConvention(xy, 3, 1)
450 xy04 = IDConvention(xy, 4, 1)
451 xy05 = IDConvention(xy, 5, 1)
452 xy06 = IDConvention(xy, 6, 1)
453 xy07 = IDConvention(xy, 7, 1)
454 xy08 = IDConvention(xy, 8, 1)
455 xy09 = IDConvention(xy, 9, 1)
456 xy10 = IDConvention(xy, 10)
457
458 # Create element IDs using the convention: xy(a)xy(a) with xy(a) = NodeID i and j
459 # Starting at MasterNodeID, clockwise
460 # if MasterNodeID > 99:
461 # print("Warning, convention: MasterNodeID's digits should be 2")
462
463 ele1 = IDConvention(xy, xy1)
464 ele2 = IDConvention(xy01, xy02)
465 ele3 = IDConvention(xy02, xy03)
466 ele4 = IDConvention(xy04, xy05)
467 ele5 = IDConvention(xy05, xy06)
468 ele6 = IDConvention(xy07, xy08)
469 ele7 = IDConvention(xy08, xy09)
470 ele8 = IDConvention(xy10, xy)
471
472 # Create panel zone elements
473 # ID ndI ndJ A E I Transf
474 element("elasticBeamColumn", ele1, xy, xy1, RigidA, E, RigidI, TransfID)
475 element("elasticBeamColumn", ele2, xy01, xy02, RigidA, E, RigidI, TransfID)
476 element("elasticBeamColumn", ele3, xy02, xy03, RigidA, E, RigidI, TransfID)
477 element("elasticBeamColumn", ele4, xy04, xy05, RigidA, E, RigidI, TransfID)
478 element("elasticBeamColumn", ele5, xy05, xy06, RigidA, E, RigidI, TransfID)
479 element("elasticBeamColumn", ele6, xy07, xy08, RigidA, E, RigidI, TransfID)
480 element("elasticBeamColumn", ele7, xy08, xy09, RigidA, E, RigidI, TransfID)
481 element("elasticBeamColumn", ele8, xy10, xy, RigidA, E, RigidI, TransfID)
482
483 # Create element array for forther manipulations
484 element_array = [[ele1, xy, xy1],
485 [ele2, xy01, xy02],
486 [ele3, xy02, xy03],
487 [ele4, xy04, xy05],
488 [ele5, xy05, xy06],
489 [ele6, xy07, xy08],
490 [ele7, xy08, xy09],
491 [ele8, xy10, xy]]
492
493 return element_array
494
495
def IDConvention(int prefix, int suffix, n_zeros_between=0)
Function used to construct IDs for elements and offgrid nodes.
def DefinePanelZoneElements(MasterNodeID, E, RigidA, RigidI, TransfID)
Function that defines the 8 panel zone elements.
Definition: MemberModel.py:432

◆ DefinePanelZoneNodes()

def MemberModel.DefinePanelZoneNodes ( int  MasterNodeID,
  MidPanelZoneWidth,
  MidPanelZoneHeight 
)

Function that defines the remaining 10 nodes of a panel zone given the dimensions and the master node (top center one).

ID convention for the panel zone:
PZNodeID: 12 nodes: top right 1xy (master), 1xy1 top right, 1xy09,1xy10 1xy 1xy1,1xy01

clockwise 10 nodes xy01-xy10 (with double node at corners) o--------—o--------—o
Spring at node 1xy1 | |
PZElemeneID: 8 elements: starting at node 1xy, clockwise | |
(see function DefinePanelZoneElements for more info) | |
| |
1xy08 o o 1xy02
| |
| |
| |
| |
o--------—o--------—o
1xy06,1xy07 1xy05 1xy03,1xy04
Note that the top right node is defined differently because is where the spring is.

Parameters
MasterNodeID(int): ID of the master node (central top node that should be a grid node).
MidPanelZoneWidth(float): Mid panel zone width.
MidPanelZoneHeight(float): Mid panel zone height.

Definition at line 388 of file MemberModel.py.

388def DefinePanelZoneNodes(MasterNodeID: int, MidPanelZoneWidth, MidPanelZoneHeight):
389 """
390 Function that defines the remaining 10 nodes of a panel zone given the dimensions and the master node (top center one).
391 ID convention for the panel zone: \n
392 PZNodeID: 12 nodes: top right 1xy (master), 1xy1 top right, 1xy09,1xy10 1xy 1xy1,1xy01 \n
393 clockwise 10 nodes xy01-xy10 (with double node at corners) o-----------o-----------o \n
394 Spring at node 1xy1 | | \n
395 PZElemeneID: 8 elements: starting at node 1xy, clockwise | | \n
396 (see function DefinePanelZoneElements for more info) | | \n
397 | | \n
398 1xy08 o o 1xy02 \n
399 | | \n
400 | | \n
401 | | \n
402 | | \n
403 o-----------o-----------o \n
404 1xy06,1xy07 1xy05 1xy03,1xy04 \n
405 Note that the top right node is defined differently because is where the spring is.
406
407 @param MasterNodeID (int): ID of the master node (central top node that should be a grid node).
408 @param MidPanelZoneWidth (float): Mid panel zone width.
409 @param MidPanelZoneHeight (float): Mid panel zone height.
410
411 """
412 # Get node coord and define useful variables
413 m_node = np.array(nodeCoord(MasterNodeID))
414 AxisCL = m_node[0]
415 FloorCL = m_node[1] - MidPanelZoneHeight
416
417 # Convention: Node of the spring (top right) is xy1
418 node(IDConvention(MasterNodeID, 1), AxisCL+MidPanelZoneWidth, FloorCL+MidPanelZoneHeight)
419 # Convention: Two notes in the corners (already defined one, xy1) clockwise from xy01 to xy10
420 node(IDConvention(MasterNodeID, 1, 1), AxisCL+MidPanelZoneWidth, FloorCL+MidPanelZoneHeight)
421 node(IDConvention(MasterNodeID, 2, 1), AxisCL+MidPanelZoneWidth, FloorCL)
422 node(IDConvention(MasterNodeID, 3, 1), AxisCL+MidPanelZoneWidth, FloorCL-MidPanelZoneHeight)
423 node(IDConvention(MasterNodeID, 4, 1), AxisCL+MidPanelZoneWidth, FloorCL-MidPanelZoneHeight)
424 node(IDConvention(MasterNodeID, 5, 1), AxisCL, FloorCL-MidPanelZoneHeight)
425 node(IDConvention(MasterNodeID, 6, 1), AxisCL-MidPanelZoneWidth, FloorCL-MidPanelZoneHeight)
426 node(IDConvention(MasterNodeID, 7, 1), AxisCL-MidPanelZoneWidth, FloorCL-MidPanelZoneHeight)
427 node(IDConvention(MasterNodeID, 8, 1), AxisCL-MidPanelZoneWidth, FloorCL)
428 node(IDConvention(MasterNodeID, 9, 1), AxisCL-MidPanelZoneWidth, FloorCL+MidPanelZoneHeight)
429 node(IDConvention(MasterNodeID, 10), AxisCL-MidPanelZoneWidth, FloorCL+MidPanelZoneHeight)
430
431
def DefinePanelZoneNodes(int MasterNodeID, MidPanelZoneWidth, MidPanelZoneHeight)
Function that defines the remaining 10 nodes of a panel zone given the dimensions and the master node...
Definition: MemberModel.py:388