Source code for pySAXS.models.ImogoliteSW

from model import Model
from pySAXS.LS.LSsca import Qlogspace
from pySAXS.LS.LSsca import Pcylmulti
import numpy
import os


[docs]class ImogoliteSW(Model): ''' class Imogolite SW by AT 09/02/2011 '''
[docs] def ImogoliteSWFunction(self,q,par): """ q array of q (A-1) par[0] Concentration en Ge par[1] Nombre d'Atome de Ge dans la circonference du tube par[2] ratio de Si dans la paroi par[2] Epaisseur de la paroi du tube par[3] Longueur du tube """ r=numpy.zeros(2) #conc en Ge en mol/cm-3 #par[0]=8e-5*0.5 hmaille=8.5 r[0]=hmaille/(2.0*numpy.sqrt(3.0)*numpy.sin(numpy.pi/par[1]))-1.7 r[1]=r[0]+par[3] rho=numpy.zeros(3) rhow=0.334 rho[0]=rhow rho[2]=rhow rho[1]=(par[1]*(86+par[2]*14+(1.0-par[2])*32)*2)/(numpy.pi*hmaille*(r[1]*r[1]-r[0]*r[0])) #print 'rayon interne =', r[0] #print 'rho paroi =',rho[1] rho=rho*1e24*0.282e-12 C=6.023e23*par[0]/((2.0*par[4]/hmaille)*par[1]*1000) return Pcylmulti(self.q,r,rho,par[4],C)
IntensityFunc=ImogoliteSWFunction q=Qlogspace(0.005,1.0,500) #q range(x scale) Arg=[.042,19,0.0,6.0,100.0] #list of defaults parameters Format=["%1.3e","%1.3e","%1.3e","%1.3e","%1.3e"] #list of c format istofit=[True,True,False,False,True] #list of boolean for fitting name="Specific: Imogolite Single Wall Si/Ge" #name of the model Author="Antoine Thill" Description = "Imodolite single wall variable thickness" Doc=["Si or Ge concentration (mol/l)",\ "Si or Ge in tube circumference ",\ "ratio of Si in the wall ",\ "Wall thickness (A)",\ "imogolite tube length (A)"] #list of description for parameters
if __name__=="__main__": ''' test code ''' modl=ImogoliteSW() #plot the model import Gnuplot gp=Gnuplot.Gnuplot() gp("set logscale xy") c=Gnuplot.Data(modl.q,modl.getIntensity(),with_='points') gp.plot(c) raw_input("enter")