Changeset 89108a0 in sasview


Ignore:
Timestamp:
Dec 15, 2009 12:53:15 PM (14 years ago)
Author:
Gervaise Alina <gervyh@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
39e49a1
Parents:
383eeaa
Message:

commit unittest for sld calculator

Location:
calculator
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • calculator/sld_calculator.py

    rcfaf6d9 r89108a0  
    2525        self.length= 0.0 
    2626         
    27          
    28     def setValue(self, user_formula, density, wavelength=6.0): 
     27    def set_value(self, user_formula, density, wavelength=6.0): 
    2928        """ 
    3029            Store values of density and wavelength into the calculator  
     
    3332        self.wavelength = wavelength 
    3433        self.density    = float(density) 
    35         self.sld_formula = formula(str(user_formula), density= self.density) 
    36         print self.sld_formula.atoms 
    37         if self.density==0: 
    38             raise ZeroDivisionError,"integer division or modulo by zero for density" 
     34        self.sld_formula = formula(str(user_formula), density=self.density) 
     35        
     36        if self.density == 0: 
     37            raise ZeroDivisionError("integer division or modulo\ 
     38                         by zero for density") 
    3939            return  
    40         self.volume = (self.sld_formula.mass /self.density)/avogadro_number*1.0e24    
     40        self.volume = (self.sld_formula.mass / self.density) / avogadro_number\ 
     41                                *1.0e24    
    4142         
    4243         
    43     def calculateXRaySld(self, element): 
     44    def calculate_xray_sld(self, element): 
    4445        """ 
    4546            Get an element and compute the corresponding SLD for a given formula 
    4647            @param element:  elementis a string of existing atom 
    4748        """ 
    48         myformula = formula(str (element)) 
    49         if len(myformula.atoms)!=1: 
     49        myformula = formula(str(element)) 
     50        if len(myformula.atoms) != 1: 
    5051            return  
    51         element= myformula.atoms.keys()[0]  
     52        element = myformula.atoms.keys()[0]  
    5253        energy = xray_energy(element.K_alpha) 
    5354        atom = self.sld_formula.atoms 
    54         atom_reel, atom_im = xray_sld_from_atoms( atom, 
     55        atom_reel, atom_im = xray_sld_from_atoms(atom, 
    5556                                              density= self.density, 
    56                                               energy= energy ) 
     57                                              energy= energy) 
    5758        return atom_reel, atom_im 
    5859       
    5960         
    60     def calculateNSld(self): 
     61    def calculate_neutron_sld(self): 
    6162        """ 
    6263            Compute the neutron SLD for a given molecule 
     
    6566            @return inc: incoherence cross section 
    6667        """ 
    67         if self.density ==0: 
    68             raise ZeroDivisionError,"integer division or modulo by zero for density" 
     68        if self.density == 0: 
     69            raise ZeroDivisionError("integer division or modulo\ 
     70                         by zero for density") 
    6971            return  
    7072        atom = self.sld_formula.atoms 
    71         coh,absorp,inc = neutron_sld_from_atoms(atom,self.density,self.wavelength) 
     73        coh, absorp, inc = neutron_sld_from_atoms(atom, self.density,  
     74                                                  self.wavelength) 
    7275        #Don't know if value is return in cm or  cm^(-1).assume return in cm 
    7376        # to match result of neutron inc of Alan calculator 
    74         self.incoherence = inc*1/10 
     77        self.incoherence = inc * 1/10 
    7578        #Doesn't match result of Alan calculator for absorption factor of 2 
    7679        #multiplication of 100 is going around 
    77         self.absorption = absorp*2*100 
     80        self.absorption = absorp * 2 * 100 
    7881        self.coherence  = coh 
    7982        return self.coherence, self.absorption, self.incoherence 
    8083     
    8184     
    82     def calculateLength(self): 
     85    def calculate_length(self): 
    8386        """ 
    8487            Compute the neutron 1/e length 
    8588        """ 
    86         self.length= (self.coherence+ self.absorption+ self.incoherence)/self.volume 
     89        self.length = (self.coherence + self.absorption +\ 
     90                            self.incoherence) / self.volume 
    8791        return self.length 
    8892         
    8993         
    90     def calculateAbsorptionIm(self): 
     94    def calculate_coherence_im(self): 
    9195        """ 
    9296            Compute imaginary part of the absorption  
     
    9498        atom = self.sld_formula.atoms  
    9599        #im: imaginary part of neutron SLD 
    96         im=0 
     100        im = 0 
    97101        for el, count in atom.iteritems(): 
    98             if el.neutron.b_c_i !=None: 
    99                 im += el.neutron.b_c_i*count  
    100         if self.volume !=0: 
     102            if el.neutron.b_c_i is not None: 
     103                im += el.neutron.b_c_i * count  
     104                 
     105        if self.volume != 0: 
    101106            im = im/self.volume 
    102107        else: 
    103             raise ZeroDivisionError,"integer division or modulo by zero for volume" 
     108            raise ZeroDivisionError("integer division or modulo\ 
     109                                 by zero for volume") 
    104110        return im 
    105          
Note: See TracChangeset for help on using the changeset viewer.