Typical materials

class materials.typical_materials.BasicElasticMaterial(E, nu, rho=0.0)

Bases: object

Basic elastic material

Variables:
  • E – Young’s modulus of the material
  • nu – Poisson’s ratio
  • rho – mass density
G()

shear modulus

defElasticMaterial(preprocessor, name=None)
Return an elastic material appropiate for example for
truss elements
Parameters:preprocessor – preprocessor object.
class materials.typical_materials.BeamMaterialData(name, section, material)

Bases: materials.typical_materials.MaterialData

Elastic section appropiate for 3D beam analysis, including shear deformations.

Variables:
  • name – name identifying the section
  • section – instance of a class that defines the geometric and mechanical characteristiscs of a section e.g: RectangularSection, CircularSection, ISection, …
  • material – instance of a class that defines the elastic modulus, shear modulus and mass density of the material
getRho()

return the mass per unit length

setupElasticShear3DSection(preprocessor)

Return an elastic section appropiate for 3D beam analysis

class materials.typical_materials.DeckMaterialData(name, thickness, material)

Bases: materials.typical_materials.MaterialData

Material for Isotropic elastic sections

Variables:
  • name – name identifying the section
  • thickness – overall depth of the section
  • material – instance of a class that defines the elastic modulus, shear modulus and mass density of the material
getAreaDensity()

return the mass per unit area

setupElasticSection(preprocessor)

create an elastic isotropic section appropiate for plate and shell analysis

class materials.typical_materials.MaterialData(name, E, nu, rho)

Bases: materials.typical_materials.BasicElasticMaterial

Base class to construct some material definition classes

Variables:
  • name – name identifying the material
  • xc_material – pointer to XC material.
materials.typical_materials.defCableMaterial(preprocessor, name, E, prestress, rho)

Constructs a uniaxial bilinear prestressed material. The stress strain ranges from slack (large strain at zero stress) to taught (linear with modulus E).

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • E – elastic modulus
  • prestress – prestress
  • rho – effective self weight (gravity component of weight per volume transverse to the cable)
materials.typical_materials.defConcrete01(preprocessor, name, epsc0, fpc, fpcu, epscu)

‘Constructs an uniaxial Kent-Scott-Park concrete material object with degraded linear unloading/reloading stiffness according to the work of Karsan-Jirsa and no tensile strength

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • epsc0 – concrete strain at maximum strength
  • fpc – concrete compressive strength at 28 days (compression is negative)
  • fpcu – concrete crushing strength
  • epscu – concrete strain at crushing strength
materials.typical_materials.defConcrete02(preprocessor, name, epsc0, fpc, fpcu, epscu, ratioSlope, ft, Ets)

‘Constructs an uniaxial concrete material with linear tension softening. Compressive concrete parameters should be input as negative values. The initial slope for this model is (2*fpc/epsc0)

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • epsc0 – concrete strain at maximum strength
  • fpc – concrete compressive strength at 28 days (compression is negative)
  • fpcu – concrete crushing strength
  • epscu – concrete strain at crushing strength
  • ratioSlope – ratio between unloading slope at epscu and initial slope
  • ft – tensile strength
  • Ets – tension softening stiffness (absolute value) (slope of the linear tension softening branch)
materials.typical_materials.defElastNoTensMaterial(preprocessor, name, E)

Constructs a uniaxial elastic - no tension material.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • E – tangent in the elastic zone of the stress-strain diagram
materials.typical_materials.defElasticIsotropic3d(preprocessor, name, E, nu, rho)

Constructs an linear elastic isotropic 3D material.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • E – Young’s modulus of the material
  • nu – Poisson’s ratio
  • rho – mass density, optional (defaults to 0.0)
materials.typical_materials.defElasticIsotropicPlaneStrain(preprocessor, name, E, nu, rho)

Constructs an linear elastic isotropic plane-strain material.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • E – Young’s modulus of the material
  • nu – Poisson’s ratio
  • rho – mass density, optional (defaults to 0.0)
materials.typical_materials.defElasticIsotropicPlaneStress(preprocessor, name, E, nu, rho)

Constructs an linear elastic isotropic plane-stress material.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • E – Young’s modulus of the material
  • nu – Poisson’s ratio
  • rho – mass density, optional (defaults to 0.0)
materials.typical_materials.defElasticMaterial(preprocessor, name, E, rho=0.0, nu=0.3)

Constructs an elastic uniaxial material.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • E – tangent in the stress-strain diagram
materials.typical_materials.defElasticMembranePlateSection(preprocessor, name, E, nu, rho, h)
Constructs an elastic isotropic section material appropiate
for plate and shell analysis.
Parameters:
  • preprocessor – preprocessor
  • name – name identifying the section
  • E – Young’s modulus of the material
  • nu – Poisson’s ratio
  • rho – mass density
  • h – overall depth of the section
materials.typical_materials.defElasticPPMaterial(preprocessor, name, E, fyp, fyn)

Constructs an elastic perfectly-plastic uniaxial material.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • E – tangent in the elastic zone of the stress-strain diagram
  • fyp – stress at which material reaches plastic state in tension
  • fyn – stress at which material reaches plastic state in compression
materials.typical_materials.defElasticPlateSection(preprocessor, name, E, nu, rho, h)
Constructs an elastic isotropic section material appropiate
for plate analysis.
Parameters:
  • preprocessor – preprocessor
  • name – name identifying the section
  • E – Young’s modulus of the material
  • nu – Poisson’s ratio
  • rho – mass density
  • h – overall depth of the section
materials.typical_materials.defElasticSection1d(preprocessor, name, A, E, linearRho=0.0)

Constructs an elastic section appropiate for 1D beam analysis.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the section
  • A – cross-sectional area of the section
  • E – Young’s modulus of material
  • I – second moment of area about the local z-axis
materials.typical_materials.defElasticSection2d(preprocessor, name, A, E, I, linearRho=0.0)

Constructs an elastic section appropiate for 2D beam analysis.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the section
  • A – cross-sectional area of the section
  • E – Young’s modulus of material
  • I – second moment of area about the local z-axis
materials.typical_materials.defElasticSection3d(preprocessor, name, A, E, G, Iz, Iy, J, linearRho=0.0)

Constructs an elastic section appropiate for 3D beam analysis

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the section
  • A – cross-sectional area of the section
  • E – Young’s modulus of the material
  • G – Shear modulus of the material
  • Iz – second moment of area about the local z-axis
  • Iy – second moment of area about the local y-axis
  • J – torsional moment of inertia of the section
materials.typical_materials.defElasticSectionFromMechProp1d(preprocessor, name, mechProp1d)

Constructs an elastic section appropiate for 1D beam analysis, taking mechanical properties of the section form a MechProp1d object.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the section
  • mechProp1d – object of type MechProp1d that contains the mechanical properties of the section
materials.typical_materials.defElasticSectionFromMechProp2d(preprocessor, name, mechProp2d)

Constructs an elastic section appropiate for 2D beam analysis, taking mechanical properties of the section form a MechProp2d object.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the section
  • mechProp2d – object of type MechProp2d that contains the mechanical properties of the section
materials.typical_materials.defElasticSectionFromMechProp3d(preprocessor, name, mechProp3d)

Constructs an elastic section appropiate for 3D beam analysis, taking mechanical properties of the section form a MechProp3d object.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the section
  • mechProp2d – instance of the class MechProp3d that contains the mechanical properties of the section
materials.typical_materials.defElasticShearSection2d(preprocessor, name, A, E, G, I, alpha, linearRho=0.0)

Constructs an elastic section appropiate for 2D beam analysis, including shear deformations.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the section
  • A – cross-sectional area of the section
  • E – Young’s modulus of the material
  • G – Shear modulus of the material
  • I – second moment of area about the local z-axis :param alpha: shear shape factor
materials.typical_materials.defElasticShearSection3d(preprocessor, name, A, E, G, Iz, Iy, J, alpha, linearRho=0.0)

Constructs an elastic section appropiate for 3D beam analysis, including shear deformations.

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the section
  • A – cross-sectional area of the section
  • E – Young’s modulus of the material
  • G – shear modulus of the material
  • Iz – second moment of area about the local z-axis
  • Iy – second moment of area about the local y-axis
  • J – torsional moment of inertia of the section
  • alpha – shear shape factor
materials.typical_materials.defSteel01(preprocessor, name, E, fy, b)

Constructs a uniaxial bilinear steel material object with kinematic hardening

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • E – initial elastic tangent
  • fy – yield strength
  • b – strain-hardening ratio: ratio between post-yield tangent and initial elastic tangent
materials.typical_materials.defSteel02(preprocessor, name, E, fy, b, initialStress)

Constructs a uniaxial bilinear Giuffre-Menegotto-Pinto steel material with isotropic strain hardening

Parameters:
  • preprocessor – preprocessor
  • name – name identifying the material
  • E – initial elastic tangent
  • fy – yield strength
  • b – strain-hardening ratio: ratio between post-yield tangent and initial elastic tangent
  • initialStress – initial stress

Concrete base

class materials.concrete_base.Concrete(nmbConcrete, fck, gammaC)

Bases: materials.sections.material_with_DK_diagrams.MaterialWithDKDiagrams

Concrete model according to Eurocode 2 - Base class.

Variables:
  • matTagD – tag of the uni-axial material in the design diagram
  • fck – characteristic (5%) cylinder strength of the concrete [Pa]
  • gmmC – partial safety factor for concrete
  • nuc – Poisson coefficient
  • cemType

    type of cement

    • R for cement of strength Classes CEM 42,5 R, CEM 52,5 Nand CEM 52,5 R (Class R) [cementos de alta resistencia en EHE]
    • N for cement of strength Classes CEM 32,5 R, CEM 42,5 N (Class N) [cementos normales en EHE]
    • S for cement of strength Classes CEM 32,5 N (Class S) [cementos de endurecimiento lento en EHE]
  • alfacc – factor which takes account of the fatigue in the concrete when it is subjected to high levels of compression stress due to long duration loads. Normally alfacc=1 (default value)
  • tensionStiffparam – variable to determine the behaviour of concrete

under tension. If tensionStiffparam is an instance of the class paramTensStiffness, tension stiffness of concrete is considered in the constitutive model to take into account the tensile capacity of the intact concrete between cracks. The stress strain relationship corresponds to a concrete02 material (linear tension softening), based on the tension-stiffening constitutive model proposed by Stramandinoli & La Rovere (ref. article: Engineering Structures 30 (2008) 2069-2080).

Variables:initTensStiff – variable that also determines the behaviour of concrete under tension. If initTensStiff =’Y’ a concrete02 material model is initialized with a tension capacity almost equal to 0 (equivalent to the concrete01 diagram). Defaults to ‘N’

If tensionStiffparam==None and initTensStiff==’N’ (default values) no tensile strength is considered; the stress strain relationship corresponds to a concrete01 material (zero tensile strength).

E0()

Tangent in the origin point of concrete01 and concrete02 diagrams

Ecm()

longitudinal secant modulus of deformation, at 28 days (slope of the secant of the actual stress-strain curve)) [Pa] [+]

Ect()

Elastic modulus in the tensile linear-elastic range of concrete [Pa] [+]

Gcm()

Shear elactic modulus [Pa][+]

alfacc = 1
cemType = 'N'
defDiagD(preprocessor)

Defines a uniaxial material to represent the design stress-strain diagram

  • If tensionStiffparam is an instance of the class paramTensStiffness, tension stiffness of concrete is considered in the constitutive model

to take into account tensile capacity of the intact concrete between cracks. The stress strain relationship corresponds to a concrete02 material (linear tension softening), based on the tension-stiffening constitutive model proposed by Stramandinoli & La Rovere (ref. article: Engineering Structures 30 (2008) 2069-2080)

-If initTensStiff =’Y’ a concrete02 material model is initialized with a tension capacity almost equal to 0 (equivalent to the concrete01 diagram). Defaults to ‘N’

-If tensionStiffparam==None and initTensStiff==’N’ (default values) no tensile strength is considered; the stress strain relationship corresponds to a concrete01 material (zero tensile strength).

defDiagK(preprocessor)

Defines a uniaxial material to represent the characteristic stress-strain diagram

  • If tensionStiffparam is an instance of the class paramTensStiffness, tension stiffness of concrete is considered in the constitutive model

to take into account tensile capacity of the intact concrete between cracks. The stress strain relationship corresponds to a concrete02 material (linear tension softening), based on the tension-stiffening constitutive model proposed by Stramandinoli & La Rovere (ref. article: Engineering Structures 30 (2008) 2069-2080)

-If initTensStiff =’Y’ a concrete02 material model is initialized with a tension capacity almost equal to 0 (equivalent to the concrete01 diagram). Defaults to ‘N’

-If tensionStiffparam==None and initTensStiff==’N’ (default values) no tensile strength is considered; the stress strain relationship corresponds to a concrete01 material (zero tensile strength).

defElasticMembranePlateSection(preprocessor, name, thickness)
Constructs an elastic isotropic section material appropiate
for elastic analysis of plate and shell elements
Parameters:
  • preprocessor – preprocessor name
  • name – name identifying the section
  • thickness – section thickness.
defElasticPlateSection(preprocessor, name, thickness)
Constructs an elastic isotropic section material appropiate
for elastic analysis of plate elements.
Parameters:
  • preprocessor – preprocessor name
  • name – name identifying the section
  • thickness – section thickness.
defElasticSection2d(preprocessor, sectionProperties)

Constructs an elastic section material appropiate for elastic analysis of 2D beam elements.

Parameters:
  • preprocessor – preprocessor object.
  • sectionProperties – mass properties of the section.
defElasticSection3d(preprocessor, sectionProperties)

Constructs an elastic section material appropiate for elastic analysis of 3D beam elements.

Parameters:
  • preprocessor – preprocessor object.
  • sectionProperties – mass properties of the section.
defElasticShearSection2d(preprocessor, sectionProperties)

Constructs an elastic section material appropiate for elastic analysis of 2D beam elements including shear deformations.

Parameters:
  • preprocessor – preprocessor object.
  • sectionProperties – mass properties of the section.
defElasticShearSection3d(preprocessor, sectionProperties)

Constructs an elastic section material appropiate for elastic analysis of 3D beam elements including shear deformations.

Parameters:
  • preprocessor – preprocessor object.
  • sectionProperties – mass properties of the section.
density(reinforced=True)

Return concrete density in kg/m3.

epsilon0()

strain at peak stress at parabola-rectangle diagram

epsilonU()

nominal ultimate strain at parabola-rectangle diagram

expnPR()

exponent n for the parabola-rectangle diagram

fcd()

concrete design strength [Pa][-]

fckMPa()

characteristic (5%) cylinder strength of the concrete in MPa (absolute value)

fctd()

Design mean tensile strength [Pa][+].

fctk()

characteristic tensile strength [Pa] (5% fractile)

fctm()

mean tensile strength [Pa][+] (table 3.1 EC2)

fmaxD()
fmaxK()

maximum characteristic strength of the concrete [Pa][-]

getBetaCC(t=28)

beta_cc: coefficient (sect. 3.1.2 EC2, art. 31.3 EHE-08)

Parameters:t – age of the concrete in days
getCreepAlfa1()

Coefficient for the calculation of the creep coefficient (Annex B Eurocode 2 part 1-1)

getCreepAlfa2()

Coefficient for the calculation of the creep coefficient (Annex B Eurocode 2 part 1-1)

getCreepAlfa3()

Coefficient for the calculation of the creep coefficient (Annex B Eurocode 2 part 1-1)

getCreepBetactt0(t, t0, RH, h0mm)

coefficient to describe the development of creep with time after loading, used to calculate the creep coefficient (Annex B Eurocode 2 part 1-1)

Parameters:
  • t – age of concrete in days at the moment considered
  • t0 – age of concrete in days at loading
  • RH – ambient relative humidity(%)
  • h0mm

    notional size of the member in mm

    • h0mm=2*Ac/u, where:
      • Ac= cross sectional area
      • u = perimeter of the member in contact with the atmosphere
getCreepBetafcm()

factor to allow for the effect of concrete strength on the notational creep coefficient (Annex B Eurocode 2 part 1-1)

getCreepBetat0(t0)

factor to allow for the effect of concrete age at loading on the notational creep coefficient (Annex B Eurocode 2 part 1-1)

Parameters:t0 – age of concrete in days at loading
getCreepFi0(t0, RH, h0mm)

notational creep coefficient for the calculation of the creep coefficient (Annex B Eurocode 2 part 1-1)

Parameters:
  • t0 – age of concrete in days at loading
  • RH – ambient relative humidity(%)
  • h0mm

    notional size of the member in mm

    • h0mm=2*Ac/u, where:
      • Ac= cross sectional area
      • u = perimeter of the member in contact with the atmosphere
getCreepFiRH(RH, h0mm)

factor to allow for the effect of relative humidity on the notional creep coefficient (Annex B Eurocode 2 part 1-1)

Parameters:
  • RH – ambient relative humidity(%)
  • h0mm

    notional size of the member in mm

    • h0mm=2*Ac/u, where:
      • Ac= cross sectional area
      • u = perimeter of the member in contact with the atmosphere
getCreepFitt0(t, t0, RH, h0mm)

Creep coefficient (Annex B Eurocode 2 part 1-1)

Parameters:
  • t – age of concrete in days at the moment considered
  • t0 – age of concrete in days at loading
  • RH – ambient relative humidity(%)
  • h0mm

    notional size of the member in mm

    • h0mm=2*Ac/u, where:
      • Ac= cross sectional area
      • u = perimeter of the member in contact with the atmosphere
getElasticMaterialData()

Return the elastic material constitutive model.

getFckt(t=28)
Fckt: concrete compressive strength [Pa][-] at time t (for stages)
(sect. 3.1.2 EC2)
Parameters:t – age of the concrete in days
getFcm()

Fcm: mean compressive strength [Pa][-] at 28 days (table 3.1 EC2, art. 39.6 EHE-08)

getFcmT(t=28)

FcmT: mean concrete compressive strength [Pa][-] at an age of t days (sect. 3.1.2 EC2, art. 31.3 EHE-08)

Parameters:t – age of the concrete in days
getFctk005(t=28)

Fctk005: tensile strength [Pa][+] 5% fractile (table 3.1 EC2)

Parameters:t – age of the concrete in days
getFctk095(t=28)

Fctk095: tensile strength [Pa][+] 95% fractile (table 3.1 EC2)

Parameters:t – age of the concrete in days
getShrAlfads1()

Coefficient for the calculation of the basic drying shrinkage strain (Annex B Eurocode 2 part 1-1)

getShrAlfads2()

Coefficient for the calculation of the basic drying shrinkage strain (Annex B Eurocode 2 part 1-1)

getShrBetaRH(RH)

Coefficient for the calculation of the basic drying shrinkage strain (Annex B Eurocode 2 part 1-1)

Parameters:RH – ambient relative humidity(%)
getShrBetaast(t)

coefficient for calculating the autogenous shrinkage strain (art. 3.1.4 Eurocode 2 part 1-1)

Parameters:t – age of concrete in days at the moment considered
getShrBetadstts(t, ts, h0mm)

coefficient for the calculation of the drying shrinkage strain (table 3.3 Eurocode 2 part 1-1)

Parameters:
  • t – age of concrete in days at the moment considered
  • ts – age of concrete in days at the beginning of drying shrinkage (or swelling) Normally this is at the end of curing
  • h0mm

    notional size of the member in mm

    • h0mm=2*Ac/u, where:
      • Ac= cross sectional area
      • u = perimeter of the member in contact with the atmosphere
getShrEpsca(t)

Autogenous shrinkage strain (art. 3.1.4 Eurocode 2 part 1-1)

Parameters:t – age of concrete in days at the moment considered
getShrEpscainf(t)

coefficient for calculating the autogenous shrinkage strain [-] (art. 3.1.4 Eurocode 2 part 1-1)

Parameters:t – age of concrete in days at the moment considered
getShrEpscd(t, ts, RH, h0mm)

Drying shrinkage strain[-] (art. 3.1.4 Eurocode 2 part 1-1)

Parameters:
  • t – age of concrete in days at the moment considered
  • ts – age of concrete in days at the beginning of drying shrinkage (or swelling). Normally this is at the end of curing
  • RH – ambient relative humidity(%)
  • h0mm

    notional size of the member in mm

    • h0mm=``2*Ac/u``, where:
      • Ac= cross sectional area
      • u = perimeter of the member in contact with the atmosphere
getShrEpscd0(RH)

Basic drying shrinkage strain [-] for the calculation of the drying shrinkage strain (Annex B Eurocode 2 part 1-1)

Parameters:RH – ambient relative humidity(%)
getShrEpscs(t, ts, RH, h0mm)

Total shrinkage strain = autogenous + drying shrinkages

Parameters:
  • t – age of concrete in days at the moment considered
  • ts – age of concrete in days at the beginning of drying shrinkage (or swelling) Normally this is at the end of curing
  • RH – ambient relative humidity(%)
  • h0mm

    notional size of the member in mm

    • h0mm=2*Ac/u, where:
      • Ac= cross sectional area
      • u = perimeter of the member in contact with the atmosphere
getShrKh(h0mm)

coefficient depending on the notional size h0mm for the calculation of the drying shrinkage strain (table 3.3 Eurocode 2 part 1-1)

Parameters:h0mm

notional size of the member in mm

  • h0mm=``2*Ac/u``, where:
    • Ac= cross sectional area
    • u = perimeter of the member in contact with the atmosphere
nuc = 0.2
plotDesignStressStrainDiagram(preprocessor, path='')
sigmaPR(eps)

stress as function of strain according to parabola-rectangle diagram

sigmac(eps)

Stress [Pa][-] from parabola-rectangle diagram

Parameters:eps – strain [-]
tangc(eps)

Tangent of the parabola-rectangle diagram

Parameters:eps – strain [-]
tensionStiffparam = None
class materials.concrete_base.PrestressingSteel(steelName, fpk, fmax=1860000000.0, alpha=0.75, steelRelaxationClass=1, tendonClass='strand')

Bases: materials.sections.material_with_DK_diagrams.MaterialWithDKDiagrams

Prestressing steel parameters

Variables:
  • fpk – Elastic limit.
  • fmax – Steel strength.
  • alpha – stress-to-strength ratio.
  • steelRelaxationClass – Relaxation class 1: normal, 2: improved, and 3: relaxation for bars.
  • tendonClass – Tendon class wire, strand or bar.
defDiagD(preprocessor, initialStress)

Design stress-strain diagram.

defDiagK(preprocessor, initialStress)

Characteristic stress-strain diagram.

fpd()
getKRelaxation()

Return the value of k factor for the relaxation expression from the relaxation class. See Model Code 1990 paragraph 2.3.4.5.

ptsShortTermRelaxation = <scipy.interpolate.interpolate.interp1d object>
tInic()
class materials.concrete_base.ReinforcedConcreteLimitStrains(EpsCU=-0.0035, EpsC0=-0.002, SMaxStrain=0.01)

Bases: object

bendingOK(epsCMin, epsSMax)

Check for flexural.

Parameters:
  • epsCMin – minimum strain for concrete.
  • epsSMax – maximum strain for reinforcing steel.
compressiveBendingOK(epsCMin, epsCMax)

Check for compressive or flexural compressive strength.

Parameters:
  • epsCMin – minimum strain for concrete.
  • epsCMax – maximum strain for concrete.
getBendingEfficiency(epsCMin, epsSMax)

Return efficiency in flexural bending.

Parameters:
  • epsCMin – minimum strain for concrete.
  • epsSMax – maximum strain for reinforcing steel.
getCompressiveBendingEfficiency(epsCMin, epsCMax)

Return efficiency for compressive or flexural compressive strength..

Parameters:
  • epsCMin – minimum strain for concrete.
  • epsCMax – maximum strain for concrete.
getNormalStressesEfficiency(tipoSol, epsCMin, epsCMax, epsSMax)

Return efficiency under normal stresses.

getTensileBendingEfficiency(epsSMax)

Return efficiency for tensile or flexural tensile stress.

Parameters:epsSMax – maximum strain for reinforcing steel.
tensileBendingOK(epsSMax)

Check for tensile or flexural tensile stress.

Parameters:epsSMax – maximum strain for reinforcing steel.
class materials.concrete_base.ReinforcingSteel(steelName, fyk, emax, gammaS, k=1.05)

Bases: materials.sections.material_with_DK_diagrams.MaterialWithDKDiagrams

Reinforcing steel parameters

Variables:
  • fyk – Characteristic value of the yield strength.
  • emax – maximum strain in tension
  • gammaS – Partial factor for material.
  • k – fmaxk/fyk ratio (Annex C of EC2: class A k>=1,05, class B k>=1,08)
Es = 200000000000.0
Esh()

Slope of the curve in the yielding region.

bsh()

Ratio between post-yield tangent and initial elastic tangent.

defDiagD(preprocessor)

Returns XC uniaxial material (design values).

defDiagK(preprocessor)

Returns XC uniaxial material (characteristic values).

eyd()

Design strain at yield point.

eyk()

Caracteristic strain at yield point.

fmaxk()

Characteristic ultimate strength.

fyd()

Design yield stress.

k = 1.05
plotDesignStressStrainDiagram(preprocessor, path='')

Draws the steel design diagram.

materials.concrete_base.concreteDesignDiagramTest(preprocessor, concreteRecord)

Calculates the differece between the stresses obtained from the Concrete01 uniaxial material (getStress() ) and the theoretical law defined in Python (see sigmac()).

materials.concrete_base.concreteDesignTangentTest(preprocessor, concreteRecord)

Calculates the differece between the values of the tangent obtained from de Concrete01 uniaxial material (getTangent() ) and the theoretical law defined in Python (see tangc()).

materials.concrete_base.defDiagDConcrete(preprocessor, concreteRecord)
materials.concrete_base.defDiagKConcrete(preprocessor, concreteRecord)
materials.concrete_base.defReinfSteelCharacteristicDiagram(preprocessor, steelRecord)

Characteristic stress-strain diagram.

materials.concrete_base.defReinfSteelDesignDiagram(preprocessor, steelRecord)

Design stress-strain diagram.

class materials.concrete_base.paramTensStiffness(concrMat, reinfMat, reinfRatio, diagType)

Bases: object

Parameters to generate a concrete02 material based on the tension-stiffening constitutive
model of concrete proposed by Stramandinoli & La Rovere (ref. article: Engineering Structures 30 (2008) 2069-2080).
Variables:
  • concrMat – concrete material of the RC section
  • reinfMat – reinforcing steel material of the RC section
  • reinfRatio – section reinforcement ratio, obtained as: -ro=As/Ac for members subjected to direct tension. -roef=As/Acef for members under bending, where Acef is the effective area, that corresponds to the tensile zone in the member section. Aef can be obtained as (see CEB-FIP MC-90) Aef = 2.5b(h-d) < b(h-x)/3, where x is the neutral axis depth. Aef can be estimated as Aef~=bh/4
  • nPoints – number of (strain,stress) pairs of values to approximate the exponential decay curve adopted for the post-cracking range (defaults to 50)
  • diagType – type of diagram: ‘K’ or ‘k’ for characteristic, ‘D’ or ‘d’ for design (defaults to characteristic)
  • E_c – concrete elastic modulus [Pa] [+] (defaults to concrMat.Ecm())
  • f_ct – concrete tensile strength [Pa][+] (defaults to concrMat.fctd() or concrMat.fctk())
  • E_ct – concrete elastic modulus [Pa] [+] in the tensile linear-elastic range (defaults to concrMat.Ect())
  • E_s – steel elastic modulus [Pa] [+] (defaults to reinfMat.Es)
  • eps_y – reinforcing steel strain at yield point [Pa][+] (defaults to reinfMat.eyd() or reinfMat.eyk())
E_s = None

Reinforcing steel strain at yield point [Pa][+]

alfa()

returns the parameter for the exponential decay curve adopted for the post-cracking range, until yielding of reinforcement takes place

nu()

return steel-to-concrete elastic modulus ratio nu = Es/Ec

pointOnsetCracking()

return the calculated (strain,stress) point of the concrete diagram where cracking starts. It’s obtained as the intersection of the straight line thas reproduces the linear-elastic range in tension (before cracking) with the regression line that approaches the exponential decay curve adopted for the post-cracking range

ptosExpCurvPostCracking()

return a list of strains and the list of their corresponding stresses in exponential decay curve adopted for the post-cracking range, until yielding of reinforcement takes place

regresLine()

return the slope [a] and interceptY [b] (the value of y when x=0) of the regression line y=ax+b that approaches the exponential decay curve adopted for the post-cracking range. It also returns interceptX (the value of x when y=0)

slopeRegresLineFixedPoint()

return the slope of the regression line that approaches the exponential decay curve adopted for the post-cracking range, passings through the point (eps_ct,f_ct) [point of concrete onset cracking]

materials.concrete_base.sigmaDReinfSteel(eps, matRecord)

Design stress-strain diagram for reinforcing steel, according to EC2.

materials.concrete_base.sigmaKReinfSteel(eps, matRecord)

Characteristic stress-strain diagram for reinforcing steel, according to EC2.

materials.concrete_base.sigmas(eps, fy, ey, Es, Esh)

Stress-strain diagram of reinforcing steel, according to EC2 (the same one is adopted by EHE and SIA).

materials.concrete_base.testReinfSteelCharacteristicDiagram(preprocessor, matRecord)

Checking of characteristic stress-strain diagram.

materials.concrete_base.testReinfSteelDesignDiagram(preprocessor, matRecord)

Checking of design stress-strain diagram.

Limit state checking base

Base classes for limit state control.

class materials.limit_state_checking_base.BiaxialBendingNormalStressControllerBase(limitStateLabel)

Bases: materials.limit_state_checking_base.LimitStateControllerBase

Base class for object that controls normal stresses limit state.

check(elements, nmbComb)

Launch checking.

Parameters:
  • elements – elements to check.
  • nmbComb – load case name.
initControlVars(elements)

Initialize control variables over elements.

Parameters:elements – elements to define control variables in
class materials.limit_state_checking_base.CrackControlBaseParameters(limitStateLabel)

Bases: materials.limit_state_checking_base.LimitStateControllerBase

Basic parameters for crack control.

printParams()
class materials.limit_state_checking_base.LimitStateControllerBase(limitStateLabel, fakeSection=True)

Bases: object

Basic parameters for limit state control (normal stresses, shear, crack,…) .

check(elements, nmbComb)

Limit state control.

tensionedRebarsFiberSetName = 'tensionedReinforcement'
class materials.limit_state_checking_base.ShearControllerBase(limitStateLabel, fakeSection=True)

Bases: materials.limit_state_checking_base.LimitStateControllerBase

Base class for shear controller classes.

check(elements, combName)

Shear control.

initControlVars(elements)

Initialize control variables over elements.

Parameters:elements – elements to define control variables in
class materials.limit_state_checking_base.TensionedRebarsBasicProperties

Bases: object

Basic properties of tensioned rebars (used in shear checking).

class materials.limit_state_checking_base.TensionedRebarsProperties

Bases: materials.limit_state_checking_base.TensionedRebarsBasicProperties

Properties of tensioned rebars that are useful for crack control analysis.

printParams()
setup(tensionedReinforcement)

Get the parameter values from the fiber set.

Parameters:tensionedReinforcement – fibers that represent tensioned rebars.
class materials.limit_state_checking_base.UniaxialBendingNormalStressControllerBase(limitStateLabel)

Bases: materials.limit_state_checking_base.LimitStateControllerBase

Base class for object that controls normal stresses limit state (uniaxial bending).

check(elements, combName)

Check the normal stresses

Parameters:
  • elements – elements to check
  • combName – name of the load combination being treated.
initControlVars(elements)

Initialize control variables over elements.

Parameters:elements – elements to define control variables in
class materials.limit_state_checking_base.fibSectLSProperties(sct)

Bases: object

Class that sets up basic properties associatted to a fiber section in order to be used in the checking of different limit states.

calcCover(setSteelFibers, setSteelFibersName)

Return the mean concrete cover in the set of reinforcing steel fibers setSteelFibers

setupSets()
setupStrghCrackDist()

Set some parameters that are going to be used to calculate the tension stiffening properties of concrete and the cracking distance.

Steel base

class materials.steel_base.BasicSteel(E, nu, fy, fu, gammaM)

Bases: materials.typical_materials.BasicElasticMaterial

Base class for structural steels.

Variables:
  • rho – material density
  • fy – yield stress.
  • fu – ultimate stress.
  • gammaM – partial factor.
alpha = 1.2e-05
fyd()

Buckling base

class materials.buckling_base.MemberBase(name, shape, lstLines=None, lstPoints=None)

Bases: object

Base class for steel members.

Variables:
  • name – object name.
  • shape – cross-section shape (e.g. IPNShape, IPEShape, …)
  • lstLines – ordered list of lines that make up the beam (defaults to None).
  • lstPoints – ordered list of points that make up the beam. Ignored if lstLines is given (defaults to None)
  • contrPnt – control points along the beam.
  • elemSet – elements along the beam.
createElementSet()

Create the attributes ‘length’ and ‘elemSet’ that represent the length of the beam and the set of elements included in it.

getBendingMomentsAtControlPoints()

Return the bending moments at control points.

getPreprocessor()

Return the XC preprocessor.

setControlPoints()

Set the five equally spaced points in the beam where the moment Mz will be evaluated in order to obtain the moment gradient factor involved in the calculation of the lateral-torsional buckling reduction factor.

An attribute of member is created, named ‘contrPnt’ that contains a list of five tuples (elem,relativDist), each of which contains the element of the beam nearest to one control-point and the relative distance from this control point to the first node of the element. The method also creates the attributes ‘length’ and ‘elemSet’ that represent the length of the beam and the set of elements included in it.

class materials.buckling_base.MemberConnection(rotI='free', transI='fixed', rotJ='free', transJ='fixed')

Bases: object

Member connection

Variables:
  • rotI – fixity of the rotation at member start.
  • transI – fixity of the translation at member start.
  • rotJ – fixity of the rotation at member end.
  • transJ – fixity of the translation at member end.
getEffectiveBucklingLengthCoefficientRecommended()

Return the effective length factor according to table C-A-7.1 or AISC specification and NDS 2018 appendix G

Bridge bearings

Classes for modelling bridge bearings.

This module provides some classes that allow modelling elastomeric and pot type bridge bearings. For now they are modelized as linear joints that connect two nodes with springs that introduce translational and/or rotational stiffness that are approximately equal to those of the real bearing.

Examples:
Examples of the use of these classes are given in the following verification tests:
  • ./verif/tests/elements/test_elastomeric_bearing_01.py
  • ./verif/tests/elements/test_pot_bearing_01.py
  • ./verif/tests/elements/test_pot_bearing_02.py
  • ./verif/tests/elements/test_pot_bearing_03.py
  • ./verif/tests/materials/test_elastomeric_bearing_stiffness.py
Args:
  • x2 (list): Abcissae of the points that define the values of V2 as a function of b/a.
  • y2 (list): Ordinates of the points that define the values of V2 as a function of b/a.
  • x3 (list): Abcissae of the points that define the values of V3 as a function of b/a.
  • y3 (list): Ordinates of the points that define the values of V3 as a function of b/a.
  • x4 (list): Abcissae of the points that define the values of V4 as a function of b/a.
  • y4 (list): Ordinates of the points that define the values of V4 as a function of b/a.
  • xBeta (list): Abcissae of the points that define the values of beta (alpha in the book) as a function of b/a.
  • yBeta (list): Ordinates of the points that define the values of beta (alpha in the book) as a function of h/b.
Todo:
  • Extend the module to cover other bearing types.
class materials.bridge_bearings.Bearing

Bases: object

Bearings base class.

getMaterial(i)

Returns the i-th uniaxial material that modelizes the response in the i-th direction.

getMaterialNames()

Return material names for each DOF in a list.

setBearing(predefinedSpace, iNodA, orientation=None)

Modelize a bearing on X, XY or XYZ directions.

Parameters:
  • predefinedSpace – model space (object).
  • iNod – (int) node identifier (tag).
  • (list) (bearingMaterials) – material names for the zero length element.
Return rtype:

(int, int) new node tag, new element tag.

setBearingBetweenNodes(predefinedSpace, iNodA, iNodB, orientation=None)

Modelize a bearing between the nodes and return newly created zero length element that represents the bearing.

Parameters:
  • predefinedSpace – model space (object).
  • iNodA – (int) first node identifier (tag).
  • iNodB – (int) second node identifier (tag).
class materials.bridge_bearings.ElastomericBearing(G, a, b, e)

Bases: materials.bridge_bearings.Bearing

Rectangular elastomeric bearing.

Reference:
“Puentes”:book from Javier Manterola Armisén page 591 and 592.

Class-wide members:

v2table: interpolation function for the V2 shape factor. v3table: interpolation function for the V3 shape factor. v4table: interpolation function for the V4 shape factor. betaTable: interpolation function for the beta shape factor.

Attributes:

G: (float) Elastomer shear modulus. a: (float) Width of the bearing (parallel to bridge axis). b: (float) Length of the bearing (parallel to lintel axis). e: (float) Net thickness of the bearing (without steel plates).
betaTable = <scipy.interpolate.interpolate.interp1d object>
defineMaterials(preprocessor)

Define the materials to modelize the elastomeric bearing.

Parameters:preprocessor – (:obj:’Preprocessor’) preprocessor to use.
getBeta()

Return the value of the beta factor.

getEbearing()

Return the elastic modulus with respect to the vertical displacement.

getKhoriz()

Return horizontal stiffness of the bearing.

getKrotationBridgeAxis()

Stiffness with respect to the rotation around an axis parallel to the bridge by the center of the bearing.

getKrotationLintelAxis()

Stiffness with respect to the rotation around an axis parallel to the lintel by the center of the bearing.

getKrotationVerticalAxis()

Stiffness with respect to the rotation around a vertical axis.

getKvert()

Return the vertical stiffness.

getV2()

Return the V2 shape factor of the bearing.

getV3()

Return the V3 shape factor of the bearing.

getV4()

Return the v4 shape factor of the bearing.

putBetweenNodes(modelSpace, iNodA, iNodB, orientation=None)

Puts the bearing between the nodes.

:param modelSpace (:obj:’PredefinedSpace’): space dimension and number of DOFs. :param iNodA (int): first node identifier (tag). :param iNodB (int): second node identifier (tag).

v2table = <scipy.interpolate.interpolate.interp1d object>
v3table = <scipy.interpolate.interpolate.interp1d object>
v4table = <scipy.interpolate.interpolate.interp1d object>
x2 = [1, 1.5, 2, 3, 4, 6, 8, 10, 10000]
x3 = [1, 1.5, 2, 3, 4, 6, 8, 10, 10000]
x4 = [1, 2, 4, 8, 10000]
xBeta = [1.0, 1.25, 1.5, 2.0, 3.0, 4.0, 6.0, 10.0, 10000]
y2 = [0.208, 0.231, 0.246, 0.267, 0.282, 0.299, 0.307, 0.313, 0.3333333333333333]
y3 = [0.14, 0.196, 0.229, 0.263, 0.281, 0.299, 0.307, 0.313, 0.3333333333333333]
y4 = [85.7, 71.4, 64.5, 61.2, 60]
yBeta = [0.14, 0.171, 0.196, 0.229, 0.263, 0.281, 0.299, 0.313, 0.3333333333333333]
class materials.bridge_bearings.PTFEPotBearing(d)

Bases: materials.bridge_bearings.Bearing

PTFE slide bearing.

Attibutes:
d:(float) Pot diameter.
defineMaterials(preprocessor)

Define the materials to modelize the pot (Teflon).

Parameters:
  • preprocessor – (:obj:’Preprocessor’) preprocessor to use.
  • matKX – (str) name for the uniaxial material in direction X.
  • matKY – (str) name for the uniaxial material in direction Y.
getHorizontalStiffness()

Returns the fictitious stiffness with respect to the horizontal displacement of a PTFE slide bearing.

Stiffness is calculated so that when the displacement reach 20 mm the spring reaction equals the force of friction.

sg_media= 35 MPa mean compressive stress. mov= 20e-3 Displacement when the friction force is reached.

putBetweenNodes(modelSpace, iNodA, iNodB)

Puts the bearing between the nodes.

Parameters:
  • modelSpace – (:obj:’PredefinedSpace’) space dimension and number of DOFs.
  • iNodA – (int) first node identifier (tag).
  • iNodB – (int) second node identifier (tag).
putOnXBetweenNodes(modelSpace, iNodA, iNodB)

Puts the bearing between the nodes only in direction X.

Parameters:
  • modelSpace – (:obj:’PredefinedSpace’) space dimension and number of DOFs.
  • iNodA – (int) first node identifier (tag).
  • iNodB – (int) second node identifier (tag).
putOnYBetweenNodes(modelSpace, iNodA, iNodB)

Puts the bearing between the nodes only in direction Y.

Parameters:
  • modelSpace – (:obj:’PredefinedSpace’) space dimension and number of DOFs.
  • iNodA – (int) first node identifier (tag).
  • iNodB – (int) second node identifier (tag).
teflonMuTable = <scipy.interpolate.interpolate.interp1d object>
materials.bridge_bearings.get_reaction_on_pot(preprocessor, iElem, inclInertia=False)

Return the element reaction.

Parameters:
  • preprocessor – (:obj:’Preprocessor’) preprocessor to use.
  • iElem – (int) new zero length elem identifier (tag).
  • inclInertia – (bool) true if the reaction must include inertia forces.