115 if (g_strcmp0(this_proj ->
projfile,
"(null)") == 0) this_proj ->
projfile = NULL;
118 print_info (
"\n\tProject file: ",
"italic", buffer);
122 if (this_proj -> tfile > -1 && this_proj -> coordfile != NULL)
124 print_info (
"\n\tCoordinates file: ",
"italic", buffer);
125 print_info (this_proj -> coordfile, NULL, buffer);
126 print_info (
"\n\tFile type: ",
"italic", buffer);
128 this_proj -> tfile = 0;
130 print_info (
"\n\nModel properties\n\n\n",
"heading", buffer);
131 if (this_proj -> steps > 1)
133 print_info (
"\tNumber of MD steps = ",
"italic", buffer);
134 str = g_strdup_printf (
"%d\n", this_proj -> steps);
138 print_info (
"\tNumber of atoms = ",
"italic", buffer);
139 str = g_strdup_printf (
"%d\n", this_proj -> natomes);
142 print_info (
"\tNumber of species = ",
"italic", buffer);
143 str = g_strdup_printf (
"%d\n\n", this_proj -> nspec);
146 if (this_proj -> cell.volume > 0.0)
148 gchar * latv[2][3]={{
"a",
"b",
"c"},
150 if (this_proj -> cell.npt)
152 print_info (
"\tAv. lattice parameters:\n\n", NULL, buffer);
156 print_info (
"\tLattice parameters:\n\n", NULL, buffer);
163 str = g_strdup_printf (
"\t %s=", latv[i][j]);
166 if (this_proj -> cell.npt)
169 for (k=0; k<this_proj -> steps; k++) v += this_proj -> cell.box[k].param[i][j];
170 v /= this_proj -> steps;
174 v = this_proj -> cell.box[0].param[i][j];
176 str = g_strdup_printf (
"%10.5lf", v);
183 if (this_proj -> cell.npt)
185 print_info (
"\tAv. lattice vectors:\n\n\t\t", NULL, buffer);
189 print_info (
"\tLattice vectors:\n\n\t\t", NULL, buffer);
193 str = g_strdup_printf (
" %s ",
vect_comp[i]);
200 str = g_strdup_printf (
"\t\t%s", latv[0][i]);
205 if (this_proj -> cell.npt)
208 for (k=0; k<this_proj -> steps; k++) v += this_proj -> cell.box[k].vect[i][j];
209 v /= this_proj -> steps;
213 v = this_proj -> cell.box[0].vect[i][j];
215 str = g_strdup_printf (
"%10.5lf", v);
221 if (this_proj -> cell.sp_group)
224 print_info (
"\tCrystal information:\n\n",
"italic", buffer);
225 str = g_strdup_printf (
"%d", this_proj -> cell.sp_group ->
id);
226 print_info (
"\t\tSpace group N°: ",
"italic", buffer);
230 print_info (
"\t\tSpace group: ",
"italic", buffer);
233 print_info (
"\t\tSpace group setting: ",
"italic", buffer);
236 print_info (
"\t\tHermman-Mauguin: ",
"italic", buffer);
239 print_info (
"\t\tBravais lattice: ",
"italic", buffer);
240 print_info (this_proj -> cell.sp_group -> bravais,
"bold", buffer);
245 if (this_proj -> cell.npt)
247 print_info (
"\tAv. volume = ",
"italic", buffer);
253 str = g_strdup_printf (
"%14.6lf", this_proj -> cell.volume);
258 if (this_proj -> cell.npt)
260 print_info (
"\n\tAv. density = ",
"italic", buffer);
264 print_info (
"\n\tDensity = ",
"italic", buffer);
266 str = g_strdup_printf (
"%14.6lf", this_proj -> cell.density);
271 if (this_proj -> cell.npt)
273 print_info (
"\n\tAv. number density = ",
"italic", buffer);
277 print_info (
"\n\tNumber density = ",
"italic", buffer);
279 str = g_strdup_printf (
"%14.6lf", this_proj -> natomes / this_proj -> cell.volume);
285 print_info (
"\n\n\tEmpirical formula:\t",
"italic", buffer);
286 for (i=0; i<this_proj -> nspec; i++)
289 if (this_proj ->
chemistry -> formula[i] != 1)
291 str = g_strdup_printf (
"%d", this_proj ->
chemistry -> formula[i]);
297 if (this_proj -> cell.volume != 0.0)
299 print_info (
"\n\n\tAtom\t Number Fraction\tNumber density (atoms / Å",
"italic", buffer);
305 print_info (
"\n\n\tAtom\t Number Fraction",
"italic", buffer);
308 for (i=0; i<this_proj -> nspec; i++)
310 str = g_strdup_printf (
"\n\t%s\t%7d\t%11.6lf",
312 (
double)this_proj ->
chemistry -> nsps[i]/this_proj -> natomes);
315 if (this_proj -> cell.volume != 0.0)
317 str = g_strdup_printf (
"\t%11.6lf", this_proj ->
chemistry -> nsps[i]/this_proj -> cell.volume);
357 gtk_gl_area_make_current ((GtkGLArea *)this_proj -> modelgl ->
plot);
359 print_info (
"\n\nOpenGL driver information\n\n",
"heading", buf);
360 print_info (
"\tOpenGL Version \t\t\t: ", NULL, buf);
361 str = g_strdup_printf (
"%s\n", (
const char*)glGetString(GL_VERSION));
364 print_info (
"\tOpenGL Driver\t\t\t\t: ", NULL, buf);
365 str = g_strdup_printf (
"%s\n", (
const char*)glGetString(GL_VENDOR));
368 print_info (
"\tOpenGL Hardware \t\t\t: ", NULL, buf);
369 str = g_strdup_printf (
"%s\n", (
const char*)glGetString(GL_RENDERER));
373 print_info (
"\tOpenGL Shading Version \t\t\t: ", NULL, buf);
374 str = g_strdup_printf (
"%s\n\n", (
const char*)glGetString (GL_SHADING_LANGUAGE_VERSION));
378 print_info (
"\tOpenGL Window information:\n\n", NULL, buf);
379 print_info (
"\t\tColor Bits (R,G,B,A)\t\t: ", NULL, buf);
380 glGetIntegerv (GL_RED_BITS, & i);
381 glGetIntegerv (GL_GREEN_BITS, & j);
382 glGetIntegerv (GL_BLUE_BITS, & k);
383 glGetIntegerv (GL_ALPHA_BITS, & l);
384 str = g_strdup_printf (
"%d, %d, %d, %d\n", i, j, k, l);
392 print_this_ogl_stuff (
"\t\tMax. Modelview Matrix Stacks \t: ", GL_MAX_MODELVIEW_STACK_DEPTH, buf);
393 print_this_ogl_stuff (
"\t\tMax. Projection Matrix Stacks \t: ", GL_MAX_PROJECTION_STACK_DEPTH, buf);
397 print_info (
"\n\tGeometry Shader information:\n\n", NULL, buf);
399 print_this_ogl_stuff (
"\t\tMax. output components \t\t: ", GL_MAX_GEOMETRY_OUTPUT_COMPONENTS, buf);
400 print_this_ogl_stuff (
"\t\tMax. total output components \t: ", GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS, buf);
402 print_info (
"\n\tTotal number of OpenGL Extensions\t: ", NULL, buf);
403 glGetIntegerv (GL_NUM_EXTENSIONS, & i);
404 str = g_strdup_printf (
"%d\n", i);
407 print_info (
"\tExtensions list:\n", NULL, buf);
410 str = g_strdup_printf (
"\t\t N°%d\t:\t%s\n", j+1, (
const char*)glGetStringi(GL_EXTENSIONS,j));
void label(cairo_t *cr, double val, int axe, int p, project *this_proj)
draw axis label