def test_bounding_cam_clay(): 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)
def test_zero_length_interface2ddof(): osi = o3.OpenSeesInstance(ndm=2) nodes = [1, 1] o3.element.ZeroLengthInterface2Ddof(osi, s_nd_num=1, m_nd_num=1, sdof=1, mdof=1, nodes=nodes, kn=1.0, kt=1.0, phi=1.0)
def test_multiple_shear_spring(): osi = o3.OpenSeesInstance(ndm=3, ndf=6) coords = [[0, 0, 0], [1, 0, 0]] ele_nodes = [o3.node.Node(osi, *coords[x]) for x in range(len(coords))] mat = o3.uniaxial_material.Elastic(osi, 1.0) o3.element.MultipleShearSpring(osi, ele_nodes=ele_nodes, n_spring=1, mat=mat, lim=1.0, mass=1.0, orient=None)
def test_reinforcing_steel_cm_fatigue(): osi = o3.OpenSeesInstance(ndm=2) o3.uniaxial_material.ReinforcingSteelCMFatigue(osi, fy=1.0, fu=1.0, es=1.0, esh=1.0, eps_sh=1.0, eps_ult=1.0, cf=1.0, alpha_2=1, cd=1.0)
def test_reinforcing_steel_mp_curve_params(): osi = o3.OpenSeesInstance(ndm=2) o3.uniaxial_material.ReinforcingSteelMPCurveParams(osi, fy=1.0, fu=1.0, es=1.0, esh=1.0, eps_sh=1.0, eps_ult=1.0, r1=0.333, r2=18.0, r3=4.0)
def test_bilinear_oil_damper(): osi = o3.OpenSeesInstance(ndm=2) o3.uniaxial_material.BilinearOilDamper(osi, k_el=1.0, cd=1.0, fr=1.0, p=1.0, l_gap=0.0, nm=1, rel_tol=1e-6, abs_tol=1e-10, max_half=15)
def test_plane_stress_user_material(): 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)
def test_multiaxial_cyclic_plasticity(): 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)
def test_elastic_beam_column2d(): osi = o3.OpenSeesInstance(ndm=2) coords = [[0, 0], [1, 0]] ele_nodes = [o3.node.Node(osi, *coords[x]) for x in range(2)] transf = o3.geom_transf.Linear2D(osi, []) o3.element.ElasticBeamColumn2D(osi, ele_nodes=ele_nodes, area=1.0, e_mod=1.0, iz=1.0, transf=transf, mass=1.0)
def test_concrete_d(): osi = o3.OpenSeesInstance(ndm=2) o3.uniaxial_material.ConcreteD(osi, fc=1.0, epsc=1.0, ft=1.0, epst=1.0, ec=1.0, alphac=1.0, alphat=1.0, cesp=0.25, etap=1.15)
def test_truss(): osi = o3.OpenSeesInstance(ndm=2) coords = [[0, 0], [1, 0]] ele_nodes = [o3.node.Node(osi, *coords[x]) for x in range(len(coords))] mat = o3.uniaxial_material.Elastic(osi, 1.0) o3.element.Truss(osi, ele_nodes=ele_nodes, big_a=1.0, mat=mat, rho=1.0, c_flag=1.0, r_flag=1.0)
def test_axial_sp_hd(): osi = o3.OpenSeesInstance(ndm=2) o3.uniaxial_material.AxialSpHD(osi, sce=1.0, fty=1.0, fcy=1.0, bte=1.0, bty=1.0, bth=1.0, bcy=1.0, fcr=1.0, ath=1.0)
def test_min_max(): osi = o3.OpenSeesInstance(ndm=2) other = o3.uniaxial_material.Hardening(osi, e_mod=1.0, sigma_y=1.0, h_iso=1.0, h_kin=1.0, eta=0.0) o3.uniaxial_material.MinMax(osi, other=other, min_strain=1e-16, max_strain=1e16)
def test_bouc_wen(): osi = o3.OpenSeesInstance(ndm=2) o3.uniaxial_material.BoucWen(osi, alpha=1.0, ko=1.0, n=1.0, gamma=1.0, beta=1.0, ao=1.0, delta_a=1.0, delta_nu=1.0, delta_eta=1.0)
def test_pfem_element_compressible(): osi = o3.OpenSeesInstance(ndm=2) coords = [[0, 0], [1, 0], [1, 1], [0, 1]] ele_nodes = [o3.node.Node(osi, *coords[x]) for x in range(4)] o3.element.PFEMElementCompressible(osi, ele_nodes, rho=1.0, mu=1.0, b1=1.0, b2=1.0, thickness=1.0, kappa=1.0)
def test_concrete06(): osi = o3.OpenSeesInstance(ndm=2) o3.uniaxial_material.Concrete06(osi, fc=1.0, e0=1.0, n=1.0, k=1.0, alpha1=1.0, fcr=1.0, ecr=1.0, b=1.0, alpha2=1.0)
def test_disp_beam_column_int(): osi = o3.OpenSeesInstance(ndm=2) coords = [[0, 0], [1, 0], [1, 1], [0, 1]] ele_nodes = [o3.node.Node(osi, *coords[x]) for x in range(2)] sec = o3.section.Elastic2D(osi, 10.0, 1.0, 1.0) transf = o3.geom_transf.Linear2D(osi, []) o3.element.DispBeamColumnInt(osi, ele_nodes=ele_nodes, num_intgr_pts=4, sec=sec, transf=transf, c_rot=1.0, mass=1.0)
def test_reinforcing_steel_ga_buck(): osi = o3.OpenSeesInstance(ndm=2) o3.uniaxial_material.ReinforcingSteelGABuck(osi, fy=1.0, fu=1.0, es=1.0, esh=1.0, eps_sh=1.0, eps_ult=1.0, lsr=1.0, beta=1.0, r=1.0, gamma=1.0)
def test_steel_mpf(): osi = o3.OpenSeesInstance(ndm=2) o3.uniaxial_material.SteelMPF(osi, fyp=1.0, fyn=1.0, e0=1.0, bp=1.0, bn=1.0, params=[1.0, 1.0, 1.0], a1=0.0, a2=1.0, a3=0.0, a4=1.0)
def test_saws(): osi = o3.OpenSeesInstance(ndm=2) o3.uniaxial_material.SAWS(osi, f0=1.0, fi=1.0, du=1.0, s0=1.0, r1=1.0, r2=1.0, r3=1.0, r4=1.0, alpha=1.0, beta=1.0)
def test_damage2p(): 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)
def test_beam_column_joint(): osi = o3.OpenSeesInstance(ndm=2) coords = [[0, 0], [1, 0], [1, 1], [0, 1]] ele_nodes = [o3.node.Node(osi, *coords[x]) for x in range(4)] mats = [ o3.uniaxial_material.Elastic(osi, e_mod=1.0, eta=0.0, eneg=None) for x in range(13) ] o3.element.BeamColumnJoint(osi, ele_nodes, *mats, ele_height_fac=1.0, ele_width_fac=1.0)
def test_disp_beam_column(): osi = o3.OpenSeesInstance(ndm=2) i_node = o3.node.Node(osi, 0.0, 0.0) j_node = o3.node.Node(osi, 0.0, 1.0) transf = o3.geom_transf.Linear2D(osi, []) sec = o3.section.Elastic2D(osi, 10.0, 1.0, 1.0) integration = o3.beam_integration.Lobatto(osi, sec, 5) o3.element.DispBeamColumn(osi, ele_nodes=[i_node, j_node], transf=transf, integration=integration, c_mass=1, mass=0.0)
def test_concrete_cm(): osi = o3.OpenSeesInstance(ndm=2) 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)
def test_init_stress_nd_material(): 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) # def test_init_strain_nd_material(): # osi = o3.OpenSeesInstance(ndm=2) # mat = o3.nd_material.ElasticIsotropic(osi, e_mod=1.0, nu=1.0, rho=0.0) # o3.nd_material.InitStrainNDMaterial(osi, other=mat, init_strain=1.0, n_dim=2)
def test_beam_end_contact3d(): osi = o3.OpenSeesInstance(ndm=2) i_node = o3.node.Node(osi, 0.0, 0.0) j_node = o3.node.Node(osi, 0.0, 1.0) o3.element.BeamEndContact3D(osi, i_node=i_node, j_node=j_node, s_node=1, l_node=1, radius=1.0, g_tol=1.0, f_tol=1.0, c_flag=1.0)
def test_simple_contact2d(): osi = o3.OpenSeesInstance(ndm=2) i_node = o3.node.Node(osi, 0.0, 0.0) j_node = o3.node.Node(osi, 0.0, 1.0) mat = o3.nd_material.ElasticIsotropic(osi, 1, 0.45) o3.element.SimpleContact2D(osi, i_node=i_node, j_node=j_node, s_node=1, l_node=1, mat=mat, g_tol=1.0, f_tol=1.0)
def test_elastic_orthotropic(): 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)
def test_can_set_PressureIndependMultiYield(): osi = o3.OpenSeesInstance(ndm=2) # Define material nd = 2 rho = 1400 ref_shear_modul = 40e6 ref_bulk_modul = 60e6 cohesi = 60e3 peak_shear_stra = 0.02 o3.nd_material.PressureIndependMultiYield(osi, nd, rho, ref_shear_modul, ref_bulk_modul, cohesi, peak_shear_stra)
def test_zero_length(): osi = o3.OpenSeesInstance(ndm=2) coords = [[0, 0], [0, 0]] ele_nodes = [o3.node.Node(osi, *coords[x]) for x in range(2)] bilinear_mat = o3.uniaxial_material.Steel01(osi, fy=300., e0=200.0e3, b=0.01) o3.element.ZeroLength(osi, ele_nodes, mats=[bilinear_mat], dirs=[o3.cc.DOF2D_X], r_flag=1)