Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
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:")