OpenSeesPyAssistant 1.1
OpenSeesPy for everyone
ConfMander1988Rect Class Reference

Class that stores funcions and material properties of a RC rectangular section with Mander 1988 as the material model for the confined reinforced concrete and the OpenSeesPy command type used to model it is Concrete04 or Concrete01. More...

Inheritance diagram for ConfMander1988Rect:
MaterialModels ConfMander1988RectRCRectShape

Public Member Functions

def __init__ (self, int ID, bc, dc, Ac, fc, Ec, nr_bars, D_bars, np.ndarray wx_top, np.ndarray wx_bottom, np.ndarray wy, s, D_hoops, rho_s_x, rho_s_y, fs, ec=1, ecp=1, fct=-1, et=-1, esu=-1, beta=0.1)
 Constructor of the class. More...
 
def CheckApplicability (self)
 Implementation of the homonym abstract method. More...
 
def Compute_ec (self)
 Method that computes the compressive concrete yield strain. More...
 
def Compute_ecc (self)
 Method that computes the compressive confined concrete yield strain. More...
 
def Compute_eccu (self)
 Method that computes the compressive confined concrete failure strain. More...
 
def Compute_ecp (self)
 Method that computes the compressive concrete spalling strain. More...
 
def Compute_ecu (self)
 Method that computes the compressive concrete failure strain. More...
 
def Compute_et (self)
 Method that computes the tensile concrete yield strain. More...
 
def Compute_fct (self)
 Method that computes the tensile concrete yield stress. More...
 
def ComputeAi (self)
 Method that computes the ineffectual area. More...
 
def ComputeConfinementFactor (self)
 Method that computes the confinement factor using the digitized table from Mander et Al. More...
 
def Concrete01 (self)
 Generate the material model Concrete01 for rectangular section confined concrete (Mander 1988). More...
 
def Concrete04 (self)
 Generate the material model Concrete04 for rectangular section confined concrete (Mander 1988). More...
 
def ReInit (self, ec=1, ecp=1, fct=-1, et=-1)
 Implementation of the homonym abstract method. More...
 
def ShowInfo (self, plot=False, block=False, concrete04=True)
 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

 Ac
 
 Acc
 
 Ae
 
 Ai
 
 bc
 
 beta
 
 D_bars
 
 D_hoops
 
 data
 
 dc
 
 Ec
 
 ec
 
 ecc
 
 eccu
 
 ecp
 
 ecu
 
 esu
 
 et
 
 fc
 
 fcc
 
 fct
 
 fl_x
 
 fl_y
 
 fs
 
 ID
 
 Initialized
 
 K_combo
 
 ke
 
 nr_bars
 
 rho_cc
 
 rho_s_x
 
 rho_s_y
 
 s
 
 section_name_tag
 
 wx_bottom
 
 wx_top
 
 wy
 

Static Public Attributes

list array_fl2 = [None] * len(curve_fl1)
 
 curve_fl1 = np.arange(0, 0.3+0.02, 0.02)
 

Detailed Description

Class that stores funcions and material properties of a RC rectangular section with Mander 1988 as the material model for the confined reinforced concrete and the OpenSeesPy command type used to model it is Concrete04 or Concrete01.

For more information about the empirical model for the computation of the parameters, see Mander et Al. 1988, Karthik and Mander 2011 and SIA 262:2012. The array array_fl2 and curve curve_fl1 are the parameter of the digitized table used to extrapolate the confinement factor; they are used as global throughout the ConfMander1988Rect material model to optimise the program (given the fact that is constant everytime).

Parameters
MaterialModelsParent abstract class.

Definition at line 1381 of file MaterialModels.py.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
int  ID,
  bc,
  dc,
  Ac,
  fc,
  Ec,
  nr_bars,
  D_bars,
np.ndarray  wx_top,
np.ndarray  wx_bottom,
np.ndarray  wy,
  s,
  D_hoops,
  rho_s_x,
  rho_s_y,
  fs,
  ec = 1,
  ecp = 1,
  fct = -1,
  et = -1,
  esu = -1,
  beta = 0.1 
)

Constructor of the class.

Parameters
ID(int): Unique material model ID.
bc(float): Width of the confined core (from the centerline of the hoops, according to Mander et Al. 1988).
dc(float): Depth of the confined core (from the centerline of the hoops, according to Mander et Al. 1988).
Ac(float): Area of the confined core (according to Mander et Al. 1988).
fc(float): Compressive concrete yield strength (needs to be negative).
Ec(float): Young modulus.
nr_bars(float): Number of reinforcement (allow float for computing the equivalent nr_bars with different reinforcement areas).
D_bars(float): Diameter of the vertical reinforcing bars.
wx_top(np.ndarray): Vector of 1 dimension that defines the distance between top vertical bars in x direction (NOT CENTERLINE DISTANCES).
wx_bottom(np.ndarray): Vector of 1 dimension that defines the distance between bottom vertical bars in x direction (NOT CENTERLINE DISTANCES).
wy(np.ndarray): Vector of 1 dimension that defines the distance between vertical bars in y direction (lateral) (NOT CENTERLINE DISTANCES).
s(float): Vertical spacing between hoops.
D_hoops(float): Diameter of hoops.
rho_s_x(float): Ratio of the transversal area of the hoops to the associated concrete area in the x direction.
rho_s_y(float): Ratio of the transversal area of the hoops to the associated concrete area in the y direction.
fs(float): Yield stress for the hoops.
ec(float, optional): Compressive concrete yield strain. Defaults to 1, e.g. computed according to Karthik and Mander 2011.
ecp(float, optional): Concrete spalling strain. Defaults to 1, e.g. computed according to Mander 1988.
fct(float, optional): Tensile concrete yield strain. Defaults to -1, e.g. computed according to SIA 262:2012.
et(float, optional): Tensile concrete yield strain. Defaults to -1, e.g. computed according to SIA 262:2012.
esu(float, optional): Tensile steel bars failure strain. Defaults to -1, e.g. computed according to Mander 1988.
beta(float, optional): Loating point value defining the exponential curve parameter to define the residual stress. Defaults to 0.1 (according to OpenSeesPy documentation)
Exceptions
NegativeValueID needs to be a positive integer.
NegativeValuebc needs to be positive.
NegativeValuedc needs to be positive.
NegativeValueAc needs to be positive.
PositiveValuefc needs to be negative.
NegativeValueEc needs to be positive.
NegativeValuenr_bars needs to be positive.
NegativeValueD_bars needs to be positive.
NegativeValues needs to be positive.
NegativeValueD_hoops needs to be positive.
NegativeValuerho_s_x needs to be positive.
NegativeValuerho_s_y needs to be positive.
NegativeValuefs needs to be positive.
PositiveValueec needs to be negative if different from 1.
PositiveValueecp needs to be negative if different from 1.
NegativeValuefct needs to be positive if different from -1.
NegativeValueet needs to be positive if different from -1.
NegativeValueesu needs to be positive if different from -1.

Reimplemented in ConfMander1988RectRCRectShape.

Definition at line 1549 of file MaterialModels.py.

1550 ec = 1, ecp = 1, fct = -1, et = -1, esu = -1, beta = 0.1):
1551 """
1552 Constructor of the class.
1553
1554 @param ID (int): Unique material model ID.
1555 @param bc (float): Width of the confined core (from the centerline of the hoops, according to Mander et Al. 1988).
1556 @param dc (float): Depth of the confined core (from the centerline of the hoops, according to Mander et Al. 1988).
1557 @param Ac (float): Area of the confined core (according to Mander et Al. 1988).
1558 @param fc (float): Compressive concrete yield strength (needs to be negative).
1559 @param Ec (float): Young modulus.
1560 @param nr_bars (float): Number of reinforcement (allow float for computing the equivalent nr_bars with different reinforcement areas).
1561 @param D_bars (float): Diameter of the vertical reinforcing bars.
1562 @param wx_top (np.ndarray): Vector of 1 dimension that defines the distance between top vertical bars in x direction (NOT CENTERLINE DISTANCES).
1563 @param wx_bottom (np.ndarray): Vector of 1 dimension that defines the distance between bottom vertical bars in x direction (NOT CENTERLINE DISTANCES).
1564 @param wy (np.ndarray): Vector of 1 dimension that defines the distance between vertical bars in y direction (lateral) (NOT CENTERLINE DISTANCES).
1565 @param s (float): Vertical spacing between hoops.
1566 @param D_hoops (float): Diameter of hoops.
1567 @param rho_s_x (float): Ratio of the transversal area of the hoops to the associated concrete area in the x direction.
1568 @param rho_s_y (float): Ratio of the transversal area of the hoops to the associated concrete area in the y direction.
1569 @param fs (float): Yield stress for the hoops.
1570 @param ec (float, optional): Compressive concrete yield strain. Defaults to 1, e.g. computed according to Karthik and Mander 2011.
1571 @param ecp (float, optional): Concrete spalling strain. Defaults to 1, e.g. computed according to Mander 1988.
1572 @param fct (float, optional): Tensile concrete yield strain. Defaults to -1, e.g. computed according to SIA 262:2012.
1573 @param et (float, optional): Tensile concrete yield strain. Defaults to -1, e.g. computed according to SIA 262:2012.
1574 @param esu (float, optional): Tensile steel bars failure strain. Defaults to -1, e.g. computed according to Mander 1988.
1575 @param beta (float, optional): Loating point value defining the exponential curve parameter to define the residual stress.
1576 Defaults to 0.1 (according to OpenSeesPy documentation)
1577
1578 @exception NegativeValue: ID needs to be a positive integer.
1579 @exception NegativeValue: bc needs to be positive.
1580 @exception NegativeValue: dc needs to be positive.
1581 @exception NegativeValue: Ac needs to be positive.
1582 @exception PositiveValue: fc needs to be negative.
1583 @exception NegativeValue: Ec needs to be positive.
1584 @exception NegativeValue: nr_bars needs to be positive.
1585 @exception NegativeValue: D_bars needs to be positive.
1586 @exception NegativeValue: s needs to be positive.
1587 @exception NegativeValue: D_hoops needs to be positive.
1588 @exception NegativeValue: rho_s_x needs to be positive.
1589 @exception NegativeValue: rho_s_y needs to be positive.
1590 @exception NegativeValue: fs needs to be positive.
1591 @exception PositiveValue: ec needs to be negative if different from 1.
1592 @exception PositiveValue: ecp needs to be negative if different from 1.
1593 @exception NegativeValue: fct needs to be positive if different from -1.
1594 @exception NegativeValue: et needs to be positive if different from -1.
1595 @exception NegativeValue: esu needs to be positive if different from -1.
1596 """
1597 # Check
1598 if ID < 1: raise NegativeValue()
1599 if bc < 0: raise NegativeValue()
1600 if dc < 0: raise NegativeValue()
1601 if Ac < 0: raise NegativeValue()
1602 if fc > 0: raise PositiveValue()
1603 if Ec < 0: raise NegativeValue()
1604 if nr_bars < 0: raise NegativeValue()
1605 if D_bars < 0: raise NegativeValue()
1606 if s < 0: raise NegativeValue()
1607 if D_hoops < 0: raise NegativeValue()
1608 if rho_s_x < 0: raise NegativeValue()
1609 if rho_s_y < 0: raise NegativeValue()
1610 if fs < 0: raise NegativeValue()
1611 if ec != 1 and ec > 0: raise PositiveValue()
1612 if ecp != 1 and ecp > 0: raise PositiveValue()
1613 if fct != -1 and fct < 0: raise NegativeValue()
1614 if et != -1 and et < 0: raise NegativeValue()
1615 if esu != -1 and esu < 0: raise NegativeValue()
1616
1617 # Arguments
1618 self.ID = ID
1619 self.bc = bc
1620 self.dc = dc
1621 self.Ac = Ac
1622 self.fc = fc
1623 self.Ec = Ec
1624 self.nr_bars = nr_bars
1625 self.D_bars = D_bars
1626 self.wx_top = copy(wx_top)
1627 self.wx_bottom = copy(wx_bottom)
1628 self.wy = copy(wy)
1629 self.s = s
1630 self.D_hoops = D_hoops
1631 self.rho_s_x = rho_s_x
1632 self.rho_s_y = rho_s_y
1633 self.fs = fs
1634 self.esu = 0.05 if esu == -1 else esu # Mander 1988
1635 self.beta = beta
1636
1637 # Initialized the parameters that are dependent from others
1638 self.section_name_tag = "None"
1639 self.Initialized = False
1640 self.ReInit(ec, ecp, fct, et)
1641

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 1756 of file MaterialModels.py.

1756 def CheckApplicability(self):
1757 """
1758 Implementation of the homonym abstract method.
1759 See parent class MaterialModels for detailed information.
1760 """
1761 Check = True
1762 if self.fc < -110*MPa_unit: # Deierlein 1999
1763 Check = False
1764 print("With High Strength concrete (< -110 MPa), a better material model should be used (see Abdesselam et Al. 2019")
1765 if not Check:
1766 print("The validity of the equations is not fullfilled.")
1767 print("!!!!!!! WARNING !!!!!!! Check material model of Confined Mander 1988, ID=", self.ID)
1768 print("")
1769
1770
Module for the material models.

◆ Compute_ec()

def Compute_ec (   self)

Method that computes the compressive concrete yield strain.

For more information, see Karthik and Mander 2011.

Returns
float: Strain

Definition at line 1771 of file MaterialModels.py.

1771 def Compute_ec(self):
1772 """
1773 Method that computes the compressive concrete yield strain.
1774 For more information, see Karthik and Mander 2011.
1775
1776 @returns float: Strain
1777 """
1778 # return -0.002 # Alternative: Mander et Al. 1988
1779 return -0.0015 + self.fc/MPa_unit/70000 # Karthik Mander 2011
1780
1781

◆ Compute_ecc()

def Compute_ecc (   self)

Method that computes the compressive confined concrete yield strain.

For more information, see Karthik and Mander 2011.

Returns
float: Strain

Definition at line 1823 of file MaterialModels.py.

1823 def Compute_ecc(self):
1824 """
1825 Method that computes the compressive confined concrete yield strain.
1826 For more information, see Karthik and Mander 2011.
1827
1828 @returns float: Strain
1829 """
1830 return (1.0 + 5.0 * (self.K_combo-1.0)) * self.ec # Karthik Mander 2011
1831
1832

◆ Compute_eccu()

def Compute_eccu (   self)

Method that computes the compressive confined concrete failure strain.

For more information, see Karthik and Mander 2011.

Returns
float: Strain

Definition at line 1833 of file MaterialModels.py.

1833 def Compute_eccu(self):
1834 """
1835 Method that computes the compressive confined concrete failure strain.
1836 For more information, see Karthik and Mander 2011.
1837
1838 @returns float: Strain
1839 """
1840 # return -0.004 + (1.4*(self.rho_s_x+self.rho_s_y)*self.esu*self.fs) / self.fcc # Alternative: Prof. Katrin Beyer
1841 return 5*self.ecc # Karthik Mander 2011
1842
1843

◆ Compute_ecp()

def Compute_ecp (   self)

Method that computes the compressive concrete spalling strain.

For more information, see Mander et Al. 1988.

Returns
float: Strain

Definition at line 1782 of file MaterialModels.py.

1782 def Compute_ecp(self):
1783 """
1784 Method that computes the compressive concrete spalling strain.
1785 For more information, see Mander et Al. 1988.
1786
1787 @returns float: Strain
1788 """
1789 return 2.0*self.ec
1790
1791

◆ Compute_ecu()

def Compute_ecu (   self)

Method that computes the compressive concrete failure strain.

For more information, see Karthik and Mander 2011.

Returns
float: Strain

Definition at line 1812 of file MaterialModels.py.

1812 def Compute_ecu(self):
1813 """
1814 Method that computes the compressive concrete failure strain.
1815 For more information, see Karthik and Mander 2011.
1816
1817 @returns float: Strain
1818 """
1819 # return -0.004 # Alternative: Mander et Al. 1988
1820 return -0.012 - 0.0001 * self.fc/MPa_unit # Karthik Mander 2011
1821
1822

◆ Compute_et()

def Compute_et (   self)

Method that computes the tensile concrete yield strain.

For more information, see Mander et Al. 1988 (eq 45).

Returns
float: Strain.

Definition at line 1802 of file MaterialModels.py.

1802 def Compute_et(self):
1803 """
1804 Method that computes the tensile concrete yield strain.
1805 For more information, see Mander et Al. 1988 (eq 45).
1806
1807 @returns float: Strain.
1808 """
1809 return self.fct/self.Ec
1810
1811

◆ Compute_fct()

def Compute_fct (   self)

Method that computes the tensile concrete yield stress.

For more information, see SIA 262:2012. Assume that the confinement do not play an essential role in tension.

Returns
float: Stress.

Definition at line 1792 of file MaterialModels.py.

1792 def Compute_fct(self):
1793 """
1794 Method that computes the tensile concrete yield stress.
1795 For more information, see SIA 262:2012. Assume that the confinement do not play an essential role in tension.
1796
1797 @returns float: Stress.
1798 """
1799 return 0.30 * math.pow(-self.fc/MPa_unit, 2/3) * MPa_unit
1800
1801

◆ ComputeAi()

def ComputeAi (   self)

Method that computes the ineffectual area.

For more information, see Mander et Al. 1988.

Returns
float: Area.

Definition at line 1844 of file MaterialModels.py.

1844 def ComputeAi(self):
1845 """
1846 Method that computes the ineffectual area.
1847 For more information, see Mander et Al. 1988.
1848
1849 @returns float: Area.
1850 """
1851 return ( np.sum(np.multiply(self.wy, self.wy))*2.0 +
1852 np.sum(np.multiply(self.wx_top, self.wx_top)) +
1853 np.sum(np.multiply(self.wx_bottom, self.wx_bottom)) ) / 6.0
1854
1855

◆ ComputeConfinementFactor()

def ComputeConfinementFactor (   self)

Method that computes the confinement factor using the digitized table from Mander et Al.

1988 that extrapolates the factor using the lateral confining stress in the two direction.

Exceptions
NoApplicabilityThe table from Mander accept ratio of fl/fc smaller than 0.3.
NoApplicabilityThe table from Mander accept ratio of fl/fc smaller than 0.3.
NegativeValuefl1_ratio needs to be positive.
NegativeValuefl2_ratio needs to be positive.
Returns
float: Confinement factor.

Definition at line 1856 of file MaterialModels.py.

1856 def ComputeConfinementFactor(self):
1857 """
1858 Method that computes the confinement factor using the digitized table from Mander et Al. 1988 that
1859 extrapolates the factor using the lateral confining stress in the two direction.
1860
1861 @exception NoApplicability: The table from Mander accept ratio of fl/fc smaller than 0.3.
1862 @exception NoApplicability: The table from Mander accept ratio of fl/fc smaller than 0.3.
1863 @exception NegativeValue: fl1_ratio needs to be positive.
1864 @exception NegativeValue: fl2_ratio needs to be positive.
1865
1866 @returns float: Confinement factor.
1867 """
1868 if self.fl_x == self.fl_y:
1869 return -1.254 + 2.254 * math.sqrt(1.0+7.94*self.fl_x*self.ke/self.fc) - 2.0*self.fl_x*self.ke/self.fc # in Mander, it has a prime
1870 else:
1871 fl2_ratio = max(self.fl_x*self.ke/self.fc, self.fl_y*self.ke/self.fc)
1872 fl1_ratio = min(self.fl_x*self.ke/self.fc, self.fl_y*self.ke/self.fc)
1873
1874 if fl1_ratio > 0.3: raise NoApplicability()
1875 if fl2_ratio > 0.3: raise NoApplicability()
1876 if fl1_ratio < 0: raise NegativeValue()
1877 if fl2_ratio < 0: raise NegativeValue()
1878
1879 # choose one or two curves
1880 for ii, fl1 in enumerate(curve_fl1):
1881 if fl1 == fl1_ratio:
1882 # one curve
1883 # choose curve
1884 # curve_fl2 = [curve for ii, curve in enumerate(array_fl2) if index[ii]][0]
1885 curve_fl2 = array_fl2[ii]
1886
1887 # Take value (interpole)
1888 K = [item[0] for item in curve_fl2]
1889 fl2 = [item[1] for item in curve_fl2]
1890 K_res = np.interp(fl2_ratio, fl2, K)
1891
1892 #TODO: to check fucntion:
1893 # fig, ax = plt.subplots()
1894 # ax.plot(fl2, K, 'k-')
1895 # ax.scatter(fl2_ratio, K_res, color='k')
1896 # ax.grid()
1897 # plt.show()
1898 return K_res
1899
1900 # two curves
1901 if fl1 > fl1_ratio:
1902 fl1_max = fl1
1903 fl1_min = curve_fl1[ii-1]
1904 curve_fl2_max = array_fl2[ii]
1905 curve_fl2_min = array_fl2[ii-1]
1906
1907 # Take the values (interpole)
1908 K_max = [item[0] for item in curve_fl2_max]
1909 fl2_max = [item[1] for item in curve_fl2_max]
1910 K_res_max = np.interp(fl2_ratio, fl2_max, K_max)
1911
1912 K_min = [item[0] for item in curve_fl2_min]
1913 fl2_min = [item[1] for item in curve_fl2_min]
1914 K_res_min = np.interp(fl2_ratio, fl2_min, K_min)
1915
1916 # interpole with distance from fl1 for fl2
1917 # should be logarithmic interpolation but error negligibile
1918 K_res = np.interp(fl1_ratio, [fl1_min, fl1_max], [K_res_min, K_res_max])
1919 return K_res
1920
1921

◆ Concrete01()

def Concrete01 (   self)

Generate the material model Concrete01 for rectangular section confined concrete (Mander 1988).

See _Concrete01 function for more information. Use this method or Concrete04, not both (only one material model for ID).

Definition at line 1922 of file MaterialModels.py.

1922 def Concrete01(self):
1923 """
1924 Generate the material model Concrete01 for rectangular section confined concrete (Mander 1988).
1925 See _Concrete01 function for more information. Use this method or Concrete04, not both (only one material model for ID).
1926 """
1927 _Concrete01(self.ID, self.ecc, self.fcc, self.eccu)
1928 self.Initialized = True
1929 self.UpdateStoredData()
1930
1931

◆ Concrete04()

def Concrete04 (   self)

Generate the material model Concrete04 for rectangular section confined concrete (Mander 1988).

See _Concrete04 function for more information. Use this method or Concrete01, not both (only one material model for ID).

Definition at line 1932 of file MaterialModels.py.

1932 def Concrete04(self):
1933 """
1934 Generate the material model Concrete04 for rectangular section confined concrete (Mander 1988).
1935 See _Concrete04 function for more information. Use this method or Concrete01, not both (only one material model for ID).
1936 """
1937 _Concrete04(self.ID, self.fcc, self.ecc, self.eccu, self.Ec, self.fct, self.et, self.beta)
1938 self.Initialized = True
1939 self.UpdateStoredData()
1940
1941

◆ ReInit()

def ReInit (   self,
  ec = 1,
  ecp = 1,
  fct = -1,
  et = -1 
)

Implementation of the homonym abstract method.

See parent class DataManagement for detailed information.

Parameters
ec(float, optional): Compressive concrete yield strain. Defaults to 1, e.g. computed according to Karthik and Mander 2011.
ecp(float, optional): Concrete spalling strain. Defaults to 1, e.g. computed according to Mander 1988.
fct(float, optional): Tensile concrete yield strain. Defaults to -1, e.g. computed according to SIA 262:2012.
et(float, optional): Tensile concrete yield strain. Defaults to -1, e.g. computed according to SIA 262:2012.

Definition at line 1642 of file MaterialModels.py.

1642 def ReInit(self, ec = 1, ecp = 1, fct = -1, et = -1):
1643 """
1644 Implementation of the homonym abstract method.
1645 See parent class DataManagement for detailed information.
1646
1647 @param ec (float, optional): Compressive concrete yield strain. Defaults to 1, e.g. computed according to Karthik and Mander 2011.
1648 @param ecp (float, optional): Concrete spalling strain. Defaults to 1, e.g. computed according to Mander 1988.
1649 @param fct (float, optional): Tensile concrete yield strain. Defaults to -1, e.g. computed according to SIA 262:2012.
1650 @param et (float, optional): Tensile concrete yield strain. Defaults to -1, e.g. computed according to SIA 262:2012.
1651 """
1652 # Check applicability
1653 self.CheckApplicability()
1654
1655 # Arguments
1656 self.ec = self.Compute_ec() if ec == 1 else ec
1657 self.ecp = self.Compute_ecp() if ecp == 1 else ecp
1658 self.fct = self.Compute_fct() if fct == -1 else fct
1659 self.et = self.Compute_et() if et == -1 else et
1660
1661 # Members (according to Mander 1988, confined concrete)
1662 self.ecu = self.Compute_ecu()
1663 self.Ai = self.ComputeAi()
1664 self.Ae = (self.Ac - self.Ai) * (1.0 - (self.s-self.D_hoops)/2.0/self.bc)*(1.0 - (self.s-self.D_hoops)/2.0/self.dc)
1665 self.rho_cc = self.nr_bars*self.D_bars**2/4.0*math.pi / self.Ac
1666 self.Acc = self.Ac*(1.0-self.rho_cc)
1667 self.ke = self.Ae/self.Acc
1668 self.fl_x = -self.rho_s_x * self.fs
1669 self.fl_y = -self.rho_s_y * self.fs
1670 self.K_combo = self.ComputeConfinementFactor()
1671 self.fcc = self.fc * self.K_combo
1672 self.ecc = self.Compute_ecc()
1673 self.eccu = self.Compute_eccu()
1674 if self.section_name_tag != "None": self.section_name_tag = self.section_name_tag + " (modified)"
1675
1676 # Data storage for loading/saving
1677 self.UpdateStoredData()
1678
1679
Module with the parent abstract class DataManagement.

◆ ShowInfo()

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

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.
concrete04(bool, optional): Option to show in the plot the concrete04 or concrete01 if False. Defaults to True.

Definition at line 1725 of file MaterialModels.py.

1725 def ShowInfo(self, plot = False, block = False, concrete04 = True):
1726 """
1727 Implementation of the homonym abstract method.
1728 See parent class DataManagement for detailed information.
1729
1730 @param plot (bool, optional): Option to show the plot of the material model. Defaults to False.
1731 @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.
1732 @param concrete04 (bool, optional): Option to show in the plot the concrete04 or concrete01 if False. Defaults to True.
1733 """
1734 print("")
1735 print("Requested info for Confined Mander 1988 (rectangular) material model Parameters, ID = {}".format(self.ID))
1736 print("Section associated: {} ".format(self.section_name_tag))
1737 print('Concrete strength fc = {} MPa'.format(self.fc/MPa_unit))
1738 print('Concrete strength confined fcc = {} MPa'.format(self.fcc/MPa_unit))
1739 print('Strain at maximal strength ec = {}'.format(self.ec))
1740 print('Strain at maximal strength confined ecc = {}'.format(self.ecc))
1741 print('Maximal strain ecu = {}'.format(self.ecu))
1742 print('Maximal strain confined eccu = {}'.format(self.eccu))
1743 print("")
1744
1745 if plot:
1746 fig, ax = plt.subplots()
1747 if concrete04:
1748 PlotConcrete04(self.fcc, self.Ec, self.ecc, self.eccu, "C", ax, self.ID)
1749 else:
1750 PlotConcrete01(self.fcc, self.ecc, 0.0, self.eccu, ax, self.ID)
1751
1752 if block:
1753 plt.show()
1754
1755
def PlotConcrete04(fc, Ec, ec, ecu, str Type, ax, ID=0)
Function that plots the confined/unconfined Concrete04 stress-strain curve.
def PlotConcrete01(fc, ec, fpcu, ecu, ax, ID=0)
Function that plots the Concrete01 stress-strain curve.

◆ UpdateStoredData()

def UpdateStoredData (   self)

Implementation of the homonym abstract method.

See parent class DataManagement for detailed information.

Definition at line 1681 of file MaterialModels.py.

1681 def UpdateStoredData(self):
1682 """
1683 Implementation of the homonym abstract method.
1684 See parent class DataManagement for detailed information.
1685 """
1686 self.data = [["INFO_TYPE", "ConfMander1988rect"], # Tag for differentiating different data
1687 ["ID", self.ID],
1688 ["section_name_tag", self.section_name_tag],
1689 ["bc", self.bc],
1690 ["dc", self.dc],
1691 ["Ac", self.Ac],
1692 ["fc", self.fc],
1693 ["Ec", self.Ec],
1694 ["ec", self.ec],
1695 ["ecp", self.ecp],
1696 ["ecu", self.ecu],
1697 ["fct", self.fct],
1698 ["et", self.et],
1699 ["fcc", self.fcc],
1700 ["ecc", self.ecc],
1701 ["eccu", self.eccu],
1702 ["beta", self.beta],
1703 ["nr_bars", self.nr_bars],
1704 ["D_bars", self.D_bars],
1705 ["wx_top", self.wx_top],
1706 ["wx_bottom", self.wx_bottom],
1707 ["wy", self.wy],
1708 ["s", self.s],
1709 ["D_hoops", self.D_hoops],
1710 ["rho_s_x", self.rho_s_x],
1711 ["rho_s_y", self.rho_s_y],
1712 ["fs", self.fs],
1713 ["esu", self.esu],
1714 ["Ai", self.Ai],
1715 ["Ae", self.Ae],
1716 ["rho_cc", self.rho_cc],
1717 ["Acc", self.Acc],
1718 ["ke", self.ke],
1719 ["fl_x", self.fl_x],
1720 ["fl_y", self.fl_y],
1721 ["K_combo", self.K_combo],
1722 ["Initialized", self.Initialized]]
1723
1724

Member Data Documentation

◆ Ac

Ac

Definition at line 1621 of file MaterialModels.py.

◆ Acc

Acc

Definition at line 1666 of file MaterialModels.py.

◆ Ae

Ae

Definition at line 1664 of file MaterialModels.py.

◆ Ai

Ai

Definition at line 1663 of file MaterialModels.py.

◆ array_fl2

list array_fl2 = [None] * len(curve_fl1)
static

Definition at line 1394 of file MaterialModels.py.

◆ bc

bc

Definition at line 1619 of file MaterialModels.py.

◆ beta

beta

Definition at line 1635 of file MaterialModels.py.

◆ curve_fl1

curve_fl1 = np.arange(0, 0.3+0.02, 0.02)
static

Definition at line 1393 of file MaterialModels.py.

◆ D_bars

D_bars

Definition at line 1625 of file MaterialModels.py.

◆ D_hoops

D_hoops

Definition at line 1630 of file MaterialModels.py.

◆ data

data

Definition at line 1686 of file MaterialModels.py.

◆ dc

dc

Definition at line 1620 of file MaterialModels.py.

◆ Ec

Ec

Definition at line 1623 of file MaterialModels.py.

◆ ec

ec

Definition at line 1656 of file MaterialModels.py.

◆ ecc

ecc

Definition at line 1672 of file MaterialModels.py.

◆ eccu

eccu

Definition at line 1673 of file MaterialModels.py.

◆ ecp

ecp

Definition at line 1657 of file MaterialModels.py.

◆ ecu

ecu

Definition at line 1662 of file MaterialModels.py.

◆ esu

esu

Definition at line 1634 of file MaterialModels.py.

◆ et

et

Definition at line 1659 of file MaterialModels.py.

◆ fc

fc

Definition at line 1622 of file MaterialModels.py.

◆ fcc

fcc

Definition at line 1671 of file MaterialModels.py.

◆ fct

fct

Definition at line 1658 of file MaterialModels.py.

◆ fl_x

fl_x

Definition at line 1668 of file MaterialModels.py.

◆ fl_y

fl_y

Definition at line 1669 of file MaterialModels.py.

◆ fs

fs

Definition at line 1633 of file MaterialModels.py.

◆ ID

ID

Definition at line 1618 of file MaterialModels.py.

◆ Initialized

Initialized

Definition at line 1639 of file MaterialModels.py.

◆ K_combo

K_combo

Definition at line 1670 of file MaterialModels.py.

◆ ke

ke

Definition at line 1667 of file MaterialModels.py.

◆ nr_bars

nr_bars

Definition at line 1624 of file MaterialModels.py.

◆ rho_cc

rho_cc

Definition at line 1665 of file MaterialModels.py.

◆ rho_s_x

rho_s_x

Definition at line 1631 of file MaterialModels.py.

◆ rho_s_y

rho_s_y

Definition at line 1632 of file MaterialModels.py.

◆ s

s

Definition at line 1629 of file MaterialModels.py.

◆ section_name_tag

section_name_tag

Definition at line 1638 of file MaterialModels.py.

◆ wx_bottom

wx_bottom

Definition at line 1627 of file MaterialModels.py.

◆ wx_top

wx_top

Definition at line 1626 of file MaterialModels.py.

◆ wy

wy

Definition at line 1628 of file MaterialModels.py.


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