def test_crod(self): """Tests a CROD/PROD""" model = BDF(debug=True, log=None, mode='msc') model.bdf_filename = 'crod.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_crod(eid, pid, nids) model.add_prod(pid, mid, A=1.0, j=2., c=0., nsm=0.) 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_crod_spcd(self): """Tests a CROD/PROD with an SPCD and no free DOFs""" model = BDF(debug=True, log=None, mode='msc') model.bdf_filename = 'crod_spcd.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 = 42. 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_crod(eid, pid, nids) model.add_prod(pid, mid, A=1.0, j=0., c=0., nsm=0.) load_id = 2 spc_id = 3 nid = 2 mag = 1. fxyz = [0., 0., 0.] model.add_force(load_id, nid, mag, fxyz, cid=0) nodes = 1 components = 123456 #model.add_spc1(spc_id, components, nodes, comment='') model.add_spc(spc_id, nodes, components, 0., comment='') #components = 123456 #nodes = 1 #enforced = 0.1 #model.add_spc(spc_id, nodes, components, enforced, comment='') nodes = 2 components = 1 enforced = 0.1 model.add_spcd(load_id, nodes, components, enforced, comment='') components = '1' model.add_spcd(9999999, nodes, components, enforced, comment='') components = 123456 #model.add_spc1(spc_id, components, nodes, comment='') model.add_spc(spc_id, nodes, components, 0., comment='') setup_case_control(model) solver = Solver(model) solver.run() # F = kx dx = enforced k = E F = k * dx assert len(solver.xa_) == 0, solver.xa_ assert len(solver.Fa_) == 0, solver.Fa_ assert np.allclose(solver.xg[6], dx), solver.xa_ assert np.allclose(solver.Fg[6], F), solver.xa_
def test_crod_mpc(self): """Tests a CROD/PROD""" model = BDF(debug=True, log=None, mode='msc') model.add_grid(1, [0., 0., 0.]) model.add_grid(2, [1., 0., 0.]) model.add_grid(3, [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_crod(eid, pid, nids) model.add_prod(pid, mid, A=1.0, j=2., c=0., nsm=0.) mpc_id = 10 nodes = [2, 3] components = [1, 3] coefficients = [1., -1.] model.add_mpc(mpc_id, nodes, components, coefficients) load_id = 2 spc_id = 3 nid = 3 mag = 1. fxyz = [0., 0., 1.] 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, extra_case_lines=['MPC=10']) solver = Solver(model) solver.run()
def test_crod_aset(self): """ Tests a CROD/PROD using an ASET same answer as ``test_crod`` """ 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_crod(eid, pid, nids) model.add_prod(pid, mid, A=1.0, j=2., c=0., nsm=0.) 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='') aset_ids = 2 aset_components = '456' model.add_aset(aset_ids, aset_components) aset_ids = [2, 2] aset_components = ['456', '123'] model.add_aset1(aset_ids, aset_components, comment='') setup_case_control(model) solver = Solver(model) solver.run()