Changeset 4628e31 in sasview for sansmodels/src/sans/models/c_models
- Timestamp:
- Oct 22, 2010 5:50:05 PM (15 years ago)
- 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:
- d7b7156
- Parents:
- 67e258c
- Location:
- sansmodels/src/sans/models/c_models
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
sansmodels/src/sans/models/c_models/CCoreShellCylinderModel.cpp
r35aface r4628e31 91 91 // Initialize parameter dictionary 92 92 PyDict_SetItemString(self->params,"scale",Py_BuildValue("d",1.000000000000)); 93 PyDict_SetItemString(self->params,"axis_theta",Py_BuildValue("d", 1.570000000000));93 PyDict_SetItemString(self->params,"axis_theta",Py_BuildValue("d",90.000000000000)); 94 94 PyDict_SetItemString(self->params,"solvent_sld",Py_BuildValue("d",0.000001000000)); 95 95 PyDict_SetItemString(self->params,"thickness",Py_BuildValue("d",10.000000000000)); -
sansmodels/src/sans/models/c_models/CCylinderModel.cpp
r35aface r4628e31 92 92 PyDict_SetItemString(self->params,"scale",Py_BuildValue("d",1.000000000000)); 93 93 PyDict_SetItemString(self->params,"sldCyl",Py_BuildValue("d",0.000004000000)); 94 PyDict_SetItemString(self->params,"cyl_theta",Py_BuildValue("d", 1.000000000000));94 PyDict_SetItemString(self->params,"cyl_theta",Py_BuildValue("d",60.000000000000)); 95 95 PyDict_SetItemString(self->params,"length",Py_BuildValue("d",400.000000000000)); 96 96 PyDict_SetItemString(self->params,"sldSolv",Py_BuildValue("d",0.000001000000)); 97 97 PyDict_SetItemString(self->params,"background",Py_BuildValue("d",0.000000000000)); 98 98 PyDict_SetItemString(self->params,"radius",Py_BuildValue("d",20.000000000000)); 99 PyDict_SetItemString(self->params,"cyl_phi",Py_BuildValue("d", 1.000000000000));99 PyDict_SetItemString(self->params,"cyl_phi",Py_BuildValue("d",60.000000000000)); 100 100 // Initialize dispersion / averaging parameter dict 101 101 DispersionVisitor* visitor = new DispersionVisitor(); -
sansmodels/src/sans/models/c_models/CEllipsoidModel.cpp
r35aface r4628e31 91 91 // Initialize parameter dictionary 92 92 PyDict_SetItemString(self->params,"scale",Py_BuildValue("d",1.000000000000)); 93 PyDict_SetItemString(self->params,"axis_theta",Py_BuildValue("d", 1.570000000000));93 PyDict_SetItemString(self->params,"axis_theta",Py_BuildValue("d",90.000000000000)); 94 94 PyDict_SetItemString(self->params,"radius_b",Py_BuildValue("d",400.000000000000)); 95 95 PyDict_SetItemString(self->params,"radius_a",Py_BuildValue("d",20.000000000000)); -
sansmodels/src/sans/models/c_models/CEllipticalCylinderModel.cpp
r35aface r4628e31 97 97 PyDict_SetItemString(self->params,"sldSolv",Py_BuildValue("d",0.000001000000)); 98 98 PyDict_SetItemString(self->params,"background",Py_BuildValue("d",0.000000000000)); 99 PyDict_SetItemString(self->params,"cyl_theta",Py_BuildValue("d", 1.570000000000));99 PyDict_SetItemString(self->params,"cyl_theta",Py_BuildValue("d",90.000000000000)); 100 100 PyDict_SetItemString(self->params,"r_ratio",Py_BuildValue("d",1.500000000000)); 101 101 PyDict_SetItemString(self->params,"cyl_phi",Py_BuildValue("d",0.000000000000)); -
sansmodels/src/sans/models/c_models/CHollowCylinderModel.cpp
r35aface r4628e31 93 93 PyDict_SetItemString(self->params,"sldCyl",Py_BuildValue("d",0.000006300000)); 94 94 PyDict_SetItemString(self->params,"core_radius",Py_BuildValue("d",20.000000000000)); 95 PyDict_SetItemString(self->params,"axis_theta",Py_BuildValue("d", 1.570000000000));95 PyDict_SetItemString(self->params,"axis_theta",Py_BuildValue("d",90.000000000000)); 96 96 PyDict_SetItemString(self->params,"length",Py_BuildValue("d",400.000000000000)); 97 97 PyDict_SetItemString(self->params,"axis_phi",Py_BuildValue("d",0.000000000000)); -
sansmodels/src/sans/models/c_models/COblateModel.cpp
r35aface r4628e31 93 93 PyDict_SetItemString(self->params,"scale",Py_BuildValue("d",1.000000000000)); 94 94 PyDict_SetItemString(self->params,"minor_core",Py_BuildValue("d",20.000000000000)); 95 PyDict_SetItemString(self->params,"axis_theta",Py_BuildValue("d", 1.000000000000));95 PyDict_SetItemString(self->params,"axis_theta",Py_BuildValue("d",57.325000000000)); 96 96 PyDict_SetItemString(self->params,"sld_solvent",Py_BuildValue("d",0.000006300000)); 97 PyDict_SetItemString(self->params,"axis_phi",Py_BuildValue("d", 1.000000000000));97 PyDict_SetItemString(self->params,"axis_phi",Py_BuildValue("d",57.325000000000)); 98 98 PyDict_SetItemString(self->params,"background",Py_BuildValue("d",0.001000000000)); 99 99 PyDict_SetItemString(self->params,"major_shell",Py_BuildValue("d",250.000000000000)); -
sansmodels/src/sans/models/c_models/CTriaxialEllipsoidModel.cpp
r35aface r4628e31 92 92 PyDict_SetItemString(self->params,"scale",Py_BuildValue("d",1.000000000000)); 93 93 PyDict_SetItemString(self->params,"axis_psi",Py_BuildValue("d",0.000000000000)); 94 PyDict_SetItemString(self->params,"axis_theta",Py_BuildValue("d", 1.000000000000));94 PyDict_SetItemString(self->params,"axis_theta",Py_BuildValue("d",57.325000000000)); 95 95 PyDict_SetItemString(self->params,"semi_axisA",Py_BuildValue("d",35.000000000000)); 96 96 PyDict_SetItemString(self->params,"semi_axisB",Py_BuildValue("d",100.000000000000)); 97 97 PyDict_SetItemString(self->params,"semi_axisC",Py_BuildValue("d",400.000000000000)); 98 PyDict_SetItemString(self->params,"axis_phi",Py_BuildValue("d", 1.000000000000));98 PyDict_SetItemString(self->params,"axis_phi",Py_BuildValue("d",57.325000000000)); 99 99 PyDict_SetItemString(self->params,"sldSolv",Py_BuildValue("d",0.000006300000)); 100 100 PyDict_SetItemString(self->params,"background",Py_BuildValue("d",0.000000000000)); -
sansmodels/src/sans/models/c_models/barbell.cpp
r85bb870 r4628e31 198 198 } 199 199 if (weights_theta.size()>1) { 200 _ptvalue *= fabs(sin(weights_theta[l].value ));200 _ptvalue *= fabs(sin(weights_theta[l].value*pi/180.0)); 201 201 } 202 202 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/bcc.cpp
r85bb870 r4628e31 118 118 dp.phi = phi(); 119 119 dp.psi = psi(); 120 120 double pi = 4.0*atan(1.0); 121 121 // Get the dispersion points for the radius 122 122 vector<WeightPoint> weights_rad; … … 166 166 } 167 167 if (weights_theta.size()>1) { 168 _ptvalue *= fabs(sin(weights_theta[j].value ));168 _ptvalue *= fabs(sin(weights_theta[j].value*pi/180.0)); 169 169 } 170 170 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/capcyl.cpp
r85bb870 r4628e31 135 135 dp.theta = theta(); 136 136 dp.phi = phi(); 137 138 137 139 138 // Get the dispersion points for the rad_bar … … 198 197 } 199 198 if (weights_theta.size()>1) { 200 _ptvalue *= fabs(sin(weights_theta[l].value ));199 _ptvalue *= fabs(sin(weights_theta[l].value*pi/180.0)); 201 200 } 202 201 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/coreshellcylinder.cpp
r85bb870 r4628e31 45 45 solvent_sld= Parameter(1.e-6); 46 46 background = Parameter(0.0); 47 axis_theta = Parameter( 0.0, true);47 axis_theta = Parameter(90.0, true); 48 48 axis_phi = Parameter(0.0, true); 49 49 } … … 167 167 double norm_vol = 0.0; 168 168 double vol = 0.0; 169 169 double pi = 4.0*atan(1.0); 170 170 // Loop over radius weight points 171 171 for(int i=0; i<weights_rad.size(); i++) { … … 199 199 200 200 if (weights_theta.size()>1) { 201 _ptvalue *= fabs(sin(weights_theta[k].value ));201 _ptvalue *= fabs(sin(weights_theta[k].value*pi/180.0)); 202 202 } 203 203 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/csparallelepiped.cpp
r85bb870 r4628e31 188 188 double norm_vol = 0.0; 189 189 double vol = 0.0; 190 double pi = 4.0*atan(1.0); 190 191 191 192 // Loop over radius weight points … … 224 225 225 226 if (weights_parallel_theta.size()>1) { 226 _ptvalue *= fabs(sin(weights_parallel_theta[l].value ));227 _ptvalue *= fabs(sin(weights_parallel_theta[l].value*pi/180.0)); 227 228 } 228 229 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/cylinder.cpp
r85bb870 r4628e31 142 142 double norm_vol = 0.0; 143 143 double vol = 0.0; 144 144 double pi = 4.0*atan(1.0); 145 145 // Loop over radius weight points 146 146 for(int i=0; i<weights_rad.size(); i++) { … … 167 167 *pow(weights_rad[i].value,2)*weights_len[j].value; 168 168 if (weights_theta.size()>1) { 169 _ptvalue *= fabs(sin(weights_theta[k].value ));169 _ptvalue *= fabs(sin(weights_theta[k].value*pi/180.0)); 170 170 } 171 171 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/ellipsoid.cpp
r85bb870 r4628e31 42 42 sldSolv = Parameter(1.e-6); 43 43 background = Parameter(0.0); 44 axis_theta = Parameter( 1.57, true);44 axis_theta = Parameter(57.325, true); 45 45 axis_phi = Parameter(0.0, true); 46 46 } … … 145 145 double norm_vol = 0.0; 146 146 double vol = 0.0; 147 147 double pi = 4.0*atan(1.0); 148 148 // Loop over radius weight points 149 149 for(int i=0; i<weights_rad_a.size(); i++) { … … 170 170 * pow(weights_rad_b[j].value,2) * weights_rad_a[i].value; 171 171 if (weights_theta.size()>1) { 172 _ptvalue *= fabs(sin(weights_theta[k].value ));172 _ptvalue *= fabs(sin(weights_theta[k].value*pi/180.0)); 173 173 } 174 174 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/ellipticalcylinder.cpp
r85bb870 r4628e31 44 44 sldSolv = Parameter(1.e-6); 45 45 background = Parameter(0.0); 46 cyl_theta = Parameter( 1.57, true);46 cyl_theta = Parameter(57.325, true); 47 47 cyl_phi = Parameter(0.0, true); 48 48 cyl_psi = Parameter(0.0, true); … … 170 170 double norm_vol = 0.0; 171 171 double vol = 0.0; 172 172 double pi = 4.0*atan(1.0); 173 173 // Loop over minor radius weight points 174 174 for(int i=0; i<weights_rad.size(); i++) { … … 207 207 * weights_rat[m].value; 208 208 if (weights_theta.size()>1) { 209 _ptvalue *= fabs(sin(weights_theta[k].value ));209 _ptvalue *= fabs(sin(weights_theta[k].value*pi/180.0)); 210 210 } 211 211 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/fcc.cpp
r85bb870 r4628e31 140 140 double norm_vol = 0.0; 141 141 double vol = 0.0; 142 142 double pi = 4.0*atan(1.0); 143 143 // Loop over radius weight points 144 144 for(int i=0; i<weights_rad.size(); i++) { … … 165 165 } 166 166 if (weights_theta.size()>1) { 167 _ptvalue *= fabs(sin(weights_theta[j].value ));167 _ptvalue *= fabs(sin(weights_theta[j].value*pi/180.0)); 168 168 } 169 169 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/hollowcylinder.cpp
r85bb870 r4628e31 164 164 double norm_vol = 0.0; 165 165 double vol = 0.0; 166 166 double pi = 4.0*atan(1.0); 167 167 // Loop over core radius weight points 168 168 for(int i=0; i<(int)weights_core_radius.size(); i++) { … … 192 192 * weights_phi[l].weight 193 193 * hollow_cylinder_analytical_2DXY(&dp, qx, qy) 194 *(pow(weights_radius[m].value,2)-pow(weights_core_radius[i].value,2))195 * weights_length[j].value ;194 / ((pow(weights_radius[m].value,2)-pow(weights_core_radius[i].value,2)) 195 * weights_length[j].value); 196 196 if (weights_theta.size()>1) { 197 _ptvalue *= fabs(sin(weights_theta[k].value ));197 _ptvalue *= fabs(sin(weights_theta[k].value * pi/180.0)); 198 198 } 199 199 sum += _ptvalue; … … 201 201 vol += weights_core_radius[i].weight 202 202 * weights_length[j].weight 203 * weights_radius[ k].weight203 * weights_radius[m].weight 204 204 * (pow(weights_radius[m].value,2)-pow(weights_core_radius[i].value,2)) 205 205 * weights_length[j].value; … … 223 223 // factor to account for the sin(theta) term in the 224 224 // integration (see documentation). 225 if (weights_theta.size()>1) norm = norm /asin(1.0);226 if (vol != 0.0 &&norm_vol != 0.0) {225 if (weights_theta.size()>1) norm = norm/asin(1.0); 226 if (vol != 0.0 || norm_vol != 0.0) { 227 227 //Re-normalize by avg volume 228 sum = sum /(vol/norm_vol);}228 sum = sum*(vol/norm_vol);} 229 229 return sum/norm + background(); 230 230 } -
sansmodels/src/sans/models/c_models/parallelepiped.cpp
r85bb870 r4628e31 172 172 double norm_vol = 0.0; 173 173 double vol = 0.0; 174 174 double pi = 4.0*atan(1.0); 175 175 // Loop over radius weight points 176 176 for(int i=0; i< (int)weights_short_a.size(); i++) { … … 208 208 209 209 if (weights_parallel_theta.size()>1) { 210 _ptvalue *= fabs(sin(weights_parallel_theta[l].value ));210 _ptvalue *= fabs(sin(weights_parallel_theta[l].value*pi/180.0)); 211 211 } 212 212 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/sc.cpp
r85bb870 r4628e31 140 140 double norm_vol = 0.0; 141 141 double vol = 0.0; 142 142 double pi = 4.0*atan(1.0); 143 143 // Loop over radius weight points 144 144 for(int i=0; i<weights_rad.size(); i++) { … … 165 165 } 166 166 if (weights_theta.size()>1) { 167 _ptvalue *= fabs(sin(weights_theta[j].value ));167 _ptvalue *= fabs(sin(weights_theta[j].value*pi/180.0)); 168 168 } 169 169 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/spheroid.cpp
r85bb870 r4628e31 209 209 double norm_vol = 0.0; 210 210 double vol = 0.0; 211 211 double pi = 4.0*atan(1.0); 212 212 // Loop over major core weight points 213 213 for(int i=0; i< (int)weights_equat_core.size(); i++) { … … 241 241 * pow(weights_equat_shell[k].value,2)*weights_polar_shell[l].value; 242 242 if (weights_theta.size()>1) { 243 _ptvalue *= fabs(sin(weights_theta[m].value ));243 _ptvalue *= fabs(sin(weights_theta[m].value*pi/180.0)); 244 244 } 245 245 sum += _ptvalue; -
sansmodels/src/sans/models/c_models/triaxialellipsoid.cpp
r85bb870 r4628e31 44 44 sldSolv = Parameter(6.3e-6); 45 45 background = Parameter(0.0); 46 axis_theta = Parameter( 1.0, true);47 axis_phi = Parameter( 1.0, true);46 axis_theta = Parameter(57.325, true); 47 axis_phi = Parameter(57.325, true); 48 48 axis_psi = Parameter(0.0, true); 49 49 } … … 166 166 double norm_vol = 0.0; 167 167 double vol = 0.0; 168 168 double pi = 4.0*atan(1.0); 169 169 // Loop over semi axis A weight points 170 170 for(int i=0; i< (int)weights_semi_axisA.size(); i++) { … … 199 199 * weights_semi_axisA[i].value*weights_semi_axisB[j].value*weights_semi_axisC[k].value; 200 200 if (weights_theta.size()>1) { 201 _ptvalue *= fabs(sin(weights_theta[k].value ));201 _ptvalue *= fabs(sin(weights_theta[k].value*pi/180.0)); 202 202 } 203 203 sum += _ptvalue;
Note: See TracChangeset
for help on using the changeset viewer.