113 i18n(
"Calculation details"),
114 i18n(
"Non-bonded interactions"),
115 i18n(
"Equilibration"),
116 i18n(
"Thermodynamics"),
117 i18n(
"Molecular dynamics"),
118 i18n(
"Output options"),
119 i18n(
"Computational details")};
122#define DLP_ENS_TYPE 10
129 i18n(
"Gentle Stochastic"),
131 "Martyna-Tuckerman-Klein",
132 i18n(
"Two temperature model"),
133 i18n(
"Inhomogeneous Langevin")};
136int md_ens_opt[
DLP_ENS][
DLP_ENS_TYPE] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
137 {1, 2, 3, 2, 2, 3, 3, 0, 4, 4},
138 {0, 3, 0, 3, 3, 0, 0, 3, 0, 0},
139 {0, 3, 0, 3, 3, 0, 0, 3, 0, 0}};
142 {
i18n(
"Relaxation speed constant (friction):"), NULL, NULL},
143 {
i18n(
"Relaxation time:"),
i18n(
"Softness [0.0 - 1.0]:"), NULL},
144 {
i18n(
"Relaxation constant:"), NULL, NULL},
145 {
i18n(
"Relaxation constant:"), NULL, NULL},
146 {
i18n(
"Relaxation constant:"),
i18n(
"Langevin friction:"), NULL},
147 {
i18n(
"Shardlow's splitting order:"),
i18n(
"Global drag coefficient:"), NULL},
148 {
i18n(
"Relaxation constant:"),
i18n(
"Enhancement of relaxation constant:"),
i18n(
"Cut-off particle velocity for friction enhancement:")},
149 {
i18n(
"Relaxation constant:"),
i18n(
"Enhancement of relaxation constant:"),
i18n(
"Cut-off particle velocity for friction enhancement:")}};
152 {
"<b>ps<sup>-1</sup></b>", NULL, NULL},
153 {
"<b>ps</b>", NULL, NULL},
154 {
"<b>ps</b>", NULL, NULL},
155 {
"<b>ps</b>", NULL, NULL},
156 {
"<b>ps</b>",
"<b>ps<sup>-1</sup></b>", NULL},
157 {NULL,
"<b>Dalton ps<sup>-1</sup></b>", NULL},
158 {
"<b>ps<sup>-1</sup></b>",
"<b>ps<sup>-1</sup></b>",
"<b>Å ps<sup>-1</sup></b>"},
159 {
"<b>ps<sup>-1</sup></b>",
"<b>ps<sup>-1</sup></b>",
"<b>Å ps<sup>-1</sup></b>"}};
161gchar *
opts_npt_nvs[2][3] = {{
i18n(
"Thermostat relaxation speed constant (friction):"),
i18n(
"Barostat relaxation speed constant (friction):"), NULL},
162 {
i18n(
"Thermostat relaxation time:"),
i18n(
"Barostat relaxation time:"),
i18n(
"Target surface tension:")}};
164gchar *
unit_npt_nvs[2][3] = {{
"<b>ps<sup>-1</sup></b>",
"<b>ps<sup>-1</sup></b>", NULL},
165 {
"<b>ps</b>",
"<b>ps</b>",
"<b>dyn cm<sup>-1</sup></b>"}};
205 i = GPOINTER_TO_INT(data);
210 if ((v == 0.0 || v >= 1.0) && v !=
tmp_field -> thermo_opts[i])
214 else if (v < 1.0 && v != 0.0)
216 show_warning (_(
"Target temperature for the pseudo bath must be ≥ 1.0 K,\n"
217 "Alternatively set value to 0.0 K to system temperature."),
field_assistant);
220 else if (v >= 0.0 && v !=
tmp_field -> thermo_opts[i])
236G_MODULE_EXPORT
void check_nvs (GtkCheckButton * but, gpointer data)
246G_MODULE_EXPORT
void check_nvs (GtkToggleButton * but, gpointer data)
250 i = GPOINTER_TO_INT(data);
251 tmp_field -> thermo_opts[3] = (double) i;
268 else if (j == i && i == 2)
277 else if (j == i && i == 3)
293G_MODULE_EXPORT
void check_semi (GtkCheckButton * but, gpointer data)
303G_MODULE_EXPORT
void check_semi (GtkToggleButton * but, gpointer data)
306 int i = GPOINTER_TO_INT(data);
336 if (thermo == 6 && i == 0)
342 g_signal_connect (G_OBJECT (o_combo),
"changed", G_CALLBACK(
set_order), NULL);
373 gtk_box_set_homogeneous (GTK_BOX (vvbox), TRUE);
377 val = ((int)
tmp_field -> thermo_opts[3] == i) ? TRUE : FALSE;
412 val = (((int)
tmp_field -> thermo_opts[3] == i) &&
tmp_field -> thermo_opts[5] == 1.0) ? TRUE : FALSE;
439 i = GPOINTER_TO_INT(data);
444 for (j=0; j<6; j++)
tmp_field -> thermo_opts[j] = 0.0;
516 for (i=0; i<6; i++)
tmp_field -> thermo_opts[i] = 0.0;
544 g_signal_connect (G_OBJECT (ensemble),
"changed", G_CALLBACK(
set_ensemble), NULL);
553 gtk_widget_set_size_request (
vbox, -1, 390);
555 gboolean
val = (
tmp_field -> thermo_opts[6] == 1.0) ? TRUE : FALSE;
568 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_thermostat), GINT_TO_POINTER(1));
585gchar *
md_data[6] = {
i18n(
"Target temperature:"),
i18n(
"Verlet integrator:"),
i18n(
"Number of steps:"),
i18n(
"Time step δt:"),
i18n(
"Target pressure:"),
""};
586gchar *
md_extra[2][4] = {{
i18n(
"Shake iterations limit:"),
i18n(
"Shake tolerance:"),
"",
""},
587 {
i18n(
"Rattle iterations limit:"),
i18n(
"Rattle tolerance:"),
i18n(
"FIQA iterations limit:"),
i18n(
"FIQA quaternions tolerance:")}};
588gchar *
md_unit[6] = {
"<b>K</b>",
"",
"",
"<b>ps</b>",
"<b>katms</b>",
""};
590gchar *
dt_data[3] = {
i18n(
"Maximum time step:"),
i18n(
"Maximum distance allowed:"),
i18n(
"Minimum distance allowed:")};
591gchar *
dt_unit[3] = {
"<b>ps</b>",
"<b>Å</b>",
"<b>Å</b>"};
605 i = GPOINTER_TO_INT(data);
610 if (v >= 1.0 && v <= tmp_proj -> natomes)
615 else if (v >= 0.0 && v !=
tmp_field -> md_opts[i])
619 if (i == 2 || i == 9 || i == 11 || i == 14 || i == 15)
669 i = GPOINTER_TO_INT(data);
678 gtk_label_set_text (GTK_LABEL(
extra_lab[2*j]),
680 gtk_label_set_text (GTK_LABEL(
extra_lab[2*j+1]),
698G_MODULE_EXPORT
void check_impact (GtkCheckButton * but, gpointer data)
708G_MODULE_EXPORT
void check_impact (GtkToggleButton * but, gpointer data)
712 tmp_field -> md_opts[13] = (i) ? 1.0 : 0.0;
728 GtkWidget *
hbox, * hhbox;
732 gtk_box_set_homogeneous (GTK_BOX (
vbox), TRUE);
733 gchar * imp_info[4] = {
i18n(
"Index of the particle to impact: "),
i18n(
"Time step of impact:"),
i18n(
"Energy of impact:"),
i18n(
"Direction (from center of mass):")};
734 gchar * imp_unit[2] = {
i18n(
"<b>n<sup>th</sup> step</b>"),
"<b>k eV</b>"};
743 j = (i < 2) ? 5 : 10;
756 str = g_strdup_printf (
"<b>∈ [1-%d]</b>",
tmp_proj -> natomes);
773 str = g_strdup_printf (_(
"on %s:"),
imp_dir[j]);
794 gtk_widget_set_size_request (
vbox, -1, 450);
804 for (j=0; j<2; j++, l++)
821 gtk_widget_set_size_request (combo, 100, -1);
822 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_md_combo), GINT_TO_POINTER(l));
842 if (i == 1 && j == 0)
858 gchar * extra_info[2] = {
i18n(
"<b>Bond constraint(s) dynamics:</b>"),
i18n(
"<b>Rotational motion of rigid body(ies):</b>")};
866 for (j=0; j<2; j++, l++)
893 gboolean
val = (
tmp_field -> md_opts[13] == 1.0) ? TRUE : FALSE;
894 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
"<b>Initiate impact on particle</b>"), 100, -1,
val, G_CALLBACK(
check_impact), NULL), FALSE, FALSE, 10);
906 i18n(
"Resample the momenta distribution:"),
i18n(
"Minimize system configuration:"),
907 i18n(
"Optimize system configuration from start:"),
i18n(
"Perform zero temperature (10 K) optimization"),
i18n(
"Include equilibration data in statistics")};
909gchar *
equi_unit[3]= {
i18n(
"<b>step(s)</b>"),
"<b>k<sub><i>B</i></sub>T / Å</b>",
i18n(
"<b>step(s)</b>")};
911gchar *
equi_minu[3]= {
"<b>k<sub><i>B</i></sub>T / Å</b>",
"",
"<b>Å</b>"};
913double equi_lim[2][3] = {{1.0, 0.0, 0.000001}, {1000.0, 0.01, 0.1}};
927 i = GPOINTER_TO_INT(data);
929 j = (i == 9) ? 11 : 14;
930 k = (i == 9) ? 0 : 1;
935 gtk_label_set_use_markup (GTK_LABEL(
equi_lab[4*k+1]), TRUE);
949 i = GPOINTER_TO_INT(data);
952 if (i == 10 || i == 14)
954 j = (i == 10) ? 9 : 13;
961 gchar * str = g_strdup_printf (_(
"Minimization parameter must ∈ [ %f - %f ]"),
967 else if (v >= 0.0 && v !=
tmp_field -> equi_opts[i])
971 if (i == 1 || i == 3 || i == 7 || i == 11)
990G_MODULE_EXPORT
void check_equi (GtkCheckButton * but, gpointer data)
1000G_MODULE_EXPORT
void check_equi (GtkToggleButton * but, gpointer data)
1004 i = GPOINTER_TO_INT(data);
1006 k = 2*i + 2*(i/5) + i/6 - i/7;
1007 tmp_field -> equi_opts[k] = (j) ? 1.0 : 0.0;
1019 GtkWidget *
hbox, * hhbox;
1026 val = (
tmp_field -> equi_opts[0] == 1.0) ? TRUE : FALSE;
1027 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
"Equilibrate"), 100, -1,
val, G_CALLBACK(
check_equi), GINT_TO_POINTER(0)), FALSE, FALSE, 5);
1030 gtk_box_set_homogeneous (GTK_BOX (
equi_box[0]), TRUE);
1035 j = 2*i + 2*(i/5) - i/7;
1036 k = (i != 2) ? 5 : 10;
1055 val = (
tmp_field -> equi_opts[j] == 1.0) ? TRUE : FALSE;
1056 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
equi_info[i]), 300, -1,
val, G_CALLBACK(
check_equi), GINT_TO_POINTER(i)), FALSE, FALSE, 5);
1057 if (i == 4 || i == 5)
1078 gtk_widget_set_size_request (combo, 100, -1);
1079 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_equi_combo), GINT_TO_POINTER(l));
1081 for (m=i-4; m<2; m++, l++)
1085 k = (i == 4 && m) ? 5 : 10;
1112 i18n(
"Displacements:"),
1114 i18n(
"Atom's MSD:")};
1117 {
i18n(
"From step:"),
i18n(
"Every:"),
i18n(
"Qualifying cutoff:")},
1118 {
i18n(
"From step:"),
i18n(
"Every:"),
i18n(
"Data level:")},
1119 {
i18n(
"From step:"),
i18n(
"Every:"), NULL}};
1124 i18n(
"Velocity autocorrelation functions (VAFs):"),
1125 i18n(
"Z density profile:")};
1141 i = GPOINTER_TO_INT(data);
1144 if (i == 3 || i == 7 || i == 23)
1146 if (v >= 0.0 && v !=
tmp_field -> out_opts[i])
1159 if ((
int)v != (
int)
tmp_field -> out_opts[i])
1176G_MODULE_EXPORT
void check_out (GtkCheckButton * but, gpointer data)
1186G_MODULE_EXPORT
void check_out (GtkToggleButton * but, gpointer data)
1190 i = GPOINTER_TO_INT(data);
1194 k = 4*i - i/4 - 2*(i/5) - 2*(i/6);
1195 tmp_field -> out_opts[k] = (j) ? 1.0 : 0.0;
1200 tmp_field -> out_opts[i] = (j) ? 1.0 : 0.0;
1203 k = (i == 21) ? 7 : (i == 24) ? 8 : 9;
1240 k = (i < 4) ? 4*i : 15;
1241 val = (
tmp_field -> out_opts[k] == 1.0) ? TRUE : FALSE;
1242 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
traj_data[i]), 150, -1,
val, G_CALLBACK(
check_out), GINT_TO_POINTER(i)), FALSE, FALSE, 5);
1247 for (j=0; j<3-i/3; j++)
1249 l = (j == 2) ? 150 : 50;
1251 if (i != 2 || j != 2)
1253 l = (j<2) ? 50 : 100;
1273 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_print_level), NULL);
1303 i18n(
"Accumulate statistics data:"),
1304 i18n(
"Rolling average stack:")};
1325 val = (
tmp_field -> out_opts[j] == 1.0) ? TRUE : FALSE;
1326 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
out_data[i-4]), 200, -1,
val, G_CALLBACK(
check_out), GINT_TO_POINTER(i)), FALSE, FALSE, 5);
1347 gtk_box_set_homogeneous (GTK_BOX (
vbox), TRUE);
1348 GtkWidget *
hbox, * hhbox;
1358 val = (
tmp_field -> out_opts[k] == 1.0) ? TRUE : FALSE;
1359 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
out_print[l]), 350, -1,
val, G_CALLBACK(
check_out), GINT_TO_POINTER(k)), FALSE, FALSE, 5);
1369 m = (l==1) ? k + 2 : 23;
1392 gtk_widget_set_size_request (hhbox, 330, -1);
1394 val = (
tmp_field -> out_opts[29] == 1.0) ? TRUE : FALSE;
1395 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
out_hbox[10],
check_button(_(
"Ignore time-averaging for the VAFs"), 100, -1,
val, G_CALLBACK(
check_out), GINT_TO_POINTER(29)), FALSE, FALSE, 5);
1417 i = GPOINTER_TO_INT(data);
1420 if (v >= 0.0 && v !=
tmp_field -> ana_opts[i])
1424 if (i == 3 || i == 7)
1443G_MODULE_EXPORT
void check_ana (GtkCheckButton * but, gpointer data)
1453G_MODULE_EXPORT
void check_ana (GtkToggleButton * but, gpointer data)
1457 i = GPOINTER_TO_INT(data);
1459 tmp_field -> ana_opts[i] = (j) ? 1.0 : 0.0;
1492 j = (i < 3) ? 4*i: 11 + 3*(i-3);
1493 val = (
tmp_field -> ana_opts[j] == 1.0) ? TRUE : FALSE;
1495 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
ana_info[i]), 100, -1,
val, G_CALLBACK(
check_ana), GINT_TO_POINTER(j)), FALSE, FALSE, 5);
1509 str = g_strdup_printf (_(
"%sr in [0 : r]"), _(
ana_param[1]));
1513 str = g_strdup_printf (_(
"%s° in [-180 : 180]"), _(
ana_param[1]));
1517 str = g_strdup_printf (_(
"%s° in [0 : 180]"), _(
ana_param[1]));
1526 str = g_strdup_printf (
"<b>δr</b>");
1530 str = g_strdup_printf (
"<b>δ°</b>");
1552gchar *
io_rw_m[4] = {
"MPI I/O",
"FORTRAN I/O",
i18n(
"Traditional master I/O"),
"netCDF I/O"};
1553gchar *
io_info[2] = {
i18n(
"<b>General Input/Output (I/O) read interface:</b>"),
i18n(
"<b>General Input/Output (I/O) write interface:</b>")};
1555gchar *
io_pres[2] = {
"Float - 32 bit",
"Double - 64 bit"};
1570 i = GPOINTER_TO_INT(data);
1575 if (v >= 0.0 && v !=
tmp_field -> io_opts[2*i+1])
1583 if (i == 7 || i == 15)
1585 if (v >= 1.0 && v <= 100000000.0)
1594 show_warning (_(
"The batch size or max. number of particles by batch\n"
1595 "must ∈ [1 - 10 000 000]"),
1599 else if (i == 8 || i == 16)
1601 if (v >= 100.0 && v <= 100000.0)
1610 show_warning (_(
"The buffer size or max. number of ASCII line records by batch\nmust ∈ [100 - 100 000]"),
field_assistant);
1613 else if (i == 19 || i == 20 || i == 21)
1620 else if (v > 0.0 && v !=
tmp_field -> io_opts[i])
1637G_MODULE_EXPORT
void check_io (GtkCheckButton * but, gpointer data)
1647G_MODULE_EXPORT
void check_io (GtkToggleButton * but, gpointer data)
1651 i = GPOINTER_TO_INT(data);
1655 tmp_field -> io_opts[2*i] = (j) ? 1.0 : 0.0;
1660 tmp_field -> io_opts[i] = (j) ? 1.0 : 0.0;
1663 k = (i == 4) ? 0 : 1;
1685 i = GPOINTER_TO_INT(data);
1690 k = (i == 5) ? 0 : 1;
1691 l = (j == 2) ? FALSE : TRUE;
1697 l = (j == 3) ? TRUE : FALSE;
1719 val = (
tmp_field -> io_opts[2*i] == 1.0) ? TRUE : FALSE;
1720 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
time_info[i]), 200, -1,
val, G_CALLBACK(
check_io), GINT_TO_POINTER(i)), FALSE, FALSE, 5);
1752 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
io_info[i]), 200, -1,
val, G_CALLBACK(
check_io), GINT_TO_POINTER(k)), FALSE, FALSE, 5);
1766 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_io_method), GINT_TO_POINTER(k));
1768 l =
tmp_field -> io_opts[k] == 2.0 ? FALSE : TRUE;
1769 m =
tmp_field -> io_opts[k] == 3.0 ? TRUE : FALSE;
1779 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_io_method), GINT_TO_POINTER(k));
1788 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_io_method), GINT_TO_POINTER(k));
1828 val = (
tmp_field -> io_opts[18] == 1.0) ? TRUE : FALSE;
1829 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
"Random number generator seeds:"), 200, -1,
val, G_CALLBACK(
check_io), GINT_TO_POINTER(18)), FALSE, FALSE, 5);
1833 for (i=19; i<22; i++)
1835 str = g_strdup_printf (
"<i>n</i><sub>%d</sub>", i-18);
1844 val = (
tmp_field -> io_opts[22] == 1.0) ? TRUE : FALSE;
1845 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
"Limits to 2 the number of processors in <i>z</i> direction for slab simulations"), 200, -1,
val, G_CALLBACK(
check_io), GINT_TO_POINTER(22)), FALSE, FALSE, 5);
1852gchar *
eval_m[10] = {
i18n(
"Direct Coulomb sum"),
i18n(
"Distance dependent dielectric Coulomb sum"),
1853 i18n(
"Ewald sum (auto)"),
i18n(
"Ewald sum"),
1854 i18n(
"Reaction field electrostatics"),
i18n(
"Reaction field with Fennel damping"),
1855 i18n(
"Reaction field with Fennel damping (auto)"),
1856 i18n(
"Force-shifted Coulomb sum"),
i18n(
"Force-shifted Coulomb sum with Fennel damping"),
1857 i18n(
"Force-shifted Coulomb sum with Fennel damping (auto)")};
1870 i = GPOINTER_TO_INT(data);
1875 if (v > 0.0 && v !=
tmp_field -> elec_opts[i])
1886 if (v > 0.0 && v !=
tmp_field -> elec_opts[i])
1888 if (v >=
min(0.05, 0.5*
tmp_field -> elec_opts[1]/100.0))
1904 if (i != 6 && (v >= 0.0 && v !=
tmp_field -> elec_opts[i]))
1912 int j = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(
pres_spin));
1913 double w = v * pow (10, j);
1914 if ((w >= 1e-20 && w <= 0.5) && w !=
tmp_field -> elec_opts[i])
1919 else if (w < 1e-20 || w > 0.5)
1922 w =
tmp_field -> elec_opts[i] / pow (10, j);
1925 else if (v >= 0.0 && v !=
tmp_field -> elec_opts[i])
1937 else if (i == 7 || i == 8 || i == 9)
1964 int powa = gtk_spin_button_get_value_as_int(
res);
1971 tmp_field -> elec_opts[6] = v * pow(10, powa);
1981 GtkWidget *
vbox, * vvbox;
1982 GtkWidget *
hbox, * hhbox;
1986 gtk_box_set_homogeneous (GTK_BOX (
vbox), TRUE);
1988 gchar * dir[3] = {
"x:",
"y:",
"z:"};
2010 else if (
tmp_field -> elec_opts[5] == 3.0)
2051 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
markup_label(_(
"Evaluate <i>k</i>-space contribution to the Ewald sum every:"), -1, -1, 0.0, 0.5), FALSE, FALSE, 0);
2086G_MODULE_EXPORT
void check_elec (GtkCheckButton * but, gpointer data)
2096G_MODULE_EXPORT
void check_elec (GtkToggleButton * but, gpointer data)
2099 int i = GPOINTER_TO_INT(data);
2101 tmp_field -> elec_opts[i] = (j) ? 1.0 : 0.0;
2115 gboolean
val = (
tmp_field -> elec_opts[0] == 1.0) ? TRUE : FALSE;
2116 add_box_child_start (GTK_ORIENTATION_VERTICAL,
vbox,
check_button(_(
"Evaluate electrostatics interactions"), -1, -1,
val, G_CALLBACK(
check_elec), GINT_TO_POINTER(0)), FALSE, FALSE, 5);
2129 val = (
tmp_field -> elec_opts[2] == 1.0) ? TRUE : FALSE;
2130 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
"Add padding to r<sub>cut</sub>:"), 150, -1,
val, G_CALLBACK(
check_elec), GINT_TO_POINTER(2)), FALSE, FALSE, 0);
2138 val = (
tmp_field -> elec_opts[4] == 1.0) ? TRUE : FALSE;
2139 add_box_child_start (GTK_ORIENTATION_VERTICAL,
elec_box[0],
check_button(_(
"Use extended coulombic exclusion"), -1, -1,
val, G_CALLBACK(
check_elec), GINT_TO_POINTER(4)), FALSE, FALSE, 5);
2145 for (i=0; i<10; i++)
2150 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_elec_eval), NULL);
2160gchar *
eval_vdw[6] = {
"Lorentz-Berthelot",
"Fender-Halsey",
"Hogervorst",
2161 "Halgren HHG",
"Tang-Toennies",
i18n(
"Functional")};
2174 i = GPOINTER_TO_INT(data);
2179 if (v > 0.0 && v !=
tmp_field -> vdw_opts[i])
2213G_MODULE_EXPORT
void check_vdw (GtkCheckButton * but, gpointer data)
2223G_MODULE_EXPORT
void check_vdw (GtkToggleButton * but, gpointer data)
2227 j = GPOINTER_TO_INT(data);
2243 gboolean
val = (
tmp_field -> vdw_opts[0] == 1.0) ? TRUE : FALSE;
2244 add_box_child_start (GTK_ORIENTATION_VERTICAL,
vbox,
check_button(_(
"Evaluate van der Waals interactions"), -1, -1,
val, G_CALLBACK(
check_vdw), GINT_TO_POINTER(0)), FALSE, FALSE, 5);
2248 gtk_box_set_homogeneous (GTK_BOX (
vdw_box[0]), TRUE);
2261 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
"Enforce direct calculation of van der Waals interactions"), -1, -1,
val, G_CALLBACK(
check_vdw), GINT_TO_POINTER(2)), FALSE, FALSE, 5);
2265 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
"Apply force-shifting (contributions smoothly fall to zero near r<sub>cut</sub>)"), -1, -1,
val, G_CALLBACK(
check_vdw), GINT_TO_POINTER(3)), FALSE, FALSE, 5);
2269 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
"Apply mixing rule (when needed and if possible generate cross species interactions)"), -1, -1,
val, G_CALLBACK(
check_vdw), GINT_TO_POINTER(4)), FALSE, FALSE, 5);
2271 val = (
tmp_field -> vdw_opts[4] == 1.0) ? TRUE : FALSE;
2284 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_vdw_mix), NULL);
2299G_MODULE_EXPORT
void check_met (GtkCheckButton * but, gpointer data)
2309G_MODULE_EXPORT
void check_met (GtkToggleButton * but, gpointer data)
2313 j = GPOINTER_TO_INT(data);
2326 gtk_box_set_homogeneous (GTK_BOX (
vbox), TRUE);
2328 gboolean
val = (
tmp_field -> met_opts[0] == 1.0) ? TRUE : FALSE;
2331 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
"Enforce direct calculation of metal interactions by explicit potentials, does not work with *EAM* potentials"),
2332 -1, 25,
val, G_CALLBACK(
check_met), GINT_TO_POINTER(0)), FALSE, FALSE, 5);
2333 val = (
tmp_field -> met_opts[1] == 1.0) ? TRUE : FALSE;
2336 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
"Switch the default embedding functions, <i>F</i>, from <i>F(ρ)</i> to <i>F(√ρ)</i>"),
2337 -1, 25,
val, G_CALLBACK(
check_met), GINT_TO_POINTER(1)), FALSE, FALSE, 5);
2352 i = GPOINTER_TO_INT(data);
2381gchar *
sys_opts[10] = {
i18n(
"Relative dielectric constant ε<sub>r</sub>"),
2382 i18n(
"Allowed local variation of system density:"),
2383 i18n(
"Ignore the particle indices in CONFIG file"),
2384 i18n(
"Ignore strict checks, hide warnings and assume safe simulation parameters"),
2385 i18n(
"Skip detailed topology reporting during read of FIELD file in output"),
2386 i18n(
"Ignore center of mass removal during the calculation"),
2387 i18n(
"Set tolerance for relaxed shell model:"),
2388 i18n(
"Set the subcelling threshold density of particles per link cell:"),
2389 i18n(
"Create an expanded version of the current model:"),
2390 i18n(
"Restart calculation:")};
2414G_MODULE_EXPORT
void check_sys (GtkCheckButton * but, gpointer data)
2424G_MODULE_EXPORT
void check_sys (GtkToggleButton * but, gpointer data)
2428 i = GPOINTER_TO_INT(data);
2447 GtkWidget *
hbox, * hhbox;
2452 gtk_box_set_homogeneous (GTK_BOX (
vbox), TRUE);
2469 j = (i < 7) ? i : (i == 7) ? 8 : 10;
2471 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
sys_opts[i]), -1, 25,
val, G_CALLBACK(
check_sys), GINT_TO_POINTER(i)), FALSE, FALSE, 5);
2512 add_box_child_start (GTK_ORIENTATION_HORIZONTAL,
hbox,
check_button(_(
sys_opts[9]), -1, 25,
val, G_CALLBACK(
check_sys), GINT_TO_POINTER(14)), FALSE, FALSE, 5);
2516 gchar *
rtype[3]={
i18n(
"Continue current simulation"),
2517 i18n(
"Start new simulation from older run without temperature reset"),
2518 i18n(
"Start new simulation from older run with temperature reset")};
2523 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_sys_restart), NULL);
2549 add_box_child_start (GTK_ORIENTATION_VERTICAL,
vbox,
markup_label(_(
"<b>Intra-molecular probability denisty function (PDF) analysis:</b>"), 350, -1, 0.0, 0.5), FALSE, FALSE, 10);
Binding to the Fortran90 subroutines.
Callback declarations for main window.
GtkWidget * thermo_box()
create the thermostat configuration widgets
GtkWidget * create_md_box()
CONTROL file create molecular dynamics parameter widgets.
GtkWidget * create_traj_box()
CONTROL file create MD trajectory parameter widgets.
GtkWidget * create_job_box()
CONTROL file create job parameter vidgets.
G_MODULE_EXPORT void set_out_param(GtkEntry *res, gpointer data)
CONTROL file update output information parameter entry callback.
int md_ens_opt[DLP_ENS][DLP_ENS_TYPE]
GtkWidget * create_electro_box()
CONTROL file create electrostatic interactions parameter vidgets.
G_MODULE_EXPORT void set_md_combo(GtkComboBox *box, gpointer data)
CONTROL file change MD parameter.
GtkWidget * create_vdws_box()
CONTROL file create VdW parameter vidgets.
G_MODULE_EXPORT void set_print_level(GtkComboBox *box, gpointer data)
CONTROL file change print level.
G_MODULE_EXPORT void set_io_method(GtkComboBox *box, gpointer data)
CONTROL file change I/O method.
GtkWidget * create_equi_box()
CONTROL file create equilibration parameter widgets.
G_MODULE_EXPORT void show_impact_dialog(GtkButton *but, gpointer data)
CONTROL file particle impact - creating the dialog.
G_MODULE_EXPORT void set_elec_param(GtkEntry *res, gpointer data)
CONTROL file update electrostatic interactions parameter entry callback.
G_MODULE_EXPORT void set_vdw_param(GtkEntry *res, gpointer data)
CONTROL file udpate VdW parameter entry callback.
G_MODULE_EXPORT void check_sys(GtkToggleButton *but, gpointer data)
change CONTROL file system option toggle callback GTK3
GtkWidget * create_thermo_box(int ensemble)
CONTROL file create thermostat box parameters.
GtkWidget * check_nvs_butt[4]
G_MODULE_EXPORT void set_thermo_param(GtkEntry *res, gpointer data)
CONTROL file thermostat update parameter entry callback.
G_MODULE_EXPORT void check_elec(GtkToggleButton *but, gpointer data)
change CONTROL file electrostatics option toggle callback GTK3
G_MODULE_EXPORT void set_equi_param(GtkEntry *res, gpointer data)
CONTROL file update equilibration parameter entry callback.
gchar * unit_npt_nvs[2][3]
G_MODULE_EXPORT void set_md_param(GtkEntry *res, gpointer data)
CONTROL file update MD parameter entry callback.
GtkWidget * create_dump_box()
CONTROL file create dump parameter widgets.
G_MODULE_EXPORT void check_semi(GtkToggleButton *but, gpointer data)
CONTROL file thermostat change parameter toggle callback GTK3.
G_MODULE_EXPORT void check_io(GtkToggleButton *but, gpointer data)
CONTROL file change I/O parameter toggle callback GTK3.
GtkWidget * create_elec_param_box()
CONTROL file create electrostatic interactions parameter box.
G_MODULE_EXPORT void check_ana(GtkToggleButton *but, gpointer data)
CONTROL file change analysis parameter toggle callback GTK3.
G_MODULE_EXPORT void set_elec_eval(GtkComboBox *box, gpointer data)
CONTROL file change electrostatics evaluation method.
GtkWidget * create_overall_box()
CONTROL file create overall parameter widgets.
ColRGBA init_color(int id, int numid)
initialize color based id number over total number of elements
G_MODULE_EXPORT void set_equi_combo(GtkComboBox *box, gpointer data)
CONTROL file change equilibration parameter.
G_MODULE_EXPORT void check_met(GtkToggleButton *but, gpointer data)
change CONTROL file metal interactions toggle callback GTK3
G_MODULE_EXPORT void check_nvs(GtkToggleButton *but, gpointer data)
CONTROL file thermostat change parameter toggle callback GTK3.
GtkWidget * create_out_box()
CONTROL file create output information widgets.
G_MODULE_EXPORT void set_vdw_mix(GtkComboBox *box, gpointer data)
CONTROL file change VdW mixing rule.
gchar * md_thermo[DLP_ENS_TYPE]
GtkWidget * equi_entry[3]
G_MODULE_EXPORT void set_io_param(GtkEntry *res, gpointer data)
CONTROL file update I/O parameter entry callback.
GtkWidget * extra_vbox[2]
GtkWidget * thermo_option_box
G_MODULE_EXPORT void check_equi(GtkToggleButton *but, gpointer data)
CONTROL file change equilibration parameter toggle callback GTK3.
G_MODULE_EXPORT void set_order(GtkComboBox *box, gpointer data)
CONTROL file change thermostat order.
GtkWidget * create_ensemble_box()
CONTROL file create thermodynamic ensemble parameter widgets.
G_MODULE_EXPORT void check_impact(GtkToggleButton *but, gpointer data)
CONTROL file particle impact change parameter toggle callback GTK3.
GtkWidget * create_thermo_options(int ensemble, int thermo)
CONTROL file create thermostat option box.
GtkWidget * create_io_box()
CONTROL file create I/O parameter vidgets.
G_MODULE_EXPORT void check_vdw(GtkToggleButton *but, gpointer data)
change CONTROL file VdW option toggle callback GTK3
G_MODULE_EXPORT void set_thermostat(GtkComboBox *box, gpointer data)
CONTROL file change thermostat option.
G_MODULE_EXPORT void set_ana_param(GtkEntry *res, gpointer data)
CONTROL file update analysis parameter entry callback.
G_MODULE_EXPORT void set_sys_param(GtkEntry *res, gpointer data)
update CONTROL file system option parameter entry callback
G_MODULE_EXPORT void adjust_precision(GtkSpinButton *res, gpointer data)
CONTROL file update electrostatic interactions precision spin callback.
GtkWidget * vbox_control(int f)
crerate DL-POLY option widgets
GtkWidget * create_sys_box()
prepare the DL-POLY CONTROL file system options widgets
gboolean print_ana()
determine if the analysis information section is required
G_MODULE_EXPORT void show_advance_time_step(GtkButton *but, gpointer data)
CONTROL file advanced time step - creating the dialog.
gchar * md_ensemble[DLP_ENS]
G_MODULE_EXPORT void set_sys_restart(GtkComboBox *box, gpointer data)
change CONTROL file system option
G_MODULE_EXPORT void set_ensemble(GtkComboBox *box, gpointer data)
CONTROL file change thermodynamic ensemble parameter.
GtkWidget * create_misc_box()
CONTROL file create miscalleanous parameter vidgets.
GtkWidget * create_analyze_box()
CONTROL file create analysis parameter widgets.
gchar * opts_npt_nvs[2][3]
GtkWidget * create_metal_box()
create CONTROL file metal interaction widgets
GtkWidget * create_restart_box()
prepare the DL-POLY CONTROL file restart widgets
G_MODULE_EXPORT void check_out(GtkToggleButton *but, gpointer data)
CONTROL file change output information parameter toggle callback GTK3.
GtkWidget * field_assistant
classical_field * tmp_field
Variable declarations for the creation of the DL_POLY input file(s).
double string_to_double(gpointer string)
convert string to double
void run_this_gtk_dialog(GtkWidget *dial, GCallback handler, gpointer data)
run a GTK (3 and 4) basic GtkDialog
int combo_get_active(GtkWidget *combo)
retrieve the active item's position
GtkWidget * create_entry(GCallback handler, int dim, int cdim, gboolean key_release, gpointer data)
Create a GtkEntry.
void update_entry_double(GtkEntry *entry, double doubleval)
update the content of a GtkEntry as double
GtkWidget * dialogmodal(gchar *str, GtkWindow *parent)
Create a new dialog modal window.
void combo_set_active(GtkWidget *combo, int pos)
set the active item's position
const gchar * entry_get_text(GtkEntry *entry)
get the text in a GtkEntry
void update_entry_int(GtkEntry *entry, int intval)
update the content of a GtkEntry as int
GtkWidget * radio_button(gchar *text, int dimx, int dimy, gboolean state, GCallback handler, gpointer data)
create a radio button
GtkWidget * spin_button(GCallback handler, double value, double start, double end, double step, int digits, int dim, gpointer data)
create a spin button
GtkWidget * check_button(gchar *text, int dimx, int dimy, gboolean state, GCallback handler, gpointer data)
create a check button
GtkWidget * create_button(gchar *text, int image_format, gchar *image, int dimx, int dimy, int relief, GCallback handler, gpointer data)
create a simple button
GtkWidget * create_combo()
create a GtkCombox widget, note deprecated in GTK4
GtkWidget * dialog_get_content_area(GtkWidget *widg)
prepare GtkWidget to insert content in a GtkDialog window
GtkWidget * markup_label(gchar *text, int dimx, int dimy, float ax, float ay)
create a GtkLabel with pango markup
void add_box_child_start(int orientation, GtkWidget *widg, GtkWidget *child, gboolean expand, gboolean fill, int padding)
Add a GtkWidget in a GtkBox at the initial position.
void widget_set_sensitive(GtkWidget *widg, gboolean sensitive)
Set sensitivity for a GtkWidget, ensuring it is a GtkWidget.
GtkWidget * create_hbox(int spacing)
create a GtkBox with horizontal orientation
void combo_text_append(GtkWidget *combo, gchar *text)
append text in GtkComboBox widget
G_MODULE_EXPORT void run_destroy_dialog(GtkDialog *dialog, gint response_id, gpointer data)
to destroy a GtkDialog when the dialog emit the closing signal
GtkWidget * destroy_this_widget(GtkWidget *widg)
destroy a GtkWidget
void add_box_child_end(GtkWidget *widg, GtkWidget *child, gboolean expand, gboolean fill, int padding)
Add a GtkWidget in a GtkBox at the end position.
void update_entry_text(GtkEntry *entry, gchar *text)
update the content of a GtkEntry as string
#define MAXDATC
Number of tabs for the description of the classical calculation.
GtkWidget * create_vbox(int spacing)
create a GtkBox with vertical orientation
int button_get_status(GtkWidget *button)
get status of check / toggle button
void show_the_widgets(GtkWidget *widg)
show GtkWidget
Variable declarations related to the OpenGL window Function declarations related to the OpenGL wind...
Function declarations for the creation of the OpenGL window.
void show_warning(char *warning, GtkWidget *win)
show warning
Messaging function declarations.
Function declarations for reading atomes project file Function declarations for saving atomes proje...