Changeset 318b5bbb in sasview for sansmodels/src/c_models/csparallelepiped.cpp
- Timestamp:
- Dec 18, 2012 10:55:24 AM (12 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:
- 6550b64
- Parents:
- 0203ade
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sansmodels/src/c_models/csparallelepiped.cpp
re08bd5b r318b5bbb 143 143 static double csparallelepiped_analytical_2D_scaled(CSParallelepipedParameters *pars, double q, double q_x, double q_y) { 144 144 double dp[13]; 145 double cparallel_x, cparallel_y, cparallel_z,bparallel_x, bparallel_y, parallel_x, parallel_y;146 double q_z;147 double alpha,cos_val_c, cos_val_b, cos_val_a, edgeA, edgeB, edgeC;145 double cparallel_x, cparallel_y, bparallel_x, bparallel_y, parallel_x, parallel_y; 146 //double q_z; 147 double cos_val_c, cos_val_b, cos_val_a, edgeA, edgeB, edgeC; 148 148 149 149 double answer; … … 176 176 177 177 // parallelepiped c axis orientation 178 cparallel_x = sin(theta) * cos(phi);179 cparallel_y = sin(theta) * sin(phi);180 cparallel_z = cos(theta);178 cparallel_x = cos(theta) * cos(phi); 179 cparallel_y = sin(theta); 180 //cparallel_z = -cos(theta) * sin(phi); 181 181 182 182 // q vector 183 q_z = 0.0;183 //q_z = 0.0; 184 184 185 185 // Compute the angle btw vector q and the 186 186 // axis of the parallelepiped 187 cos_val_c = cparallel_x*q_x + cparallel_y*q_y + cparallel_z*q_z;188 alpha = acos(cos_val_c);187 cos_val_c = cparallel_x*q_x + cparallel_y*q_y;// + cparallel_z*q_z; 188 //alpha = acos(cos_val_c); 189 189 190 190 // parallelepiped a axis orientation 191 parallel_x = sin(psi);//cos(pars->parallel_theta) * sin(pars->parallel_phi)*sin(pars->parallel_psi);192 parallel_y = cos(psi);//cos(pars->parallel_theta) * cos(pars->parallel_phi)*cos(pars->parallel_psi);191 parallel_x = -cos(phi)*sin(psi) * sin(theta)+sin(phi)*cos(psi); 192 parallel_y = sin(psi)*cos(theta); 193 193 194 194 cos_val_a = parallel_x*q_x + parallel_y*q_y; … … 197 197 198 198 // parallelepiped b axis orientation 199 bparallel_x = sqrt(1.0-sin(theta)*cos(phi))*cos(psi);//cos(pars->parallel_theta) * cos(pars->parallel_phi)* cos(pars->parallel_psi);200 bparallel_y = sqrt(1.0-sin(theta)*cos(phi))*sin(psi);//cos(pars->parallel_theta) * sin(pars->parallel_phi)* sin(pars->parallel_psi);199 bparallel_x = -sin(theta)*cos(psi)*cos(phi)-sin(psi)*sin(phi); 200 bparallel_y = cos(theta)*cos(psi); 201 201 // axis of the parallelepiped 202 cos_val_b = sin(acos(cos_val_a)) ; 203 204 202 cos_val_b = bparallel_x*q_x + bparallel_y*q_y; 205 203 206 204 // The following test should always pass 207 205 if (fabs(cos_val_c)>1.0) { 208 printf("parallel_ana_2D: Unexpected error: cos(alpha)>1\n"); 209 return 0; 210 } 211 206 //printf("parallel_ana_2D: Unexpected error: cos(alpha)>1\n"); 207 cos_val_c = 1.0; 208 } 209 if (fabs(cos_val_a)>1.0) { 210 //printf("parallel_ana_2D: Unexpected error: cos(alpha)>1\n"); 211 cos_val_a = 1.0; 212 } 213 if (fabs(cos_val_b)>1.0) { 214 //printf("parallel_ana_2D: Unexpected error: cos(alpha)>1\n"); 215 cos_val_b = 1.0; 216 } 212 217 // Call the IGOR library function to get the kernel 213 answer = cspkernel( dp, q, sin(alpha)*cos_val_a,sin(alpha)*cos_val_b,cos_val_c);218 answer = cspkernel( dp, q, cos_val_a, cos_val_b, cos_val_c); 214 219 215 220 //convert to [cm-1] … … 434 439 435 440 if (weights_parallel_theta.size()>1) { 436 _ptvalue *= fabs( sin(weights_parallel_theta[l].value*pi/180.0));441 _ptvalue *= fabs(cos(weights_parallel_theta[l].value*pi/180.0)); 437 442 } 438 443 sum += _ptvalue;
Note: See TracChangeset
for help on using the changeset viewer.