def get_compare_exact(self, **kwargs): if self.pot.periodic: permlist = self.get_permlist() boxlengths = np.ones(3) * self.pot.boxl measure = MeasurePeriodic(boxlengths, permlist) return ExactMatchPeriodic(measure, accuracy=.1) else: return BLJCluster.get_compare_exact(self, **kwargs)
def __init__(self, natoms, boxvec, rho=2., r0=1., A=1., rcut=None): super(MorseBulk, self).__init__(natoms, rho=rho, r0=r0, A=A, rcut=rcut) self.boxvec = boxvec self.periodic = True self.params.double_ended_connect.local_connect_params.NEBparams.interpolator = InterpolateLinearMeasure( MeasurePeriodic(self.boxvec))
def __init__(self, natoms, boxvec, ntypeA="default", **potential_kwargs): super(BLJBulk, self).__init__(natoms, ntypeA=ntypeA, **potential_kwargs) self.boxvec = np.array(boxvec) self.periodic = True self.potential_kwargs["boxvec"] = self.boxvec self.params.double_ended_connect.local_connect_params.NEBparams.interpolator = InterpolateLinearMeasure( MeasurePeriodic(self.boxvec))
def setUp(self): self.natoms = 100 rho = .5 boxl = (float(self.natoms) / rho)**(1. / 3) boxlengths = np.ones(3) * boxl + np.random.rand(3) * .1 self.permlist = self.get_permlist() self.measure = MeasurePeriodic(boxlengths, self.permlist) self.x1 = self.get_random_configuration() self.x2diff = self.get_random_configuration() self.x2same = self.randomly_permute(self.x1.copy()) self.exact_match = ExactMatchPeriodic(self.measure, accuracy=1e-5)
def __init__(self, radii, boxvec, power=2): super(SoftSphereSystem, self).__init__(self) self.radii = np.array(radii) self.natoms = self.radii.size self.boxvec = np.array(boxvec) self.periodic = True self.potential_kwargs = dict() self.power = power self.eps = 1. self.set_params(self.params) self.params.double_ended_connect.local_connect_params.NEBparams.interpolator = InterpolateLinearMeasure( MeasurePeriodic(self.boxvec))
def setUp(self): self.nrigid = 5 self.boxl = np.array([5, 5, 5]) self.system = MorseBulk(self.nrigid, self.boxl) # self.mindist = self.system.get_mindist() self.transform = TransformPeriodic() self.measure = MeasurePeriodic(self.boxl, permlist=[]) self.exact_match = ExactMatchPeriodic(self.measure, accuracy=1e-5) self.mindist = MinDistBulk(self.boxl, self.measure) self.x1 = self.system.get_random_configuration() self.x2diff = self.system.get_random_configuration() self.x2same = self.x1.copy() self.x2trans = self.x1.copy() trans = np.random.random(3) * self.boxl self.transform.translate(self.x2trans, trans)
def test1(self): natoms = 10 L = 4. boxvec = np.ones(3) * L xi = np.random.uniform(0, L, 3 * natoms) xf = np.random.uniform(0, L, 3 * natoms) measure = MeasurePeriodic(boxvec) dist = measure.get_dist(xi, xf) int = InterpolateLinearMeasure(measure) for f in [0, .1, .2, .3, .8, .9, 1]: x3 = int(xi, xf, f) d2 = measure.get_dist(xi, x3) self.assertAlmostEqual(f * dist, d2)
def get_compare_exact(self): accuracy = self.params.database.accuracy measure = MeasurePeriodic(self.boxvec, self.get_permlist()) compare = ExactMatchPeriodic(measure, accuracy=accuracy) return compare
def get_compare_exact(self): accuracy = 1e-2 measure = MeasurePeriodic(self.boxvec, self.get_permlist()) compare = ExactMatchPeriodic(measure, accuracy=accuracy) return compare
def get_mindist(self): measure = MeasurePeriodic(self.boxvec, permlist=self.get_permlist()) return MinDistBulk(self.boxvec, measure)