Skip to content

Commit 1ef6a71

Browse files
authored
Merge pull request #2329 from willend/format-sasmodels
Format McXtrace sasmodels
2 parents fce7b5a + 025bde0 commit 1ef6a71

94 files changed

Lines changed: 8041 additions & 9695 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

mcxtrace-comps/sasmodels/SasView_adsorbed_layer.comp

Lines changed: 81 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -139,115 +139,107 @@ double Iq_adsorbed_layer(
139139

140140
INITIALIZE
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

175175
TRACE
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
256248
MCDISPLAY
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
%}
295277
END

0 commit comments

Comments
 (0)