158 if (this_proj -> text_buffer[
RI+
OT] == NULL) this_proj -> text_buffer[
RI+
OT] =
add_buffer (NULL, NULL, NULL);
160 j = this_proj -> rsparam[
c][0];
163 nelt = g_strdup_printf (
"All");
168 nelt = g_strdup_printf (
"%s", this_proj ->
chemistry ->
label[j-1]);
171 print_info (
"\n\nRing statistics\n\n",
"heading", this_proj -> text_buffer[
RI+
OT]);
172 str = g_strdup_printf (
"\n%s rings analysis details:\n",
rings_type[
c]);
176 if (this_proj -> rsparam[
c][2])
178 print_info (
" * only ABAB rings have been considered\n",
"italic", this_proj -> text_buffer[
RI+
OT]);
180 if (this_proj -> rsparam[
c][3])
182 print_info (
" * no homopolar bonds in the rings (A-A, B-B ...)\n",
"italic", this_proj -> text_buffer[
RI+
OT]);
184 if (this_proj -> rsparam[
c][4])
186 print_info (
" * no homopolar bonds in the connectivity matrix (A-A, B-B ...)\n",
"italic", this_proj -> text_buffer[
RI+
OT]);
189 print_info (
"\n Atom(s) used to start the search: ", NULL, this_proj -> text_buffer[
RI+
OT]);
191 if (j != 0)
print_info (
" atom(s) only", NULL, this_proj -> text_buffer[
RI+
OT]);
193 if (this_proj -> steps > 1)
195 print_info (
"\n Average number of rings per configuration: ", NULL, this_proj -> text_buffer[
RI+
OT]);
196 str = g_strdup_printf (
"%f", this_proj -> rsdata[
c][0]);
199 str = g_strdup_printf (
" +/- %f\n", this_proj -> rsdata[
c][1]);
205 print_info (
"\n Total number of rings: ", NULL, this_proj -> text_buffer[
RI+
OT]);
206 str = g_strdup_printf (
"%f\n", this_proj -> rsdata[
c][0]);
210 if (
c == 1 ||
c == 2)
212 if (this_proj -> steps > 1)
214 print_info (
" Average number of ring(s) with n > ", NULL, this_proj -> text_buffer[
RI+
OT]);
218 print_info (
" Number of ring(s) with n > ", NULL, this_proj -> text_buffer[
RI+
OT]);
220 str = g_strdup_printf (
"%d", this_proj -> rsparam[
c][1]);
223 print_info (
" nodes that potentially exist: ", NULL, this_proj -> text_buffer[
RI+
OT]);
224 str = g_strdup_printf (
"%f", this_proj -> rsdata[
c][2]);
227 if (this_proj -> steps > 1)
229 str = g_strdup_printf (
" +/- %f", this_proj -> rsdata[
c][3]);
235 print_info (
"\n\t n\tRc(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
237 if (this_proj -> steps > 1)
239 if (j == this_proj -> nspec)
241 print_info (
"]\t +/- \tPn(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
243 print_info (
"]\t +/- \tPmax(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
245 print_info (
"]\t +/- \tPmin(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
247 print_info (
"]\t +/-\n",
"bold", this_proj -> text_buffer[
RI+
OT]);
251 print_info (
"]\t +/- \tPn(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
253 print_info (
"]\t +/- \tPmax(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
255 print_info (
"]\t +/- \tPmin(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
257 print_info (
"]\t +/- \n",
"bold", this_proj -> text_buffer[
RI+
OT]);
262 if (j == this_proj -> nspec)
264 print_info (
"]\tPn(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
266 print_info (
"]\tPmax(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
268 print_info (
"]\tPmin(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
274 print_info (
"]\tPn(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
276 print_info (
"]\tPmax(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
278 print_info (
"]\tPmin(n)[",
"bold", this_proj -> text_buffer[
RI+
OT]);
285 k = 4*(
c*(this_proj -> nspec+1) + this_proj -> rsparam[
c][0]);
287 for ( i=2 ; i < this_proj -> rsparam[
c][1] ; i++ )
289 if (this_proj -> curves[
RI][k] -> data[1][i] != 0.0)
292 if (j - 2*(j/2) == 0)
294 tab = g_strdup_printf (
"grey_back");
295 cid = g_strdup_printf (
"bold_grey_back");
300 cid = g_strdup_printf (
"bold");
307 str = g_strdup_printf(
"%d", i+1);
310 str = g_strdup_printf(
"\t%f\t", this_proj -> curves[
RI][k] -> data[1][i]);
313 if (this_proj -> steps > 1)
315 str = g_strdup_printf(
"%f\t", this_proj -> curves[
RI][k] -> err[i]);
319 str = g_strdup_printf(
"%f\t", this_proj -> curves[
RI][k+1] -> data[1][i]);
322 if (this_proj -> steps > 1)
324 str = g_strdup_printf(
"%f\t", this_proj -> curves[
RI][k+1] -> err[i]);
328 str = g_strdup_printf(
"%f\t", this_proj -> curves[
RI][k+2] -> data[1][i]);
331 if (this_proj -> steps > 1)
333 str = g_strdup_printf(
"%f\t", this_proj -> curves[
RI][k+2] -> err[i]);
337 str = g_strdup_printf(
"%f", this_proj -> curves[
RI][k+3] -> data[1][i]);
340 if (this_proj -> steps > 1)
342 str = g_strdup_printf(
"\t%f", this_proj -> curves[
RI][k+3] -> err[i]);
377 view -> ring_max[rid] = 0;
381 for (i=0; i<this_proj -> coord -> totcoord[4+rid]; i++)
383 if (view -> ogl_poly[0][4+rid][i] != NULL)
385 if (GTK_IS_WIDGET(view -> ogl_poly[0][4+rid][i]))
387 if (view -> anim -> last ->
img -> show_poly[4+rid][i])
389 gtk_check_menu_item_set_active ((GtkCheckMenuItem *)view -> ogl_poly[0][4+rid][i], FALSE);
390 show_hide_poly (view -> ogl_poly[0][4+rid][i], & view -> gcid[4+rid][i][4+rid]);
396 if (this_proj -> coord -> totcoord[4+rid])
398 if (this_proj -> coord -> ntg[4+rid]) g_free (this_proj -> coord -> ntg[4+rid]);
399 this_proj -> coord -> ntg[4+rid] = NULL;
400 if (this_proj -> coord -> geolist[4+rid][0]) g_free (this_proj -> coord -> geolist[4+rid][0]);
401 this_proj -> coord -> geolist[4+rid][0] = NULL;
402 this_proj -> coord -> totcoord[4+rid] = 0;
404 if (view -> all_rings[rid]) g_free (view -> all_rings[rid]);
405 view -> all_rings[rid] = NULL;
406 if (view -> num_rings[rid]) g_free (view -> num_rings[rid]);
407 view -> num_rings[rid] = NULL;
408 if (view -> show_rpoly[rid]) g_free (view -> show_rpoly[rid]);
409 view -> show_rpoly[rid] = NULL;
410 if (view -> gcid[4+rid]) g_free (view -> gcid[4+rid]);
411 view -> gcid[4+rid] = NULL;
412 for (i=0; i<this_proj -> steps; i++)
414 for (j=0; j<this_proj -> natomes; j++)
416 if (this_proj ->
atoms[i][j].rings[rid])
418 g_free (this_proj ->
atoms[i][j].rings[rid]);
419 this_proj ->
atoms[i][j].rings[rid] = NULL;
427 update_menu_bar (view);