def makeLaMnO3(): from pyobjcryst.crystal import Crystal from pyobjcryst.atom import Atom from pyobjcryst.scatteringpower import ScatteringPowerAtom pi = numpy.pi # It appears that ObjCryst only supports standard symbols crystal = Crystal(5.486341, 5.619215, 7.628206, "P b n m") crystal.SetName("LaMnO3") # La1 sp = ScatteringPowerAtom("La1", "La") sp.SetBiso(8 * pi * pi * 0.003) atom = Atom(0.996096, 0.0321494, 0.25, "La1", sp) crystal.AddScatteringPower(sp) crystal.AddScatterer(atom) # Mn1 sp = ScatteringPowerAtom("Mn1", "Mn") sp.SetBiso(8 * pi * pi * 0.003) atom = Atom(0, 0.5, 0, "Mn1", sp) crystal.AddScatteringPower(sp) crystal.AddScatterer(atom) # O1 sp = ScatteringPowerAtom("O1", "O") sp.SetBiso(8 * pi * pi * 0.003) atom = Atom(0.0595746, 0.496164, 0.25, "O1", sp) crystal.AddScatteringPower(sp) crystal.AddScatterer(atom) # O2 sp = ScatteringPowerAtom("O2", "O") sp.SetBiso(8 * pi * pi * 0.003) atom = Atom(0.720052, 0.289387, 0.0311126, "O2", sp) crystal.AddScatteringPower(sp) crystal.AddScatterer(atom) return crystal
def makeLaMnO3(): crystal = Crystal(5.486341, 5.619215, 7.628206, "P b n m") crystal.SetName("LaMnO3") # La1 sp = ScatteringPowerAtom("La1", "La") sp.SetBiso(8*pi*pi*0.003) atom = Atom(0.996096, 0.0321494, 0.25, "La1", sp) crystal.AddScatteringPower(sp) crystal.AddScatterer(atom) # Mn1 sp = ScatteringPowerAtom("Mn1", "Mn") sp.SetBiso(8*pi*pi*0.003) atom = Atom(0, 0.5, 0, "Mn1", sp) crystal.AddScatteringPower(sp) crystal.AddScatterer(atom) # O1 sp = ScatteringPowerAtom("O1", "O") sp.SetBiso(8*pi*pi*0.003) atom = Atom(0.0595746, 0.496164, 0.25, "O1", sp) crystal.AddScatteringPower(sp) crystal.AddScatterer(atom) # O2 sp = ScatteringPowerAtom("O2", "O") sp.SetBiso(8*pi*pi*0.003) atom = Atom(0.720052, 0.289387, 0.0311126, "O2", sp) crystal.AddScatteringPower(sp) crystal.AddScatterer(atom) return crystal
def testDummyAtom(self): """Test dummy atoms.""" c = makeCrystal(*makeScatterer()) c.AddScatterer(Atom(0, 0, 0, "dummy", None)) d = c.GetScatterer("dummy") self.assertTrue(d.GetScatteringPower() is None) return
def makeScatterer(): sp = ScatteringPowerAtom("Ni", "Ni") sp.SetBiso(8*pi*pi*0.003) sp.B11 = 8*pi*pi*0.003 sp.SetBij(2, 2, 8*pi*pi*0.003) sp.SetBij(3, 3, 8*pi*pi*0.003) atom = Atom(0, 0, 0, "Ni", sp) print(sp.B11) return sp, atom
def makeScattererAnisotropic(): sp = ScatteringPowerAtom("Ni", "Ni") sp.B11 = sp.B22 = sp.B33 = 8*pi*pi*0.003 sp.B12 = sp.B13 = sp.B23 = 0 atom = Atom(0, 0, 0, "Ni", sp) return sp, atom
def makeScatterer(): sp = ScatteringPowerAtom("Ni", "Ni") sp.SetBiso(8*pi*pi*0.003) atom = Atom(0, 0, 0, "Ni", sp) return sp, atom