o3seespy.nd_material

base_material

class o3seespy.command.nd_material.base_material.NDMaterialBase[source]

Bases: OpenSeesObject

build(osi)[source]
built = 1
op_base_type = 'nDMaterial'
op_type = None
set_parameter(osi, pstr, value, ele, eles, ele_tag_range=None, pval=1)[source]

concrete_walls

class o3seespy.command.nd_material.concrete_walls.PlaneStressUserMaterial(osi, nstatevs, nprops, fc, ft, fcu, epsc0, epscu, epstu, stc)[source]

Bases: NDMaterialBase

The PlaneStressUserMaterial NDMaterial Class

This command is used to create the multi-dimensional concrete material model that is based on the damage mechanism and smeared crack model.

Initial method for PlaneStressUserMaterial

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • nstatevs (None) –

  • nprops (int) – Number of material properties (usually 7)

  • fc (float) – Concrete compressive strength at 28 days (positive)

  • ft (float) – Concrete tensile strength (positive)

  • fcu (float) – Concrete crushing strength (negative)

  • epsc0 (float) – Concrete strain at maximum strength (negative)

  • epscu (float) – Concrete strain at crushing strength (negative)

  • epstu (float) – Ultimate tensile strain (positive)

  • stc (float) – Shear retention factor

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.PlaneStressUserMaterial(osi, nstatevs=1, nprops=1, fc=1.0, ft=1.0, fcu=1.0, epsc0=1.0, epscu=1.0, epstu=1.0, stc=1.0)
op_type = 'PlaneStressUserMaterial'
class o3seespy.command.nd_material.concrete_walls.PlasticDamageConcretePlaneStress(osi, e_mod, nu, ft, fc, beta, ap, an, bn)[source]

Bases: NDMaterialBase

The PlasticDamageConcretePlaneStress NDMaterial Class

No documentation is available yet. If you have the manual, please let me know.

Initial method for PlasticDamageConcretePlaneStress

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • e_mod (None) –

  • nu (None) –

  • ft (None) –

  • fc (None) –

  • beta (None) –

  • ap (None) –

  • an (None) –

  • bn (None) –

op_type = 'PlasticDamageConcretePlaneStress'
class o3seespy.command.nd_material.concrete_walls.PlateFromPlaneStress(osi, pre_def_mat, outof_plane_modulus)[source]

Bases: NDMaterialBase

The PlateFromPlaneStress NDMaterial Class

This command is used to create the multi-dimensional concrete material model that is based on the damage mechanism and smeared crack model.

Initial method for PlateFromPlaneStress

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • pre_def_mat (obj) – Integer object identifying planestress material

  • outof_plane_modulus (float) – Shear modulus for out of plane stresses

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> mat = o3.nd_material.ElasticIsotropic(osi, e_mod=1.0, nu=1.0, rho=0.0)
>>> o3.nd_material.PlateFromPlaneStress(osi, pre_def_mat=mat, outof_plane_modulus=1.0)
op_type = 'PlateFromPlaneStress'
class o3seespy.command.nd_material.concrete_walls.PlateRebar(osi, pre_def_mat, sita)[source]

Bases: NDMaterialBase

The PlateRebar NDMaterial Class

This command is used to create the multi-dimensional reinforcement material.

Initial method for PlateRebar

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • pre_def_mat (obj) – Integer object identifying uniaxial material

  • sita (float) – Define the angle of reinforcement layer, 90 (longitudinal), 0 (tranverse)

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> mat = o3.uniaxial_material.Elastic(osi, 1.0)
>>> o3.nd_material.PlateRebar(osi, pre_def_mat=mat, sita=1.0)
op_type = 'PlateRebar'

contact

class o3seespy.command.nd_material.contact.ContactMaterial2D(osi, mu, g_mod, c, t)[source]

Bases: NDMaterialBase

The ContactMaterial2D NDMaterial Class

This command is used to construct a ContactMaterial2D nDMaterial object.

Initial method for ContactMaterial2D

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • mu (float) – Interface frictional coefficient

  • g_mod (float) – Interface stiffness parameter

  • c (float) – Interface cohesive intercept

  • t (float) – Interface tensile strength

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.ContactMaterial2D(osi, mu=1.0, g_mod=1.0, c=1.0, t=1.0)
op_type = 'ContactMaterial2D'
class o3seespy.command.nd_material.contact.ContactMaterial3D(osi, mu, g_mod, c, t)[source]

Bases: NDMaterialBase

The ContactMaterial3D NDMaterial Class

This command is used to construct a ContactMaterial3D nDMaterial object.

Initial method for ContactMaterial3D

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • mu (float) – Interface frictional coefficient

  • g_mod (float) – Interface stiffness parameter

  • c (float) – Interface cohesive intercept

  • t (float) – Interface tensile strength

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=3)
>>> o3.nd_material.ContactMaterial3D(osi, mu=1.0, g_mod=1.0, c=1.0, t=1.0)
op_type = 'ContactMaterial3D'

other_material

class o3seespy.command.nd_material.other_material.PM4Sand(osi, d_r, g_o, h_po, den, p_atm, h_o=-1.0, e_max=0.8, e_min=0.5, n_b=0.5, n_d=0.1, a_do=None, z_max=None, c_z=250.0, c_e=None, phi_cv=33.0, nu=0.3, g_degr=2.0, c_dr=None, c_kaf=None, q_bolt=10.0, r_bolt=1.5, m_par=0.01, f_sed=None, p_sed=None)[source]

Bases: NDMaterialBase

This command is used to construct a 2-dimensional PM4Sand material.

Parameters
  • d_r (float) – Relative density, in fraction

  • g_o (float) – Shear modulus constant

  • h_po (float) – Contraction rate parameter

  • den (float) – Mass density of the material

  • p_atm (float, optional) – Atmospheric pressure

  • h_o (float, optional) – Variable that adjusts the ratio of plastic modulus to elastic modulus

  • e_max (float, optional) – Maximum and minimum void ratios

  • e_min (float, optional) – Maximum and minimum void ratios

  • n_b (float, optional) – Bounding surface parameter, nb \ge 0

  • n_d (float, optional) – Dilatancy surface parameter nd \ge 0

  • a_do (float, optional) – Dilatancy parameter, will be computed at the time of initialization if input value is negative

  • z_max (float, optional) – Fabric-dilatancy tensor parameter

  • c_z (float, optional) – Fabric-dilatancy tensor parameter

  • c_e (float, optional) – Variable that adjusts the rate of strain accumulation in cyclic loading

  • phi_cv (float, optional) – Critical state effective friction angle

  • nu (float, optional) – Poisson’s ratio

  • c_gd (float, optional) – Variable that adjusts degradation of elastic modulus with accumulation of fabric

  • c_dr (float, optional) – Variable that controls the rotated dilatancy surface

  • c_kaf (float, optional) –

    Variable that controls the effect that sustained

    con shear stresses have on plastic modulus

  • q_bolt (float, optional) – Critical state line parameter

  • r_bolt (float, optional) – Critical state line parameter

  • m_par (float, optional) – Yield surface constant (radius of yield surface in stress ratio space)

  • f_sed (float, optional,) – Variable that controls the minimum value the reduction factor of the elastic moduli can get during reconsolidation

  • p_sed (float, optional) – Mean effective stress up to which reconsolidation strains are enhanced

op_type = 'PM4Sand'
pre_dynamic(osi)[source]
set_first_call(value, ele=None, eles=None)[source]
set_material_state(value, ele=None, eles=None)[source]
set_nu(nu, ele=None, eles=None)[source]
update_to_linear()[source]
update_to_nonlinear()[source]

Standard

class o3seespy.command.nd_material.standard.AcousticMedium(osi, k_mod, rho)[source]

Bases: NDMaterialBase

The AcousticMedium NDMaterial Class

This command is used to construct an acoustic medium NDMaterial object.

Initial method for AcousticMedium

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • k_mod (float) – Bulk module of the acoustic medium

  • rho (float) – Mass density of the acoustic medium

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.AcousticMedium(osi, k_mod=1.0, rho=1.0)
op_type = 'AcousticMedium'
set_gamma(value, ele=None, eles=None)[source]
set_kf(value, ele=None, eles=None)[source]
set_rho(value, ele=None, eles=None)[source]
class o3seespy.command.nd_material.standard.BoundingCamClay(osi, mass_density, big_c, bulk_mod, ocr, mu_o, alpha, lamb, h, m)[source]

Bases: NDMaterialBase

The BoundingCamClay NDMaterial Class

This command is used to construct a multi-dimensional bounding surface Cam Clay material object after Borja et al. (2001).

Initial method for BoundingCamClay

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • mass_density (float) – Mass density

  • big_c (float) – Ellipsoidal axis ratio (defines shape of ellipsoidal loading/bounding surfaces)

  • bulk_mod (float) – Initial bulk modulus

  • ocr (float) – Overconsolidation ratio

  • mu_o (float) – Initial shear modulus

  • alpha (float) – Pressure-dependency parameter for modulii (greater than or equal to zero)

  • lamb (float) – Soil compressibility index for virgin loading

  • h (float) – Hardening parameter for plastic response inside of bounding surface (if h = 0, no hardening)

  • m (float) – Hardening parameter (exponent) for plastic response inside of bounding surface (if m = 0, only linear hardening)

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.BoundingCamClay(osi, mass_density=1.0, big_c=1.0, bulk_mod=1.0, ocr=1.0, mu_o=1.0, alpha=1.0, lamb=1.0, h=1.0, m=1.0)
property den
op_type = 'BoundingCamClay'
set_material_state(value, ele=None, eles=None)[source]
class o3seespy.command.nd_material.standard.Damage2p(osi, fcc, fct: Optional[float] = None, e_mod: Optional[float] = None, ni: Optional[float] = None, gt: Optional[float] = None, gc: Optional[float] = None, rho_bar: Optional[float] = None, big_h: Optional[float] = None, theta: Optional[float] = None, tangent: Optional[float] = None)[source]

Bases: NDMaterialBase

The Damage2p NDMaterial Class

This command is used to construct a three-dimensional material object that has a Drucker-Prager plasticity model coupled with a two-parameter damage model.

Initial method for Damage2p

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • fcc (float) – Concrete compressive strength, negative real value (positive input is changed in sign automatically)

  • fct (float, optional) – Optional concrete tensile strength, positive real value (for concrete like materials is less than fcc), 0.1*abs(fcc) = 4750*sqrt(abs(fcc))\text{ }if\text{ }abs(fcc)<2000 because fcc is assumed in mpa (see aci 318)

  • e_mod (float, optional) – Optional young modulus, 57000*sqrt(abs(fcc)) if abs(fcc)>2000 because fcc is assumed in psi (see aci 318)

  • ni (float, optional) – Optional poisson coefficient, 0.15 (from comparison with tests by kupfer hilsdorf rusch 1969)

  • gt (float, optional) – Optional tension fracture energy density, positive real value (integral of the stress-strain envelope in tension), 1840*fct*fct/e (from comparison with tests by gopalaratnam and shah 1985)

  • gc (float, optional) – Optional compression fracture energy density, positive real value (integral of the stress-strain envelope after the peak in compression), :math:6250*fcc*fcc/e` (from comparison with tests by karsan and jirsa 1969)

  • rho_bar (float, optional) – Optional parameter of plastic volume change, positive real value 0=rhobar< sqrt(2/3), 0.2 (from comparison with tests by kupfer hilsdorf rusch 1969)

  • big_h (float, optional) – Optional linear hardening parameter for plasticity, positive real value (usually less than e), 0.25*e (from comparison with tests by karsan and jirsa 1969 and gopalaratnam and shah 1985)

  • theta (float, optional) – Optional ratio between isotropic and kinematic hardening, positive real value 0=theta=1 (with: 0 hardening kinematic only and 1 hardening isotropic only, 0.5 (from comparison with tests by karsan and jirsa 1969 and gopalaratnam and shah 1985)

  • tangent (float, optional) – Optional integer to choose the computational stiffness matrix, 0: computational tangent; 1: damaged secant stiffness (hint: in case of strong nonlinearities use it with krylov-newton algorithm)

Examples

>>> import o3seespy as o3
>>> # Example is currently not working
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.Damage2p(osi, fcc=1.0, fct=1.0, e_mod=1.0, ni=1.0, gt=1.0, gc=1.0, rho_bar=1.0, big_h=1.0, theta=1.0, tangent=1.0)
op_type = 'Damage2p'
class o3seespy.command.nd_material.standard.DruckerPrager(osi, k_mod, g_mod, sigma_y, rho, rho_bar, kinf, ko, delta1, delta2, big_h, theta, den, p_atm=101000.0)[source]

Bases: NDMaterialBase

The DruckerPrager NDMaterial Class

This command is used to construct an multi dimensional material object that has a Drucker-Prager yield criterium.

Initial method for DruckerPrager

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • k_mod (float) – Bulk modulus

  • g_mod (float) – Shear modulus

  • sigma_y (float) – Yield stress

  • rho (float) – Frictional strength parameter

  • rho_bar (float) – Controls evolution of plastic volume change, 0\le rhobar \le rho.

  • kinf (float) – Nonlinear isotropic strain hardening parameter, kinf \ge 0.

  • ko (float) – Nonlinear isotropic strain hardening parameter, ko \ge 0.

  • delta1 (float) – Nonlinear isotropic strain hardening parameter, delta1\ge 0.

  • delta2 (float) – Tension softening parameter, delta2\ge 0.

  • big_h (float) – Linear hardening parameter, h \ge 0.

  • theta (float) – Controls relative proportions of isotropic and kinematic hardening, 0 \le theta \le 1.

  • den (float) – Mass density of the material

  • p_atm (float, optional) – Optional atmospheric pressure for update of elastic bulk and shear moduli

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.DruckerPrager(osi, k_mod=1.0, g_mod=1.0, sigma_y=1.0, rho=1.0, rho_bar=1.0, kinf=1.0, ko=1.0, delta1=1.0, delta2=1.0, big_h=1.0, theta=1.0, den=1.0, p_atm=101e3)
property den
property nu
op_type = 'DruckerPrager'
set_bulk_mod(value, ele=None, eles=None)[source]
set_cohesive_intercept(value, ele=None, eles=None)[source]
set_frictional_strength(value, ele=None, eles=None)[source]
set_g_mod(value, ele=None, eles=None)[source]
set_material_state(value, ele=None, eles=None)[source]
set_nonassociative_term(value, ele=None, eles=None)[source]
set_nu(nu, ele=None, eles=None, adj_g_mod=False)[source]
set_update_material_stage(value, ele=None, eles=None)[source]
update_eles_to_linear(eles)[source]
update_eles_to_nonlinear(eles)[source]
class o3seespy.command.nd_material.standard.ElasticIsotropic(osi, e_mod, nu, rho=0.0)[source]

Bases: NDMaterialBase

The ElasticIsotropic NDMaterial Class

This command is used to construct an ElasticIsotropic material object.

Initial method for ElasticIsotropic

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • e_mod (float) – Elastic modulus

  • nu (float) – Poisson’s ratio

  • rho (float, optional) – Mass density

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.ElasticIsotropic(osi, e_mod=1.0, nu=1.0, rho=0.0)
property den
op_type = 'ElasticIsotropic'
set_e_mod(value, ele=None, eles=None)[source]
set_rho(value, ele=None, eles=None)[source]
set_v(value, ele=None, eles=None)[source]
class o3seespy.command.nd_material.standard.ElasticOrthotropic(osi, ex, ey, ez, nu_xy, nu_yz, nu_zx, gxy, gyz, gzx, rho=0.0)[source]

Bases: NDMaterialBase

The ElasticOrthotropic NDMaterial Class

This command is used to construct an ElasticOrthotropic material object.

Initial method for ElasticOrthotropic

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • ex (float) – Elastic modulus in x direction

  • ey (float) – Elastic modulus in y direction

  • ez (float) – Elastic modulus in z direction

  • nu_xy (float) – Poisson’s ratios in x and y plane

  • nu_yz (float) – Poisson’s ratios in y and z plane

  • nu_zx (float) – Poisson’s ratios in z and x plane

  • gxy (float) – Shear modulii in x and y plane

  • gyz (float) – Shear modulii in y and z plane

  • gzx (float) – Shear modulii in z and x plane

  • rho (float, optional) – Mass density

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.ElasticOrthotropic(osi, ex=1.0, ey=1.0, ez=1.0, nu_xy=1.0, nu_yz=1.0, nu_zx=1.0, gxy=1.0, gyz=1.0, gzx=1.0, rho=0.0)
op_type = 'ElasticOrthotropic'
set_e_mod_x(value, ele=None, eles=None)[source]
set_e_mod_y(value, ele=None, eles=None)[source]
set_e_mod_z(value, ele=None, eles=None)[source]
set_g_mod_xz(value, ele=None, eles=None)[source]
set_g_mod_yx(value, ele=None, eles=None)[source]
set_g_mod_zy(value, ele=None, eles=None)[source]
set_rho(value, ele=None, eles=None)[source]
set_vxz(value, ele=None, eles=None)[source]
set_vyx(value, ele=None, eles=None)[source]
set_vzy(value, ele=None, eles=None)[source]
class o3seespy.command.nd_material.standard.FSAM(osi, rho, s_x, s_y, conc, rou_x, rou_y, nu, alfadow)[source]

Bases: NDMaterialBase

The FSAM NDMaterial Class

This command is used to construct a nDMaterial FSAM (Fixed-Strut-Angle-Model, Figure 1, Kolozvari et al., 2015), which is a plane-stress constitutive model for simulating the behavior of RC panel elements under generalized, in-plane, reversed-cyclic loading conditions (Ulugtekin, 2010; Orakcal et al., 2012). In the FSAM constitutive model, the strain fields acting on concrete and reinforcing steel components of a RC panel are assumed to be equal to each other, implying perfect bond assumption between concrete and reinforcing steel bars. While the reinforcing steel bars develop uniaxial stresses under strains in their longitudinal direction, the behavior of concrete is defined using stress-strain relationships in biaxial directions, the orientation of which is governed by the state of cracking in concrete. Although the concrete stress-strain relationship used in the FSAM is fundamentally uniaxial in nature, it also incorporates biaxial softening effects including compression softening and biaxial damage. For transfer of shear stresses across the cracks, a friction-based elasto-plastic shear aggregate interlock model is adopted, together with a linear elastic model for representing dowel action on the reinforcing steel bars (Kolozvari, 2013). Note that FSAM constitutive model is implemented to be used with Shear-Flexure Interaction model for RC walls (SFI_MVLEM), but it could be also used elsewhere.

Initial method for FSAM

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • rho (float) – Material density

  • s_x (obj) – Object of uniaxial_material simulating horizontal (x) reinforcement

  • s_y (obj) – Object of uniaxial_material simulating vertical (y) reinforcement

  • conc (obj) – Object of uniaxial_material simulating concrete, shall be used with uniaxial_material concretecm

  • rou_x (float) – Reinforcing ratio in horizontal (x) direction (roux = _{s,x}/a_{gross,x})

  • rou_y (float) – Reinforcing ratio in vertical (x) direction (rouy = _{s,y}/a_{gross,y})

  • nu (float) – Concrete friction coefficient (0.0 < \nu < 1.5)

  • alfadow (float) – Stiffness coefficient of reinforcement dowel action (0.0 < alfadow < 0.05)

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=3)
>>> s_x = o3.uniaxial_material.Elastic(osi, e_mod=1.0, eta=0.0, eneg=None)
>>> s_y = o3.uniaxial_material.Elastic(osi, e_mod=1.0, eta=0.0, eneg=None)
>>> conc = o3.uniaxial_material.ConcreteCM(osi, fpcc=1.0, epcc=1.0, ec=1.0, rc=1.0, xcrn=1.0, ft=1.0, et=1.0, rt=1.0, xcrp=1.0,
>>>                                 gap_close=0)
>>> o3.nd_material.FSAM(osi, rho=1.0, s_x=s_x, s_y=s_y, conc=conc, rou_x=1.0, rou_y=1.0, nu=1.0, alfadow=1.0)
op_type = 'FSAM'
class o3seespy.command.nd_material.standard.J2Plasticity(osi, k_mod, g_mod, sig0, sig_inf, delta, big_h)[source]

Bases: NDMaterialBase

The J2Plasticity NDMaterial Class

This command is used to construct an multi dimensional material object that has a von Mises (J2) yield criterium and isotropic hardening.

Initial method for J2Plasticity

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • k_mod (float) – Bulk modulus

  • g_mod (float) – Shear modulus

  • sig0 (float) – Initial yield stress

  • sig_inf (float) – Final saturation yield stress

  • delta (float) – Exponential hardening parameter

  • big_h (float) – Linear hardening parameter

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.J2Plasticity(osi, k_mod=1.0, g_mod=1.0, sig0=1.0, sig_inf=1.0, delta=1.0, big_h=1.0)
op_type = 'J2Plasticity'
set_k(value, ele=None, eles=None)[source]
set_mu(value, ele=None, eles=None)[source]
set_rho(value, ele=None, eles=None)[source]
class o3seespy.command.nd_material.standard.ManzariDafalias(osi, g0, nu, e_init, m_c, c_c, lambda_c, e_0, ksi, p_atm, m_yield, h_0, c_h, n_b, a_0, n_d, z_max, c_z, den, int_scheme=1, tan_type=0, jaco_type=1, tol_f=1e-07, tol_r=1e-07)[source]

Bases: NDMaterialBase

The ManzariDafalias NDMaterial Class

This command is used to construct a multi-dimensional Manzari-Dafalias(2004) material.

Initial method for ManzariDafalias

Note: When in elastic mode the shear modulus is equal to the shear modulus at the atmospheric pressure

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • g0 (float) – Shear modulus constant

  • nu (float) – Poisson ratio

  • e_init (float) – Initial void ratio

  • m_c (float) – Critical state stress ratio

  • c_c (float) – Ratio of critical state stress ratio in extension and compression

  • lambda_c (float) – Critical state line constant

  • e_0 (float) – Critical void ratio at p = 0

  • ksi (float) – Critical state line constant

  • p_atm (float) – Atmospheric pressure

  • m_yield (float) – Yield surface constant (radius of yield surface in stress ratio space)

  • h_0 (float) – Constant parameter

  • c_h (float) – Constant parameter

  • n_b (float) – Bounding surface parameter, n_b \ge 0

  • a_0 (float) – Dilatancy parameter

  • n_d (float) – Dilatancy surface parameter n_d \ge 0

  • z_max (float) – Fabric-dilatancy tensor parameter

  • c_z (float) – Fabric-dilatancy tensor parameter

  • den (float) – Mass density of the material

  • int_scheme (int, optional (default=1)) –

    Integration scheme type:
    • 0 = Modified Euler constraining maximum energy increment (See Note 6)

    • 1 = Modified Euler with error control

    • 2 = Backward Euler (Implicit)

    • 3 = Runge Kutta 4th order (inconsistent results to other methods - 3&6 produce same)

    • 4 = Forward Euler constraining maximum energy increment (See Note 6)

    • 5 = Forward Euler

    • 6 = Runge-Kutta 4-th order constraining maximum energy increment (inconsistent results to other methods - 3&6 produce same)

    • 7 = Not implemented. runs int_scheme=9. Modified Euler constraining maximum strain increment

    • 8 = Not implemented. runs int_scheme=9. Runge-Kutta 4-th order constraining maximum strain increment

    • 9 = Forward Euler constraining maximum energy increment

    • 45 = Runge Kutta 45 with error control after Sloan [very slow]

    Notes:
    1. To use implicit integration, int_scheme must be equal to 2

    2. IS=3,6 - RK4 methods. produce same results under small time steps (diff to others)

    3. IS=0,1 - Modified Euler methods. produce same results under small time steps and same as Backward Euler.

    4. IS=4,5,9 - Forward Euler methods. produce same results under small time steps (diff to others)

    5. The maximum strain increment is hardcoded as 1e-5

    6. WARNING: The maximum energy increment is hardcoded as 1e-4 (not normalised, should use p_atm=101 (i.e. kPa)) also only does 2 substeps at half strain increment, if exceeds energy increment.

  • tan_type (int, optional (default=0)) –

    Tangent type:
    • 0: Elastic Tangent

    • 1: Contiuum ElastoPlastic Tangent

    2: Consistent ElastoPlastic Tangent

  • jaco_type (int, optional (default=1)) –

    Jacobian type:
    • 0: Finite Difference Jacobian

    • 1: Analytical Jacobian

  • tol_f (float, optional (default=1.0e-7)) –

  • tol_r (float, optional (default=1.0e-7)) –

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.ManzariDafalias(osi, g0=111.0, nu=0.05, e_init=0.72, m_c=1.27, c_c=0.712, lambda_c=0.049, e_0=0.845,
>>> ksi=0.27, p_atm=101.3, m_yield=0.01, h_0=5.95, c_h=1.01, n_b=2.0, a_0=1.06, n_d=1.17, z_max=4.0, c_z=600.0, rho=1.6)
op_type = 'ManzariDafalias'
set_integration_scheme(value, ele=None, eles=None)[source]
set_jacobian(value, ele=None, eles=None)[source]
set_material_state(value, ele=None, eles=None)[source]
set_nu(value, ele=None, eles=None)[source]
set_ref_shear_modulus(value, ele=None, eles=None)[source]
set_stress_correction(value, ele=None, eles=None)[source]
set_update_material_stage(value, ele=None, eles=None)[source]
set_void_ratio(value, ele=None, eles=None)[source]
update_to_linear()[source]
update_to_nonlinear()[source]
class o3seespy.command.nd_material.standard.MultiaxialCyclicPlasticity(osi, rho, k_mod, g_mod, su, ho, h, m, beta, k_coeff)[source]

Bases: NDMaterialBase

The MultiaxialCyclicPlasticity NDMaterial Class

This command is used to construct an multiaxial Cyclic Plasticity model for clays

Initial method for MultiaxialCyclicPlasticity

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • rho (float) – Density

  • k_mod (float) – Buck modulus

  • g_mod (float) – Maximum (small strain) shear modulus

  • su (float) – Undrained shear strength, size of bounding surface r=\sqrt{8/3}*su

  • ho (float) – Linear kinematic hardening modulus of bounding surface

  • h (float) – Hardening parameter

  • m (float) – Hardening parameter

  • beta (float) – Integration parameter, usually beta=0.5

  • k_coeff (float) – Coefficient of earth pressure, k0

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.MultiaxialCyclicPlasticity(osi, rho=1.0, k_mod=1.0, g_mod=1.0, su=1.0, ho=1.0, h=1.0, m=1.0, beta=1.0, k_coeff=1.0)
property den
op_type = 'MultiaxialCyclicPlasticity'
class o3seespy.command.nd_material.standard.PM4Silt(osi, g_o, h_po, den, s_u=None, su_rat=None, su_factor=None, p_atm=None, nu=0.3, n_g=0.75, h0=None, e_init=0.9, lamb=0.06, phicv=32.0, nb_wet=0.8, nb_dry=0.5, nd=0.3, ado=0.8, ru_max=None, zmax=None, cz=100.0, ce=None, cgd=None, ckaf=4.0, m_m=0.01, cg_consol=2.0)[source]

Bases: NDMaterialBase

The PM4Silt NDMaterial Class

Code Developed by: Long Chen and pedro at U.Washington.This command is used to construct a 2-dimensional PM4Silt material.

Initial method for PM4Silt

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • g_o (float) – Shear modulus constant

  • h_po (float) – Contraction rate parameter

  • s_u (float) – Undrained shear strength

  • su_rat (float) – Undrained shear strength ratio.

  • den (float) –

  • su_factor (float) –

  • p_atm (float) – Atmospheric pressure

  • nu (float) – Optional: poisson’s ratio. default value is 0.3.

  • n_g (float) – Optional: shear modulus exponent. default value is 0.75.

  • h0 (float) – Optional: variable that adjusts the ratio of plastic modulus to elastic modulus. default value is 0.5.

  • e_init (float) – Optional: initial void ratios. default value is 0.90.

  • lamb (float) – Optional: the slope of critical state line in e-ln(p) space. default value is 0.060.

  • phicv (float) – Optional: critical state effective friction angle. default value is 32 degrees.

  • nb_wet (float) – Optional: bounding surface parameter for loose of critical state conditions 1.0 \geq nb_wet \geq
0.01. default value is 0.8. in cyclic loading

  • nb_dry (float) – Optional: bounding surface parameter for dense of critical state conditions nb_dry \geq 0. default value is 0.5.

  • nd (float) – Optional: dilatancy surface parameter nd \geq 0. default value is 0.3.

  • ado (float) – Optional: dilatancy parameter. default value is 0.8. with accumulation of fabric

  • ru_max (float) – Optional: maximum pore pressure ratio based on p’.

  • zmax (None) –

  • cz (float) – Optional: fabric-dilatancy tensor parameter. default value is 100.0.

  • ce (float) – Optional: variable that adjusts the rate of strain accumulation in cyclic loading

  • cgd (float) –

  • ckaf (float) – Optional: variable that controls the effect that sustained static shear stresses have on plastic modulus. default value is 4.0.

  • m_m (float) – Optional: yield surface constant (radius of yield surface in stress ratio space). default value is 0.01.

  • cg_consol (float) – Optional: reduction factor of elastic modulus for reconsolidation. cg_consol \geq 1. default value is 2.0.

op_type = 'PM4Silt'
set_first_call(value, ele=None, eles=None)[source]
set_material_state(value, ele=None, eles=None)[source]
set_nu(nu, ele=None, eles=None)[source]
update_to_linear()[source]
update_to_nonlinear()[source]
class o3seespy.command.nd_material.standard.PlaneStrain(osi, mat3d)[source]

Bases: NDMaterialBase

The PlaneStrain NDMaterial Class

This command is used to construct a plane-stress material wrapper which converts any three-dimensional material into a plane strain material by imposing plain strain conditions on the three-dimensional material.

Initial method for PlaneStrain

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • mat3d (obj) – Integer object of previously defined 3d ndmaterial material

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> mat_3d = o3.nd_material.ElasticIsotropic(osi, e_mod=1.0, nu=1.0, rho=0.0)
>>> o3.nd_material.PlaneStrain(osi, mat3d=mat_3d)
property den
op_type = 'PlaneStrain'
set_strain(value, ele=None, eles=None)[source]
set_strains(value, ele=None, eles=None)[source]
set_stress(value, ele=None, eles=None)[source]
set_stresses(value, ele=None, eles=None)[source]
set_tangent(value, ele=None, eles=None)[source]
class o3seespy.command.nd_material.standard.PlaneStress(osi, mat3d)[source]

Bases: NDMaterialBase

The PlaneStress NDMaterial Class

This command is used to construct a plane-stress material wrapper which converts any three-dimensional material into a plane stress material via static condensation.

Initial method for PlaneStress

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • mat3d (obj) – Object of perviously defined 3d ndmaterial material

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=3)
>>> mat_3d = o3.nd_material.ElasticIsotropic(osi, e_mod=1.0, nu=1.0, rho=0.0)
>>> o3.nd_material.PlaneStress(osi, mat3d=mat_3d)
property den
op_type = 'PlaneStress'
set_strain(value, ele=None, eles=None)[source]
set_strains(value, ele=None, eles=None)[source]
set_stress(value, ele=None, eles=None)[source]
set_stresses(value, ele=None, eles=None)[source]
set_tangent(value, ele=None, eles=None)[source]
class o3seespy.command.nd_material.standard.PlateFiber(osi, three_d)[source]

Bases: NDMaterialBase

The PlateFiber NDMaterial Class

This command is used to construct a plate-fiber material wrapper which converts any three-dimensional material into a plate fiber material (by static condensation) appropriate for shell analysis.

Initial method for PlateFiber

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • three_d (obj) – Material object for a previously-defined three-dimensional material

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=3)
>>> mat = o3.nd_material.ElasticIsotropic(osi, e_mod=1.0, nu=1.0, rho=0.0)
>>> o3.nd_material.PlateFiber(osi, three_d=mat)
op_type = 'PlateFiber'
set_strain(value, ele=None, eles=None)[source]
set_strains(value, ele=None, eles=None)[source]
set_stress(value, ele=None, eles=None)[source]
set_stresses(value, ele=None, eles=None)[source]
set_tangent(value, ele=None, eles=None)[source]
class o3seespy.command.nd_material.standard.StressDensity(osi, den, e_init, big_a, n, nu, a1, b1, a2, b2, a3, b3, fd, mu_0, mu_cyc, sc, big_m, p_atm, ssls=None, hsl=None, ps=None)[source]

Bases: NDMaterialBase

Initial method for StressDensity

Parameters
  • den (float) – Mass density

  • e_init (float) – Initial void ratio

  • big_a (float) – Constant for elastic shear modulus

  • n (float) – Pressure dependency exponent for elastic shear modulus

  • nu (float) – Poisson’s ratio

  • a1 (float) – Peak stress ratio coefficient (etamax = a1 + b1*is)

  • b1 (float) – Peak stress ratio coefficient (etamax = a1 + b1*is)

  • a2 (float) – Max shear modulus coefficient (gn_max = a2 + b2*is)

  • b2 (float) – Max shear modulus coefficient (gn_max = a2 + b2*is)

  • a3 (float) – Min shear modulus coefficient (gn_min = a3 + b3*is)

  • b3 (float) – Min shear modulus coefficient (gn_min = a3 + b3*is)

  • fd (float) – Degradation constant

  • mu_not (float) – Dilatancy coefficient (monotonic loading)

  • mu_cyc (float) – Dilatancy coefficient (cyclic loading)

  • sc (float) – Dilatancy strain

  • big_m (float) – Critical state stress ratio

  • patm (float) – Atmospheric pressure (in appropriate units)

  • ssls (listf) – Void ratio of quasi steady state (qss-line) at pressures [pmin, 10kpa, 30kpa, 50kpa, 100kpa, 200kpa, 400kpa] (default = [0.877, 0.877, 0.873, 0.870, 0.860, 0.850, 0.833])

  • hsl (float) – Void ratio of upper reference state (ur-line) for all pressures (default = 0.895)

  • p1 (float) – Pressure corresponding to ssl1 (default = 1.0 kpa)

op_type = 'stressDensity'

Tsinghua_sand

class o3seespy.command.nd_material.tsinghua_sand.CycLiqCP(osi, g0, kappa, h, mfc, dre1, mdc, dre2, gamma_dr, alpha, d_ir, e_init, den)[source]

Bases: NDMaterialBase

The CycLiqCP NDMaterial Class

This command is used to construct a multi-dimensional material object that that follows the constitutive behavior of a cyclic elastoplasticity model for large post- liquefaction deformation.CycLiqCP material is a cyclic elastoplasticity model for large post-liquefaction deformation, and is implemented using a cutting plane algorithm. The model is capable of reproducing small to large deformation in the pre- to post-liquefaction regime. The elastic moduli of the model are pressure dependent. The plasticity in the model is developed within the framework of bounding surface plasticity, with special consideration to the formulation of reversible and irreversible dilatancy.The model does not take into consideration of the state of sand, and requires different parameters for sand under different densities and confining pressures. The surfaces (i.e. failure and maximum pre-stress) are considered as circles in the pi plane.The model has been validated against VELACS centrifuge model tests and has used on numerous simulations of liquefaction related problems.When this material is employed in regular solid elements (e.g., FourNodeQuad, Brick), it simulates drained soil response. When solid-fluid coupled elements (u-p elements and SSP u-p elements) are used, the model is able to simulate undrained and partially drained behavior of soil.

Initial method for CycLiqCP

Notes

  • Units are in kPa. E.g. atmospheric pressure is hard coded as 101 kPa.

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • g0 (float) – A constant related to elastic shear modulus

  • kappa (float) – Bulk modulus

  • h (float) – Model parameter for plastic modulus

  • mfc (float) – Stress ratio at failure in triaxial compression

  • dre1 (float) – Coefficient for reversible dilatancy generation

  • mdc (float) – Stress ratio at which the reversible dilatancy sign changes

  • dre2 (float) – Coefficient for reversible dilatancy release

  • gamma_dr (float) – Reference shear strain length

  • alpha (float) – Parameter controlling the decrease rate of irreversible dilatancy

  • d_ir (float) – Coefficient for irreversible dilatancy potential

  • e_init (float) – Initial void ratio

  • den (float) – Saturated mass density

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.CycLiqCP(osi, g0=1.0, kappa=1.0, h=1.0, mfc=1.0, dre1=1.0, mdc=1.0, dre2=1.0, gamma_dr=1.0, alpha=1.0, d_ir=1.0, e_init=1.0, den=1.0)
op_type = 'CycLiqCP'
set_update_material_stage(value, ele=None, eles=None)[source]
update_to_linear()[source]
update_to_nonlinear()[source]
update_to_nonlinear_elastic()[source]
class o3seespy.command.nd_material.tsinghua_sand.CycLiqCPSP(osi, g0, kappa, h, big_m, dre1, dre2, gamma_dr, alpha, d_ir, lambda_c, ksi, e_0, n_p, n_d, e_init, den)[source]

Bases: NDMaterialBase

The CycLiqCPSP NDMaterial Class

This command is used to construct a multi-dimensional material object that that follows the constitutive behavior of a cyclic elastoplasticity model for large post- liquefaction deformation.CycLiqCPSP material is a constitutive model for sand with special considerations for cyclic behaviour and accumulation of large post-liquefaction shear deformation, and is implemented using a cutting plane algorithm. The model: (1) achieves the simulation of post-liquefaction shear deformation based on its physics, allowing the unified description of pre- and post-liquefaction behavior of sand; (2) directly links the cyclic mobility of sand with reversible and irreversible dilatancy, enabling the unified description of monotonic and cyclic loading; (3) introduces critical state soil mechanics concepts to achieve unified modelling of sand under different states.The critical, maximum stress ratio and reversible dilatancy surfaces follow a rounded triangle in the pi plane similar to the Matsuoka-Nakai criterion.When this material is employed in regular solid elements (e.g., FourNodeQuad, Brick), it simulates drained soil response. When solid-fluid coupled elements (u-p elements and SSP u-p elements) are used, the model is able to simulate undrained and partially drained behavior of soil.

Initial method for CycLiqCPSP

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • g0 (float) – A constant related to elastic shear modulus

  • kappa (float) – Bulk modulus

  • h (float) – Model parameter for plastic modulus

  • big_m (float) – Critical state stress ratio

  • dre1 (float) – Coefficient for reversible dilatancy generation

  • dre2 (float) – Coefficient for reversible dilatancy release

  • gamma_dr (float) – Reference shear strain length (gamma_d,r)

  • alpha (float) – Parameter controlling the decrease rate of irreversible dilatancy

  • d_ir (float) – Coefficient for irreversible dilatancy potential

  • lambda_c (float) – Critical state constant

  • ksi (float) – Critical state constant

  • e_0 (float) – Void ratio at pc=0

  • n_p (float) – Material constant for peak mobilized stress ratio

  • n_d (float) – Material constant for reversible dilatancy generation stress ratio

  • e_init (float) – Initial void ratio

  • den (float) – Saturated mass density

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> o3.nd_material.CycLiqCPSP(osi, g0=200, kappa=0.008, h=1.8, big_m=1.25, dre1=0.6, dre2=30, gamma_dr=0.05,
>>> alpha=20, d_ir=1.4, lambda_c=0.019, ksi=0.7, e_0=0.934, n_p=1.1, n_d=7.8, e_init=0.87, den=1.6)
op_type = 'CycLiqCPSP'
set_update_material_stage(value, ele=None, eles=None)[source]
update_to_linear()[source]
update_to_nonlinear()[source]

UC San Diego soil

class o3seespy.command.nd_material.uc_san_diego_soil.PressureDependMultiYield(osi, nd, rho, g_mod_ref, bulk_mod_ref, phi, peak_strain, p_ref, d, pt_ang, con_rate, dil_rates, liquefac, n_surf=20.0, strains=None, ratios=None, e_init=0.6, cs_params=None, c=0.3)[source]

Bases: NDMaterialBase

The PressureDependMultiYield NDMaterial Class

PressureDependMultiYield material is an elastic-plastic material for simulating the essential response characteristics of pressure sensitive soil materials under general loading conditions. Such characteristics include dilatancy (shear-induced volume contraction or dilation) and non-flow liquefaction (cyclic mobility), typically exhibited in sands or silts during monotonic or cyclic loading.

Initial method for PressureDependMultiYield

osi: o3seespy.OpenSeesInstance nd: int

Number of dimensions, 2 for plane-strain, and 3 for 3d analysis.

rho: float

Saturated soil mass density.

g_mod_ref, float

(G_0) Reference low-strain shear modulus, specified at a reference mean effective confining pressure (p_ref).

bulk_mod_ref: float

(B_r) Reference bulk modulus, specified at a reference mean effective confining pressure (p_ref)).

phi: float

(phi) friction angle at peak shear strength in degrees, optional (default is 0.0).

peak_strain: float

(\\gamma_{max}) An octahedral shear strain at which the maximum shear strength is reached, specified at a reference mean effective confining pressure refPress of p’r (see below).

p_ref: float

(p'_r) reference mean effective confining pressure at which g_r, b_r, and \gamma_{max} are defined, optional (default is 100. kpa).

d: float

(d) a positive constant defining variations of g and b as a function of instantaneous effective confinement p' (default is 0.0) g=g_r(\frac{p'}{p'_r})^d b=b_r(\frac{p'}{p'_r})^d if \phi=0, d is reset to 0.0.

pt_ang: float

(\phi_{pt}) phase transformation angle, in degrees.

con_rate: float

A non-negative constant defining the rate of shear-induced volume decrease (contraction) or pore pressure buildup. a larger value corresponds to faster contraction rate.

dil_rates: list

Non-negative constants defining the rate of shear-induced volume increase (dilation). larger values correspond to stronger dilation rate. dil_rates = [dilat1, dilat2].

liquefac: list

Parameters controlling the mechanism of liquefaction-induced perfectly plastic shear strain accumulation, i.e., cyclic mobility. set liquefac[0] = 0 to deactivate this mechanism altogether. liquefac[0] defines the effective confining pressure (e.g., 10 kpa in si units or 1.45 psi in english units) below which the mechanism is in effect. smaller values should be assigned to denser sands. liquefac[1] defines the maximum amount of perfectly plastic shear strain developed at zero effective confinement during each loading phase. smaller values should be assigned to denser sands. liquefac[2] defines the maximum amount of biased perfectly plastic shear strain \gamma_b accumulated at each loading phase under biased shear loading conditions, as \gamma_b=liquefac[1]\times liquefac[2]. typically, liquefac[2] takes a value between 0.0 and 3.0. smaller values should be assigned to denser sands. see the references listed at the end of this chapter for more information.

n_surf: int, optional

Number of yield surfaces, optional (must be less than 40, default is 20). the surfaces are generated based on the hyperbolic relation defined in note 2 below.

strains: list

Instead of automatic surfaces generation, you can define yield surfaces directly based on desired shear modulus reduction curve. provide a list of shear strains and corresponding shear modulus reduction ratios (ratios)

ratios: list

Instead of automatic surfaces generation, you can define yield surfaces directly based on desired shear modulus reduction curve. provide a list of shear strains and corresponding shear modulus reduction ratios (ratios)

e_init: float, optional

Initial void ratio, optional (default is 0.6).

cs_params: list (default=[0.9, 0.02, 0.7, 101.0]), optional

params=[cs1, cs2, cs3, pa] defining a straight critical-state line ec in e-p’ space. if cs3=0, ec = cs1-cs2 log(p’/pa) else (li and wang, jgge, 124(12)), ec = cs1-cs2(p’/pa)cs3 where pa is atmospheric pressure for normalization (typically 101 kpa in si units, or 14.65 psi in english units). all four constants are optional

c: float, optional

Numerical constant (default value = 0.3 kPa)

property den
property nu
op_type = 'PressureDependMultiYield'
set_nu(nu, ele=None, eles=None, adj_g_mod=False)[source]
update_to_nonlinear()[source]
class o3seespy.command.nd_material.uc_san_diego_soil.PressureDependMultiYield02(osi, nd, rho, g_mod_ref, bulk_mod_ref, phi, peak_strain, p_ref, d, pt_ang, con_rates, dil_rates, liquefac=(1.0, 0.0), n_surf=20.0, strains=None, ratios=None, e_init=0.6, cs_params=None, c=0.1)[source]

Bases: NDMaterialBase

The PressureDependMultiYield02 NDMaterial Class

PressureDependMultiYield02 material is modified from PressureDependMultiYield material, with:#. additional parameters (contrac[2] and dilat[2]) to account for K_{\sigma} effect,#. a parameter to account for the influence of previous dilation history on subsequent contraction phase (contrac[1]), and#. modified logic related to permanent shear strain accumulation (liquefac[0] and liquefac[1]).

Initial method for PressureDependMultiYield02

osi: o3seespy.OpenSeesInstance nd: int

Number of dimensions, 2 for plane-strain, and 3 for 3d analysis.

rho: float

Saturated soil mass density.

g_mod_ref, float

(G_0) Reference low-strain shear modulus, specified at a reference mean effective confining pressure (p_ref).

bulk_mod_ref: float

(B_r) Reference bulk modulus, specified at a reference mean effective confining pressure (p_ref)).

phi: float

(phi) friction angle at peak shear strength in degrees, optional (default is 0.0).

peak_strain: float

(\\gamma_{max}) An octahedral shear strain at which the maximum shear strength is reached, specified at a reference mean effective confining pressure refPress of p’r (see below).

p_ref: float

(p'_r) reference mean effective confining pressure at which g_r, b_r, and \gamma_{max} are defined, optional (default is 100. kpa).

d: float

(d) a positive constant defining variations of g and b as a function of instantaneous effective confinement p' (default is 0.0) g=g_r(\frac{p'}{p'_r})^d b=b_r(\frac{p'}{p'_r})^d if \phi=0, d is reset to 0.0.

pt_ang: float

(\phi_{pt}) phase transformation angle, in degrees.

con_rates: list
A list of constants defining contraction behaviour [contrac1, contrac2, contrac3].

contrac1: non-negative constant defining the rate of shear-induced volume decrease (contraction) or pore pressure buildup. a larger value corresponds to faster contraction rate. contrac2: A non-negative constant reflecting dilation history on contraction tendency. contrac3: A non-negative constant reflecting Kσ effect.

dil_rates: list

A list of constants defining contraction behaviour [dilat1, dilat2, dilat3]. dilat1 and dilat2: Non-negative constants defining the rate of shear-induced volume increase (dilation). larger values correspond to stronger dilation rate. dilat3: A non-negative constant reflecting Kσ effect.

liquefac: list

Parameters controlling the mechanism of liquefaction-induced perfectly plastic shear strain accumulation, i.e., cyclic mobility. [liquefac1, liquefac2]. NOTE: Different from PressureDependMultiYield. liquefac1: Damage parameter to define accumulated permanent shear strain as a function of dilation history. liquefac2: Damage parameter to define biased accumulation of permanent shear strain as a function of load reversal history.

n_surf: int, optional

Number of yield surfaces, optional (must be less than 40, default is 20). the surfaces are generated based on the hyperbolic relation defined in note 2 below.

strains: list

Instead of automatic surfaces generation, you can define yield surfaces directly based on desired shear modulus reduction curve. provide a list of shear strains and corresponding shear modulus reduction ratios (ratios)

ratios: list

Instead of automatic surfaces generation, you can define yield surfaces directly based on desired shear modulus reduction curve. provide a list of shear strains and corresponding shear modulus reduction ratios (ratios)

e_init: float, optional

Initial void ratio, optional (default is 0.6).

cs_params: list (default=[0.9, 0.02, 0.7, 101.0]), optional

params=[cs1, cs2, cs3, pa] defining a straight critical-state line ec in e-p’ space. if cs3=0, ec = cs1-cs2 log(p’/pa) else (li and wang, jgge, 124(12)), ec = cs1-cs2(p’/pa)cs3 where pa is atmospheric pressure for normalization (typically 101 kpa in si units, or 14.65 psi in english units). all four constants are optional

c: float, optional

Numerical constant (default value = 0.1 kPa)

property den
property nu
op_type = 'PressureDependMultiYield02'
set_nu(nu, ele=None, eles=None, adj_g_mod=False)[source]
update_to_linear()[source]
update_to_nonlinear()[source]
class o3seespy.command.nd_material.uc_san_diego_soil.PressureDependMultiYield03(osi, nd, rho, ref_shear_modul, ref_bulk_modul, friction_ang, peak_shear_stra, ref_press, press_depend_coe, pt_ang, ca, cb, cc, cd, ce, da, db, dc, no_yield_surf=20.0, yield_surf: Optional[float] = None, liquefac1=1, liquefac2=0.0, pa=101, s0=1.73)[source]

Bases: NDMaterialBase

The PressureDependMultiYield03 NDMaterial Class

The reference for PressureDependMultiYield03 material: Khosravifar, A., Elgamal, A., Lu, J., and Li, J. [2018]. “A 3D model for earthquake-induced liquefaction triggering and post-liquefaction response.” Soil Dynamics and Earthquake Engineering, 110, 43-52)PressureDependMultiYield03 is modified from PressureDependMultiYield02 material to comply with the established guidelines on the dependence of liquefaction triggering to the number of loading cycles, effective overburden stress (Kσ), and static shear stress (Kα).The explanations of parametersSee notes

Initial method for PressureDependMultiYield03

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • nd (None) –

  • rho (None) –

  • ref_shear_modul (None) –

  • ref_bulk_modul (None) –

  • friction_ang (None) –

  • peak_shear_stra (None) –

  • ref_press (None) –

  • press_depend_coe (None) –

  • pt_ang (None) –

  • ca (None) –

  • cb (None) –

  • cc (None) –

  • cd (None) –

  • ce (None) –

  • da (None) –

  • db (None) –

  • dc (None) –

  • no_yield_surf (None, optional) –

  • yield_surf (None (default=True), optional) –

  • liquefac1 (None, optional) –

  • liquefac2 (None, optional) –

  • pa (None, optional) –

  • s0 (None, optional) –

property den
op_type = 'PressureDependMultiYield03'
set_bulk_mod(value, ele=None, eles=None)[source]
set_cohesion(value, ele=None, eles=None)[source]
set_friction_angle(value, ele=None, eles=None)[source]
set_g_mod(value, ele=None, eles=None)[source]
set_update_material_stage(value, ele=None, eles=None)[source]
class o3seespy.command.nd_material.uc_san_diego_soil.PressureIndependMultiYield(osi, nd, rho, g_mod_ref, bulk_mod_ref, cohesion, peak_strain, phi=0.0, p_ref=100.0, d=0.0, n_surf=20, strains=None, ratios=None)[source]

Bases: NDMaterialBase

PressureIndependMultiYield material

matTag: int

integer tag identifying material

nd: float

Number of dimensions, 2 for plane-strain, and 3 for 3D analysis.

rho: float

Saturated soil mass density.

g_mod_ref, float

(G_0) Reference low-strain shear modulus, specified at a reference mean effective confining pressure (p_ref).

bulk_mod_ref: float

(B_r) Reference bulk modulus, specified at a reference mean effective confining pressure (p_ref)).

cohesion: float

(c) Apparent cohesion at zero effective confinement.

peak_strain: float

(\gamma_{max}) An octahedral shear strain at which the maximum shear strength is reached, specified at a reference mean effective confining pressure refPress of p’r (see below).

phi: float

(phi) Friction angle at peak shear strength in degrees, optional (default is 0.0).

p_ref: float
(p'_ref) Reference mean effective confining pressure at which

G_r, B_r, and \gamma_{max} are defined, optional (default is 100. kPa).

d: float
(d) A positive constant defining variations
of G and B as a function of

instantaneous effective confinement p' (default is 0.0)

G=G_r(\frac{p'}{p'_ref})^d

B=B_r(\frac{p'}{p'_ref})^d

If \phi=0, d is reset to 0.0.

n_surf: float, optional

Number of yield surfaces, optional (must be less than 40, default is 20). The surfaces are generated based on the hyperbolic relation.

strains: list

Instead of automatic surfaces generation, you can define yield surfaces directly based on desired shear modulus reduction curve. provide a list of shear strains and corresponding shear modulus reduction ratios (ratios)

ratios: list

Instead of automatic surfaces generation, you can define yield surfaces directly based on desired shear modulus reduction curve. provide a list of shear strains and corresponding shear modulus reduction ratios (ratios)

property den
property nu
op_type = 'PressureIndependMultiYield'
set_nu(nu, ele=None, eles=None, adj_g_mod=False)[source]
update_to_linear()[source]
update_to_nonlinear()[source]

UC San Diego UD soil

class o3seespy.command.nd_material.uc_san_diego_ud_soil.FluidSolidPorous(osi, nd, soil_mat, combined_bulk_modul, pa=101.0)[source]

Bases: NDMaterialBase

The FluidSolidPorous NDMaterial Class

FluidSolidPorous material couples the responses of two phases: fluid and solid. The fluid phase response is only volumetric and linear elastic. The solid phase can be any NDMaterial. This material is developed to simulate the response of saturated porous media under fully undrained condition.

Initial method for FluidSolidPorous

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • nd (float) – Number of dimensions, 2 for plane-strain, and 3 for 3d analysis.

  • soil_mat (obj) – The material number for the solid phase material (previously defined).

  • combined_bulk_modul (float) – Combined undrained bulk modulus b_c relating changes in pore pressure and volumetric strain, may be approximated by: b_c \approx b_f /n where b_f is the bulk modulus of fluid phase (2.2x106 kpa (or 3.191x105 psi) for water), and n the initial porosity.

  • pa (float, optional) – Optional atmospheric pressure for normalization (typically 101 kpa in si units, or 14.65 psi in english units)

op_type = 'FluidSolidPorous'
set_combined_bulk_modulus(value, ele=None, eles=None)[source]
set_update_material_stage(value, ele=None, eles=None)[source]

Wrapper

class o3seespy.command.nd_material.wrapper.InitStrainNDMaterial(osi, other, init_strain, n_dim)[source]

Bases: NDMaterialBase

The InitStrainNDMaterial NDMaterial Class

This command is used to construct an Initial Strain material object. The stress-strain behaviour for this material is defined by another material. Initial Strain Material enables definition of initial strains for the material under consideration. The stress that corresponds to the initial strain will be calculated from the other material.

Initial method for InitStrainNDMaterial

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • other (obj) – Object of the other material

  • init_strain (float) – Initial strain

  • n_dim (float) – Number of dimensions

op_type = 'InitStrainNDMaterial'
class o3seespy.command.nd_material.wrapper.InitStressNDMaterial(osi, other, init_stress, n_dim)[source]

Bases: NDMaterialBase

The InitStressNDMaterial NDMaterial Class

This command is used to construct an Initial Stress material object.The stress-strain behaviour for this material is defined by another material.Initial Stress Material enables definition of initial stress for the material under consideration.The strain that corresponds to the initial stress will be calculated from the other material.

Initial method for InitStressNDMaterial

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • other (obj) – Object of the other material

  • init_stress (float) – Initial stress

  • n_dim (int) – Number of dimensions (e.g. if plane strain ndim=2)

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> mat = o3.nd_material.ElasticIsotropic(osi, e_mod=1.0, nu=1.0, rho=0.0)
>>> o3.nd_material.InitStressNDMaterial(osi, other=mat, init_stress=1.0, n_dim=2)
op_type = 'InitStressNDMaterial'
class o3seespy.command.nd_material.wrapper.InitialStateAnalysisWrapper(osi, n_d_mat, n_dim)[source]

Bases: NDMaterialBase

The InitialStateAnalysisWrapper NDMaterial Class

The InitialStateAnalysisWrapper nDMaterial allows for the use of the InitialStateAnalysis command for setting initial conditions. The InitialStateAnalysisWrapper can be used with any nDMaterial. This material wrapper allows for the development of an initial stress field while maintaining the original geometry of the problem. An example analysis is provided below to demonstrate the use of this material wrapper object.

Initial method for InitialStateAnalysisWrapper

Parameters
  • osi (o3seespy.OpenSeesInstance) –

  • n_d_mat (obj) – The object of the associated ndmaterial object

  • n_dim (int) – Number of dimensions (2 for 2d, 3 for 3d)

Examples

>>> import o3seespy as o3
>>> osi = o3.OpenSeesInstance(ndm=2)
>>> mat = o3.nd_material.ElasticIsotropic(osi, e_mod=1.0, nu=1.0, rho=0.0)
>>> o3.nd_material.InitialStateAnalysisWrapper(osi, n_d_mat=mat, n_dim=1)
op_type = 'InitialStateAnalysisWrapper'
set_bulk_mod(value, ele=None, eles=None)[source]
set_cohesion(value, ele=None, eles=None)[source]
set_friction_angle(value, ele=None, eles=None)[source]
set_g_mod(value, ele=None, eles=None)[source]
set_update_material_stage(value, ele=None, eles=None)[source]