def __init__(self, name, strups, idx): """Initialize name -- The name of this scatterer. strups -- The CCTBXCrystalParSet that contains the cctbx structure idx -- The index of the scatterer in the structure. """ ParameterSet.__init__(self, name) self.strups = strups self.idx = idx # x, y, z, occupancy self.addParameter( ParameterAdapter("x", None, self._xyzgetter(0), self._xyzsetter(0))) self.addParameter( ParameterAdapter("y", None, self._xyzgetter(1), self._xyzsetter(1))) self.addParameter( ParameterAdapter("z", None, self._xyzgetter(2), self._xyzsetter(2))) self.addParameter( ParameterAdapter("occupancy", None, self._getocc, self._setocc)) self.addParameter( ParameterAdapter("Uiso", None, self._getuiso, self._setuiso)) return
def addremovepars(pgen): pgen.addParameter( ParameterAdapter('fwhm', pgen._calc.peakwidthmodel, attr='width')) pgen.removeParameter(pgen.delta1) pgen.removeParameter(pgen.delta2) pgen.removeParameter(pgen.qbroad) return
def _setCalculator(self, calc): """Set the SrReal calulator instance. Setting the calculator creates Parameters from the variable attributes of the SrReal calculator. """ self._calc = calc for pname in self.__class__._parnames: self.addParameter(ParameterAdapter(pname, self._calc, attr=pname)) self.processMetaData() return
def __init__(self, strups): """Initialize strups -- The CCTBXCrystalParSet that contains the cctbx structure and the unit cell we're wrapper. """ ParameterSet.__init__(self, "unitcell") self.strups = strups self._latpars = list(self.strups.stru.unit_cell().parameters()) self.addParameter( ParameterAdapter("a", None, self._latgetter(0), self._latsetter(0))) self.addParameter( ParameterAdapter("b", None, self._latgetter(1), self._latsetter(1))) self.addParameter( ParameterAdapter("c", None, self._latgetter(2), self._latsetter(2))) self.addParameter( ParameterAdapter("alpha", None, self._latgetter(3), self._latsetter(3))) self.addParameter( ParameterAdapter("beta", None, self._latgetter(4), self._latsetter(4))) self.addParameter( ParameterAdapter("gamma", None, self._latgetter(5), self._latsetter(5))) return
def __init__(self, lattice): """Initialize lattice -- A diffpy.Structure.Lattice instance """ ParameterSet.__init__(self, "lattice") self.angunits = "deg" self.lattice = lattice l = lattice self.addParameter( ParameterAdapter("a", l, _latgetter("a"), _latsetter("a"))) self.addParameter( ParameterAdapter("b", l, _latgetter("b"), _latsetter("b"))) self.addParameter( ParameterAdapter("c", l, _latgetter("c"), _latsetter("c"))) self.addParameter( ParameterAdapter("alpha", l, _latgetter("alpha"), _latsetter("alpha"))) self.addParameter( ParameterAdapter("beta", l, _latgetter("beta"), _latsetter("beta"))) self.addParameter( ParameterAdapter("gamma", l, _latgetter("gamma"), _latsetter("gamma"))) # Other setup self.__repr__ = l.__repr__ return
def testWrapper(self): """Test the adapter. This adapts a Parameter to the Parameter interface. :) """ l = Parameter("l", 3.14) # Try Accessor adaptation la = ParameterAdapter("l", l, getter = Parameter.getValue, setter = Parameter.setValue) self.assertEqual(l.name, la.name) self.assertEqual(l.getValue(), la.getValue()) # Change the parameter l.setValue(2.3) self.assertEqual(l.getValue(), la.getValue()) # Change the adapter la.setValue(3.2) self.assertEqual(l.getValue(), la.getValue()) # Try Attribute adaptation la = ParameterAdapter("l", l, attr = "value") self.assertEqual(l.name, la.name) self.assertEqual("value", la.attr) self.assertEqual(l.getValue(), la.getValue()) # Change the parameter l.setValue(2.3) self.assertEqual(l.getValue(), la.getValue()) # Change the adapter la.setValue(3.2) self.assertEqual(l.getValue(), la.getValue()) return
def __init__(self, name, atom): """Initialize atom -- A diffpy.Structure.Atom instance """ ParameterSet.__init__(self, name) self.atom = atom a = atom # x, y, z, occupancy self.addParameter( ParameterAdapter("x", a, _xyzgetter(0), _xyzsetter(0))) self.addParameter( ParameterAdapter("y", a, _xyzgetter(1), _xyzsetter(1))) self.addParameter( ParameterAdapter("z", a, _xyzgetter(2), _xyzsetter(2))) occupancy = ParameterAdapter("occupancy", a, attr="occupancy") self.addParameter(occupancy) self.addParameter(ParameterProxy("occ", occupancy)) # U self.addParameter(ParameterAdapter("U11", a, attr="U11")) self.addParameter(ParameterAdapter("U22", a, attr="U22")) self.addParameter(ParameterAdapter("U33", a, attr="U33")) U12 = ParameterAdapter("U12", a, attr="U12") U21 = ParameterProxy("U21", U12) U13 = ParameterAdapter("U13", a, attr="U13") U31 = ParameterProxy("U31", U13) U23 = ParameterAdapter("U23", a, attr="U23") U32 = ParameterProxy("U32", U23) self.addParameter(U12) self.addParameter(U21) self.addParameter(U13) self.addParameter(U31) self.addParameter(U23) self.addParameter(U32) self.addParameter(ParameterAdapter("Uiso", a, attr="Uisoequiv")) # B self.addParameter(ParameterAdapter("B11", a, attr="B11")) self.addParameter(ParameterAdapter("B22", a, attr="B22")) self.addParameter(ParameterAdapter("B33", a, attr="B33")) B12 = ParameterAdapter("B12", a, attr="B12") B21 = ParameterProxy("B21", B12) B13 = ParameterAdapter("B13", a, attr="B13") B31 = ParameterProxy("B31", B13) B23 = ParameterAdapter("B23", a, attr="B23") B32 = ParameterProxy("B32", B23) self.addParameter(B12) self.addParameter(B21) self.addParameter(B13) self.addParameter(B31) self.addParameter(B23) self.addParameter(B32) self.addParameter(ParameterAdapter("Biso", a, attr="Bisoequiv")) # Other setup self.__repr__ = a.__repr__ return
def testWrapper(self): """Test the adapter. This adapts a Parameter to the Parameter interface. :) """ l = Parameter("l", 3.14) # Try Accessor adaptation la = ParameterAdapter("l", l, getter=Parameter.getValue, setter=Parameter.setValue) self.assertEqual(l.name, la.name) self.assertEqual(l.getValue(), la.getValue()) # Change the parameter l.setValue(2.3) self.assertEqual(l.getValue(), la.getValue()) # Change the adapter la.setValue(3.2) self.assertEqual(l.getValue(), la.getValue()) # Try Attribute adaptation la = ParameterAdapter("l", l, attr="value") self.assertEqual(l.name, la.name) self.assertEqual("value", la.attr) self.assertEqual(l.getValue(), la.getValue()) # Change the parameter l.setValue(2.3) self.assertEqual(l.getValue(), la.getValue()) # Change the adapter la.setValue(3.2) self.assertEqual(l.getValue(), la.getValue()) return