def createKernel( self, **kwds ): Qrange = self._parse( kwds['Q-range'] ) Erange = self._parse( kwds['energy-range'] ) from mccomponents.sample import sqekernel return sqekernel( Qrange = Qrange, Erange = Erange)
def test1(self): 'SQEkernel' sqe = createSqe() gridsqe = ms.gridsqe( sqe ) sqekernel = ms.sqekernel( 1., 1., 1., SQE=gridsqe, Qrange=(0, 12.), Erange=(-50, 50) ) csqekernel = mh.scattererEngine( sqekernel ) ev = mcni.neutron( r = (-5,0,0), v = (3000,0,0) ) self.assertAlmostEqual( csqekernel.scattering_coefficient(ev), 1 ) self.assertAlmostEqual( csqekernel.absorption_coefficient(ev), 2200./3000. ) return
def createKernel(self, **kwds): Qrange = self._parse(kwds['Q-range']) Erange = self._parse(kwds['energy-range']) from mccomponents.sample import sqekernel return sqekernel(Qrange=Qrange, Erange=Erange)
sqehist = sqehist[(), (None, Emax)].copy() hh.dump(sqehist, 'mp-sqe-%d.h5' % mpi.rank) journal.debug("phonon").log("computed multiphonon sqe") from mccomponents import sample # grid sqe gsqe = sample.gridsqe(sqehist) # q and e range qrange = q[0]/units.angstrom, q[-1]/units.angstrom erange = e[0]*units.meV, sqehist.energy[-1]*units.meV # kernel sqekernel = sample.sqekernel( # XXX: we may want to support more options # XXX: like absorption_cross_section and scattering_cross_section # XXX: or absorption_coefficient ... SQE = gsqe, Qrange = qrange, Erange = erange, absorption_cross_section = kernel.absorption_xs, scattering_cross_section = kernel.scattering_xs, ) sqekernel.scatterer_origin = scatterer # return sqekernel.identify(self) def onLinearlyInterpolatedDispersionOnGrid(self, dispersion): natoms = dispersion.nAtoms Qaxes = dispersion.Qaxes eps_npyarr = dispersion.eps_npyarr E_npyarr = dispersion.E_npyarr return self.factory.linearlyinterpolateddispersion(
('energy', e, 'meV')], s) journal.debug("phonon").log("computed multiphonon sqe") from mccomponents import sample # grid sqe gsqe = sample.gridsqe(sqehist) # q and e range qrange = q[0]/units.angstrom, q[-1]/units.angstrom erange = e[0]*units.meV, e[-1]*units.meV # kernel sqekernel = sample.sqekernel( # XXX: we may want to support more options # XXX: like absorption_cross_section and scattering_cross_section # XXX: or absorption_coefficient ... SQE = gsqe, Qrange = qrange, Erange = erange, absorption_cross_section = kernel.absorption_xs, scattering_cross_section = kernel.scattering_xs, ) sqekernel.scatterer_origin = scatterer # return sqekernel.identify(self) def onLinearlyInterpolatedDispersionOnGrid(self, dispersion): natoms = dispersion.nAtoms Qaxes = dispersion.Qaxes eps_npyarr = dispersion.eps_npyarr E_npyarr = dispersion.E_npyarr return self.factory.linearlyinterpolateddispersion(