OpenSeesPyAssistant 1.1
OpenSeesPy for everyone
Gupta1999 Class Reference

Class that stores funcions and material properties of a steel double symmetric I-shape profile with Gupta 1999 as the material model for the panel zone and the OpenSeesPy command type used to model it is Hysteresis. More...

Inheritance diagram for Gupta1999:
MaterialModels Gupta1999SteelIShape

Public Member Functions

def __init__ (self, int ID, d_c, bf_c, tf_c, I_c, d_b, tf_b, Fy, E, t_p, t_dp=0.0, a_s=0.03, pinchx=0.25, pinchy=0.75, dmg1=0.0, dmg2=0.0, beta=0.0, safety_factor=False)
 Constructor of the class. More...
 
def CheckApplicability (self)
 Implementation of the homonym abstract method. More...
 
def Hysteretic (self)
 Generate the material model Hysteretic (Gupta 1999) using the computed parameters. More...
 
def ReInit (self)
 Implementation of the homonym abstract method. More...
 
def ShowInfo (self, plot=False, block=False)
 Implementation of the homonym abstract method. More...
 
def UpdateStoredData (self)
 Implementation of the homonym abstract method. More...
 
def CheckApplicability (self)
 Abstract function used to check the applicability of the material model. More...
 

Public Attributes

 a_s
 
 beam_section_name_tag
 
 beta
 
 bf_c
 
 col_section_name_tag
 
 d_b
 
 d_c
 
 data
 
 dmg1
 
 dmg2
 
 E
 
 Fy
 
 G
 
 gamma1_y
 
 gamma2_y
 
 gamma3_y
 
 I_c
 
 ID
 
 Initialized
 
 Ke
 
 Kp
 
 M1y
 
 M2y
 
 M3y
 
 pinchx
 
 pinchy
 
 Ry
 
 t_dp
 
 t_p
 
 t_pz
 
 tf_b
 
 tf_c
 
 Vy
 

Detailed Description

Class that stores funcions and material properties of a steel double symmetric I-shape profile with Gupta 1999 as the material model for the panel zone and the OpenSeesPy command type used to model it is Hysteresis.

The material model is valid only if the column is continuous. For more information about the empirical model for the computation of the parameters, see Gupta 1999.

Parameters
MaterialModelsParent abstract class.

Definition at line 522 of file MaterialModels.py.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
int  ID,
  d_c,
  bf_c,
  tf_c,
  I_c,
  d_b,
  tf_b,
  Fy,
  E,
  t_p,
  t_dp = 0.0,
  a_s = 0.03,
  pinchx = 0.25,
  pinchy = 0.75,
  dmg1 = 0.0,
  dmg2 = 0.0,
  beta = 0.0,
  safety_factor = False 
)

Constructor of the class.

Parameters
ID(int): Unique material model ID.
d_c(float): Column depth.
bf_c(float): Column flange width.
tf_c(float): Column flange thickness.
I_c(float): Column moment of inertia (strong axis).
d_b(float): Beam depth.
tf_b(float): Beam flange thickness.
Fy(float): Yield strength (if assume continous column, Fy of the web).
E(float): Young modulus.
t_p(float): Panel zone thickness.
t_dp(float, optional): Doubler plate thickness. Defaults to 0.0.
a_s(float, optional): Strain hardening. Defaults to 0.03.
pinchx(float, optional): Pinching factor for strain (or deformation) during reloading. Defaults to 0.25.
pinchy(float, optional): Pinching factor for stress (or force) during reloading. Defaults to 0.75.
dmg1(float, optional): Damage due to ductility: D1(mu-1). Defaults to 0.0.
dmg2(float, optional): Damage due to energy: D2(Eii/Eult). Defaults to 0.0.
beta(float, optional): Power used to determine the degraded unloading stiffness based on ductility, mu-beta. Defaults to 0.0.
safety_factor(bool, optional): Safety factor used if standard mechanical parameters are used (not test results). Defaults to False.
Exceptions
NegativeValueID needs to be a positive integer.
NegativeValued_c needs to be positive.
NegativeValuebf_c needs to be positive.
NegativeValuetf_c needs to be positive.
NegativeValued_b needs to be positive.
NegativeValuetf_b needs to be positive.
NegativeValueFy needs to be positive.
NegativeValueE needs to be positive.
NegativeValuet_p needs to be positive.
NegativeValuea_s needs to be positive.

Reimplemented in Gupta1999SteelIShape.

Definition at line 531 of file MaterialModels.py.

532 t_dp = 0.0, a_s = 0.03, pinchx = 0.25, pinchy = 0.75, dmg1 = 0.0, dmg2 = 0.0, beta = 0.0, safety_factor = False):
533 """
534 Constructor of the class.
535
536 @param ID (int): Unique material model ID.
537 @param d_c (float): Column depth.
538 @param bf_c (float): Column flange width.
539 @param tf_c (float): Column flange thickness.
540 @param I_c (float): Column moment of inertia (strong axis).
541 @param d_b (float): Beam depth.
542 @param tf_b (float): Beam flange thickness.
543 @param Fy (float): Yield strength (if assume continous column, Fy of the web).
544 @param E (float): Young modulus.
545 @param t_p (float): Panel zone thickness.
546 @param t_dp (float, optional): Doubler plate thickness. Defaults to 0.0.
547 @param a_s (float, optional): Strain hardening. Defaults to 0.03.
548 @param pinchx (float, optional): Pinching factor for strain (or deformation) during reloading. Defaults to 0.25.
549 @param pinchy (float, optional): Pinching factor for stress (or force) during reloading. Defaults to 0.75.
550 @param dmg1 (float, optional): Damage due to ductility: D1(mu-1). Defaults to 0.0.
551 @param dmg2 (float, optional): Damage due to energy: D2(Eii/Eult). Defaults to 0.0.
552 @param beta (float, optional): Power used to determine the degraded unloading stiffness based on ductility, mu-beta. Defaults to 0.0.
553 @param safety_factor (bool, optional): Safety factor used if standard mechanical parameters are used (not test results). Defaults to False.
554
555 @exception NegativeValue: ID needs to be a positive integer.
556 @exception NegativeValue: d_c needs to be positive.
557 @exception NegativeValue: bf_c needs to be positive.
558 @exception NegativeValue: tf_c needs to be positive.
559 @exception NegativeValue: d_b needs to be positive.
560 @exception NegativeValue: tf_b needs to be positive.
561 @exception NegativeValue: Fy needs to be positive.
562 @exception NegativeValue: E needs to be positive.
563 @exception NegativeValue: t_p needs to be positive.
564 @exception NegativeValue: a_s needs to be positive.
565 """
566 # Check
567 if ID < 1: raise NegativeValue()
568 if d_c < 0: raise NegativeValue()
569 if bf_c < 0: raise NegativeValue()
570 if tf_c < 0: raise NegativeValue()
571 if d_b < 0: raise NegativeValue()
572 if tf_b < 0: raise NegativeValue()
573 if Fy < 0: raise NegativeValue()
574 if E < 0: raise NegativeValue()
575 if t_p < 0: raise NegativeValue()
576 if a_s < 0: raise NegativeValue()
577
578 # Arguments
579 self.ID = ID
580 self.d_c = d_c
581 self.bf_c = bf_c
582 self.tf_c = tf_c
583 self.I_c = I_c
584 self.d_b = d_b
585 self.tf_b = tf_b
586 self.Fy = Fy
587 self.E = E
588 self.t_p = t_p
589 self.t_dp = t_dp
590 self.a_s = a_s
591 self.pinchx = pinchx
592 self.pinchy = pinchy
593 self.dmg1 = dmg1
594 self.dmg2 = dmg2
595 self.beta = beta
596 if safety_factor:
597 self.Ry = 1.2
598 else:
599 self.Ry = 1.0
600
601 # Initialized the parameters that are dependent from others
602 self.beam_section_name_tag = "None"
603 self.col_section_name_tag = "None"
604 self.Initialized = False
605 self.ReInit()
606
607

Member Function Documentation

◆ CheckApplicability()

def CheckApplicability (   self)

Implementation of the homonym abstract method.

See parent class MaterialModels for detailed information.

Reimplemented from MaterialModels.

Definition at line 722 of file MaterialModels.py.

722 def CheckApplicability(self):
723 """
724 Implementation of the homonym abstract method.
725 See parent class MaterialModels for detailed information.
726 """
727 Check = True
728 # No checks
729 if not Check:
730 print("The validity of the equations is not fullfilled.")
731 print("!!!!!!! WARNING !!!!!!! Check material model of Gupta 1999, ID=", self.ID)
732 print("")
733
734
Module for the material models.

◆ Hysteretic()

def Hysteretic (   self)

Generate the material model Hysteretic (Gupta 1999) using the computed parameters.

See _Hysteretic function for more information.

Definition at line 735 of file MaterialModels.py.

735 def Hysteretic(self):
736 """
737 Generate the material model Hysteretic (Gupta 1999) using the computed parameters.
738 See _Hysteretic function for more information.
739 """
740 _Hysteretic(self.ID, self.M1y, self.gamma1_y, self.M2y, self.gamma2_y, self.M3y, self.gamma3_y,
741 self.pinchx, self.pinchy, self.dmg1, self.dmg2, self.beta)
742 self.Initialized = True
743 self.UpdateStoredData()
744
745

◆ ReInit()

def ReInit (   self)

Implementation of the homonym abstract method.

See parent class DataManagement for detailed information.

Definition at line 609 of file MaterialModels.py.

609 def ReInit(self):
610 """
611 Implementation of the homonym abstract method.
612 See parent class DataManagement for detailed information.
613 """
614 # Check applicability
615 self.CheckApplicability()
616
617 # Members
618 if self.beam_section_name_tag != "None": self.beam_section_name_tag = self.beam_section_name_tag + " (modified)"
619 if self.col_section_name_tag != "None": self.col_section_name_tag = self.col_section_name_tag + " (modified)"
620
621 # Trilinear Parameters
622 self.t_pz = self.t_p + self.t_dp
623 self.Vy = 0.55 * self.Fy * self.Ry * self.d_c * self.t_pz # Yield Shear
624 self.G = self.E/(2.0 * (1.0 + 0.30)) # Shear Modulus
625 self.Ke = 0.95 * self.G * self.t_pz * self.d_c # Elastic Stiffness
626 self.Kp = 0.95 * self.G * self.bf_c * (self.tf_c * self.tf_c) / self.d_b # Plastic Stiffness
627
628 # Define Trilinear Equivalent Rotational Spring
629 # Yield point for Trilinear Spring at gamma1_y
630 self.gamma1_y = self.Vy / self.Ke
631 self.M1y = self.gamma1_y * (self.Ke * self.d_b)
632 # Second Point for Trilinear Spring at 4 * gamma1_y
633 self.gamma2_y = 4.0 * self.gamma1_y
634 self.M2y = self.M1y + (self.Kp * self.d_b) * (self.gamma2_y - self.gamma1_y)
635 # Third Point for Trilinear Spring at 100 * gamma1_y
636 self.gamma3_y = 100.0 * self.gamma1_y
637 self.M3y = self.M2y + (self.a_s * self.Ke * self.d_b) * (self.gamma3_y - self.gamma2_y)
638
639 # Data storage for loading/saving
640 self.UpdateStoredData()
641
642
Module with the parent abstract class DataManagement.

◆ ShowInfo()

def ShowInfo (   self,
  plot = False,
  block = False 
)

Implementation of the homonym abstract method.

See parent class DataManagement for detailed information.

Parameters
plot(bool, optional): Option to show the plot of the material model. Defaults to False.
block(bool, optional): Option to wait the user command 'plt.show()' (avoiding the stop of the program everytime that a plot should pop up). Defaults to False.

Definition at line 682 of file MaterialModels.py.

682 def ShowInfo(self, plot = False, block = False):
683 """
684 Implementation of the homonym abstract method.
685 See parent class DataManagement for detailed information.
686
687 @param plot (bool, optional): Option to show the plot of the material model. Defaults to False.
688 @param block (bool, optional): Option to wait the user command 'plt.show()' (avoiding the stop of the program everytime that a plot should pop up). Defaults to False.
689 """
690 print("")
691 print("Requested info for Gupta 1999 material model Parameters, ID = {}".format(self.ID))
692 print("Sections associated, column: {} ".format(self.col_section_name_tag))
693 print("Sections associated, beam: {} ".format(self.beam_section_name_tag))
694 print("gamma1_y = {} rad".format(self.gamma1_y))
695 print("gamma2_y = {} rad".format(self.gamma2_y))
696 print("gamma3_y = {} rad".format(self.gamma3_y))
697 print("M1y = {} kNm".format(self.M1y/kNm_unit))
698 print("M2y = {} kNm".format(self.M2y/kNm_unit))
699 print("M3y = {} kNm".format(self.M3y/kNm_unit))
700 print("")
701
702 if plot:
703 # Data for plotting
704 # Last point for plot
705 gamma3_y_plot = 10.0 * self.gamma1_y
706 M3y_plot = self.M2y + (self.a_s * self.Ke * self.d_b) * (gamma3_y_plot - self.gamma2_y)
707
708 x_axis = np.array([0.0, self.gamma1_y, self.gamma2_y, gamma3_y_plot])
709 y_axis = np.array([0.0, self.M1y, self.M2y, M3y_plot])/kNm_unit
710
711 fig, ax = plt.subplots()
712 ax.plot(x_axis, y_axis, 'k-')
713
714 ax.set(xlabel='Rotation [rad]', ylabel='Moment [kNm]',
715 title='Gupta 1999 material model (ID={})'.format(self.ID))
716 ax.grid()
717
718 if block:
719 plt.show()
720
721

◆ UpdateStoredData()

def UpdateStoredData (   self)

Implementation of the homonym abstract method.

See parent class DataManagement for detailed information.

Definition at line 643 of file MaterialModels.py.

643 def UpdateStoredData(self):
644 """
645 Implementation of the homonym abstract method.
646 See parent class DataManagement for detailed information.
647 """
648 self.data = [["INFO_TYPE", "Gupta1999"], # Tag for differentiating different data
649 ["ID", self.ID],
650 ["beam_section_name_tag", self.beam_section_name_tag],
651 ["col_section_name_tag", self.col_section_name_tag],
652 ["d_c", self.d_c],
653 ["bf_c", self.bf_c],
654 ["tf_c", self.tf_c],
655 ["I_c", self.I_c],
656 ["d_b", self.d_b],
657 ["tf_b", self.tf_b],
658 ["Fy", self.Fy],
659 ["E", self.E],
660 ["G", self.G],
661 ["t_p", self.t_p],
662 ["t_dp", self.t_dp],
663 ["t_pz", self.t_pz],
664 ["a_s", self.a_s],
665 ["pinchx", self.pinchx],
666 ["pinchy", self.pinchy],
667 ["dmg1", self.dmg1],
668 ["dmg2", self.dmg2],
669 ["beta", self.beta],
670 ["Ry", self.Ry],
671 ["Vy", self.Vy],
672 ["Ke", self.Ke],
673 ["Kp", self.Kp],
674 ["gamma1_y", self.gamma1_y],
675 ["M1y", self.M1y],
676 ["gamma2_y", self.gamma2_y],
677 ["M2y", self.M2y],
678 ["gamma3_y", self.gamma3_y],
679 ["M3y", self.M3y],
680 ["Initialized", self.Initialized]]
681

Member Data Documentation

◆ a_s

a_s

Definition at line 590 of file MaterialModels.py.

◆ beam_section_name_tag

beam_section_name_tag

Definition at line 602 of file MaterialModels.py.

◆ beta

beta

Definition at line 595 of file MaterialModels.py.

◆ bf_c

bf_c

Definition at line 581 of file MaterialModels.py.

◆ col_section_name_tag

col_section_name_tag

Definition at line 603 of file MaterialModels.py.

◆ d_b

d_b

Definition at line 584 of file MaterialModels.py.

◆ d_c

d_c

Definition at line 580 of file MaterialModels.py.

◆ data

data

Definition at line 648 of file MaterialModels.py.

◆ dmg1

dmg1

Definition at line 593 of file MaterialModels.py.

◆ dmg2

dmg2

Definition at line 594 of file MaterialModels.py.

◆ E

E

Definition at line 587 of file MaterialModels.py.

◆ Fy

Fy

Definition at line 586 of file MaterialModels.py.

◆ G

G

Definition at line 624 of file MaterialModels.py.

◆ gamma1_y

gamma1_y

Definition at line 630 of file MaterialModels.py.

◆ gamma2_y

gamma2_y

Definition at line 633 of file MaterialModels.py.

◆ gamma3_y

gamma3_y

Definition at line 636 of file MaterialModels.py.

◆ I_c

I_c

Definition at line 583 of file MaterialModels.py.

◆ ID

ID

Definition at line 579 of file MaterialModels.py.

◆ Initialized

Initialized

Definition at line 604 of file MaterialModels.py.

◆ Ke

Ke

Definition at line 625 of file MaterialModels.py.

◆ Kp

Kp

Definition at line 626 of file MaterialModels.py.

◆ M1y

M1y

Definition at line 631 of file MaterialModels.py.

◆ M2y

M2y

Definition at line 634 of file MaterialModels.py.

◆ M3y

M3y

Definition at line 637 of file MaterialModels.py.

◆ pinchx

pinchx

Definition at line 591 of file MaterialModels.py.

◆ pinchy

pinchy

Definition at line 592 of file MaterialModels.py.

◆ Ry

Ry

Definition at line 597 of file MaterialModels.py.

◆ t_dp

t_dp

Definition at line 589 of file MaterialModels.py.

◆ t_p

t_p

Definition at line 588 of file MaterialModels.py.

◆ t_pz

t_pz

Definition at line 622 of file MaterialModels.py.

◆ tf_b

tf_b

Definition at line 585 of file MaterialModels.py.

◆ tf_c

tf_c

Definition at line 582 of file MaterialModels.py.

◆ Vy

Vy

Definition at line 623 of file MaterialModels.py.


The documentation for this class was generated from the following file: