def test_ctube(self): """Tests a CTUBE/PTUBE""" model = BDF(debug=True, log=None, mode='msc') model.add_grid(1, [0., 0., 0.]) model.add_grid(2, [1., 0., 0.]) nids = [1, 2] eid = 1 pid = 2 mid = 3 E = 3.0e7 G = None nu = 0.3 model.add_mat1(mid, E, G, nu, rho=0.0, a=0.0, tref=0.0, ge=0.0, St=0.0, Sc=0.0, Ss=0.0, mcsid=0) model.add_ctube(eid, pid, nids) OD1 = 1.0 model.add_ptube(pid, mid, OD1, t=0.1, nsm=0., OD2=None, comment='') load_id = 2 spc_id = 3 nid = 2 mag = 1. fxyz = [1., 0., 0.] model.add_force(load_id, nid, mag, fxyz, cid=0) components = 123456 nodes = 1 model.add_spc1(spc_id, components, nodes, comment='') setup_case_control(model) solver = Solver(model) solver.run()
def test_ctube(self): """Tests a CTUBE/PTUBE""" model = BDF(debug=True, log=None, mode='msc') model.bdf_filename = 'ctube.bdf' model.add_grid(1, [0., 0., 0.]) model.add_grid(2, [1., 0., 0.]) nids = [1, 2] eid = 1 pid = 2 mid = 3 E = 3.0e7 G = None nu = 0.3 model.add_mat1(mid, E, G, nu, rho=0.1, a=0.0, tref=0.0, ge=0.0, St=0.0, Sc=0.0, Ss=0.0, mcsid=0) model.add_ctube(eid, pid, nids) OD1 = 1.0 t = 0.1 model.add_ptube(pid, mid, OD1, t=t, nsm=0., OD2=None, comment='') load_id = 2 spc_id = 3 nid = 2 mag = 1. fxyz = [1., 0., 0.] model.add_force(load_id, nid, mag, fxyz, cid=0) components = 123456 nodes = 1 model.add_spc1(spc_id, components, nodes, comment='') setup_case_control(model) solver = Solver(model) solver.run() ID = OD1 - 2 * t # F = k * x # x = F / k L = 1.0 A = np.pi * (OD1**2 - ID**2) / 4 kaxial = A * E / L F = 1.0 dx = F / kaxial assert np.allclose(solver.xg[6], dx), f'dx={dx} xg[6]={solver.xg[6]}' assert np.allclose(solver.Fg[6], F), solver.Fg