def test_pickling(self): '''check pickling and unpickling of BVSCalculator. ''' bvsc = BVSCalculator() bvsc.rmin = 0.1 bvsc.rmax = 12.3 bvsc.valenceprecision = 0.3e-4 spkl = pickle.dumps(bvsc) bvsc1 = pickle.loads(spkl) self.assertFalse(bvsc is bvsc1) for a in bvsc._namesOfDoubleAttributes(): self.assertEqual(getattr(bvsc, a), getattr(bvsc1, a)) self.assertRaises(RuntimeError, pickle_with_attr, bvsc, foo='bar') return
def test_pickling(self): '''check pickling and unpickling of BVSCalculator. ''' bvsc = BVSCalculator() bvsc.rmin = 0.1 bvsc.rmax = 12.3 bvsc.valenceprecision = 0.3e-4 bvsc.foobar = 'asdf' spkl = cPickle.dumps(bvsc) bvsc1 = cPickle.loads(spkl) self.failIf(bvsc is bvsc1) for a in bvsc._namesOfDoubleAttributes(): self.assertEqual(getattr(bvsc, a), getattr(bvsc1, a)) self.assertEqual('asdf', bvsc1.foobar) return
def test_pickling(self): """check pickling and unpickling of BVSCalculator. """ bvsc = BVSCalculator() bvsc.rmin = 0.1 bvsc.rmax = 12.3 bvsc.valenceprecision = 0.3e-4 bvsc.foobar = "asdf" spkl = cPickle.dumps(bvsc) bvsc1 = cPickle.loads(spkl) self.assertFalse(bvsc is bvsc1) for a in bvsc._namesOfDoubleAttributes(): self.assertEqual(getattr(bvsc, a), getattr(bvsc1, a)) self.assertEqual("asdf", bvsc1.foobar) return
vsim = bvsc(nacl) print('Calculate bond valence sums for NaCl "bvsc(nacl)"') print('expected "bvsc.valences":\n ', bvsc.valences) print('calculated "bvsc.value":\n ' , vsim) print('difference "bvsc.bvdiff":\n ', bvsc.bvdiff) print('root mean square difference "bvsc.bvrmsdiff":', bvsc.bvrmsdiff) print() # create new BVS calculator with a custom bond valence parameters bvsc2 = BVSCalculator() # Use alternate value for the Na+ Cl- bond valence parameters from # http://www.iucr.org/__data/assets/file/0018/59004/bvparm2011.cif # These parameters have 6A cutoff. bvsc2.bvparamtable.setCustom('Na', +1, 'Cl', -1, Ro=1.6833, B=0.608) bvsc2.rmax = 6 print("BVS in NaCl with alternate parameters:\n ", bvsc2(nacl)) print() # Lookup table of bond valence parameters can be used as separate object. from diffpy.srreal.bvparameterstable import BVParametersTable table = BVParametersTable() bp = table.lookup('Na+', 'Cl-') bp2 = table.lookup('Na', +1, 'Br', -1) print("Standard lookup of bond valence parameters:") print(" ", bp) print(" ", bp2) print() print("Handling of unknown or invalid ion pairs:")