def generate(opts): l = float(opts['Length']) m = int(opts['m']) n = int(opts['n']) swnt = SWNTGenerator((m, n), Lz=l) # need a better random temporary name name = 'temp{}.xyz'.format(randrange(32768)) swnt.save(fname=name) with open(name) as f: xyzData = f.read() os.remove(name) return xyzData
def test4(self): swnt = SWNTGenerator(n=10, m=5, nz=1) bundle = \ SWNTBundleGenerator(n=10, m=5, nx=3, ny=3, nz=1, bundle_packing='ccp') assert_true(bundle.Natoms, bundle.Ntubes * swnt.Natoms) assert_equal(bundle.Ntubes, len(set(bundle.mol_ids)))
def test3(): atoms = SWNTGenerator(n=20, m=0, nz=2).atoms assert_equal(atoms.Natoms, 160) atoms.assign_unique_ids() atoms.update_attrs() print(np.degrees(atoms.bonds.mean_length)) print(np.degrees(atoms.bonds.mean_angle)) atom0 = atoms[0] atom0bonds = atom0.bonds print("atom0: {}".format(atom0)) print("atom0.r: {}".format(atom0.r)) for NN in atom0.NN: print("NN.r: {}".format(NN.r)) print(atom0bonds.atoms.Natoms) print(atom0bonds.atoms.CM) print("atoms.bonds.Nbonds: {}".format(atoms.bonds.Nbonds)) print("atoms.bonds.atoms.Natoms: {}".format(atoms.bonds.atoms.Natoms))
def test_structure_data(self): fname = resource_filename('sknano', 'data/nanotubes/1005_5cells.data') swnt = SWNTGenerator(n=10, m=5, nz=5) swnt_atoms = swnt.atoms swnt_atoms.compute_POAVs() data = DATAReader(fname) atoms = data.atoms atoms.compute_POAVs() assert_equals(swnt_atoms.Natoms, atoms.Natoms)
def test3(self): new_swnt = SWNTGenerator((10, 10)) new_swnt.atoms.center_centroid() test_swnt = \ XYZReader(resource_filename('sknano', 'data/nanotubes/1010_1cell.xyz')) print(new_swnt.atoms.coords) print(test_swnt.atoms.coords) assert_true(np.allclose(new_swnt.atoms.coords, test_swnt.atoms.coords))
def test4(): atoms = SWNTGenerator(10, 5, nz=2).atoms atoms.assign_unique_ids() atoms.update_attrs() atoms.center_centroid() print(atoms.centroid) bond = atoms.get_atom(atoms.Natoms // 2).bonds[0] print(bond) print('bond.atoms.coords:\n{}'.format(bond.atoms.coords)) bond_centroid = bond.centroid print('bond.centroid: {}'.format(bond.centroid)) rot_axis = Vector(p0=[0, 0, bond_centroid.z], p=bond_centroid.p) bond.rotate(angle=np.pi/2, axis=rot_axis) print(bond) print('bond.atoms.coords:\n{}'.format(bond.atoms.coords)) assert_true(np.allclose(bond_centroid, bond.centroid))
def test_generator_atoms(): from sknano.generators import SWNTGenerator n, m = 5, 5 nz = 2 swnt = SWNTGenerator(n=n, m=m, nz=nz) assert_equal(swnt.N, 2 * n) assert_equal(swnt.Natoms, 2 * swnt.N * swnt.nz) assert_equal(swnt.Natoms_per_unit_cell, 2 * swnt.N) assert_equal(swnt.nz, nz) assert_equal(swnt.Natoms_per_tube, swnt.Natoms_per_unit_cell * swnt.nz) atoms = swnt.atoms assert_equal(atoms.Natoms, swnt.Natoms_per_tube)
def test4(): atoms = SWNTGenerator(10, 5, nz=2).atoms atoms.assign_unique_ids() atoms.update_attrs() atoms.center_centroid() print(atoms.centroid) bond = atoms.get_atom(atoms.Natoms // 2).bonds[0] print(bond) print("bond.atoms.coords:\n{}".format(bond.atoms.coords)) bond_centroid = bond.centroid print("bond.centroid: {}".format(bond.centroid)) rot_axis = Vector(p0=[0, 0, bond_centroid.z], p=bond_centroid.p) bond.rotate(angle=np.pi / 2, axis=rot_axis) print(bond) print("bond.atoms.coords:\n{}".format(bond.atoms.coords)) assert_true(np.allclose(bond_centroid, bond.centroid))
def test3(): atoms = SWNTGenerator(n=20, m=0, nz=2).atoms assert_equal(atoms.Natoms, 160) atoms.assign_unique_ids() atoms.update_attrs() print(np.degrees(atoms.bonds.mean_length)) print(np.degrees(atoms.bonds.mean_angle)) atom0 = atoms[0] atom0bonds = atom0.bonds print('atom0: {}'.format(atom0)) print('atom0.r: {}'.format(atom0.r)) for NN in atom0.NN: print('NN.r: {}'.format(NN.r)) print(atom0bonds.atoms.Natoms) print(atom0bonds.atoms.CM) print('atoms.bonds.Nbonds: {}'.format(atoms.bonds.Nbonds)) print('atoms.bonds.atoms.Natoms: {}'.format(atoms.bonds.atoms.Natoms))
def test2(): atoms = SWNTGenerator(n=10, m=10, nz=3).atoms atoms.assign_unique_ids() atoms.update_attrs()
def test2(self): swnt = SWNTGenerator(n=10, m=10, Lz=1.0, fix_Lz=True) swnt.save() self.tmpdata.append(swnt.fname) swnt.save(structure_format='data') self.tmpdata.append(swnt.fname)
def test1(self): swnt = SWNTGenerator(n=10, m=10) swnt.save() self.tmpdata.append(swnt.fname) swnt.save(structure_format='data') self.tmpdata.append(swnt.fname)