Example #1
0
    def testSphere(self):
        radius = 25
        # Calculate sphere cf from SphereModel
        from sans.models.SphereModel import SphereModel
        model = SphereModel()
        model.setParam("radius", radius)
        ff = cf.SASCF("sphere", model)
        r = numpy.arange(1, 60, 0.1, dtype = float)
        fr1 = ff(r)

        # Calculate sphere cf analytically
        fr2 = cf.sphericalCF(r, 2*radius)
        diff = fr1 - fr2
        res = numpy.dot(diff, diff)
        res /= numpy.dot(fr2, fr2)
        self.assertAlmostEqual(0, res, 4)
        return
Example #2
0
    'sldSolv': 1.0,
    'background': 0.0
}

from sans.models.SphereModel import SphereModel
from sans.models.dispersion_models import GaussianDispersion

oldsm = SphereModel()

qlist3 = numpy.asarray([0.001, 0.002])
print "run", oldsm.run(0.001), oldsm.run(0.002)
print "runXY", oldsm.runXY(0.001), oldsm.runXY(0.002)
print "evalDist", oldsm.evalDistribution(qlist3)

for k, v in sphere.items():
    oldsm.setParam(k, v)

gdisp = GaussianDispersion()
oldsm.set_dispersion('radius', gdisp)
for k, v in disp.items():
    oldsm.dispersion['radius'][k] = v
print "G run", oldsm.run(0.001), oldsm.run(0.002)
print "G runXY", oldsm.runXY(0.001), oldsm.runXY(0.002)
print "G evalDist", oldsm.evalDistribution(qlist3)

start = time.time()
print "calc old"
sys.stdout.flush()
Iq = oldsm.evalDistribution(q)
#Iq=oldsm.run(q)
dt = time.time() - start
Example #3
0
#import pdb; pdb.set_trace()
q = numpy.arange(1000,dtype='d')
disp = {'npts':10, 'width':0.1666666667, 'nsigmas':2}
sphere = {'scale':1.0, 'radius':60.0, 'sldSph': 2.0, 'sldSolv': 1.0, 'background': 0.0}

from sans.models.SphereModel import SphereModel
from sans.models.dispersion_models import GaussianDispersion
oldsm = SphereModel()

qlist3 = numpy.asarray([0.001, 0.002])
print "run", oldsm.run(0.001), oldsm.run(0.002)
print "runXY", oldsm.runXY(0.001), oldsm.runXY(0.002)
print "evalDist", oldsm.evalDistribution(qlist3)

for k,v in sphere.items(): oldsm.setParam(k,v)
  
gdisp = GaussianDispersion()
oldsm.set_dispersion('radius', gdisp)
for k,v in disp.items(): oldsm.dispersion['radius'][k] = v
print "G run", oldsm.run(0.001), oldsm.run(0.002)
print "G runXY", oldsm.runXY(0.001), oldsm.runXY(0.002)
print "G evalDist", oldsm.evalDistribution(qlist3)

start=time.time()
print "calc old"; sys.stdout.flush()
Iq=oldsm.evalDistribution(q)
#Iq=oldsm.run(q)
dt = time.time()-start
print "oldsm",dt,Iq[len(q)/2],len(q),disp['npts']
sys.stdout.flush()