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;
411 val = (((int)
tmp_field -> thermo_opts[3] == i) &&
tmp_field -> thermo_opts[5] == 1.0) ? TRUE : FALSE;
435 i = GPOINTER_TO_INT(data);
440 for (j=0; j<6; j++)
tmp_field -> thermo_opts[j] = 0.0;
512 for (i=0; i<6; i++)
tmp_field -> thermo_opts[i] = 0.0;
540 g_signal_connect (G_OBJECT (ensemble),
"changed", G_CALLBACK(
set_ensemble), NULL);
549 gtk_widget_set_size_request (
vbox, -1, 390);
551 gboolean
val = (
tmp_field -> thermo_opts[6] == 1.0) ? TRUE : FALSE;
564 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_thermostat), GINT_TO_POINTER(1));
581gchar *
md_data[6] = {
i18n(
"Target temperature:"),
i18n(
"Verlet integrator:"),
i18n(
"Number of steps:"),
i18n(
"Time step δt:"),
i18n(
"Target pressure:"),
""};
582gchar *
md_extra[2][4] = {{
i18n(
"Shake iterations limit:"),
i18n(
"Shake tolerance:"),
"",
""},
583 {
i18n(
"Rattle iterations limit:"),
i18n(
"Rattle tolerance:"),
i18n(
"FIQA iterations limit:"),
i18n(
"FIQA quaternions tolerance:")}};
584gchar *
md_unit[6] = {
"<b>K</b>",
"",
"",
"<b>ps</b>",
"<b>katms</b>",
""};
586gchar *
dt_data[3] = {
i18n(
"Maximum time step:"),
i18n(
"Maximum distance allowed:"),
i18n(
"Minimum distance allowed:")};
587gchar *
dt_unit[3] = {
"<b>ps</b>",
"<b>Å</b>",
"<b>Å</b>"};
601 i = GPOINTER_TO_INT(data);
606 if (v >= 1.0 && v <= tmp_proj -> natomes)
611 else if (v >= 0.0 && v !=
tmp_field -> md_opts[i])
615 if (i == 2 || i == 9 || i == 11 || i == 14 || i == 15)
665 i = GPOINTER_TO_INT(data);
674 gtk_label_set_text (GTK_LABEL(
extra_lab[2*j]),
676 gtk_label_set_text (GTK_LABEL(
extra_lab[2*j+1]),
694G_MODULE_EXPORT
void check_impact (GtkCheckButton * but, gpointer data)
704G_MODULE_EXPORT
void check_impact (GtkToggleButton * but, gpointer data)
708 tmp_field -> md_opts[13] = (i) ? 1.0 : 0.0;
724 GtkWidget *
hbox, * hhbox;
728 gtk_box_set_homogeneous (GTK_BOX (
vbox), TRUE);
729 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):")};
730 gchar * imp_unit[2] = {
i18n(
"<b>n<sup>th</sup> step</b>"),
"<b>k eV</b>"};
739 j = (i < 2) ? 5 : 10;
752 str = g_strdup_printf (
"<b>∈ [1-%d]</b>",
tmp_proj -> natomes);
769 str = g_strdup_printf (_(
"on %s:"),
imp_dir[j]);
790 gtk_widget_set_size_request (
vbox, -1, 450);
800 for (j=0; j<2; j++, l++)
817 gtk_widget_set_size_request (combo, 100, -1);
818 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_md_combo), GINT_TO_POINTER(l));
838 if (i == 1 && j == 0)
854 gchar * extra_info[2] = {
i18n(
"<b>Bond constraint(s) dynamics:</b>"),
i18n(
"<b>Rotational motion of rigid body(ies):</b>")};
862 for (j=0; j<2; j++, l++)
889 gboolean
val = (
tmp_field -> md_opts[13] == 1.0) ? TRUE : FALSE;
890 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);
902 i18n(
"Resample the momenta distribution:"),
i18n(
"Minimize system configuration:"),
903 i18n(
"Optimize system configuration from start:"),
i18n(
"Perform zero temperature (10 K) optimization"),
i18n(
"Include equilibration data in statistics")};
905gchar *
equi_unit[3]= {
i18n(
"<b>step(s)</b>"),
"<b>k<sub><i>B</i></sub>T / Å</b>",
i18n(
"<b>step(s)</b>")};
907gchar *
equi_minu[3]= {
"<b>k<sub><i>B</i></sub>T / Å</b>",
"",
"<b>Å</b>"};
909double equi_lim[2][3] = {{1.0, 0.0, 0.000001}, {1000.0, 0.01, 0.1}};
923 i = GPOINTER_TO_INT(data);
925 j = (i == 9) ? 11 : 14;
926 k = (i == 9) ? 0 : 1;
931 gtk_label_set_use_markup (GTK_LABEL(
equi_lab[4*k+1]), TRUE);
945 i = GPOINTER_TO_INT(data);
948 if (i == 10 || i == 14)
950 j = (i == 10) ? 9 : 13;
957 gchar * str = g_strdup_printf (_(
"Minimization parameter must ∈ [ %f - %f ]"),
963 else if (v >= 0.0 && v !=
tmp_field -> equi_opts[i])
967 if (i == 1 || i == 3 || i == 7 || i == 11)
986G_MODULE_EXPORT
void check_equi (GtkCheckButton * but, gpointer data)
996G_MODULE_EXPORT
void check_equi (GtkToggleButton * but, gpointer data)
1000 i = GPOINTER_TO_INT(data);
1002 k = 2*i + 2*(i/5) + i/6 - i/7;
1003 tmp_field -> equi_opts[k] = (j) ? 1.0 : 0.0;
1015 GtkWidget *
hbox, * hhbox;
1022 val = (
tmp_field -> equi_opts[0] == 1.0) ? TRUE : FALSE;
1023 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);
1026 gtk_box_set_homogeneous (GTK_BOX (
equi_box[0]), TRUE);
1031 j = 2*i + 2*(i/5) - i/7;
1032 k = (i != 2) ? 5 : 10;
1051 val = (
tmp_field -> equi_opts[j] == 1.0) ? TRUE : FALSE;
1052 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);
1053 if (i == 4 || i == 5)
1074 gtk_widget_set_size_request (combo, 100, -1);
1075 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_equi_combo), GINT_TO_POINTER(l));
1077 for (m=i-4; m<2; m++, l++)
1081 k = (i == 4 && m) ? 5 : 10;
1108 i18n(
"Displacements:"),
1110 i18n(
"Atom's MSD:")};
1113 {
i18n(
"From step:"),
i18n(
"Every:"),
i18n(
"Qualifying cutoff:")},
1114 {
i18n(
"From step:"),
i18n(
"Every:"),
i18n(
"Data level:")},
1115 {
i18n(
"From step:"),
i18n(
"Every:"), NULL}};
1120 i18n(
"Velocity autocorrelation functions (VAFs):"),
1121 i18n(
"Z density profile:")};
1137 i = GPOINTER_TO_INT(data);
1140 if (i == 3 || i == 7 || i == 23)
1142 if (v >= 0.0 && v !=
tmp_field -> out_opts[i])
1155 if ((
int)v != (
int)
tmp_field -> out_opts[i])
1172G_MODULE_EXPORT
void check_out (GtkCheckButton * but, gpointer data)
1182G_MODULE_EXPORT
void check_out (GtkToggleButton * but, gpointer data)
1186 i = GPOINTER_TO_INT(data);
1190 k = 4*i - i/4 - 2*(i/5) - 2*(i/6);
1191 tmp_field -> out_opts[k] = (j) ? 1.0 : 0.0;
1196 tmp_field -> out_opts[i] = (j) ? 1.0 : 0.0;
1199 k = (i == 21) ? 7 : (i == 24) ? 8 : 9;
1236 k = (i < 4) ? 4*i : 15;
1237 val = (
tmp_field -> out_opts[k] == 1.0) ? TRUE : FALSE;
1238 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);
1243 for (j=0; j<3-i/3; j++)
1245 l = (j == 2) ? 150 : 50;
1247 if (i != 2 || j != 2)
1249 l = (j<2) ? 50 : 100;
1269 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_print_level), NULL);
1299 i18n(
"Accumulate statistics data:"),
1300 i18n(
"Rolling average stack:")};
1321 val = (
tmp_field -> out_opts[j] == 1.0) ? TRUE : FALSE;
1322 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);
1343 gtk_box_set_homogeneous (GTK_BOX (
vbox), TRUE);
1344 GtkWidget *
hbox, * hhbox;
1354 val = (
tmp_field -> out_opts[k] == 1.0) ? TRUE : FALSE;
1355 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);
1365 m = (l==1) ? k + 2 : 23;
1388 gtk_widget_set_size_request (hhbox, 330, -1);
1390 val = (
tmp_field -> out_opts[29] == 1.0) ? TRUE : FALSE;
1391 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);
1413 i = GPOINTER_TO_INT(data);
1416 if (v >= 0.0 && v !=
tmp_field -> ana_opts[i])
1420 if (i == 3 || i == 7)
1439G_MODULE_EXPORT
void check_ana (GtkCheckButton * but, gpointer data)
1449G_MODULE_EXPORT
void check_ana (GtkToggleButton * but, gpointer data)
1453 i = GPOINTER_TO_INT(data);
1455 tmp_field -> ana_opts[i] = (j) ? 1.0 : 0.0;
1488 j = (i < 3) ? 4*i: 11 + 3*(i-3);
1489 val = (
tmp_field -> ana_opts[j] == 1.0) ? TRUE : FALSE;
1491 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);
1505 str = g_strdup_printf (_(
"%sr in [0 : r]"), _(
ana_param[1]));
1509 str = g_strdup_printf (_(
"%s° in [-180 : 180]"), _(
ana_param[1]));
1513 str = g_strdup_printf (_(
"%s° in [0 : 180]"), _(
ana_param[1]));
1522 str = g_strdup_printf (
"<b>δr</b>");
1526 str = g_strdup_printf (
"<b>δ°</b>");
1548gchar *
io_rw_m[4] = {
"MPI I/O",
"FORTRAN I/O",
i18n(
"Traditional master I/O"),
"netCDF I/O"};
1549gchar *
io_info[2] = {
i18n(
"<b>General Input/Output (I/O) read interface:</b>"),
i18n(
"<b>General Input/Output (I/O) write interface:</b>")};
1551gchar *
io_pres[2] = {
"Float - 32 bit",
"Double - 64 bit"};
1566 i = GPOINTER_TO_INT(data);
1571 if (v >= 0.0 && v !=
tmp_field -> io_opts[2*i+1])
1579 if (i == 7 || i == 15)
1581 if (v >= 1.0 && v <= 100000000.0)
1590 show_warning (_(
"The batch size or max. number of particles by batch\n"
1591 "must ∈ [1 - 10 000 000]"),
1595 else if (i == 8 || i == 16)
1597 if (v >= 100.0 && v <= 100000.0)
1606 show_warning (_(
"The buffer size or max. number of ASCII line records by batch\nmust ∈ [100 - 100 000]"),
field_assistant);
1609 else if (i == 19 || i == 20 || i == 21)
1616 else if (v > 0.0 && v !=
tmp_field -> io_opts[i])
1633G_MODULE_EXPORT
void check_io (GtkCheckButton * but, gpointer data)
1643G_MODULE_EXPORT
void check_io (GtkToggleButton * but, gpointer data)
1647 i = GPOINTER_TO_INT(data);
1651 tmp_field -> io_opts[2*i] = (j) ? 1.0 : 0.0;
1656 tmp_field -> io_opts[i] = (j) ? 1.0 : 0.0;
1659 k = (i == 4) ? 0 : 1;
1681 i = GPOINTER_TO_INT(data);
1686 k = (i == 5) ? 0 : 1;
1687 l = (j == 2) ? FALSE : TRUE;
1693 l = (j == 3) ? TRUE : FALSE;
1715 val = (
tmp_field -> io_opts[2*i] == 1.0) ? TRUE : FALSE;
1716 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);
1748 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);
1762 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_io_method), GINT_TO_POINTER(k));
1764 l =
tmp_field -> io_opts[k] == 2.0 ? FALSE : TRUE;
1765 m =
tmp_field -> io_opts[k] == 3.0 ? TRUE : FALSE;
1775 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_io_method), GINT_TO_POINTER(k));
1784 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_io_method), GINT_TO_POINTER(k));
1824 val = (
tmp_field -> io_opts[18] == 1.0) ? TRUE : FALSE;
1825 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);
1829 for (i=19; i<22; i++)
1831 str = g_strdup_printf (
"<i>n</i><sub>%d</sub>", i-18);
1840 val = (
tmp_field -> io_opts[22] == 1.0) ? TRUE : FALSE;
1841 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);
1848gchar *
eval_m[10] = {
i18n(
"Direct Coulomb sum"),
i18n(
"Distance dependent dielectric Coulomb sum"),
1849 i18n(
"Ewald sum (auto)"),
i18n(
"Ewald sum"),
1850 i18n(
"Reaction field electrostatics"),
i18n(
"Reaction field with Fennel damping"),
1851 i18n(
"Reaction field with Fennel damping (auto)"),
1852 i18n(
"Force-shifted Coulomb sum"),
i18n(
"Force-shifted Coulomb sum with Fennel damping"),
1853 i18n(
"Force-shifted Coulomb sum with Fennel damping (auto)")};
1866 i = GPOINTER_TO_INT(data);
1871 if (v > 0.0 && v !=
tmp_field -> elec_opts[i])
1882 if (v > 0.0 && v !=
tmp_field -> elec_opts[i])
1884 if (v >=
min(0.05, 0.5*
tmp_field -> elec_opts[1]/100.0))
1900 if (i != 6 && (v >= 0.0 && v !=
tmp_field -> elec_opts[i]))
1908 int j = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(
pres_spin));
1909 double w = v * pow (10, j);
1910 if ((w >= 1e-20 && w <= 0.5) && w !=
tmp_field -> elec_opts[i])
1915 else if (w < 1e-20 || w > 0.5)
1918 w =
tmp_field -> elec_opts[i] / pow (10, j);
1921 else if (v >= 0.0 && v !=
tmp_field -> elec_opts[i])
1933 else if (i == 7 || i == 8 || i == 9)
1960 int powa = gtk_spin_button_get_value_as_int(
res);
1967 tmp_field -> elec_opts[6] = v * pow(10, powa);
1977 GtkWidget *
vbox, * vvbox;
1978 GtkWidget *
hbox, * hhbox;
1982 gtk_box_set_homogeneous (GTK_BOX (
vbox), TRUE);
1984 gchar * dir[3] = {
"x:",
"y:",
"z:"};
2006 else if (
tmp_field -> elec_opts[5] == 3.0)
2047 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);
2082G_MODULE_EXPORT
void check_elec (GtkCheckButton * but, gpointer data)
2092G_MODULE_EXPORT
void check_elec (GtkToggleButton * but, gpointer data)
2095 int i = GPOINTER_TO_INT(data);
2097 tmp_field -> elec_opts[i] = (j) ? 1.0 : 0.0;
2111 gboolean
val = (
tmp_field -> elec_opts[0] == 1.0) ? TRUE : FALSE;
2112 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);
2125 val = (
tmp_field -> elec_opts[2] == 1.0) ? TRUE : FALSE;
2126 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);
2134 val = (
tmp_field -> elec_opts[4] == 1.0) ? TRUE : FALSE;
2135 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);
2141 for (i=0; i<10; i++)
2146 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_elec_eval), NULL);
2156gchar *
eval_vdw[6] = {
"Lorentz-Berthelot",
"Fender-Halsey",
"Hogervorst",
2157 "Halgren HHG",
"Tang-Toennies",
i18n(
"Functional")};
2170 i = GPOINTER_TO_INT(data);
2175 if (v > 0.0 && v !=
tmp_field -> vdw_opts[i])
2209G_MODULE_EXPORT
void check_vdw (GtkCheckButton * but, gpointer data)
2219G_MODULE_EXPORT
void check_vdw (GtkToggleButton * but, gpointer data)
2223 j = GPOINTER_TO_INT(data);
2239 gboolean
val = (
tmp_field -> vdw_opts[0] == 1.0) ? TRUE : FALSE;
2240 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);
2244 gtk_box_set_homogeneous (GTK_BOX (
vdw_box[0]), TRUE);
2257 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);
2261 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);
2265 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);
2267 val = (
tmp_field -> vdw_opts[4] == 1.0) ? TRUE : FALSE;
2280 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_vdw_mix), NULL);
2295G_MODULE_EXPORT
void check_met (GtkCheckButton * but, gpointer data)
2305G_MODULE_EXPORT
void check_met (GtkToggleButton * but, gpointer data)
2309 j = GPOINTER_TO_INT(data);
2322 gtk_box_set_homogeneous (GTK_BOX (
vbox), TRUE);
2324 gboolean
val = (
tmp_field -> met_opts[0] == 1.0) ? TRUE : FALSE;
2327 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"),
2328 -1, 25,
val, G_CALLBACK(
check_met), GINT_TO_POINTER(0)), FALSE, FALSE, 5);
2329 val = (
tmp_field -> met_opts[1] == 1.0) ? TRUE : FALSE;
2332 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>"),
2333 -1, 25,
val, G_CALLBACK(
check_met), GINT_TO_POINTER(1)), FALSE, FALSE, 5);
2348 i = GPOINTER_TO_INT(data);
2377gchar *
sys_opts[10] = {
i18n(
"Relative dielectric constant ε<sub>r</sub>"),
2378 i18n(
"Allowed local variation of system density:"),
2379 i18n(
"Ignore the particle indices in CONFIG file"),
2380 i18n(
"Ignore strict checks, hide warnings and assume safe simulation parameters"),
2381 i18n(
"Skip detailed topology reporting during read of FIELD file in output"),
2382 i18n(
"Ignore center of mass removal during the calculation"),
2383 i18n(
"Set tolerance for relaxed shell model:"),
2384 i18n(
"Set the subcelling threshold density of particles per link cell:"),
2385 i18n(
"Create an expanded version of the current model:"),
2386 i18n(
"Restart calculation:")};
2410G_MODULE_EXPORT
void check_sys (GtkCheckButton * but, gpointer data)
2420G_MODULE_EXPORT
void check_sys (GtkToggleButton * but, gpointer data)
2424 i = GPOINTER_TO_INT(data);
2443 GtkWidget *
hbox, * hhbox;
2448 gtk_box_set_homogeneous (GTK_BOX (
vbox), TRUE);
2465 j = (i < 7) ? i : (i == 7) ? 8 : 10;
2467 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);
2508 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);
2512 gchar *
rtype[3]={
i18n(
"Continue current simulation"),
2513 i18n(
"Start new simulation from older run without temperature reset"),
2514 i18n(
"Start new simulation from older run with temperature reset")};
2519 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
set_sys_restart), NULL);
2545 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...