def __init__( self, mc, ln_gamma, q_factor, r0, q0, drift_period, symmetry = [] ): import math import numpy hoomd.util.print_status_line(); # initialize base class _compute.__init__(self); if type(r0) == numpy.ndarray: self.lattice_positions = r0.tolist(); else: self.lattice_positions = list(r0); if type(q0) == numpy.ndarray: self.lattice_orientations = q0.tolist(); else: self.lattice_orientations = list(q0); self.mc = mc; self.q_factor = q_factor; self.trans_spring_const = math.exp(ln_gamma); self.rotat_spring_const = self.q_factor*self.trans_spring_const; self.lattice = lattice_field( self.mc, position = self.lattice_positions, orientation = self.lattice_orientations, k = self.trans_spring_const, q = self.rotat_spring_const, symmetry=symmetry); self.remove_drift = hoomd.hpmc.update.remove_drift(self.mc, self.lattice, period=drift_period);
def __init__(self, mc, ln_gamma, q_factor, r0, q0, drift_period, symmetry=[]): import math import numpy hoomd.util.print_status_line() # initialize base class _compute.__init__(self) if type(r0) == numpy.ndarray: self.lattice_positions = r0.tolist() else: self.lattice_positions = list(r0) if type(q0) == numpy.ndarray: self.lattice_orientations = q0.tolist() else: self.lattice_orientations = list(q0) self.mc = mc self.q_factor = q_factor self.trans_spring_const = math.exp(ln_gamma) self.rotat_spring_const = self.q_factor * self.trans_spring_const self.lattice = lattice_field(self.mc, position=self.lattice_positions, orientation=self.lattice_orientations, k=self.trans_spring_const, q=self.rotat_spring_const, symmetry=symmetry) self.remove_drift = hoomd.hpmc.update.remove_drift(self.mc, self.lattice, period=drift_period)
def __init__(self): _compute.__init__(self); self.cpp_compute = None;
def __init__(self): _compute.__init__(self) self.cpp_compute = None
def __init__(self, mc, seed, suffix='', test_type=None, nsample=None): # initialize base class _compute.__init__(self); # create the c++ mirror class cl = _hoomd.CellList(hoomd.context.current.system_definition); hoomd.context.current.system.addCompute(cl, "auto_cl3") cls = None; if not hoomd.context.current.device.cpp_exec_conf.isCUDAEnabled(): if isinstance(mc, integrate.sphere): cls = _hpmc.ComputeFreeVolumeSphere; elif isinstance(mc, integrate.convex_polygon): cls = _hpmc.ComputeFreeVolumeConvexPolygon; elif isinstance(mc, integrate.simple_polygon): cls = _hpmc.ComputeFreeVolumeSimplePolygon; elif isinstance(mc, integrate.convex_polyhedron): cls = _hpmc.ComputeFreeVolumeConvexPolyhedron; elif isinstance(mc, integrate.convex_spheropolyhedron): cls = _hpmc.ComputeFreeVolumeSpheropolyhedron; elif isinstance(mc, integrate.ellipsoid): cls = _hpmc.ComputeFreeVolumeEllipsoid; elif isinstance(mc, integrate.convex_spheropolygon): cls =_hpmc.ComputeFreeVolumeSpheropolygon; elif isinstance(mc, integrate.faceted_ellipsoid): cls =_hpmc.ComputeFreeVolumeFacetedEllipsoid; elif isinstance(mc, integrate.polyhedron): cls =_hpmc.ComputeFreeVolumePolyhedron; elif isinstance(mc, integrate.sphinx): cls =_hpmc.ComputeFreeVolumeSphinx; elif isinstance(mc, integrate.convex_spheropolyhedron_union): cls = _hpmc.ComputeFreeVolumeConvexPolyhedronUnion elif isinstance(mc, integrate.faceted_ellipsoid_union): cls = _hpmc.ComputeFreeVolumeFacetedEllipsoidUnion elif isinstance(mc, integrate.sphere_union): cls = _hpmc.ComputeFreeVolumeSphereUnion; else: hoomd.context.current.device.cpp_msg.error("compute.free_volume: Unsupported integrator.\n"); raise RuntimeError("Error initializing compute.free_volume"); else: if isinstance(mc, integrate.sphere): cls = _hpmc.ComputeFreeVolumeGPUSphere; elif isinstance(mc, integrate.convex_polygon): cls = _hpmc.ComputeFreeVolumeGPUConvexPolygon; elif isinstance(mc, integrate.simple_polygon): cls = _hpmc.ComputeFreeVolumeGPUSimplePolygon; elif isinstance(mc, integrate.convex_polyhedron): cls = _hpmc.ComputeFreeVolumeGPUConvexPolyhedron; elif isinstance(mc, integrate.convex_spheropolyhedron): cls = _hpmc.ComputeFreeVolumeGPUSpheropolyhedron; elif isinstance(mc, integrate.ellipsoid): cls = _hpmc.ComputeFreeVolumeGPUEllipsoid; elif isinstance(mc, integrate.convex_spheropolygon): cls =_hpmc.ComputeFreeVolumeGPUSpheropolygon; elif isinstance(mc, integrate.faceted_ellipsoid): cls =_hpmc.ComputeFreeVolumeGPUFacetedEllipsoid; elif isinstance(mc, integrate.polyhedron): cls =_hpmc.ComputeFreeVolumeGPUPolyhedron; elif isinstance(mc, integrate.sphinx): cls =_hpmc.ComputeFreeVolumeGPUSphinx; elif isinstance(mc, integrate.sphere_union): cls = _hpmc.ComputeFreeVolumeGPUSphereUnion; elif isinstance(mc, integrate.faceted_ellipsoid_union): cls = _hpmc.ComputeFreeVolumeGPUFacetedEllipsoidUnion; elif isinstance(mc, integrate.convex_spheropolyhedron_union): cls = _hpmc.ComputeFreeVolumeGPUConvexPolyhedronUnion; else: hoomd.context.current.device.cpp_msg.error("compute.free_volume: Unsupported integrator.\n"); raise RuntimeError("Error initializing compute.free_volume"); if suffix is not '': suffix = '_' + suffix self.cpp_compute = cls(hoomd.context.current.system_definition, mc.cpp_integrator, cl, seed, suffix) if test_type is not None: itype = hoomd.context.current.system_definition.getParticleData().getTypeByName(test_type) self.cpp_compute.setTestParticleType(itype) if nsample is not None: self.cpp_compute.setNumSamples(int(nsample)) hoomd.context.current.system.addCompute(self.cpp_compute, self.compute_name) self.enabled = True
def __init__(self, mc, seed, suffix='', test_type=None, nsample=None): hoomd.util.print_status_line(); # initialize base class _compute.__init__(self); # create the c++ mirror class cl = _hoomd.CellList(hoomd.context.current.system_definition); hoomd.context.current.system.addCompute(cl, "auto_cl3") cls = None; if not hoomd.context.exec_conf.isCUDAEnabled(): if isinstance(mc, integrate.sphere): cls = _hpmc.ComputeFreeVolumeSphere; elif isinstance(mc, integrate.convex_polygon): cls = _hpmc.ComputeFreeVolumeConvexPolygon; elif isinstance(mc, integrate.simple_polygon): cls = _hpmc.ComputeFreeVolumeSimplePolygon; elif isinstance(mc, integrate.convex_polyhedron): cls = _hpmc.ComputeFreeVolumeConvexPolyhedron; elif isinstance(mc, integrate.convex_spheropolyhedron): cls = _hpmc.ComputeFreeVolumeSpheropolyhedron; elif isinstance(mc, integrate.ellipsoid): cls = _hpmc.ComputeFreeVolumeEllipsoid; elif isinstance(mc, integrate.convex_spheropolygon): cls =_hpmc.ComputeFreeVolumeSpheropolygon; elif isinstance(mc, integrate.faceted_sphere): cls =_hpmc.ComputeFreeVolumeFacetedSphere; elif isinstance(mc, integrate.polyhedron): cls =_hpmc.ComputeFreeVolumePolyhedron; elif isinstance(mc, integrate.sphinx): cls =_hpmc.ComputeFreeVolumeSphinx; elif isinstance(mc, integrate.sphere_union): cls = integrate._get_sized_entry('ComputeFreeVolumeSphereUnion', mc.capacity); else: hoomd.context.msg.error("compute.free_volume: Unsupported integrator.\n"); raise RuntimeError("Error initializing compute.free_volume"); else: if isinstance(mc, integrate.sphere): cls = _hpmc.ComputeFreeVolumeGPUSphere; elif isinstance(mc, integrate.convex_polygon): cls = _hpmc.ComputeFreeVolumeGPUConvexPolygon; elif isinstance(mc, integrate.simple_polygon): cls = _hpmc.ComputeFreeVolumeGPUSimplePolygon; elif isinstance(mc, integrate.convex_polyhedron): cls = _hpmc.ComputeFreeVolumeGPUConvexPolyhedron; elif isinstance(mc, integrate.convex_spheropolyhedron): cls = _hpmc.ComputeFreeVolumeGPUSpheropolyhedron; elif isinstance(mc, integrate.ellipsoid): cls = _hpmc.ComputeFreeVolumeGPUEllipsoid; elif isinstance(mc, integrate.convex_spheropolygon): cls =_hpmc.ComputeFreeVolumeGPUSpheropolygon; elif isinstance(mc, integrate.faceted_sphere): cls =_hpmc.ComputeFreeVolumeGPUFacetedSphere; elif isinstance(mc, integrate.polyhedron): cls =_hpmc.ComputeFreeVolumeGPUPolyhedron; elif isinstance(mc, integrate.sphinx): cls =_hpmc.ComputeFreeVolumeGPUSphinx; elif isinstance(mc, integrate.sphere_union): cls = integrate._get_sized_entry('ComputeFreeVolumeGPUSphereUnion', mc.capacity); else: hoomd.context.msg.error("compute.free_volume: Unsupported integrator.\n"); raise RuntimeError("Error initializing compute.free_volume"); if suffix is not '': suffix = '_' + suffix self.cpp_compute = cls(hoomd.context.current.system_definition, mc.cpp_integrator, cl, seed, suffix) if test_type is not None: itype = hoomd.context.current.system_definition.getParticleData().getTypeByName(test_type) self.cpp_compute.setTestParticleType(itype) if nsample is not None: self.cpp_compute.setNumSamples(int(nsample)) hoomd.context.current.system.addCompute(self.cpp_compute, self.compute_name) self.enabled = True