@@ -139,115 +139,107 @@ double Iq_adsorbed_layer(
139139
140140INITIALIZE
141141%{
142- shape= -1; /* -1:no shape, 0:cyl, 1:box, 2:sphere */
143- if (xwidth && yheight && zdepth)
144- shape= 1;
142+ shape = -1; /* -1:no shape, 0:cyl, 1:box, 2:sphere */
143+ if (xwidth && yheight && zdepth)
144+ shape = 1;
145145 else if (R > 0 && yheight)
146- shape= 0;
146+ shape = 0;
147147 else if (R > 0 && !yheight)
148- shape= 2;
148+ shape = 2;
149149 if (shape < 0)
150- exit(fprintf(stderr, "SasView_model: %s: sample has invalid dimensions.\n"
151- "ERROR Please check parameter values.\n", NAME_CURRENT_COMP));
150+ exit (fprintf (stderr,
151+ "SasView_model: %s: sample has invalid dimensions.\n"
152+ "ERROR Please check parameter values.\n",
153+ NAME_CURRENT_COMP));
152154
153155 /* now compute target coords if a component index is supplied */
154- if (!target_index && !target_x && !target_y && !target_z) target_index=1;
155- if ( target_index)
156- {
156+ if (!target_index && !target_x && !target_y && !target_z)
157+ target_index = 1;
158+ if (target_index) {
157159 Coords ToTarget;
158- ToTarget = coords_sub(POS_A_COMP_INDEX(INDEX_CURRENT_COMP+ target_index),POS_A_CURRENT_COMP);
159- ToTarget = rot_apply(ROT_A_CURRENT_COMP, ToTarget);
160- coords_get(ToTarget, &target_x, &target_y, &target_z);
160+ ToTarget = coords_sub (POS_A_COMP_INDEX (INDEX_CURRENT_COMP + target_index), POS_A_CURRENT_COMP);
161+ ToTarget = rot_apply (ROT_A_CURRENT_COMP, ToTarget);
162+ coords_get (ToTarget, &target_x, &target_y, &target_z);
161163 }
162164
163165 if (!(target_x || target_y || target_z)) {
164- printf("SasView_model: %s: The target is not defined. Using direct beam (Z-axis).\n",
165- NAME_CURRENT_COMP);
166- target_z=1;
166+ printf ("SasView_model: %s: The target is not defined. Using direct beam (Z-axis).\n", NAME_CURRENT_COMP);
167+ target_z = 1;
167168 }
168169
169170 /*TODO fix absorption*/
170171 my_a_k = model_abs; /* assume absorption is given in 1/m */
171-
172172%}
173173
174174
175175TRACE
176176%{
177177 double l0, l1, k, l_full, l, dl, d_Phi;
178- double aim_x= 0, aim_y= 0, aim_z= 1, axis_x, axis_y, axis_z;
178+ double aim_x = 0, aim_y = 0, aim_z = 1, axis_x, axis_y, axis_z;
179179 double f, solid_angle, kx_i, ky_i, kz_i, q, qx, qy, qz;
180- char intersect= 0;
180+ char intersect = 0;
181181
182182 /* Intersection photon trajectory / sample (sample surface) */
183- if (shape == 0){
184- intersect = cylinder_intersect(&l0, &l1, x, y, z, kx, ky, kz, R, yheight);}
185- else if (shape == 1){
186- intersect = box_intersect(&l0, &l1, x, y, z, kx, ky, kz, xwidth, yheight, zdepth);}
187- else if (shape == 2){
188- intersect = sphere_intersect(&l0, &l1, x, y, z, kx, ky, kz, R);}
189- if(intersect)
190- {
191- if(l0 < 0)
183+ if (shape == 0) {
184+ intersect = cylinder_intersect (&l0, &l1, x, y, z, kx, ky, kz, R, yheight);
185+ } else if (shape == 1) {
186+ intersect = box_intersect (&l0, &l1, x, y, z, kx, ky, kz, xwidth, yheight, zdepth);
187+ } else if (shape == 2) {
188+ intersect = sphere_intersect (&l0, &l1, x, y, z, kx, ky, kz, R);
189+ }
190+ if (intersect) {
191+ if (l0 < 0)
192192 ABSORB;
193193
194194 /* Photon enters at l0. */
195- k = sqrt(kx* kx + ky* ky + kz* kz);
196- l_full = (l1 - l0); /* Length of full path through sample */
197- dl = rand01()* (l1 - l0) + l0; /* Point of scattering */
198- PROP_DL(dl); /* Point of scattering */
199- l = (dl- l0); /* Penetration in sample */
200-
201- kx_i= kx;
202- ky_i= ky;
203- kz_i= kz;
195+ k = sqrt (kx * kx + ky * ky + kz * kz);
196+ l_full = (l1 - l0); /* Length of full path through sample */
197+ dl = rand01 () * (l1 - l0) + l0; /* Point of scattering */
198+ PROP_DL (dl); /* Point of scattering */
199+ l = (dl - l0); /* Penetration in sample */
200+
201+ kx_i = kx;
202+ ky_i = ky;
203+ kz_i = kz;
204204 if ((target_x || target_y || target_z)) {
205- aim_x = target_x-x; /* Vector pointing at target (anal./det.) */
206- aim_y = target_y- y;
207- aim_z = target_z- z;
205+ aim_x = target_x - x; /* Vector pointing at target (anal./det.) */
206+ aim_y = target_y - y;
207+ aim_z = target_z - z;
208208 }
209- if(focus_aw && focus_ah) {
210- randvec_target_rect_angular(&kx, &ky, &kz, &solid_angle,
211- aim_x, aim_y, aim_z, focus_aw, focus_ah, ROT_A_CURRENT_COMP);
212- } else if(focus_xw && focus_yh) {
213- randvec_target_rect(&kx, &ky, &kz, &solid_angle,
214- aim_x, aim_y, aim_z, focus_xw, focus_yh, ROT_A_CURRENT_COMP);
209+ if (focus_aw && focus_ah) {
210+ randvec_target_rect_angular (&kx, &ky, &kz, &solid_angle, aim_x, aim_y, aim_z, focus_aw, focus_ah, ROT_A_CURRENT_COMP);
211+ } else if (focus_xw && focus_yh) {
212+ randvec_target_rect (&kx, &ky, &kz, &solid_angle, aim_x, aim_y, aim_z, focus_xw, focus_yh, ROT_A_CURRENT_COMP);
215213 } else {
216- randvec_target_circle(&kx, &ky, &kz, &solid_angle, aim_x, aim_y, aim_z, focus_r);
214+ randvec_target_circle (&kx, &ky, &kz, &solid_angle, aim_x, aim_y, aim_z, focus_r);
217215 }
218- NORM(kx, ky, kz);
216+ NORM (kx, ky, kz);
219217 kx *= k;
220218 ky *= k;
221219 kz *= k;
222- qx = (kx_i- kx);
223- qy = (ky_i- ky);
224- qz = (kz_i- kz);
225- q = sqrt(qx*qx+qy*qy+qz* qz);
226-
227- double trace_radius= radius;
228- if ( pd_radius!= 0.0 ) {
229- trace_radius = (randnorm()* pd_radius+ 1.0)* radius;
220+ qx = (kx_i - kx);
221+ qy = (ky_i - ky);
222+ qz = (kz_i - kz);
223+ q = sqrt (qx * qx + qy * qy + qz * qz);
224+
225+ double trace_radius = radius;
226+ if (pd_radius != 0.0) {
227+ trace_radius = (randnorm () * pd_radius + 1.0) * radius;
230228 }
231229
232-
233-
234-
235230 // Sample dependent. Retrieved from SasView./////////////////////
236231 float Iq_out;
237232 Iq_out = 1;
238233
239- Iq_out = Iq_adsorbed_layer(q, second_moment, adsorbed_amount, density_shell, trace_radius, volfraction, sld_shell, sld_solvent);
240-
234+ Iq_out = Iq_adsorbed_layer (q, second_moment, adsorbed_amount, density_shell, trace_radius, volfraction, sld_shell, sld_solvent);
241235
242236 float vol;
243237 vol = 1;
244238
245239 // Scale by 1.0E2 [SasView: 1/cm -> McXtrace: 1/m]
246- Iq_out = model_scale*Iq_out / vol * 1.0E2;
247-
248-
249- p *= l_full*solid_angle/(4*PI)*Iq_out*exp(-my_a_k*(l+l1));
240+ Iq_out = model_scale * Iq_out / vol * 1.0E2;
250241
242+ p *= l_full * solid_angle / (4 * PI) * Iq_out * exp (-my_a_k * (l + l1));
251243
252244 SCATTER;
253245 }
@@ -256,40 +248,30 @@ TRACE
256248MCDISPLAY
257249%{
258250
259- if (shape == 0) { /* cylinder */
260- circle("xz", 0, yheight/2.0, 0, R);
261- circle("xz", 0, -yheight/2.0, 0, R);
262- line(-R, -yheight/2.0, 0, -R, +yheight/2.0, 0);
263- line(+R, -yheight/2.0, 0, +R, +yheight/2.0, 0);
264- line(0, -yheight/2.0, -R, 0, +yheight/2.0, -R);
265- line(0, -yheight/2.0, +R, 0, +yheight/2.0, +R);
266- }
267- else if (shape == 1) { /* box */
268- double xmin = -0.5*xwidth;
269- double xmax = 0.5*xwidth;
270- double ymin = -0.5*yheight;
271- double ymax = 0.5*yheight;
272- double zmin = -0.5*zdepth;
273- double zmax = 0.5*zdepth;
274- multiline(5, xmin, ymin, zmin,
275- xmax, ymin, zmin,
276- xmax, ymax, zmin,
277- xmin, ymax, zmin,
278- xmin, ymin, zmin);
279- multiline(5, xmin, ymin, zmax,
280- xmax, ymin, zmax,
281- xmax, ymax, zmax,
282- xmin, ymax, zmax,
283- xmin, ymin, zmax);
284- line(xmin, ymin, zmin, xmin, ymin, zmax);
285- line(xmax, ymin, zmin, xmax, ymin, zmax);
286- line(xmin, ymax, zmin, xmin, ymax, zmax);
287- line(xmax, ymax, zmin, xmax, ymax, zmax);
288- }
289- else if (shape == 2) { /* sphere */
290- circle("xy", 0, 0.0, 0, R);
291- circle("xz", 0, 0.0, 0, R);
292- circle("yz", 0, 0.0, 0, R);
251+ if (shape == 0) { /* cylinder */
252+ circle ("xz", 0, yheight / 2.0, 0, R);
253+ circle ("xz", 0, -yheight / 2.0, 0, R);
254+ line (-R, -yheight / 2.0, 0, -R, +yheight / 2.0, 0);
255+ line (+R, -yheight / 2.0, 0, +R, +yheight / 2.0, 0);
256+ line (0, -yheight / 2.0, -R, 0, +yheight / 2.0, -R);
257+ line (0, -yheight / 2.0, +R, 0, +yheight / 2.0, +R);
258+ } else if (shape == 1) { /* box */
259+ double xmin = -0.5 * xwidth;
260+ double xmax = 0.5 * xwidth;
261+ double ymin = -0.5 * yheight;
262+ double ymax = 0.5 * yheight;
263+ double zmin = -0.5 * zdepth;
264+ double zmax = 0.5 * zdepth;
265+ multiline (5, xmin, ymin, zmin, xmax, ymin, zmin, xmax, ymax, zmin, xmin, ymax, zmin, xmin, ymin, zmin);
266+ multiline (5, xmin, ymin, zmax, xmax, ymin, zmax, xmax, ymax, zmax, xmin, ymax, zmax, xmin, ymin, zmax);
267+ line (xmin, ymin, zmin, xmin, ymin, zmax);
268+ line (xmax, ymin, zmin, xmax, ymin, zmax);
269+ line (xmin, ymax, zmin, xmin, ymax, zmax);
270+ line (xmax, ymax, zmin, xmax, ymax, zmax);
271+ } else if (shape == 2) { /* sphere */
272+ circle ("xy", 0, 0.0, 0, R);
273+ circle ("xz", 0, 0.0, 0, R);
274+ circle ("yz", 0, 0.0, 0, R);
293275 }
294276%}
295277END
0 commit comments