Changeset 37805e9 in sasview for sansmodels/src/c_extensions


Ignore:
Timestamp:
Jan 5, 2012 11:14:43 AM (13 years ago)
Author:
Mathieu Doucet <doucetm@…>
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:
6e10cff
Parents:
a8eab1c
Message:

spheresld refactor

Location:
sansmodels/src/c_extensions
Files:
1 deleted
1 edited

Legend:

Unmodified
Added
Removed
  • sansmodels/src/c_extensions/spheresld.h

    r67424cd r37805e9  
    11#if !defined(o_h) 
    22#define sphere_sld_h 
     3#include "parameters.hh" 
    34 
    45/** 
     
    3031 //[ORIENTATION_PARAMS]= <text> </text> 
    3132 
    32 typedef struct { 
    33         /// number of shells 
    34         //  [DEFAULT]=n_shells=1 
    35         int n_shells; 
     33class SphereSLDModel{ 
     34public: 
     35  // Model parameters 
     36  /// number of shells 
     37  //  [DEFAULT]=n_shells=1 
     38  Parameter n_shells; 
    3639    /// Scale factor 
    3740    //  [DEFAULT]=scale= 1.0 
    38         double scale; 
    39     /// thick_inter0 [A] 
     41  Parameter scale; 
     42    /// thick_inter0 [A] 
    4043    //  [DEFAULT]=thick_inter0=50.0 [A] 
    41         double thick_inter0; 
    42         ///     func_inter0 
    43         //  [DEFAULT]=func_inter0= 0 
    44         double func_inter0; 
    45         ///     sld_core0 [1/A^(2)] 
    46         //  [DEFAULT]=sld_core0= 2.07e-6 [1/A^(2)] 
    47         double sld_core0; 
    48         ///     sld_solv [1/A^(2)] 
    49         //  [DEFAULT]=sld_solv= 1.0e-6 [1/A^(2)] 
    50         double sld_solv; 
    51         /// Background 
    52         //  [DEFAULT]=background=0 
    53         double background; 
     44  Parameter thick_inter0; 
     45  /// func_inter0 
     46  //  [DEFAULT]=func_inter0= 0 
     47  Parameter func_inter0; 
     48  /// sld_core0 [1/A^(2)] 
     49  //  [DEFAULT]=sld_core0= 2.07e-6 [1/A^(2)] 
     50  Parameter sld_core0; 
     51  /// sld_solv [1/A^(2)] 
     52  //  [DEFAULT]=sld_solv= 1.0e-6 [1/A^(2)] 
     53  Parameter sld_solv; 
     54  /// Background 
     55  //  [DEFAULT]=background=0 
     56  Parameter background; 
    5457 
    5558    //  [DEFAULT]=sld_flat1=4.0e-06 [1/A^(2)] 
    56     double sld_flat1; 
     59    Parameter sld_flat1; 
    5760    //  [DEFAULT]=sld_flat2=3.5e-06 [1/A^(2)] 
    58     double sld_flat2; 
     61    Parameter sld_flat2; 
    5962    //  [DEFAULT]=sld_flat3=4.0e-06 [1/A^(2)] 
    60     double sld_flat3; 
     63    Parameter sld_flat3; 
    6164    //  [DEFAULT]=sld_flat4=3.5e-06 [1/A^(2)] 
    62     double sld_flat4; 
     65    Parameter sld_flat4; 
    6366    //  [DEFAULT]=sld_flat5=4.0e-06 [1/A^(2)] 
    64     double sld_flat5; 
     67    Parameter sld_flat5; 
    6568    //  [DEFAULT]=sld_flat6=3.5e-06 [1/A^(2)] 
    66     double sld_flat6; 
     69    Parameter sld_flat6; 
    6770    //  [DEFAULT]=sld_flat7=4.0e-06 [1/A^(2)] 
    68     double sld_flat7; 
     71    Parameter sld_flat7; 
    6972    //  [DEFAULT]=sld_flat8=3.5e-06 [1/A^(2)] 
    70     double sld_flat8; 
     73    Parameter sld_flat8; 
    7174    //  [DEFAULT]=sld_flat9=4.0e-06 [1/A^(2)] 
    72     double sld_flat9; 
     75    Parameter sld_flat9; 
    7376    //  [DEFAULT]=sld_flat10=3.5e-06 [1/A^(2)] 
    74     double sld_flat10; 
     77    Parameter sld_flat10; 
    7578 
    7679    //  [DEFAULT]=thick_inter1=50.0 [A] 
    77     double thick_inter1; 
     80    Parameter thick_inter1; 
    7881    //  [DEFAULT]=thick_inter2=50.0 [A] 
    79     double thick_inter2; 
     82    Parameter thick_inter2; 
    8083    //  [DEFAULT]=thick_inter3=50.0 [A] 
    81     double thick_inter3; 
     84    Parameter thick_inter3; 
    8285    //  [DEFAULT]=thick_inter4=50.0 [A] 
    83     double thick_inter4; 
     86    Parameter thick_inter4; 
    8487    //  [DEFAULT]=thick_inter5=50.0 [A] 
    85     double thick_inter5; 
     88    Parameter thick_inter5; 
    8689    //  [DEFAULT]=thick_inter6=50.0 [A] 
    87     double thick_inter6; 
     90    Parameter thick_inter6; 
    8891    //  [DEFAULT]=thick_inter7=50.0 [A] 
    89     double thick_inter7; 
     92    Parameter thick_inter7; 
    9093    //  [DEFAULT]=thick_inter8=50.0 [A] 
    91     double thick_inter8; 
     94    Parameter thick_inter8; 
    9295    //  [DEFAULT]=thick_inter9=50.0 [A] 
    93     double thick_inter9; 
     96    Parameter thick_inter9; 
    9497    //  [DEFAULT]=thick_inter10=50.0 [A] 
    95     double thick_inter10; 
     98    Parameter thick_inter10; 
    9699 
    97100    //  [DEFAULT]=thick_flat1=100 [A] 
    98     double thick_flat1; 
     101    Parameter thick_flat1; 
    99102    //  [DEFAULT]=thick_flat2=100 [A] 
    100     double thick_flat2; 
     103    Parameter thick_flat2; 
    101104    //  [DEFAULT]=thick_flat3=100 [A] 
    102     double thick_flat3; 
     105    Parameter thick_flat3; 
    103106    //  [DEFAULT]=thick_flat4=100 [A] 
    104     double thick_flat4; 
     107    Parameter thick_flat4; 
    105108    //  [DEFAULT]=thick_flat5=100 [A] 
    106     double thick_flat5; 
     109    Parameter thick_flat5; 
    107110    //  [DEFAULT]=thick_flat6=100 [A] 
    108     double thick_flat6; 
     111    Parameter thick_flat6; 
    109112    //  [DEFAULT]=thick_flat7=100 [A] 
    110     double thick_flat7; 
     113    Parameter thick_flat7; 
    111114    //  [DEFAULT]=thick_flat8=100 [A] 
    112     double thick_flat8; 
     115    Parameter thick_flat8; 
    113116    //  [DEFAULT]=thick_flat9=100 [A] 
    114     double thick_flat9; 
     117    Parameter thick_flat9; 
    115118    //  [DEFAULT]=thick_flat10=100 [A] 
    116     double thick_flat10; 
     119    Parameter thick_flat10; 
    117120 
    118121    //  [DEFAULT]=func_inter1=0 
    119     double func_inter1; 
     122    Parameter func_inter1; 
    120123    //  [DEFAULT]=func_inter2=0 
    121     double func_inter2; 
     124    Parameter func_inter2; 
    122125    //  [DEFAULT]=func_inter3=0 
    123     double func_inter3; 
     126    Parameter func_inter3; 
    124127    //  [DEFAULT]=func_inter4=0 
    125     double func_inter4; 
     128    Parameter func_inter4; 
    126129    //  [DEFAULT]=func_inter5=0 
    127     double func_inter5; 
     130    Parameter func_inter5; 
    128131    //  [DEFAULT]=func_inter6=0 
    129     double func_inter6; 
     132    Parameter func_inter6; 
    130133    //  [DEFAULT]=func_inter7=0 
    131     double func_inter7; 
     134    Parameter func_inter7; 
    132135    //  [DEFAULT]=func_inter8=0 
    133     double func_inter8; 
     136    Parameter func_inter8; 
    134137    //  [DEFAULT]=func_inter9=0 
    135     double func_inter9; 
     138    Parameter func_inter9; 
    136139    //  [DEFAULT]=func_inter10=0 
    137     double func_inter10; 
     140    Parameter func_inter10; 
    138141 
    139142    //  [DEFAULT]=nu_inter1=2.5 
    140     double nu_inter1; 
     143    Parameter nu_inter1; 
    141144    //  [DEFAULT]=nu_inter2=2.5 
    142     double nu_inter2; 
     145    Parameter nu_inter2; 
    143146    //  [DEFAULT]=nu_inter3=2.5 
    144     double nu_inter3; 
     147    Parameter nu_inter3; 
    145148    //  [DEFAULT]=nu_inter4=2.5 
    146     double nu_inter4; 
     149    Parameter nu_inter4; 
    147150    //  [DEFAULT]=nu_inter5=2.5 
    148     double nu_inter5; 
     151    Parameter nu_inter5; 
    149152    //  [DEFAULT]=nu_inter6=2.5 
    150     double nu_inter6; 
     153    Parameter nu_inter6; 
    151154    //  [DEFAULT]=nu_inter7=2.5 
    152     double nu_inter7; 
     155    Parameter nu_inter7; 
    153156    //  [DEFAULT]=nu_inter8=2.5 
    154     double nu_inter8; 
     157    Parameter nu_inter8; 
    155158    //  [DEFAULT]=nu_inter9=2.5 
    156     double nu_inter9; 
     159    Parameter nu_inter9; 
    157160    //  [DEFAULT]=nu_inter10=2.5 
    158     double nu_inter10; 
     161    Parameter nu_inter10; 
    159162 
    160163    //  [DEFAULT]=npts_inter=35.0 
    161     double npts_inter; 
     164    Parameter npts_inter; 
    162165    //  [DEFAULT]=nu_inter0=2.5 
    163     double nu_inter0; 
     166    Parameter nu_inter0; 
    164167    //  [DEFAULT]=rad_core0=50.0 [A] 
    165     double rad_core0; 
    166 } SphereSLDParameters; 
     168    Parameter rad_core0; 
    167169 
    168 double sphere_sld_kernel(double dq[], double q); 
     170  // Constructor 
     171  SphereSLDModel(); 
    169172 
    170 /// 1D scattering function 
    171 double sphere_sld_analytical_1D(SphereSLDParameters *pars, double q); 
     173  // Operators to get I(Q) 
     174  double operator()(double q); 
     175  double operator()(double qx, double qy); 
     176  double calculate_ER(); 
     177  double evaluate_rphi(double q, double phi); 
     178}; 
    172179 
    173 /// 2D scattering function 
    174 double sphere_sld_analytical_2D(SphereSLDParameters *pars, double q, double phi); 
    175 double sphere_sld_analytical_2DXY(SphereSLDParameters *pars, double qx, double qy); 
    176180 
    177181#endif 
Note: See TracChangeset for help on using the changeset viewer.