Exemplo n.º 1
0
    def test_convex_polyhedron(self):

        context.initialize()
        self.system = hoomd.init.read_gsd(filename='init.gsd')

        with self.assertRaises(RuntimeError):
            self.mc = hpmc.integrate.convex_polyhedron(seed=2234, d=0.3, a=0.4, restore_state=True);
Exemplo n.º 2
0
 def setUp(self):
     self._name = None;
     hexuc = hoomd.lattice.hex(a=2.0);
     system = init.read_snapshot(hexuc.get_snapshot());
     system.replicate(nx=8, ny=8, nz=1);
     self.snapshot2d = system.take_snapshot(particles=True);
     context.initialize();
     bccuc = hoomd.lattice.bcc(a=4.0);
     system = init.read_snapshot(bccuc.get_snapshot());
     system.replicate(nx=4, ny=4, nz=4);
     self.snapshot3d = system.take_snapshot(particles=True);
     # self.snapshot3d = data.make_snapshot(N=20, box=system.box, particle_types=['A']);
     context.initialize();
     v2d = 0.33*np.array([(-1,-1), (1,-1), (1,1), (-1,1)]);
     v2dup = v2d+0.1*np.array([(1,-1), (-1,-1), (1,-1), (1,1)]);
     r = 0.1234;
     rup = 0.3;
     v3d = 0.33*np.array([(1,1,1), (1,-1,1), (-1,-1,1), (-1,1,1),(1,1,-1), (1,-1,-1), (-1,-1,-1), (-1,1,-1)]);
     v3dup = v3d + 0.1*np.array([(-1,1,-1), (1,1,1), (1,-1,-1), (-1,1,-1),(-1,-1,-1), (1,1,1), (-1,1,-1), (-1,1,1)]);
     self.a = 0.5;
     self.d = 0.5;
     self.params = dict(
         sphere=dict(first=dict(diameter=1.5), second=dict(diameter=3.0)),
         ellipsoid=dict(first=dict(a=0.5, b=0.54, c=0.35), second=dict(a=0.98*0.5, b=1.05*0.54, c=1.1*0.35)),
         convex_polygon=dict(first=dict(vertices=v2d), second=dict(vertices=v2dup)),
         convex_spheropolygon=dict(first=dict(vertices=v2d, sweep_radius=r), second=dict(vertices=v2dup, sweep_radius=rup)),
         simple_polygon=dict(first=dict(vertices=v2d), second=dict(vertices=v2dup)),
         convex_polyhedron=dict(first=dict(vertices=v3d), second=dict(vertices=v3dup)),
         convex_spheropolyhedron=dict(first=dict(vertices=v3d, sweep_radius=r), second=dict(vertices=v3dup, sweep_radius=rup))
     )
Exemplo n.º 3
0
    def test_convex_polyhedron(self):

        context.initialize()
        self.system = hoomd.init.read_gsd(filename='init.gsd')

        with self.assertRaises(RuntimeError):
            self.mc = hpmc.integrate.convex_polyhedron(seed=2234, d=0.3, a=0.4, restore_state=True);
Exemplo n.º 4
0
 def tearDown(self):
     del self.mc
     del self.patch
     del self.snapshot
     del self.log
     context.initialize()
     context.current.device.gpu_error_checking = True
Exemplo n.º 5
0
 def setUp(self):
     self._name = None;
     hexuc = hoomd.lattice.hex(a=2.0);
     system = init.read_snapshot(hexuc.get_snapshot());
     system.replicate(nx=8, ny=8, nz=1);
     self.snapshot2d = system.take_snapshot(particles=True);
     context.initialize();
     bccuc = hoomd.lattice.bcc(a=4.0);
     system = init.read_snapshot(bccuc.get_snapshot());
     system.replicate(nx=4, ny=4, nz=4);
     self.snapshot3d = system.take_snapshot(particles=True);
     # self.snapshot3d = data.make_snapshot(N=20, box=system.box, particle_types=['A']);
     context.initialize();
     v2d = 0.33*np.array([(-1,-1), (1,-1), (1,1), (-1,1)]);
     v2dup = v2d+0.1*np.array([(1,-1), (-1,-1), (1,-1), (1,1)]);
     r = 0.1234;
     rup = 0.3;
     v3d = 0.33*np.array([(1,1,1), (1,-1,1), (-1,-1,1), (-1,1,1),(1,1,-1), (1,-1,-1), (-1,-1,-1), (-1,1,-1)]);
     v3dup = v3d + 0.1*np.array([(-1,1,-1), (1,1,1), (1,-1,-1), (-1,1,-1),(-1,-1,-1), (1,1,1), (-1,1,-1), (-1,1,1)]);
     self.a = 0.5;
     self.d = 0.5;
     self.params = dict(
         sphere=dict(first=dict(diameter=1.5,orientable=False), second=dict(diameter=3.0,orientable=True)),
         ellipsoid=dict(first=dict(a=0.5, b=0.54, c=0.35), second=dict(a=0.98*0.5, b=1.05*0.54, c=1.1*0.35)),
         convex_polygon=dict(first=dict(vertices=v2d), second=dict(vertices=v2dup)),
         convex_spheropolygon=dict(first=dict(vertices=v2d, sweep_radius=r), second=dict(vertices=v2dup, sweep_radius=rup)),
         simple_polygon=dict(first=dict(vertices=v2d), second=dict(vertices=v2dup)),
         convex_polyhedron=dict(first=dict(vertices=v3d), second=dict(vertices=v3dup)),
         convex_spheropolyhedron=dict(first=dict(vertices=v3d, sweep_radius=r), second=dict(vertices=v3dup, sweep_radius=rup))
     )
Exemplo n.º 6
0
 def tearDown(self):
     del self.lattice
     del self.gsd
     del self.system
     filename = "init.gsd"
     if hoomd.comm.get_rank() == 0 and os.path.exists(filename):
         os.remove(filename);
     context.initialize()
Exemplo n.º 7
0
    def setUp(self):

        context.initialize()
        self.lattice = hoomd.lattice.sc(a=1.5, type_name='A');
        self.system = hoomd.init.create_lattice(self.lattice, n=3);

        self.gsd = hoomd.dump.gsd('init.gsd', period=100, group=hoomd.group.all(), overwrite=True);
        self.gsd.write_restart();
Exemplo n.º 8
0
    def setUp(self):

        context.initialize()
        self.lattice = hoomd.lattice.sc(a=1.5, type_name='A');
        self.system = hoomd.init.create_lattice(self.lattice, n=3);

        self.gsd = hoomd.dump.gsd('init.gsd', period=100, group=hoomd.group.all(), overwrite=True);
        self.gsd.write_restart();
Exemplo n.º 9
0
 def tearDown(self):
     del self.lattice
     del self.gsd
     del self.system
     filename = "init.gsd"
     if hoomd.context.current.device.comm.rank == 0 and os.path.exists(filename):
         os.remove(filename);
     context.initialize()
Exemplo n.º 10
0
 def tearDown(self):
     del self.lattice
     del self.gsd
     del self.system
     filename = "init.gsd"
     if hoomd.comm.get_rank() == 0 and os.path.exists(filename):
         os.remove(filename)
     context.initialize()
 def tearDown(self):
     del self.mc
     del self.patch
     del self.snapshot
     del self.log
     context.initialize()
Exemplo n.º 12
0
    def test_access(self):
        N = 2
        L = 10
        context.initialize()
        self.snapshot = data.make_snapshot(N=N,
                                           box=data.boxdim(L=L, dimensions=2),
                                           particle_types=['A'])

        # sphere
        diam = 1.125
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.sphere(seed=2398, d=0.0)
        self.mc.shape_param.set('A', diameter=diam)
        self.assertAlmostEqual(self.mc.shape_param['A'].diameter, diam)
        del self.mc
        del self.system
        context.initialize()
        # ellipsoid
        a = 1.125
        b = 0.238
        c = 2.25
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.ellipsoid(seed=2398, d=0.0)
        self.mc.shape_param.set('A', a=a, b=b, c=c)
        self.assertAlmostEqual(self.mc.shape_param['A'].a, a)
        self.assertAlmostEqual(self.mc.shape_param['A'].b, b)
        self.assertAlmostEqual(self.mc.shape_param['A'].c, c)
        del self.mc
        del self.system
        context.initialize()

        # convex_polygon
        v = [(-1, -1), (1, -1), (1, 1), (-1, 1)]
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.convex_polygon(seed=2398, d=0.1, a=0.1)
        self.mc.shape_param.set('A', vertices=v)
        diff = (np.array(v) -
                np.array(self.mc.shape_param['A'].vertices)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        del self.mc
        del self.system
        context.initialize()

        # convex_spheropolygon
        v = [(-1, -1), (1, -1), (1, 1), (-1, 1)]
        r = 0.1234
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.convex_spheropolygon(seed=2398, d=0.1, a=0.1)
        self.mc.shape_param.set('A', vertices=v, sweep_radius=r)
        diff = (np.array(v) -
                np.array(self.mc.shape_param['A'].vertices)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        self.assertAlmostEqual(self.mc.shape_param['A'].sweep_radius, r)
        del self.mc
        del self.system
        context.initialize()

        #simple_polygon
        v = [(-1, -1), (1, -1), (1, 1), (-1, 1)]
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.simple_polygon(seed=2398, d=0.1, a=0.1)
        self.mc.shape_param.set('A', vertices=v)
        diff = (np.array(v) -
                np.array(self.mc.shape_param['A'].vertices)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        del self.mc
        del self.system
        context.initialize()

        # polyhedron
        import math
        v = [(-0.5, -0.5, 0), (-0.5, 0.5, 0), (0.5, -0.5, 0), (0.5, 0.5, 0),
             (0, 0, 1.0 / math.sqrt(2)), (0, 0, -1.0 / math.sqrt(2))]
        f = [(0, 4, 1), (1, 4, 2), (2, 4, 3), (3, 4, 0), (0, 5, 1), (1, 5, 2),
             (2, 5, 3), (3, 5, 0)]
        r = 0.0
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.polyhedron(seed=10)
        self.mc.shape_param.set('A', vertices=v, faces=f, sweep_radius=r)
        diff = (np.array(v) -
                np.array(self.mc.shape_param['A'].vertices)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        diff = (np.array(f) -
                np.array(self.mc.shape_param['A'].faces)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        self.assertAlmostEqual(self.mc.shape_param['A'].sweep_radius, r)
        del self.mc
        del self.system
        context.initialize()

        # convex_polyhedron
        v = [(1, 1, 1), (1, -1, 1), (-1, -1, 1), (-1, 1, 1), (1, 1, -1),
             (1, -1, -1), (-1, -1, -1), (-1, 1, -1)]
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.convex_polyhedron(seed=2398, d=0.1, a=0.1)
        self.mc.shape_param.set('A', vertices=v)
        diff = (np.array(v) -
                np.array(self.mc.shape_param['A'].vertices)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        del self.mc
        del self.system
        context.initialize()

        # convex_spheropolyhedron
        v = [(1, 1, 1), (1, -1, 1), (-1, -1, 1), (-1, 1, 1), (1, 1, -1),
             (1, -1, -1), (-1, -1, -1), (-1, 1, -1)]
        r = 0.1234
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.convex_spheropolyhedron(seed=2398,
                                                         d=0.1,
                                                         a=0.1)
        self.mc.shape_param.set('A', vertices=v, sweep_radius=r)
        diff = (np.array(v) -
                np.array(self.mc.shape_param['A'].vertices)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        self.assertAlmostEqual(self.mc.shape_param['A'].sweep_radius, r)
        del self.mc
        del self.system
        context.initialize()

        # faceted_sphere
        v = [(-1, -1, -1), (-1, -1, 1), (-1, 1, -1), (-1, 1, 1), (1, -1, -1),
             (1, -1, 1), (1, 1, -1), (1, 1, 1)]
        offs = [-1] * 6
        norms = [(-1, 0, 0), (1, 0, 0), (
            0,
            1,
            0,
        ), (0, -1, 0), (0, 0, 1), (0, 0, -1)]
        diam = 2
        orig = (0, 0, 0)
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.faceted_sphere(seed=10)
        self.mc.shape_param.set('A',
                                normals=norms,
                                offsets=offs,
                                vertices=v,
                                diameter=diam,
                                origin=orig)

        diff = (np.array(v) -
                np.array(self.mc.shape_param['A'].vertices)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        diff = (np.array(offs) -
                np.array(self.mc.shape_param['A'].offsets)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        diff = (np.array(norms) -
                np.array(self.mc.shape_param['A'].normals)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        diff = (np.array(orig) -
                np.array(self.mc.shape_param['A'].origin)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        self.assertAlmostEqual(self.mc.shape_param['A'].diameter, diam)
        del self.mc
        del self.system
        context.initialize()

        # sphinx
        # GPU Sphinx is not built on most the time
        if not hoomd.context.current.device.cpp_exec_conf.isCUDAEnabled():
            cent = [(0, 0, 0), (0, 0, 1.15), (0, 0, -1.15)]
            diams = [2, -2.2, -2.2]
            self.system = init.read_snapshot(self.snapshot)
            self.mc = hpmc.integrate.sphinx(seed=10)
            self.mc.shape_param.set('A', diameters=diams, centers=cent)
            diff = (np.array(cent) -
                    np.array(self.mc.shape_param['A'].centers)).flatten()
            self.assertAlmostEqual(diff.dot(diff), 0)
            diff = (np.array(diams) -
                    np.array(self.mc.shape_param['A'].diameters)).flatten()
            self.assertAlmostEqual(diff.dot(diff), 0)
            del self.mc
            del self.system
            context.initialize()

        # sphere_union
        cent = [(0, 0, 0), (0, 0, 1.15), (0, 0, -1.15)]
        diams = [2, 2.2, 1.75]
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.sphere_union(seed=10)
        self.mc.shape_param.set('A', diameters=diams, centers=cent)
        diff = (np.array(cent) -
                np.array(self.mc.shape_param['A'].centers)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        for i, m in enumerate(self.mc.shape_param['A'].members):
            self.assertAlmostEqual(m.diameter, diams[i])
        del self.mc
        del self.system
        del self.snapshot
        context.initialize()
Exemplo n.º 13
0
    try:
        from hoomd import context
        import hoomd
    except ImportError:
        from hoomd_script import context
        HOOMD_v1 = True
    else:
        HOOMD_v1 = False
        hoomd.util.quiet_status()
except ImportError:
    HOOMD = False
else:
    HOOMD = True

if HOOMD:
    context.initialize('--mode=cpu')
    if not HOOMD_v1:
        hoomd.option.set_notice_level(0)
    try:
        if HOOMD_v1:
            from hoomd_plugins import hpmc
        else:
            from hoomd import hpmc
    except ImportError:
        HPMC = False
    else:
        HPMC = True
else:
    HPMC = False

Exemplo n.º 14
0
 def tearDown(self):
     context.initialize()
Exemplo n.º 15
0
from __future__ import division
from __future__ import print_function

import hoomd
from hoomd import context, data, init
from hoomd import hpmc

import unittest
import numpy as np

import math

context.initialize()

class map_overlaps_test(unittest.TestCase):

    def setUp(self):
        snap = data.make_snapshot(N=0,box=data.boxdim(Lx = 10, Ly = 10, Lz = 10))

        self.system = init.read_snapshot(snap)
        self.mc = hpmc.integrate.convex_polyhedron(seed=123)

    def tearDown(self):
        context.initialize()

    def test_single_overlap(self):
        # two cubes, with one rotated by 45 degrees around two axes
        qi = [1,0,0,0]
        #alpha = math.pi/4.0;
        #q1 = (math.cos(alpha/2),math.sin(alpha/2),0,0)
        #q2 = (math.cos(alpha/2),0,0,math.sin(alpha/2))
Exemplo n.º 16
0
    def test_lattice(self):
        N = 128
        latticeq = [[1, 0, 0, 0] for i in range(N)]
        k = 10.0
        kalt = np.exp(15)
        dx2d = np.array([0.1, 0.1, 0.0])
        theta = np.pi / 6
        eng_check2d = round(N * k * dx2d.dot(dx2d), 3)
        dx3d = np.array([0.1, 0.1, 0.1])
        eng_check3d = round(N * k * dx3d.dot(dx3d), 3)

        dq = np.array([np.cos(theta / 2.0), 0., 0., np.sin(theta / 2)])
        ddq = np.array([1., 0., 0., 0.]) - dq
        eng_checkq = round(10.0 * k * N * ddq.dot(ddq), 3)

        hexuc = hoomd.lattice.hex(a=2.0)
        self.system = init.read_snapshot(hexuc.get_snapshot())
        self.system.replicate(nx=8, ny=8, nz=1)

        self.snapshot2d = self.system.take_snapshot(particles=True)
        #data.make_snapshot(N=N, box=data.boxdim(L=L, dimensions=3), particle_types=['A'])
        lattice2d = []
        if hoomd.comm.get_rank() == 0:
            lattice2d = self.snapshot2d.particles.position[:]

        self.snapshot2d_s = data.make_snapshot(N=N,
                                               box=self.system.box,
                                               particle_types=['A'])
        if hoomd.comm.get_rank() == 0:
            self.snapshot2d_s.particles.position[:] = self.snapshot2d.particles.position[:] + dx2d
            self.snapshot2d_s.particles.orientation[:] = np.array(
                [dq for _ in range(N)])
        del self.system
        context.initialize()

        bccuc = hoomd.lattice.bcc(a=2.0)
        self.system = init.read_snapshot(bccuc.get_snapshot())
        self.system.replicate(nx=4, ny=4, nz=4)
        self.snapshot3d = self.system.take_snapshot(particles=True)
        #data.make_snapshot(N=N, box=data.boxdim(L=L, dimensions=3), particle_types=['A'])
        lattice3d = []
        if hoomd.comm.get_rank() == 0:
            lattice3d = self.snapshot3d.particles.position[:]
        self.snapshot3d_s = data.make_snapshot(N=N,
                                               box=self.system.box,
                                               particle_types=['A'])
        if hoomd.comm.get_rank() == 0:
            self.snapshot3d_s.particles.position[:] = self.snapshot3d.particles.position[:] + dx3d
            self.snapshot3d_s.particles.orientation[:] = np.array(
                [dq for _ in range(N)])
        del self.system
        context.initialize()

        # sphere
        print("****************************************")
        print("*               sphere                 *")
        print("****************************************")
        # d = 0.0014284726343172743, p = 0.20123046875
        uein = 1.5  # kT
        diam = 1.0
        self.system = init.read_snapshot(self.snapshot3d)
        self.mc = hpmc.integrate.sphere(seed=2398, d=0.0)
        self.mc.shape_param.set('A', diameter=diam)
        self.run_test(latticep=lattice3d,
                      latticeq=[],
                      k=k,
                      kalt=kalt,
                      q=0,
                      qalt=0,
                      uein=1.5,
                      snapshot_s=self.snapshot3d_s,
                      eng_check=eng_check3d,
                      d=0.001428)
        self.tear_down()

        # ellipsoid
        print("****************************************")
        print("*              ellipsoid               *")
        print("****************************************")
        # a = 0.00038920117896296716, p = 0.2035860456051452
        # d = 0.0014225507698958867, p = 0.19295361127422195
        a = 0.5
        b = 0.54
        c = 0.35
        uein = 3.0  # kT
        self.system = init.read_snapshot(self.snapshot3d)
        self.mc = hpmc.integrate.ellipsoid(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', a=a, b=b, c=c)
        self.run_test(latticep=lattice3d,
                      latticeq=latticeq,
                      k=k,
                      kalt=kalt,
                      q=k * 10.0,
                      qalt=kalt * 10.0,
                      uein=3.0,
                      snapshot_s=self.snapshot3d_s,
                      eng_check=(eng_check3d + eng_checkq),
                      a=0.000389,
                      d=0.001423)
        self.tear_down()

        # convex_polygon
        print("****************************************")
        print("*           convex_polygon             *")
        print("****************************************")
        # a = 0.001957745443687172, p = 0.19863574351978172
        # d = 0.0017185407622231329, p = 0.2004306126443531
        self.system = init.read_snapshot(self.snapshot2d)
        v = 0.33 * np.array([(-1, -1), (1, -1), (1, 1), (-1, 1)])
        self.mc = hpmc.integrate.convex_polygon(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', vertices=v)
        self.run_test(latticep=lattice2d,
                      latticeq=latticeq,
                      k=k,
                      kalt=kalt,
                      q=k * 10.0,
                      qalt=kalt * 10.0,
                      uein=1.5,
                      snapshot_s=self.snapshot2d_s,
                      eng_check=(eng_check2d + eng_checkq),
                      a=0.001958,
                      d=0.001719)
        self.tear_down()

        # convex_spheropolygon
        print("****************************************")
        print("*        convex_spheropolygon          *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot2d)
        v = 0.33 * np.array([(-1, -1), (1, -1), (1, 1), (-1, 1)])
        r = 0.1234
        self.mc = hpmc.integrate.convex_spheropolygon(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', vertices=v, sweep_radius=r)
        diff = (np.array(v) -
                np.array(self.mc.shape_param['A'].vertices)).flatten()
        self.run_test(latticep=lattice2d,
                      latticeq=latticeq,
                      k=k,
                      kalt=kalt,
                      q=k * 10.0,
                      qalt=kalt * 10.0,
                      uein=None,
                      snapshot_s=self.snapshot2d_s,
                      eng_check=(eng_check2d + eng_checkq))
        self.tear_down()

        #simple_polygon
        print("****************************************")
        print("*           simple_polygon             *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot2d)
        v = 0.33 * np.array([(-1, -1), (1, -1), (1, 1), (-1, 1)])
        self.mc = hpmc.integrate.simple_polygon(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', vertices=v)
        self.run_test(latticep=lattice2d,
                      latticeq=latticeq,
                      k=k,
                      kalt=kalt,
                      q=k * 10.0,
                      qalt=kalt * 10.0,
                      uein=None,
                      snapshot_s=self.snapshot2d_s,
                      eng_check=(eng_check2d + eng_checkq))
        self.tear_down()

        # polyhedron
        print("****************************************")
        print("*             polyhedron               *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot3d)
        v = 0.33 * np.array([(-0.5, -0.5, -0.5), (-0.5, -0.5, 0.5),
                             (-0.5, 0.5, -0.5), (-0.5, 0.5, 0.5),
                             (0.5, -0.5, -0.5), (0.5, -0.5, 0.5),
                             (0.5, 0.5, -0.5), (0.5, 0.5, 0.5)])
        f = [(7, 3, 1, 5), (7, 5, 4, 6), (7, 6, 2, 3), (3, 2, 0, 1),
             (0, 2, 6, 4), (1, 0, 4, 5)]
        r = 0.0
        self.mc = hpmc.integrate.polyhedron(seed=10)
        self.mc.shape_param.set('A', vertices=v, faces=f, sweep_radius=r)
        diff = (np.array(v) -
                np.array(self.mc.shape_param['A'].vertices)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        diff = (np.array(f) -
                np.array(self.mc.shape_param['A'].faces)).flatten()
        self.assertAlmostEqual(diff.dot(diff), 0)
        self.assertAlmostEqual(self.mc.shape_param['A'].sweep_radius, r)
        del self.mc
        del self.system
        context.initialize()

        # convex_polyhedron
        print("****************************************")
        print("*          convex_polyhedron           *")
        print("****************************************")
        #a = 0.00038920117896296716, p = 0.2035860456051452
        #d = 0.0014225507698958867, p = 0.19295361127422195
        self.system = init.read_snapshot(self.snapshot3d)
        v = 0.33 * np.array([(1, 1, 1), (1, -1, 1), (-1, -1, 1), (-1, 1, 1),
                             (1, 1, -1), (1, -1, -1), (-1, -1, -1),
                             (-1, 1, -1)])
        self.mc = hpmc.integrate.convex_polyhedron(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', vertices=v)
        self.run_test(latticep=lattice3d,
                      latticeq=latticeq,
                      k=k,
                      kalt=kalt,
                      q=k * 10.0,
                      qalt=kalt * 10.0,
                      uein=3.0,
                      snapshot_s=self.snapshot3d_s,
                      eng_check=(eng_check3d + eng_checkq),
                      a=0.0003892,
                      d=0.00142255)
        self.tear_down()

        # convex_spheropolyhedron
        print("****************************************")
        print("*       convex_spheropolyhedron        *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot3d)
        v = 0.33 * np.array([(1, 1, 1), (1, -1, 1), (-1, -1, 1), (-1, 1, 1),
                             (1, 1, -1), (1, -1, -1), (-1, -1, -1),
                             (-1, 1, -1)])
        r = 0.1234
        self.mc = hpmc.integrate.convex_spheropolyhedron(seed=2398,
                                                         d=0.0,
                                                         a=0.0)
        self.mc.shape_param.set('A', vertices=v, sweep_radius=r)
        self.run_test(latticep=lattice3d,
                      latticeq=latticeq,
                      k=k,
                      kalt=kalt,
                      q=k * 10.0,
                      qalt=kalt * 10.0,
                      uein=None,
                      snapshot_s=self.snapshot3d_s,
                      eng_check=(eng_check3d + eng_checkq))
        self.tear_down()

        # faceted_sphere
        print("****************************************")
        print("*            faceted_sphere            *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot3d)
        v = 0.33 * np.array([(-1, -1, -1), (-1, -1, 1), (-1, 1, -1),
                             (-1, 1, 1), (1, -1, -1), (1, -1, 1), (1, 1, -1),
                             (1, 1, 1)])
        offs = [-1] * 6
        norms = [(-1, 0, 0), (1, 0, 0), (
            0,
            1,
            0,
        ), (0, -1, 0), (0, 0, 1), (0, 0, -1)]
        diam = 1.0
        orig = (0, 0, 0)
        self.mc = hpmc.integrate.faceted_sphere(seed=10, d=0.0, a=0.0)
        self.mc.shape_param.set('A',
                                normals=norms,
                                offsets=offs,
                                vertices=v,
                                diameter=diam,
                                origin=orig)
        self.run_test(latticep=lattice3d,
                      latticeq=latticeq,
                      k=k,
                      kalt=kalt,
                      q=k * 10.0,
                      qalt=kalt * 10.0,
                      uein=None,
                      snapshot_s=self.snapshot3d_s,
                      eng_check=(eng_check3d + eng_checkq))
        self.tear_down()

        # sphinx
        print("****************************************")
        print("*               sphinx                 *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot3d)
        cent = [(0, 0, 0), (0, 0, 1.15), (0, 0, -1.15)]
        diams = [1, -1.2, -1.2]
        self.mc = hpmc.integrate.sphinx(seed=10, d=0.0, a=0.0)
        self.mc.shape_param.set('A', diameters=diams, centers=cent)
        self.run_test(latticep=lattice3d,
                      latticeq=latticeq,
                      k=k,
                      kalt=kalt,
                      q=k * 10.0,
                      qalt=kalt * 10.0,
                      uein=None,
                      snapshot_s=self.snapshot3d_s,
                      eng_check=(eng_check3d + eng_checkq))
        self.tear_down()

        # sphere_union
        print("****************************************")
        print("*            sphere_union              *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot3d)
        cent = [(0, 0, 0), (0, 0, 0.15), (0, 0, -0.15)]
        diams = [1, 1, 1]
        self.mc = hpmc.integrate.sphere_union(seed=10, d=0.0, a=0.0)
        self.mc.shape_param.set('A', diameters=diams, centers=cent)
        self.run_test(latticep=lattice3d,
                      latticeq=latticeq,
                      k=k,
                      kalt=kalt,
                      q=k * 10.0,
                      qalt=kalt * 10.0,
                      uein=None,
                      snapshot_s=self.snapshot3d_s,
                      eng_check=(eng_check3d + eng_checkq))
        self.tear_down()
Exemplo n.º 17
0
 def tear_down(self):
     del self.gsd
     del self.mc
     del self.system
     context.initialize()
Exemplo n.º 18
0
 def tearDown(self):
     context.initialize()
Exemplo n.º 19
0
from __future__ import division
from __future__ import print_function

import hoomd
from hoomd import context, data, init
from hoomd import hpmc

import unittest
import os
import numpy as np
import itertools
import sys

context.initialize()


def create_empty(**kwargs):
    snap = data.make_snapshot(**kwargs)
    return init.read_snapshot(snap)


class hpmc_gsd_state(unittest.TestCase):
    def setUp(self):
        self._name = None
        hexuc = hoomd.lattice.hex(a=2.0)
        system = init.read_snapshot(hexuc.get_snapshot())
        system.replicate(nx=8, ny=8, nz=1)
        self.snapshot2d = system.take_snapshot(particles=True)
        context.initialize()
        bccuc = hoomd.lattice.bcc(a=4.0)
        system = init.read_snapshot(bccuc.get_snapshot())
Exemplo n.º 20
0
 def tearDown(self):
     del self.logger
     del self.patch
     context.initialize()
     context.current.device.gpu_error_checking = True
Exemplo n.º 21
0
 def tear_down(self):
     del self.mc
     del self.system
     del self.lattice
     del self.remove_drift
     context.initialize()
 def tearDown(self):
     del self.logger
     del self.patch
     context.initialize()
Exemplo n.º 23
0
 def tear_down(self):
     del self.mc
     del self.system
     del self.lattice
     del self.remove_drift
     context.initialize()
Exemplo n.º 24
0
    def test_access(self):
        N=2
        L=10
        context.initialize()
        self.snapshot = data.make_snapshot(N=N, box=data.boxdim(L=L, dimensions=2), particle_types=['A'])

        # sphere
        diam = 1.125;
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.sphere(seed=2398, d=0.0)
        self.mc.shape_param.set('A', diameter=diam)
        self.assertAlmostEqual(self.mc.shape_param['A'].diameter, diam);
        del self.mc
        del self.system
        context.initialize()
        # ellipsoid
        a = 1.125;
        b = 0.238;
        c = 2.25;
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.ellipsoid(seed=2398, d=0.0)
        self.mc.shape_param.set('A', a=a, b=b, c=c)
        self.assertAlmostEqual(self.mc.shape_param['A'].a, a);
        self.assertAlmostEqual(self.mc.shape_param['A'].b, b);
        self.assertAlmostEqual(self.mc.shape_param['A'].c, c);
        del self.mc
        del self.system
        context.initialize()


        # convex_polygon
        v = [(-1,-1), (1,-1), (1,1), (-1,1)];
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.convex_polygon(seed=2398, d=0.1, a=0.1)
        self.mc.shape_param.set('A', vertices=v)
        diff = (np.array(v) - np.array(self.mc.shape_param['A'].vertices)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        del self.mc
        del self.system
        context.initialize()

        # convex_spheropolygon
        v = [(-1,-1), (1,-1), (1,1), (-1,1)];
        r = 0.1234;
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.convex_spheropolygon(seed=2398, d=0.1, a=0.1)
        self.mc.shape_param.set('A', vertices=v, sweep_radius=r)
        diff = (np.array(v) - np.array(self.mc.shape_param['A'].vertices)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        self.assertAlmostEqual(self.mc.shape_param['A'].sweep_radius, r);
        del self.mc
        del self.system
        context.initialize()

        #simple_polygon
        v = [(-1,-1), (1,-1), (1,1), (-1,1)];
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.simple_polygon(seed=2398, d=0.1, a=0.1)
        self.mc.shape_param.set('A', vertices=v)
        diff = (np.array(v) - np.array(self.mc.shape_param['A'].vertices)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        del self.mc
        del self.system
        context.initialize()

        # polyhedron
        import math
        v = [(-0.5, -0.5, 0), (-0.5, 0.5, 0), (0.5, -0.5, 0), (0.5, 0.5, 0), (0,0, 1.0/math.sqrt(2)),(0,0,-1.0/math.sqrt(2))];
        f = [(0,4,1),(1,4,2),(2,4,3),(3,4,0),(0,5,1),(1,5,2),(2,5,3),(3,5,0)]
        r = 0.0;
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.polyhedron(seed=10);
        self.mc.shape_param.set('A', vertices=v, faces =f, sweep_radius=r);
        diff = (np.array(v) - np.array(self.mc.shape_param['A'].vertices)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        diff = (np.array(f) - np.array(self.mc.shape_param['A'].faces)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        self.assertAlmostEqual(self.mc.shape_param['A'].sweep_radius, r);
        del self.mc
        del self.system
        context.initialize()

        # convex_polyhedron
        v = [(1,1,1), (1,-1,1), (-1,-1,1), (-1,1,1),(1,1,-1), (1,-1,-1), (-1,-1,-1), (-1,1,-1)];
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.convex_polyhedron(seed=2398, d=0.1, a=0.1)
        self.mc.shape_param.set('A', vertices=v)
        diff = (np.array(v) - np.array(self.mc.shape_param['A'].vertices)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        del self.mc
        del self.system
        context.initialize()

        # convex_spheropolyhedron
        v = [(1,1,1), (1,-1,1), (-1,-1,1), (-1,1,1),(1,1,-1), (1,-1,-1), (-1,-1,-1), (-1,1,-1)];
        r = 0.1234;
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.convex_spheropolyhedron(seed=2398, d=0.1, a=0.1)
        self.mc.shape_param.set('A', vertices=v, sweep_radius=r)
        diff = (np.array(v) - np.array(self.mc.shape_param['A'].vertices)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        self.assertAlmostEqual(self.mc.shape_param['A'].sweep_radius, r);
        del self.mc
        del self.system
        context.initialize()

        # faceted_sphere
        v =  [(-1,-1,-1),(-1,-1,1),(-1,1,-1),(-1,1,1),(1,-1,-1),(1,-1,1),(1,1,-1),(1,1,1)];
        offs = [-1]*6;
        norms =[(-1,0,0), (1,0,0), (0,1,0,), (0,-1,0), (0,0,1), (0,0,-1)];
        diam = 2;
        orig = (0,0,0);
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.faceted_sphere(seed=10);
        self.mc.shape_param.set('A', normals=norms,
                                    offsets=offs,
                                    vertices=v,
                                    diameter=diam,
                                    origin=orig);

        diff = (np.array(v) - np.array(self.mc.shape_param['A'].vertices)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        diff = (np.array(offs) - np.array(self.mc.shape_param['A'].offsets)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        diff = (np.array(norms) - np.array(self.mc.shape_param['A'].normals)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        diff = (np.array(orig) - np.array(self.mc.shape_param['A'].origin)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        self.assertAlmostEqual(self.mc.shape_param['A'].diameter, diam);
        del self.mc
        del self.system
        context.initialize()

        # sphinx
        # GPU Sphinx is not built on most the time
        if not hoomd.context.exec_conf.isCUDAEnabled():
            cent = [(0,0,0), (0,0,1.15), (0,0,-1.15)]
            diams = [2,-2.2,-2.2];
            self.system = init.read_snapshot(self.snapshot)
            self.mc = hpmc.integrate.sphinx(seed=10);
            self.mc.shape_param.set('A', diameters=diams, centers=cent);
            diff = (np.array(cent) - np.array(self.mc.shape_param['A'].centers)).flatten();
            self.assertAlmostEqual(diff.dot(diff), 0);
            diff = (np.array(diams) - np.array(self.mc.shape_param['A'].diameters)).flatten();
            self.assertAlmostEqual(diff.dot(diff), 0);
            del self.mc
            del self.system
            context.initialize()

        # sphere_union
        cent = [(0,0,0), (0,0,1.15), (0,0,-1.15)]
        diams = [2,2.2,1.75];
        self.system = init.read_snapshot(self.snapshot)
        self.mc = hpmc.integrate.sphere_union(seed=10);
        self.mc.shape_param.set('A', diameters=diams, centers=cent);
        diff = (np.array(cent) - np.array(self.mc.shape_param['A'].centers)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        for i,m in enumerate(self.mc.shape_param['A'].members):
            self.assertAlmostEqual(m.diameter, diams[i]);
        del self.mc
        del self.system
        del self.snapshot
        context.initialize()
Exemplo n.º 25
0
    def test_lattice(self):
        N=128;
        latticeq = [[1,0,0,0] for i in range(N)];
        k = 10.0;
        kalt = np.exp(15);
        dx2d = np.array([0.1, 0.1, 0.0]);
        theta = np.pi/6;
        eng_check2d = round(N*k*dx2d.dot(dx2d), 3);
        dx3d = np.array([0.1, 0.1, 0.1]);
        eng_check3d = round(N*k*dx3d.dot(dx3d), 3);

        dq = np.array([np.cos(theta/2.0),0.,0.,np.sin(theta/2)])
        ddq = np.array([1.,0.,0.,0.]) - dq;
        eng_checkq = round(10.0*k*N*ddq.dot(ddq), 3);

        hexuc = hoomd.lattice.hex(a=2.0);
        self.system = init.read_snapshot(hexuc.get_snapshot());
        self.system.replicate(nx=8, ny=8, nz=1);

        self.snapshot2d = self.system.take_snapshot(particles=True); #data.make_snapshot(N=N, box=data.boxdim(L=L, dimensions=3), particle_types=['A'])
        lattice2d = [];
        if hoomd.comm.get_rank() == 0:
            lattice2d = self.snapshot2d.particles.position[:];

        self.snapshot2d_s = data.make_snapshot(N=N, box=self.system.box, particle_types=['A']);
        if hoomd.comm.get_rank() == 0:
            self.snapshot2d_s.particles.position[:] = self.snapshot2d.particles.position[:]+dx2d;
            self.snapshot2d_s.particles.orientation[:] = np.array([dq for _ in range(N)]);
        del self.system
        context.initialize();

        bccuc = hoomd.lattice.bcc(a=2.0);
        self.system = init.read_snapshot(bccuc.get_snapshot());
        self.system.replicate(nx=4, ny=4, nz=4);
        self.snapshot3d = self.system.take_snapshot(particles=True); #data.make_snapshot(N=N, box=data.boxdim(L=L, dimensions=3), particle_types=['A'])
        lattice3d = [];
        if hoomd.comm.get_rank() == 0:
            lattice3d = self.snapshot3d.particles.position[:];
        self.snapshot3d_s = data.make_snapshot(N=N, box=self.system.box, particle_types=['A']);
        if hoomd.comm.get_rank() == 0:
            self.snapshot3d_s.particles.position[:] = self.snapshot3d.particles.position[:]+dx3d;
            self.snapshot3d_s.particles.orientation[:] = np.array([dq for _ in range(N)]);
        del self.system
        context.initialize();

        # sphere
        print("****************************************")
        print("*               sphere                 *")
        print("****************************************")
        # d = 0.0014284726343172743, p = 0.20123046875
        uein = 1.5 # kT
        diam = 1.0;
        self.system = init.read_snapshot(self.snapshot3d)
        self.mc = hpmc.integrate.sphere(seed=2398, d=0.0)
        self.mc.shape_param.set('A', diameter=diam)
        self.run_test(latticep=lattice3d, latticeq=[], k=k, kalt=kalt, q=0, qalt=0, uein=1.5, snapshot_s=self.snapshot3d_s, eng_check=eng_check3d, d=0.001428 );
        self.tear_down()

        # ellipsoid
        print("****************************************")
        print("*              ellipsoid               *")
        print("****************************************")
        # a = 0.00038920117896296716, p = 0.2035860456051452
        # d = 0.0014225507698958867, p = 0.19295361127422195
        a = 0.5;
        b = 0.54;
        c = 0.35;
        uein = 3.0 # kT
        self.system = init.read_snapshot(self.snapshot3d)
        self.mc = hpmc.integrate.ellipsoid(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', a=a, b=b, c=c)
        self.run_test(latticep=lattice3d, latticeq=latticeq, k=k, kalt=kalt, q=k*10.0, qalt=kalt*10.0, uein=3.0, snapshot_s=self.snapshot3d_s, eng_check=(eng_check3d+eng_checkq), a = 0.000389, d = 0.001423);
        self.tear_down()

        # convex_polygon
        print("****************************************")
        print("*           convex_polygon             *")
        print("****************************************")
        # a = 0.001957745443687172, p = 0.19863574351978172
        # d = 0.0017185407622231329, p = 0.2004306126443531
        self.system = init.read_snapshot(self.snapshot2d)
        v = 0.33*np.array([(-1,-1), (1,-1), (1,1), (-1,1)]);
        self.mc = hpmc.integrate.convex_polygon(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', vertices=v)
        self.run_test(latticep=lattice2d, latticeq=latticeq, k=k, kalt=kalt, q=k*10.0, qalt=kalt*10.0, uein=1.5, snapshot_s=self.snapshot2d_s, eng_check=(eng_check2d+eng_checkq), a = 0.001958, d = 0.001719);
        self.tear_down()


        # convex_spheropolygon
        print("****************************************")
        print("*        convex_spheropolygon          *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot2d)
        v = 0.33*np.array([(-1,-1), (1,-1), (1,1), (-1,1)]);
        r = 0.1234;
        self.mc = hpmc.integrate.convex_spheropolygon(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', vertices=v, sweep_radius=r)
        diff = (np.array(v) - np.array(self.mc.shape_param['A'].vertices)).flatten();
        self.run_test(latticep=lattice2d, latticeq=latticeq, k=k, kalt=kalt, q=k*10.0, qalt=kalt*10.0, uein=None, snapshot_s=self.snapshot2d_s, eng_check=(eng_check2d+eng_checkq));
        self.tear_down()

        #simple_polygon
        print("****************************************")
        print("*           simple_polygon             *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot2d)
        v = 0.33*np.array([(-1,-1), (1,-1), (1,1), (-1,1)]);
        self.mc = hpmc.integrate.simple_polygon(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', vertices=v)
        self.run_test(latticep=lattice2d, latticeq=latticeq, k=k, kalt=kalt, q=k*10.0, qalt=kalt*10.0, uein=None, snapshot_s=self.snapshot2d_s, eng_check=(eng_check2d+eng_checkq));
        self.tear_down()

        # polyhedron
        print("****************************************")
        print("*             polyhedron               *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot3d)
        v = 0.33*np.array([(-0.5, -0.5, -0.5), (-0.5, -0.5, 0.5), (-0.5, 0.5, -0.5), (-0.5, 0.5, 0.5), (0.5, -0.5, -0.5), (0.5, -0.5, 0.5), (0.5, 0.5, -0.5), (0.5, 0.5, 0.5)]);
        f = [(7, 3, 1, 5), (7, 5, 4, 6), (7, 6, 2, 3), (3, 2, 0, 1), (0, 2, 6, 4), (1, 0, 4, 5)];
        r = 0.0;
        self.mc = hpmc.integrate.polyhedron(seed=10);
        self.mc.shape_param.set('A', vertices=v, faces =f, sweep_radius=r);
        diff = (np.array(v) - np.array(self.mc.shape_param['A'].vertices)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        diff = (np.array(f) - np.array(self.mc.shape_param['A'].faces)).flatten();
        self.assertAlmostEqual(diff.dot(diff), 0);
        self.assertAlmostEqual(self.mc.shape_param['A'].sweep_radius, r);
        del self.mc
        del self.system
        context.initialize()

        # convex_polyhedron
        print("****************************************")
        print("*          convex_polyhedron           *")
        print("****************************************")
        #a = 0.00038920117896296716, p = 0.2035860456051452
        #d = 0.0014225507698958867, p = 0.19295361127422195
        self.system = init.read_snapshot(self.snapshot3d)
        v = 0.33*np.array([(1,1,1), (1,-1,1), (-1,-1,1), (-1,1,1),(1,1,-1), (1,-1,-1), (-1,-1,-1), (-1,1,-1)]);
        self.mc = hpmc.integrate.convex_polyhedron(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', vertices=v)
        self.run_test(latticep=lattice3d, latticeq=latticeq, k=k, kalt=kalt, q=k*10.0, qalt=kalt*10.0, uein=3.0, snapshot_s=self.snapshot3d_s, eng_check=(eng_check3d+eng_checkq), a = 0.0003892, d = 0.00142255);
        self.tear_down()

        # convex_spheropolyhedron
        print("****************************************")
        print("*       convex_spheropolyhedron        *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot3d)
        v = 0.33*np.array([(1,1,1), (1,-1,1), (-1,-1,1), (-1,1,1),(1,1,-1), (1,-1,-1), (-1,-1,-1), (-1,1,-1)]);
        r = 0.1234;
        self.mc = hpmc.integrate.convex_spheropolyhedron(seed=2398, d=0.0, a=0.0)
        self.mc.shape_param.set('A', vertices=v, sweep_radius=r)
        self.run_test(latticep=lattice3d, latticeq=latticeq, k=k, kalt=kalt, q=k*10.0, qalt=kalt*10.0, uein=None, snapshot_s=self.snapshot3d_s, eng_check=(eng_check3d+eng_checkq));
        self.tear_down()

        # faceted_sphere
        print("****************************************")
        print("*            faceted_sphere            *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot3d)
        v =  0.33*np.array([(-1,-1,-1),(-1,-1,1),(-1,1,-1),(-1,1,1),(1,-1,-1),(1,-1,1),(1,1,-1),(1,1,1)]);
        offs = [-1]*6;
        norms =[(-1,0,0), (1,0,0), (0,1,0,), (0,-1,0), (0,0,1), (0,0,-1)];
        diam = 1.0;
        orig = (0,0,0);
        self.mc = hpmc.integrate.faceted_sphere(seed=10, d=0.0, a=0.0);
        self.mc.shape_param.set('A', normals=norms,
                                    offsets=offs,
                                    vertices=v,
                                    diameter=diam,
                                    origin=orig);
        self.run_test(latticep=lattice3d, latticeq=latticeq, k=k, kalt=kalt, q=k*10.0, qalt=kalt*10.0, uein=None, snapshot_s=self.snapshot3d_s, eng_check=(eng_check3d+eng_checkq));
        self.tear_down()

        # sphinx
        print("****************************************")
        print("*               sphinx                 *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot3d)
        cent = [(0,0,0), (0,0,1.15), (0,0,-1.15)]
        diams = [1,-1.2,-1.2];
        self.mc = hpmc.integrate.sphinx(seed=10, d=0.0, a=0.0);
        self.mc.shape_param.set('A', diameters=diams, centers=cent);
        self.run_test(latticep=lattice3d, latticeq=latticeq, k=k, kalt=kalt, q=k*10.0, qalt=kalt*10.0, uein=None, snapshot_s=self.snapshot3d_s, eng_check=(eng_check3d+eng_checkq));
        self.tear_down()

        # sphere_union
        print("****************************************")
        print("*            sphere_union              *")
        print("****************************************")

        self.system = init.read_snapshot(self.snapshot3d)
        cent = [(0,0,0), (0,0,0.15), (0,0,-0.15)]
        diams = [1,1,1];
        self.mc = hpmc.integrate.sphere_union(seed=10, d=0.0, a=0.0);
        self.mc.shape_param.set('A', diameters=diams, centers=cent);
        self.run_test(latticep=lattice3d, latticeq=latticeq, k=k, kalt=kalt, q=k*10.0, qalt=kalt*10.0, uein=None, snapshot_s=self.snapshot3d_s, eng_check=(eng_check3d+eng_checkq));
        self.tear_down()
Exemplo n.º 26
0
 def tear_down(self):
     del self.gsd
     del self.mc
     del self.system
     context.initialize()
Exemplo n.º 27
0
            for name, shapedef in frame.shapedef.items():
                shapedef.color = None
        self.assertEqual(frame0, frame1)

    def test_hpmc_dialect(self):
        self.read_write_injavis(garnett.samples.POS_HPMC)

    def test_incsim_dialect(self):
        self.read_write_injavis(garnett.samples.POS_INCSIM)

    def test_monotype_dialect(self):
        self.read_write_injavis(garnett.samples.POS_MONOTYPE)

    def test_injavis_dialect(self):
        self.read_write_injavis(garnett.samples.POS_INJAVIS)

    def test_hpmc_dialect_2d(self):
        self.read_write_injavis(garnett.samples.POS_HPMC_2D)

    def test_incsim_dialect_2d(self):
        self.read_write_injavis(garnett.samples.POS_INCSIM_2D)

    def test_monotype_dialect_2d(self):
        self.read_write_injavis(garnett.samples.POS_MONOTYPE_2D)


if __name__ == '__main__':
    context.initialize("--mode=cpu")
    hoomd.option.set_notice_level(0)
    unittest.main()