89 if (run < NCALCS && run > -1)
active_project -> analysis[run] -> calc_ok = adv;
94 if (widg != NULL) gdk_window_set_opacity (gtk_widget_get_window(widg), opc);
117 clock_gettime (CLOCK_MONOTONIC, &
stop_time);
121 if (widg != NULL) gdk_window_set_opacity (gtk_widget_get_window(widg), opc);
137 if (this_analysis -> idcc != NULL)
139 g_free (this_analysis -> idcc);
140 this_analysis -> idcc = NULL;
142 this_analysis -> idcc = g_malloc0(this_analysis -> numc*
sizeof*this_analysis -> idcc);
143 for (i = 0; i < this_analysis -> numc; i++)
145 this_analysis -> idcc[i].a = pid;
146 this_analysis -> idcc[i].b = this_analysis -> aid;
147 this_analysis -> idcc[i].c = i;
149 if (this_analysis -> curves != NULL)
151 g_free (this_analysis -> curves);
152 this_analysis -> curves = NULL;
154 this_analysis -> curves = g_malloc0(this_analysis -> numc*
sizeof*this_analysis -> curves);
155 for (i = 0; i < this_analysis -> numc; i++)
157 this_analysis -> curves[i] = g_malloc0(
sizeof*this_analysis -> curves[i]);
176atomes_analysis *
setup_analysis (
int pid, gchar * name,
int analysis, gboolean req_md, gboolean graph,
int num_curves,
int n_compat,
int * compat, gchar * x_title)
179 new_analysis -> name = g_strdup_printf (
"%s", name);
180 new_analysis -> aid = analysis;
181 new_analysis -> requires_md = req_md;
182 new_analysis -> graph_res = graph;
185 new_analysis -> c_sets = n_compat;
186 new_analysis -> compat_id =
duplicate_int (n_compat, compat);
189 new_analysis -> numc = num_curves;
192 if (x_title) new_analysis -> x_title = g_strdup_printf (
"%s", x_title);
225 int i = this_proj -> nspec;
226 int pid = this_proj -> id;
232 this_proj -> analysis = g_malloc0(
NCALCS*
sizeof*this_proj -> analysis);
237 this_proj -> analysis[
GDR] =
setup_analysis (pid,
"g(r)/G(r)",
GDR, FALSE, TRUE, 16+5*i*i + ((i ==2) ? 6 : 0), 2, comp_list,
"r [Å]");
239 this_proj -> analysis[
GDK] =
setup_analysis (pid, _(
"g(r)/G(r) from FFT[S(q)]"),
GDK, FALSE, TRUE, 16+5*i*i + ((i ==2) ? 6 : 0), 2, comp_list,
"r [Å]");
244 this_proj -> analysis[
SQD] =
setup_analysis (pid, _(
"S(q) from FFT[g(r)]"),
SQD, FALSE, TRUE, 8+4*i*i + ((i ==2) ? 8 : 0), 2, comp_list,
"q [Å<sup>-1</sup>]");
246 this_proj -> analysis[
SKD] =
setup_analysis (pid, _(
"S(q) from Debye Equation"),
SKD, FALSE, TRUE, 8+4*i*i + ((i ==2) ? 8 : 0), 2, comp_list,
"q [Å<sup>-1</sup>]");
253 this_proj -> analysis[
BND] =
setup_analysis (pid, _(
"Bond Properties"),
BND, FALSE, TRUE, i*i, 1, comp_list,
"D<sub>ij</sub> [Å]");
257 this_proj -> analysis[
ANG] =
setup_analysis (pid, _(
"Angle Distributions"),
ANG, FALSE, TRUE, i*i*i + i*i*i*i, 1, comp_list,
"θ [°]");
261 this_proj -> analysis[
RIN] =
setup_analysis (pid, _(
"Ring Statistics"),
RIN, FALSE, TRUE, 20*(i+1), 1, comp_list, _(
"Size <i>n</i> of the ring [total number of nodes]"));
265 this_proj -> analysis[
CHA] =
setup_analysis (pid, _(
"Chain Statistics"),
CHA, FALSE, TRUE, i+1, 1, comp_list, _(
"Size <i>n</i> of the chain [total number of nodes]"));
269 this_proj -> analysis[
SPH] =
setup_analysis (pid, _(
"Spherical Harmonics"),
SPH, FALSE, TRUE, 0, 1, comp_list,
"Q<sub>l</sub>");
271 if (this_proj -> steps > 1)
275 this_proj -> analysis[
MSD] =
setup_analysis (pid, _(
"Mean Squared Displacement"),
MSD, TRUE, TRUE, 14*i+6, 1, comp_list, NULL);
298 int i = this_proj -> nspec;
300 if (! this_proj -> analysis)
302 this_proj -> analysis = g_malloc0(
NCALCS*
sizeof*this_proj -> analysis);
311 this_proj -> analysis[
GDR] =
setup_analysis (this_proj ->
id,
"g(r)/G(r)",
GDR, FALSE, TRUE, 16+5*i*i + ((i ==2) ? 6 : 0), 2, comp_list,
"r [Å]");
318 this_proj -> analysis[
SQD] =
setup_analysis (this_proj ->
id, _(
"S(q) from FFT[g(r)]"),
SQD, FALSE, TRUE, 8+4*i*i + ((i ==2) ? 8 : 0), 2, comp_list,
"q [Å<sup>-1</sup>]");
325 this_proj -> analysis[
SKD] =
setup_analysis (this_proj ->
id, _(
"S(q) from Debye Equation"),
SKD, FALSE, TRUE, 8+4*i*i + ((i ==2) ? 8 : 0), 2, comp_list,
"q [Å<sup>-1</sup>]");
332 this_proj -> analysis[
GDK] =
setup_analysis (this_proj ->
id, _(
"g(r)/G(r) from FFT[S(q)]"),
GDK, FALSE, TRUE, 16+5*i*i + ((i ==2) ? 6 : 0), 2, comp_list,
"r [Å]");
338 this_proj -> analysis[
BND] =
setup_analysis (this_proj ->
id, _(
"Bond Properties"),
BND, FALSE, TRUE, i*i, 1, comp_list,
"D<sub>ij</sub> [Å]");
344 this_proj -> analysis[
ANG] =
setup_analysis (this_proj ->
id, _(
"Angle Distributions"),
ANG, FALSE, TRUE, i*i*i + i*i*i*i, 1, comp_list,
"θ [°]");
350 this_proj -> analysis[
RIN] =
setup_analysis (this_proj ->
id, _(
"Ring Statistics"),
RIN, FALSE, TRUE, 20*(i+1), 1, comp_list, _(
"Size <i>n</i> of the ring [total number of nodes]"));
356 this_proj -> analysis[
CHA] =
setup_analysis (this_proj ->
id, _(
"Chain Statistics"),
CHA, FALSE, TRUE, i+1, 1, comp_list, _(
"Size <i>n</i> of the chain [total number of nodes]"));
362 this_proj -> analysis[
SPH] =
setup_analysis (this_proj ->
id, _(
"Spherical Harmonics"),
SPH, FALSE, TRUE, 0, 1, comp_list,
"Q<sub>l</sub>");
368 if (this_proj -> steps > 1) this_proj -> analysis[
MSD] =
setup_analysis (this_proj ->
id, _(
"Mean Squared Displacement"),
MSD, TRUE, TRUE, 14*i+6, 1, comp_list, NULL);
atomes_analysis * setup_analysis(int pid, gchar *name, int analysis, gboolean req_md, gboolean graph, int num_curves, int n_compat, int *compat, gchar *x_title)
allocate atomes_analysis data structure
void prepostcalc(GtkWidget *widg, gboolean status, int run, int adv, double opc)
to just before and just after running a calculation