Beispiel #1
0
 def test_fromComposition(self):
     """check SFAverage.fromComposition()
     """
     sfavg1 = SFAverage.fromComposition({'Na' : 1, 'Cl' : 1}, self.sftx)
     fm = ['Na', 0.25, 'Cl', 0.75, 'Cl', 0.25, 'Na', 0.5, 'Na', 0.25]
     smblcnts = zip(fm[0::2], fm[1::2])
     sfavg2 = SFAverage.fromComposition(smblcnts, self.sftx)
     self.assertEqual(sfavg1.f1sum, sfavg2.f1sum)
     self.assertEqual(sfavg1.f2sum, sfavg2.f2sum)
     self.assertEqual(sfavg1.count, sfavg2.count)
     sfempty = SFAverage.fromComposition([], self.sftx)
     self.assertEqual(0, sfempty.f1avg)
     self.assertEqual(0, sfempty.f2avg)
     self.assertEqual(0, sfempty.count)
     return
Beispiel #2
0
def calc_fs_from_comps(*comps: Formula, qa=0) -> List[float]:
    """Calculate the compositional average scattering factor from the compositions."""
    def to_dict(f: Formula):
        dct = {}
        c = f.composition()
        for tup in c:
            dct[tup[0]] = tup[1]
        return dct

    return [
        SFAverage.fromComposition(to_dict(comp), XTB, qa).f1avg
        for comp in comps
    ]
Beispiel #3
0
def calc_fs_from_comps(*comps: Dict[str, int], qa=0) -> List[float]:
    """Calculate the compositional average scattering factor from the compositions."""
    return [SFAverage.fromComposition(comp, XTB, qa).f1avg for comp in comps]