145 "Mean force potential",
147 "Tethering potential",
148 "Flexible chemical bond",
153 "Torsional restraint",
156 "van der Waals potential",
159 "Three-body potential",
160 "Four-body potential",
167 "mean force potential",
169 "tethering potential",
170 "flexible chemical bond",
175 "torsional restraint",
178 "van der Waals potential",
181 "three-body potential",
182 "four-body potential",
185gchar *
fkeysw[2][16][21] = {{{
"eV",
"kcal",
"kJ",
"K",
"internal",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
186 {
"harm",
"rhrm",
"quar",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
187 {
"harm",
"mors",
"12-6",
"lj ",
"rhrm",
"quar",
"buck",
"coul",
"fene",
"mmst",
"tab ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
188 {
"-hrm",
"-mrs",
"-126",
"-lj ",
"-rhm",
"-qur",
"-bck",
"-cul",
"-fne",
"-mst",
"-tab",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
189 {
"harm",
"quar",
"thrm",
"shrm",
"bvs1",
"bvs2",
"hcos",
"cos ",
"mmsb",
"stst",
"stbe",
"cmps",
"mmbd",
"kky ",
"tab ",
" ",
" ",
" ",
" ",
" ",
" "},
190 {
"-hrm",
"-qur",
"-thm",
"-shm",
"-bv1",
"-bv2",
"-hcs",
"-cos",
"-msb",
"-sts",
"-stb",
"-cmp",
"-mbd",
"-kky",
"-tab",
" ",
" ",
" ",
" ",
" ",
" "},
191 {
"cos ",
"harm",
"hcos",
"cos3",
"ryck",
"rbf ",
"opls",
"tab ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
192 {
"-cos",
"-hrm",
"-hcs",
"-cs3",
"-rck",
"-rbf",
"-opl",
"-tab",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
193 {
"cos ",
"harm",
"hcos",
"cos3",
"ryck",
"rbf ",
"opls",
"tab ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
194 {
"harm",
"hcos",
"plan",
"xpln",
"calc",
"tab ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
195 {
"12-6",
"lj ",
"ljc",
"nm ",
"buck",
"bhm ",
"hbnd",
"snm ",
"mors",
"wca ",
"dpd",
"14-7",
"mstw",
"ryb",
"zbl",
"zbls",
"zblb",
"mlj",
"mbuc",
"m126",
"tab "},
196 {
"eam ",
"eeam",
"2bea",
"2bee",
"fnsc",
"exfs",
"stch",
"gupt",
"mbpc",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
197 {
"ters",
"kihs",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
198 {
"harm",
"thrm",
"shrm",
"bvs1",
"bvs2",
"hbnd",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
199 {
"harm",
"hcos",
"plan",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
200 {
"elec",
"oshr",
"shrx",
"grav",
"magn",
"sphr",
"zbnd",
"xpis",
"zres",
"zrs-",
"zrs+",
"osel",
"ushr",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}},
201 {{
"lj",
"real",
"metal",
"si",
"cgs",
"electron",
"micro",
"nano",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
202 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
203 {
"harmonic",
"class2",
"fene",
"fene/expand",
"gromos",
"harmonic/shift",
"harmonic/shift/cut",
"mm3",
"morse",
"nonlinear",
"oxdna/fene",
"oxdna2/fene",
"oxrna2/fene",
"quartic",
"special",
"table",
" ",
" ",
" ",
" ",
" "},
204 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
205 {
"harmonic",
"charmm",
"class2",
"class2/p6",
"cosine",
"cosine/buck6d",
"cosine/delta",
"cosine/periodic",
"cosine/shift",
"cosine/shift/exp",
"cosine/squared",
"cross",
"dipole",
"fourier",
"fourier/simple",
"mm3",
"quartic",
"sdk",
"table",
" ",
" "},
206 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
207 {
"cosine/shift/exp",
"charmm",
"charmmfsw",
"class2",
"fourier",
"harmonic",
"helix",
"multi/harmonic",
"nharmonic",
"opls",
"quadratic",
"spherical",
"table",
"table/cut",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
208 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
209 {
"harmonic",
"class2",
"cossq",
"cvff",
"distance",
"distharm",
"fourier",
"ring",
"sqdistharm",
"umbrella",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
210 {
"inversion/harmonic",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
211 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
212 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
213 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
214 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
215 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
216 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}}};
218gchar *
fnames[2][16][21] = {{{
"Electron-Volts",
"k-calories per mol",
"k-Joules per mol",
"Kelvin per Boltzmann",
"DL_POLY internal units",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
219 {
"Harmonic",
"Restraint",
"Quartic",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
220 {
"Harmonic",
"Morse",
"12-6",
"Lennard-Jones",
"Restraint",
"Quartic",
"Buckingham",
"Coulomb",
"Shifted FENE",
"MM3 bond stretch",
"Tabulated",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
221 {
"Harmonic",
"Morse",
"12-6",
"Lennard-Jones",
"Restraint",
"Quartic",
"Buckingham",
"Coulomb",
"Shifted FENE",
"MM3 bond stretch",
"Tabulated",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
222 {
"Harmonic",
"Quartic",
"Truncated harmonic",
"Screened harmonic",
"Screened Vessal",
"Truncated Vessal",
"Harmonic cosine",
"Cosine",
"MM3 stretch-bend",
"Compass stretch-stretch",
"Compass stretch-bend",
"Compass all terms",
"MM3 angle bend",
"KKY",
"Tabulated",
" ",
" ",
" ",
" ",
" ",
" "},
223 {
"Harmonic",
"Quartic",
"Truncated harmonic",
"Screened harmonic",
"Screened Vessal",
"Truncated Vessal",
"Harmonic cosine",
"Cosine",
"MM3 stretch-bend",
"Compass stretch-stretch",
"Compass stretch-bend",
"Compass all terms",
"MM3 angle bend",
"KKY",
"Tabulated",
" ",
" ",
" ",
" ",
" ",
" "},
224 {
"Cosine",
"Harmonic",
"Harmonic cosine",
"Triple cosine",
"Ryckaert-Bellemans",
"Fluorinated Ryckaert-Bellemans",
"OPLS torsion",
"Tabulated",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
225 {
"Cosine",
"Harmonic",
"Harmonic cosine",
"Triple cosine",
"Ryckaert-Bellemans",
"Fluorinated Ryckaert-Bellemans",
"OPLS torsion",
"Tabulated",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
226 {
"Cosine",
"Harmonic",
"Harmonic cosine",
"Triple cosine",
"Ryckaert-Bellemans",
"Fluorinated Ryckaert-Bellemans",
"OPLS torsion",
"Tabulated",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
227 {
"Harmonic",
"Harmonic cosine",
"Planar",
"Extended Planar",
"Calcite",
"Tabulated",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
228 {
"12-6",
"Lennard-Jones",
"LJ cohesive",
"n-m",
"Buckingham",
"Born-Huggins-Meyer",
"12-10 H-bond",
"Shifted force n-m",
"Morse",
"Shifted Weeks-Chandler-Anderson",
"Standard DPD",
"14-7 buffered AMOEBA FF",
229 "Morse modified",
"Rydberg",
"ZBL",
"ZBL mixed with Morse",
"ZBL mixed with Buckingham",
"Lennard-Jones tapered with MDF",
"Buckingham tapered with MDF",
"12-6 Lennard-Jones tapered with MDF",
"Tabulated"},
230 {
"EAM",
"EEAM",
"2BEAM",
"2BEEAM",
"Finis-Sinclair",
"Extended Finis-Sinclair",
"Sutton-Chen",
"Gupta",
"MBPC",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
231 {
"Tersoff",
"KIHS",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
232 {
"Harmonic",
"Truncated harmonic",
"Screened harmonic",
"Screened Vessal",
"Truncated Vessal",
"H-bond",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
233 {
"Harmonic",
"Harmonic cosine",
"Planar",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
234 {
"Electric field",
"Oscillating Shear",
"Continuous Shear",
"Gravitational field",
"Magnetic field",
"Containing Sphere",
"Repulsive Wall",
"X-Piston",
"Molecule in HR Zone",
"HR Zone (pull out)",
"HR Zone (pull in)",
"Osc. Electric Field",
"Umbrella sampling, harm. constant",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}},
235 {{
"lj",
"k-calories per mol",
"Electron-Volts",
"k-Joules per mol",
"cgs",
"electron",
"micro",
"nano",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
236 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
237 {
"Harmonic",
"COMPASS class2 force field",
"Finite extensible nonlinear elastic (FENE)",
"FENE with variable size particles",
"GROMOS force field",
"Shifted harmonic",
"Shifted truncated harmonic",
"MM3 anharmonic",
"Morse",
"Nonlinear",
"Finite extensible nonlinear elastic DNA",
238 "Finite extensible nonlinear elastic DNA (2)",
"Finite extensible nonlinear elastic RNA",
"Breakable quartic",
"Special bond exclusions for 1-5 pairs and beyond",
"Tabulated",
" ",
" ",
" ",
" ",
" "},
239 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
240 {
"Harmonic",
"CHARMM force field",
"COMPASS class2 force field",
"COMPASS class2 force field - 6th order",
"Cosine",
"Cosine with Buckingham term between 1-3",
"Difference of cosines",
"DREIDING force field",
"Cosine with a shift",
"Cosine with a shift and exponential term in spring",
241 "Cosine with squared term",
"Cross term coupling angle and bond length",
"Dipole orientation",
"Fourier (multiple cosines)",
"Fourier (single cosine)",
"MM3",
"Quartic",
"Combination of the harmonic (SDK)",
"Tabulated",
" ",
" "},
242 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
243 {
"Cosine with a shift and exponential term in spring",
"CHARMM force field",
"CHARMM force field with force switching",
"COMPASS class2 force field",
"Fourier (multiple cosines)",
"Harmonic",
"Helix",
"Harmonic with 5 terms",
244 "Harmonic with N terms",
"OPLS force field",
"Quadratic",
"Spherical",
"Tabulated",
"Tabulated with analytic cutoff",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
245 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
246 {
"Harmonic",
"COMPASS class2 force field",
"Cosine squared",
"CVFF force field",
"Distance between atom planes",
"Out-of-the plane distance",
"Fourier (multiple cosines)",
"Planar conformation",
"Squared distance harmonic",
"DREIDING force field",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
247 {
"Harmonic with Wilson Decius out-of-plane",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
248 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
249 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
250 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
251 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
252 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
253 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}}};
255int fvalues[2][15][21] = {{{ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
256 { 2, 3, 2, 2, 3, 4, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
257 { 2, 3, 2, 2, 3, 4, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
258 { 2, 4, 3, 4, 4, 4, 2, 3, 4, 3, 3, 6, 2, 4, 0, 0, 0, 0, 0, 0, 0},
259 { 2, 4, 3, 4, 4, 4, 2, 3, 4, 3, 3, 6, 2, 4, 0, 0, 0, 0, 0, 0, 0},
260 { 3, 2, 2, 3, 1, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
261 { 3, 2, 2, 3, 1, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
262 { 3, 2, 2, 3, 1, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
263 { 2, 2, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
264 { 2, 2, 3, 4, 3, 5, 2, 5, 3, 3, 2, 2, 4, 3, 2, 7, 7, 3, 4, 3, 0},
265 { 0, 0, 0, 0, 7, 9, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
266 {11,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
267 { 2, 3, 4, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
268 { 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
269 { 3, 2, 2, 3, 3, 4, 3, 3, 5, 5, 5, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0}},
270 {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
271 { 2, 4, 4, 5, 2, 3, 3, 2, 3, 3, 3, 3, 3, 5, 2, 2, 0, 0, 0, 0, 0},
272 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
273 { 2, 4, 4, 4, 1, 3, 2, 3, 2, 3, 2, 6, 2, 4, 3, 2, 4, 2, 2, 0, 0},
274 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
275 { 3, 4, 4, 6, 4, 3, 3, 5, 2, 4, 2,11, 2, 2, 0, 0, 0, 0, 0, 0, 0},
276 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
277 { 2, 2, 2, 3, 2, 2, 5, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
278 { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
279 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
280 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
281 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
282 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
283 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
284 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}};
286int fetypes[2][16] = {{
DL_ENERGY,
DL_TETH,
DL_BONDS,
DL_BONDS,
DL_ANGLES,
DL_ANGLES,
DL_DIHEDRAL,
DL_DIHEDRAL,
DL_DIHEDRAL,
DL_INVERS,
DL_VDW,
DL_METALS,
DL_TERSOFFS,
DL_THREEBODY,
DL_FOURBODY,
DL_EXTERNAL},
287 {
LA_ENERGY,
LA_TETH,
LA_BONDS, 1,
LA_ANGLES, 1,
LA_DIHEDRAL, 1,
LA_DIHEDRAL,
LA_INVERS,
LA_VDW,
LA_METALS,
LA_TERSOFFS,
LA_THREEBODY,
LA_FOURBODY,
LA_EXTERNAL}};
289int fntypes[2][15] = {{
DL_TETH_P,
DL_BONDS_P,
DL_BONDS_P,
DL_ANGLES_P,
DL_ANGLES_P,
DL_DIHEDRAL_P,
DL_DIHEDRAL_P,
DL_DIHEDRAL_P,
DL_INVERS_P,
DL_VDW_P,
DL_METALS_P,
DL_TERSOFFS_P,
DL_THREEBODY_P,
DL_FOURBODY_P,
DL_EXTERNAL_P},
290 {
LA_TETH_P,
LA_BONDS_P,
LA_BONDS_P,
LA_ANGLES_P,
LA_ANGLES_P,
LA_DIHEDRAL_P,
LA_DIHEDRAL_P,
LA_DIHEDRAL_P,
LA_INVERS_P,
LA_VDW_P,
LA_METALS_P,
LA_TERSOFFS_P,
LA_THREEBODY_P,
LA_FOURBODY_P,
LA_EXTERNAL_P}};
293 {
"k",
"r<sub>c</sub>",
" "},
307 {
"E<sub>0</sub>",
"r<sub>0</sub>",
"k",
" ",
" "},
308 {
"A",
"B",
" ",
" ",
" "},
309 {
"ϵ",
"σ",
" ",
" ",
" "},
310 {
"k",
"r<sub>0</sub>",
"r<sub>c</sub>",
" ",
" "},
311 {
"k",
"r<sub>0</sub>",
"k'",
"k''",
" "},
312 {
"A",
"ρ",
"C",
" ",
" "},
313 {
"k",
" ",
" ",
" ",
" "},
314 {
"k",
"R<sub>0</sub>",
"Δ",
" ",
" "},
315 {
"k",
"r<sub>o</sub>",
" ",
" ",
" "},
316 {
" ",
" ",
" ",
" ",
" "},
317 {
" ",
" ",
" ",
" ",
" "},
318 {
" ",
" ",
" ",
" ",
" "},
319 {
" ",
" ",
" ",
" ",
" "},
320 {
" ",
" ",
" ",
" ",
" "},
321 {
" ",
" ",
" ",
" ",
" "}},
322 {{
"K",
"r<sub>0</sub>",
" ",
" ",
" "},
323 {
"r<sub>0</sub>",
"K<sub>2</sub>",
"K<sub>3</sub>",
"K<sub>4</sub>",
" "},
324 {
"K",
"R<sub>0</sub>",
"ϵ",
"σ",
" "},
325 {
"K",
"R<sub>0</sub>",
"ϵ",
"σ",
"Δ"},
326 {
"K",
"r<sub>0</sub>",
" ",
" ",
" "},
327 {
"K",
"r<sub>0</sub>",
"r<sub>c</sub>",
" ",
" "},
328 {
"U<sub>min</sub>",
"r<sub>0</sub>",
"r<sub>c</sub>",
" ",
" "},
329 {
"K",
"r<sub>0</sub>",
" ",
" ",
" "},
330 {
"D",
"α",
"r<sub>0</sub>",
" ",
" "},
331 {
"ϵ",
"r<sub>0</sub>",
"λ",
" ",
" "},
332 {
"ϵ",
"Δ",
"r<sub>0</sub>",
" ",
" "},
333 {
"ϵ",
"Δ",
"r<sub>0</sub>",
" ",
" "},
334 {
"ϵ",
"Δ",
"r<sub>0</sub>",
" ",
" "},
335 {
"K",
"B<sub>1</sub>",
"B<sub>2</sub>",
"R<sub>c</sub>",
"U<sub>0</sub>"},
336 {
"w<sub>LJ</sub>",
"w<sub>Coul</sub>",
" ",
" ",
" "},
337 {
"Interpolation style",
"Distances",
" ",
" ",
" "}}};
373 {
"k",
"θ<sub>0</sub>",
"k'",
"k''",
" ",
" "},
374 {
"k",
"θ<sub>0</sub>",
"ρ",
" ",
" ",
" "},
375 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" ",
" "},
376 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" ",
" "},
377 {
"k",
"θ<sub>0</sub>",
"a",
"ρ",
" ",
" "},
378 {
"k",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
379 {
"A",
"δ",
"m",
" ",
" ",
" "},
380 {
"A",
"θ<sub>0</sub>",
"r<sup>o</sup><sub>ij</sub>",
"r<sup>o</sup><sub>jk</sub>",
" ",
" "},
381 {
"A",
"r<sup>o</sup><sub>ij</sub>",
"r<sup>o</sup><sub>jk</sub>",
" ",
" ",
" "},
382 {
"A",
"θ<sub>0</sub>",
"r<sup>o</sup><sub>ij</sub>",
" ",
" ",
" "},
383 {
"A",
"B",
"C",
"θ<sub>0</sub>",
"r<sup>o</sup><sub>ij</sub>",
"r<sup>o</sup><sub>jk</sub>"},
384 {
"k",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
385 {
"f<sub>k</sub>",
"θ<sub>0</sub>",
"g<sub>r</sub>",
"r<sub>o</sub>",
" ",
" "},
386 {
" ",
" ",
" ",
" ",
" ",
" "},
387 {
" ",
" ",
" ",
" ",
" ",
" "},
388 {
" ",
" ",
" ",
" ",
" ",
" "},
389 {
" ",
" ",
" ",
" ",
" ",
" "},
390 {
" ",
" ",
" ",
" ",
" ",
" "}},
391 {{
"K",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
392 {
"K",
"θ<sub>0</sub>",
"K<sub>ub</sub>",
"r<sub>ub</sub>",
" ",
" "},
393 {
"θ<sub>0</sub>",
"K<sub>2</sub>",
"K<sub>3</sub>",
"K<sub>4</sub>",
" ",
" "},
394 {
"θ<sub>0</sub>",
"K<sub>2</sub>",
"K<sub>3</sub>",
"K<sub>4</sub>",
" ",
" "},
395 {
"K",
" ",
" ",
" ",
" ",
" "},
396 {
"K",
"n",
"θ<sub>0</sub>",
" ",
" ",
" "},
397 {
"K",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
398 {
"C",
"B",
"n",
" ",
" ",
" "},
399 {
"U<sub>min</sub>",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
400 {
"U<sub>min</sub>",
"θ<sub>0</sub>",
"A",
" ",
" ",
" "},
401 {
"K",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
402 {
"K<sub>SS</sub>",
"K<sub>BS0</sub>",
"K<sub>BS1</sub>",
"r<sub>12,0</sub>",
"r<sub>32,0</sub>",
"θ<sub>0</sub>"},
403 {
"K",
"λ<sub>0</sub>",
" ",
" ",
" ",
" "},
404 {
"K",
"C<sub>0</sub>",
"C<sub>1</sub>",
"C<sub>2</sub>",
" ",
" "},
405 {
"K",
"c",
"n",
"",
" ",
" "},
406 {
"K",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
407 {
"θ<sub>0</sub>",
"K<sub>2</sub>",
"K<sub>3</sub>",
"K<sub>4</sub>",
" ",
" "},
408 {
"K",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
409 {
"Interpolation style",
"Angles",
" ",
" ",
" ",
" "}}};
448 {0, 0, 0, 0, 0, 0}}};
450char *
fvars_dihedral[2][
FDIHEDRAL][
FDIHEDRAL_P] = {{{
"A",
"δ",
"m",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
451 {
"k",
"ϕ<sub>0</sub>",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
452 {
"k",
"ϕ<sub>0</sub>",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
453 {
"A<sub>1</sub>",
"A<sub>2</sub>",
"A<sub>3</sub>",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
454 {
"A",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
455 {
"A",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
456 {
"A<sub>0</sub>",
"A<sub>1</sub>",
"A<sub>2</sub>",
"A<sub>3</sub>",
"ϕ<sub>0</sub>",
" ",
" ",
" ",
" ",
" ",
" "},
457 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
458 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
459 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
460 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
461 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
462 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
463 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}},
464 {{
"U<sub>min</sub>",
"θ<sub>0</sub>",
"a",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
465 {
"K",
"n",
"d",
"weighting factor",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
466 {
"K",
"n",
"d",
"weighting factor",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
467 {
"E<sub>d</sub>",
"E<sub>mbt</sub>",
"E<sub>ebt</sub>",
"E<sub>at</sub>",
"E<sub>aat</sub>",
"E<sub>bb13</sub>",
" ",
" ",
" ",
" ",
" "},
468 {
"m",
"K",
"n",
"d",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
469 {
"K",
"d",
"n",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
470 {
"A",
"B",
"C",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
471 {
"A<sub>1</sub>",
"A<sub>2</sub>",
"A<sub>3</sub>",
"A<sub>4</sub>",
"A<sub>5</sub>",
" ",
" ",
" ",
" ",
" ",
" "},
472 {
"n",
"A",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
473 {
"K<sub>1</sub>",
"K<sub>2</sub>",
"K<sub>3</sub>",
"K<sub>4</sub>",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
474 {
"K",
"ϕ<sub>0</sub>",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
475 {
"n",
"C",
"K",
"a",
"u",
"L",
"b",
"v",
"M",
"c",
"w"},
476 {
"Interpolation style",
"Dihedrals",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
477 {
"Interpolation style",
"Dihedrals",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}}};
479int feunit_dihedral[2][
FDIHEDRAL][
FDIHEDRAL_P] = {{{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
480 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
481 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
482 {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
483 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
484 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
485 {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
486 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
487 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
488 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
489 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
490 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
491 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
492 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},
493 {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
494 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
495 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
496 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
497 {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
498 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
499 {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
500 {1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0},
501 {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
502 {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
503 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
504 {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
505 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
506 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}};
523 {
"k",
"ϕ<sub>0</sub>",
" "},
525 {
"k",
"m",
"ϕ<sub>0</sub>"},
556 "inversion/harmonic",
603 {
"ϵ",
"ρ",
" ",
" ",
" ",
" ",
" "},
604 {
"ϵ",
"ρ",
"c",
" ",
" ",
" ",
" "},
605 {
"E<sub>0</sub>",
"n",
"m",
"r<sub>0</sub>",
" ",
" ",
" "},
606 {
"A",
"ρ",
"C",
" ",
" ",
" ",
" "},
607 {
"A",
"B",
"σ",
"C",
"D",
" ",
" "},
608 {
"A",
"B",
" ",
" ",
" ",
" ",
" "},
609 {
"E<sub>0</sub>",
"n",
"m",
"r<sub>0</sub>",
"r<sub>c</sub>",
" ",
" "},
610 {
"E<sub>0</sub>",
"r<sub>0</sub>",
"k",
" ",
" ",
" ",
" "},
611 {
"ϵ",
"σ",
"Δ",
" ",
" ",
" ",
" "},
612 {
"A",
"r<sub>c</sub>",
" ",
" ",
" ",
" ",
" "},
613 {
"ϵ",
"r<sub>o</sub>",
" ",
" ",
" ",
" ",
" "},
614 {
"E<sub>0</sub>",
"r<sub>0</sub>",
"k",
"c",
" ",
" ",
" "},
615 {
"a",
"b",
"σ",
" ",
" ",
" ",
" "},
616 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
" ",
" ",
" ",
" ",
" "},
617 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
"r<sub>m</sub>",
"ξ",
"E<sub>0</sub>",
"r<sub>0</sub>",
"k"},
618 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
"r<sub>m</sub>",
"ξ",
"A",
"ρ",
"C"},
619 {
"ϵ",
"ρ",
"r<sub>i</sub>",
" ",
" ",
" ",
" "},
620 {
"A",
"ρ",
"C",
"r<sub>i</sub>",
" ",
" ",
" "},
621 {
"A",
"B",
"r<sub>i</sub>",
" ",
" ",
" ",
" "},
622 {
" ",
" ",
" ",
" ",
" ",
" ",
" "}},
623 {{
"A",
"B",
" ",
" ",
" ",
" ",
" "},
624 {
"A",
"B",
" ",
" ",
" ",
" ",
" "},
625 {
"ϵ",
"ρ",
" ",
" ",
" ",
" ",
" "},
626 {
"ϵ",
"ρ",
"c",
" ",
" ",
" ",
" "},
627 {
"E<sub>0</sub>",
"n",
"m",
"r<sub>0</sub>",
" ",
" ",
" "},
628 {
"A",
"ρ",
"C",
" ",
" ",
" ",
" "},
629 {
"A",
"B",
"σ",
"C",
"D",
" ",
" "},
630 {
"E<sub>0</sub>",
"n",
"m",
"r<sub>0</sub>",
"r<sub>c</sub>",
" ",
" "},
631 {
"E<sub>0</sub>",
"r<sub>0</sub>",
"k",
" ",
" ",
" ",
" "},
632 {
"ϵ",
"σ",
"Δ",
" ",
" ",
" ",
" "},
633 {
"A",
"r<sub>c</sub>",
" ",
" ",
" ",
" ",
" "},
634 {
"ϵ",
"r<sub>o</sub>",
" ",
" ",
" ",
" ",
" "},
635 {
"E<sub>0</sub>",
"r<sub>0</sub>",
"k",
"c",
" ",
" ",
" "},
636 {
"a",
"b",
"σ",
" ",
" ",
" ",
" "},
637 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
" ",
" ",
" ",
" ",
" "},
638 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
"r<sub>m</sub>",
"ξ",
"E<sub>0</sub>",
"r<sub>0</sub>",
"k"},
639 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
"r<sub>m</sub>",
"ξ",
"A",
"ρ",
"C"},
640 {
"ϵ",
"ρ",
"r<sub>i</sub>",
" ",
" ",
" ",
" "},
641 {
"A",
"ρ",
"C",
"r<sub>i</sub>",
" ",
" ",
" "},
642 {
"A",
"B",
"r<sub>i</sub>",
" ",
" ",
" ",
" "},
643 {
" ",
" ",
" ",
" ",
" ",
" ",
" "}}};
646 {1, 0, 0, 0, 0, 0, 0},
647 {1, 0, 0, 0, 0, 0, 0},
648 {1, 0, 0, 0, 0, 0, 0},
649 {1, 0, 1, 0, 0, 0, 0},
650 {1, 0, 0, 1, 1, 0, 0},
651 {1, 1, 0, 0, 0, 0, 0},
652 {1, 0, 0, 0, 0, 0, 0},
653 {1, 0, 0, 0, 0, 0, 0},
654 {1, 0, 0, 0, 0, 0, 0},
655 {1, 0, 0, 0, 0, 0, 0},
656 {1, 0, 0, 0, 0, 0, 0},
657 {1, 0, 0, 0, 0, 0, 0},
658 {1, 1, 0, 0, 0, 0, 0},
659 {1, 1, 0, 0, 0, 0, 0},
660 {1, 1, 0, 0, 1, 0, 0},
661 {1, 1, 0, 0, 1, 0, 0},
662 {1, 0, 0, 0, 0, 0, 0},
663 {1, 0, 0, 0, 0, 0, 0},
664 {1, 1, 0, 0, 0, 0, 0},
665 {0, 0, 0, 0, 0, 0, 0}},
666 {{1, 1, 0, 0, 0, 0, 0},
667 {1, 0, 0, 0, 0, 0, 0},
668 {1, 0, 0, 0, 0, 0, 0},
669 {1, 0, 0, 0, 0, 0, 0},
670 {1, 0, 1, 0, 0, 0, 0},
671 {1, 0, 0, 1, 1, 0, 0},
672 {1, 1, 0, 0, 0, 0, 0},
673 {1, 0, 0, 0, 0, 0, 0},
674 {1, 0, 0, 0, 0, 0, 0},
675 {1, 0, 0, 0, 0, 0, 0},
676 {1, 0, 0, 0, 0, 0, 0},
677 {1, 0, 0, 0, 0, 0, 0},
678 {1, 0, 0, 0, 0, 0, 0},
679 {1, 1, 0, 0, 0, 0, 0},
680 {1, 1, 0, 0, 0, 0, 0},
681 {1, 1, 0, 0, 1, 0, 0},
682 {1, 1, 0, 0, 1, 0, 0},
683 {1, 0, 0, 0, 0, 0, 0},
684 {1, 0, 0, 0, 0, 0, 0},
685 {1, 1, 0, 0, 0, 0, 0},
686 {0, 0, 0, 0, 0, 0, 0}}};
689 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
690 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
691 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
692 {
"c<sub>0</sub>",
"c<sub>1</sub>",
"c<sub>2</sub>",
"c",
"A",
"d",
"β",
" ",
" "},
693 {
"c<sub>0</sub>",
"c<sub>1</sub>",
"c<sub>2</sub>",
"c<sub>3</sub>",
"c<sub>4</sub>",
"c",
"A",
"d",
"B"},
694 {
"ϵ",
"a",
"n",
"m",
"c",
" ",
" ",
" ",
" "},
695 {
"A",
"r<sub>0</sub>",
"p",
"B",
"q<sub>ij</sub>",
" ",
" ",
" ",
" "},
696 {
"ϵ",
"a",
"m",
"α",
"r<sub>o</sub>",
" ",
" ",
" ",
" "}},
697 {{
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
698 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
699 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
700 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
701 {
"c<sub>0</sub>",
"c<sub>1</sub>",
"c<sub>2</sub>",
"c",
"A",
"d",
"β",
" ",
" "},
702 {
"c<sub>0</sub>",
"c<sub>1</sub>",
"c<sub>2</sub>",
"c<sub>3</sub>",
"c<sub>4</sub>",
"c",
"A",
"d",
"B"},
703 {
"ϵ",
"a",
"n",
"m",
"c",
" ",
" ",
" ",
" "},
704 {
"A",
"r<sub>0</sub>",
"p",
"B",
"q<sub>ij</sub>",
" ",
" ",
" ",
" "},
705 {
"ϵ",
"a",
"m",
"α",
"r<sub>o</sub>",
" ",
" ",
" ",
" "}}};
708 {0, 0, 0, 0, 0, 0, 0, 0, 0},
709 {0, 0, 0, 0, 0, 0, 0, 0, 0},
710 {0, 0, 0, 0, 0, 0, 0, 0, 0},
711 {0, 0, 0, 0, 1, 0, 1, 0, 0},
712 {0, 0, 0, 0, 0, 0, 1, 0, 1},
713 {1, 0, 0, 0, 0, 0, 0, 0, 0},
714 {1, 0, 0, 1, 0, 0, 0, 0, 0},
715 {1, 0, 0, 0, 0, 0, 0, 0, 0}},
716 {{0, 0, 0, 0, 0, 0, 0, 0, 0},
717 {0, 0, 0, 0, 0, 0, 0, 0, 0},
718 {0, 0, 0, 0, 0, 0, 0, 0, 0},
719 {0, 0, 0, 0, 0, 0, 0, 0, 0},
720 {0, 0, 0, 0, 1, 0, 1, 0, 0},
721 {0, 0, 0, 0, 0, 0, 1, 0, 1},
722 {1, 0, 0, 0, 0, 0, 0, 0, 0},
723 {1, 0, 0, 1, 0, 0, 0, 0, 0},
724 {1, 0, 0, 0, 0, 0, 0, 0, 0}}};
726char *
fvars_ters[2][
FTERSOFFS][
FTERSOFFS_P] = {{{
"A",
"a",
"B",
"b",
"R",
"S",
"β",
"η",
"c",
"d",
"h",
"χ",
"ω",
"δ",
" ",
" "},
727 {
"A",
"a",
"B",
"b",
"R",
"S",
"η",
"δ",
"c<sub>1</sub>",
"c<sub>2</sub>",
"c<sub>3</sub>",
"c<sub>4</sub>",
"c<sub>5</sub>",
"h",
"α",
"β"}},
728 {{
"A",
"a",
"B",
"b",
"R",
"S",
"β",
"η",
"c",
"d",
"h",
"χ",
"ω",
"δ",
" ",
" "},
729 {
"A",
"a",
"B",
"b",
"R",
"S",
"η",
"δ",
"c<sub>1</sub>",
"c<sub>2</sub>",
"c<sub>3</sub>",
"c<sub>4</sub>",
"c<sub>5</sub>",
"h",
"α",
"β"}}};
731int feunit_ters[2][
FTERSOFFS][
FTERSOFFS_P] = {{{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
732 {1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},
733 {{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
734 {1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}};
737 {
"k",
"θ<sub>0</sub>",
"ρ",
" ",
" "},
738 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" "},
739 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" "},
740 {
"k",
"θ<sub>0</sub>",
"a",
"ρ",
" "},
741 {
"D<sub>hb</sub>",
"R<sub>hb</sub>",
" ",
" ",
" "}},
742 {{
"k",
"θ<sub>0</sub>",
" ",
" ",
" "},
743 {
"k",
"θ<sub>0</sub>",
"ρ",
" ",
" "},
744 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" "},
745 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" "},
746 {
"k",
"θ<sub>0</sub>",
"a",
"ρ",
" "},
747 {
"D<sub>hb</sub>",
"R<sub>hb</sub>",
" ",
" ",
" "}}};
763 {
"k",
"ϕ<sub>0</sub>",
" "},
765 {{
"k",
"ϕ<sub>0</sub>",
" "},
766 {
"k",
"ϕ<sub>0</sub>",
" "},
777 {
"A",
"n",
" ",
" ",
" ",
" "},
778 {
"A",
"z<sub>0</sub>",
" ",
" ",
" ",
" "},
779 {
"G<sub>x</sub>",
"G<sub>y</sub>",
"G<sub>z</sub>",
" ",
" ",
" "},
780 {
"H<sub>x</sub>",
"H<sub>y</sub>",
"H<sub>z</sub>",
" ",
" ",
" "},
781 {
"A",
"R<sub>0</sub>",
"n",
"R<sub>cut</sub>",
" ",
" "},
782 {
"A",
"z<sub>0</sub>",
"p",
" ",
" ",
" "},
783 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"P<sup>in</sup><sub>k-atom</sub>",
" ",
" ",
" "},
784 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
785 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
786 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
787 {
"E<sub>x</sub>",
"E<sub>y</sub>",
"E<sub>z</sub>",
"ω<sup>in</sup><sub>ps<sup>-1</sup></sub>",
" ",
" "},
788 {
"i<sub>gid</sub><sup>A</sup>",
"j<sub>gid</sub><sup>A</sup>",
"k",
"i<sub>gid</sub><sup>B</sup>",
"j<sub>gid</sub><sup>B</sup>",
"R<sub>0</sub>"}},
789 {{
"E<sub>x</sub>",
"E<sub>y</sub>",
"E<sub>z</sub>",
" ",
" ",
" "},
790 {
"A",
"n",
" ",
" ",
" ",
" "},
791 {
"A",
"z<sub>0</sub>",
" ",
" ",
" ",
" "},
792 {
"G<sub>x</sub>",
"G<sub>y</sub>",
"G<sub>z</sub>",
" ",
" ",
" "},
793 {
"H<sub>x</sub>",
"H<sub>y</sub>",
"H<sub>z</sub>",
" ",
" ",
" "},
794 {
"A",
"R<sub>0</sub>",
"n",
"R<sub>cut</sub>",
" ",
" "},
795 {
"A",
"z<sub>0</sub>",
"p",
" ",
" ",
" "},
796 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"P<sup>in</sup><sub>k-atom</sub>",
" ",
" ",
" "},
797 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
798 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
799 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
800 {
"E<sub>x</sub>",
"E<sub>y</sub>",
"E<sub>z</sub>",
"ω<sup>in</sup><sub>ps<sup>-1</sup></sub>",
" ",
" "},
801 {
"i<sub>gid</sub><sup>A</sup>",
"j<sub>gid</sub><sup>A</sup>",
"k",
"i<sub>gid</sub><sup>B</sup>",
"j<sub>gid</sub><sup>B</sup>",
"R<sub>0</sub>"}}};
828 {0, 0, 0, 0, 1, 0}}};
830int field_v[
MAXDATA] = { 8, 8, 9, 7, 8, 5, 5, 8, 8, 9, 9, 10, 10, 10, 10, 6, 6, 5, 7, 8, 3};
831int field_s[
MAXDATA] = {650, 520, 520, 500, 600, 450, 600, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720};
832int field_a[
MAXDATA] = { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
834gchar *
ctitle[
MAXDATA][12] ={{
"Id",
"Name",
"Multiplicity",
"Chemistry",
"Atom(s)",
"Species",
"Viz. 3D",
"Viz. Atom num."},
835 {
"Id",
"Name",
"Element",
"Mass",
"Charge",
"Frozen",
"Atom(s)",
"Viz. 3D"},
836 {
"Id",
"Core Id",
"Shell",
"Masse",
"Charge",
"k2 (1)",
"k4 (2)",
"Viz. 3D",
"Use (3)"},
837 {
"Id",
"At.1 Id",
"At.2 Id",
"Length [Å]",
"av. d [Å] (1)",
"Viz. 3D",
"Use (2)"},
838 {
"Id",
"Length [Å]",
"av. d12 [Å] (1)",
"Unit Id",
"At. Id",
"Weight (2)",
"Viz. 3D",
"Use (3)"},
839 {
"Id",
"Atom(s) in unit",
"List of atom(s)",
"Viz. 3D",
"Use(1)"},
840 {
"Id",
"Atom Id",
"Viz. 3D",
"Use (1)",
"Potential"},
841 {
"Id",
"At.1",
"At.2",
"Bond(s)",
"av. d [Å] (1)",
"Viz. 3D",
"Use (2)",
"Potential (3)"},
842 {
"Id",
"At.1",
"At.2",
"Bond restraint(s)",
"av. d [Å] (1)",
"Viz. 3D",
"Use (2)",
"Potential (3)"},
843 {
"Id",
"At.1",
"At.2",
"At.3",
"Angle(s)",
"av. θ [°] (1)",
"Viz. 3D",
"Use (2)",
"Potential (3)"},
844 {
"Id",
"At.1",
"At.2",
"At.3",
"Angle restraint(s)",
"av. θ [°] (1)",
"Viz. 3D",
"Use (2)",
"Potential (3)"},
845 {
"Id",
"At.1",
"At.2",
"At.3",
"At.4",
"Dihedral(s)",
"av. ϕ [°] (1)",
"Viz. 3D",
"Use (2)",
"Potential (3)"},
846 {
"Id",
"At.1",
"At.2",
"At.3",
"At.4",
"Torsional restraint(s)",
"av. ϕ [°] (1)",
"Viz. 3D",
"Use (2)",
"Potential (3)"},
847 {
"Id",
"At.1",
"At.2",
"At.3",
"At.4",
"Improper(s)",
"av. ϕ [°] (1)",
"Viz. 3D",
"Use (2)",
"Potential (3)"},
848 {
"Id",
"At.1",
"At.2",
"At.3",
"At.4",
"Inversion(s)",
"av. ϕ [°] (1)",
"Viz. 3D",
"Use (2)",
"Potential (3)"},
849 {
"Id",
"Spec.1",
"Spec.2",
"Viz. 3D",
"Use (1)",
"VdW potential"},
850 {
"Id",
"At.1",
"At.2",
"Viz. 3D",
"Use (1)",
"Metal potential"},
851 {
"Id",
"At.",
"Viz. 3D",
"Use (1)",
"Tersoff Pot."},
852 {
"Id",
"At.1",
"At.2*",
"At.3",
"Viz. 3D",
"Use (1)",
"Three-body Pot."},
853 {
"Id",
"At.1*",
"At.2",
"At.3",
"At.4",
"Viz. 3D",
"Use (1)",
"Four-body Pot."},
854 {
"Id",
"Use (1)",
"Field type"}};
856GType
col_type[
MAXDATA][12] = {{G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
857 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
858 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_FLOAT, G_TYPE_FLOAT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
859 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_FLOAT, G_TYPE_FLOAT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
860 {G_TYPE_INT, G_TYPE_FLOAT, G_TYPE_FLOAT, G_TYPE_INT, G_TYPE_INT, G_TYPE_FLOAT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
861 {G_TYPE_INT, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
862 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
863 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
864 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
865 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT},
866 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT},
867 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT},
868 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT},
869 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT},
870 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT},
871 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
872 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
873 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
874 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
875 {G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT},
876 {G_TYPE_INT, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT}};
883int is_special[
MAXDATA][11] ={{0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0},
884 {0, 0, 0, 4, 4, 0, 0, 2, 0, 0, 0},
885 {0, 0, 0, 4, 4, 4, 4, 2, 3, 0, 0},
886 {0, 0, 0, 4, 0, 2, 3, 0, 0, 0, 0},
887 {0, 4, 0, 0, 0, 4, 2, 3, 0, 0, 0},
888 {0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0},
889 {0, 0, 2, 3, 1, 0, 0, 0, 0, 0, 0},
890 {0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 0},
891 {0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 0},
892 {0, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0},
893 {0, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0},
894 {0, 0, 0, 0, 0, 0, 0, 2, 3, 1, 0},
895 {0, 0, 0, 0, 0, 0, 0, 2, 3, 1, 0},
896 {0, 0, 0, 0, 0, 0, 0, 2, 3, 1, 0},
897 {0, 0, 0, 0, 0, 0, 0, 2, 3, 1, 0},
898 {0, 0, 0, 2, 3, 1, 0, 0, 0, 0, 0},
899 {0, 0, 0, 2, 3, 1, 0, 0, 0, 0, 0},
900 {0, 0, 2, 3, 1, 0, 0, 0, 0, 0, 0},
901 {0, 0, 0, 0, 2, 3, 1, 0, 0, 0, 0},
902 {0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 0},
903 {0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0}};
935gchar *
mo_title[8]={
"Bond",
"Bond restraint",
"Angle",
"Angle restraint",
"Dihedral",
"Torsional restraint",
"Improper",
"Inversion"};
1070 str = g_strdup_printf (
"\t <b>(1)</b> Force constant of the core-shell spring in [<b>%s Å<sup>-2</sup></b>]",
exact_name(
fkeysw[
activef][0][i]));
1071 gtk_label_set_text (GTK_LABEL(
cs_label[0]), str);
1072 gtk_label_set_use_markup (GTK_LABEL(
cs_label[0]), TRUE);
1075 str = g_strdup_printf (
"\t <b>(2)</b> Quartic (anharmonic) force constant of the core-shell spring in [<b>%s Å<sup>-4</sup></b>]"
1077 gtk_label_set_text (GTK_LABEL(
cs_label[1]), str);
1078 gtk_label_set_use_markup (GTK_LABEL(
cs_label[1]), TRUE);
1104 str = g_strdup_printf (
" <b><i>%s</i>=</b> %.3f", words[0], data[0]);
1105 for (i=1; i<
fvalues[
activef][obj][key]; i++) str = g_strdup_printf (
"%s, <b><i>%s</i>=</b> %.3f", str, words[i], data[i]);
1109 str = g_strdup_printf (
"<i>Tabulated</i>");
1129 gchar * stra, * strb, * strc;
1130 GtkTreeIter field_level;
1143 gtk_tree_store_append (store, & field_level, NULL);
1145 stra = g_strdup_printf (
"%.3f",
tmp_fstr -> av);
1166 gtk_tree_store_set (store, & field_level, 0,
tmp_fstr ->
id+1,
1212 gchar * stra, * strb;
1213 GtkTreeIter field_level;
1220 for (i=0; i <
tmp_field -> nbody[id]; i++)
1222 gtk_tree_store_append (store, & field_level, NULL);
1223 for (j=0; j<k ; j++)
1244 gtk_tree_store_set (store, & field_level, 0,
tmp_fbody ->
id+1,
1266 GtkTreeIter field_level, unit_level, site_level;
1268 gchar * stra, * strb, * strc, * strd;
1285 for (j=0; j <
tmp_proj -> nspec; j++)
1287 if (
tmp_mol -> species[j] > 0)
1289 if (
tmp_mol -> species[j] == 1)
1313 gtk_tree_store_append (store, & field_level, NULL);
1314 gtk_tree_store_set (store, & field_level, 0, i+1,
1335 gtk_tree_store_append (store, & field_level, NULL);
1336 stra = g_strdup_printf (
"%.3f",
tmp_fat -> mass);
1337 strb = g_strdup_printf (
"%.2f",
tmp_fat -> charge);
1338 gtk_tree_store_set (store, & field_level, 0, i+1,
1357 for (i=0; i <
tmp_fmol -> shells; i++)
1359 gtk_tree_store_append (store, & field_level, NULL);
1368 stra = g_strdup_printf (
"<i>None</i>");
1378 strb = g_strdup_printf (
"<i>None</i>");
1380 strc = g_strdup_printf (
"%.3f",
tmp_fshell -> m);
1382 gtk_tree_store_set (store, & field_level, 0, i+1,
1404 for (i=0; i <
tmp_fmol -> constraints; i++)
1406 gtk_tree_store_append (store, & field_level, NULL);
1415 stra = g_strdup_printf (
"<i>None</i>");
1425 strb = g_strdup_printf (
"<i>None</i>");
1427 gtk_tree_store_set (store, & field_level, 0, i+1,
1445 for (i=0; i <
tmp_fmol -> pmfs; i++)
1447 gtk_tree_store_append (store, & field_level, NULL);
1448 gtk_tree_store_set (store, & field_level, 0, i+1,
1456 gtk_tree_store_append (store, & unit_level, & field_level);
1457 gtk_tree_store_set (store, & unit_level, 0, -(i+1), 1, 0.0, 2, 0.0, 3, j+1, 4, 0, 5, 0.0, 6,
tmp_fpmf -> show, 7, FALSE, -1);
1460 for (k=0; k<
tmp_fpmf -> num[j]; k++)
1462 gtk_tree_store_append (store, & site_level, & unit_level);
1463 gtk_tree_store_set (store, & site_level, 0, -(i+1), 1, 0.0, 2, 0.0, 3, -(j+1),
1478 for (i=0; i <
tmp_fmol -> rigids; i++)
1480 gtk_tree_store_append (store, & field_level, NULL);
1481 gtk_tree_store_set (store, & field_level, 0, i+1,
1493 gtk_tree_store_append (store, & unit_level, & field_level);
1494 gtk_tree_store_set (store, & unit_level, 0, -(i+1), 1, 0, 2, stra, 3, FALSE, 4, FALSE, -1);
1507 for (i=0; i <
tmp_fmol -> tethered; i++)
1514 gtk_tree_store_append (store, & field_level, NULL);
1515 gtk_tree_store_set (store, & field_level, 0, i+1,
1530 for (i=0; i <
tmp_field -> extern_fields; i++)
1532 gtk_tree_store_append (store, & field_level, NULL);
1534 gtk_tree_store_set (store, & field_level, 0,
tmp_fext ->
id+1,
1579 i = GPOINTER_TO_INT (data);
1581 tmp_field ->
afp[i] = gtk_check_button_get_active (but);
1583 tmp_field ->
afp[i] = gtk_toggle_button_get_active (but);
1590 gtk_combo_box_set_active (GTK_COMBO_BOX(
combo_mol[j]), 0);
1608 if (nbid == 0 || nbid == 2 || nbid == 5)
1615 i = (nbid == 1) ? 2 : nbid;
1623 gboolean
res = (j >= i) ? TRUE : FALSE;
1645 lab = g_strdup_printf (
"the <b>%d</b> different fragment(s) in molecule <b>%s</b>\n",
1650 lab = g_strdup_printf (
"the system\n");
1656 lab = g_strdup_printf (
"%seach contains the following <b>%d</b> type(s) of atom",
lab,
tmp_fmol ->
atoms);
1661 lab = g_strdup_printf (
"%sdo not contains any core-shell unit",
lab);
1665 lab = g_strdup_printf (
"%seach contains the following <b>%d</b> core-shell unit",
lab,
tmp_fmol -> shells);
1671 lab = g_strdup_printf (
"%sdo not contains any constraint",
lab);
1675 lab = g_strdup_printf (
"%seach contains the following <b>%d</b> constraint(s)",
lab,
tmp_fmol -> constraints);
1681 lab = g_strdup_printf (
"%sdo not contains any mean force potential",
lab);
1685 lab = g_strdup_printf (
"%seach contains the following <b>%d</b> type(s) of mean force potential(s)",
lab,
tmp_fmol -> pmfs);
1691 lab = g_strdup_printf (
"%sdo not contains any rigid unit",
lab);
1695 lab = g_strdup_printf (
"%seach contains the following <b>%d</b> rigid unit(s)",
lab,
tmp_fmol -> rigids);
1701 lab = g_strdup_printf (
"%sdo not contains any tethering potential(s)",
lab);
1705 lab = g_strdup_printf (
"%seach contains the following <b>%d</b> tethering potential(s)",
lab,
tmp_fmol -> tethered);
1711 lab = g_strdup_printf (
"the force field do not contains any external field(s)");
1715 lab = g_strdup_printf (
"the force field contains the following <b>%d</b> external field(s)",
tmp_field -> extern_fields);
1725 lab = g_strdup_printf (
"%sdo not contains any %s <sup>*</sup>",
lab,
mo_title[f-7]);
1729 lab = g_strdup_printf (
"%s contains the following <b>%d</b> type(s) of %s <sup>*</sup>",
lab,
tmp_fmol -> nstruct[f-7],
elemts[f]);
1736 lab = g_strdup_printf (
"%sdo not contains any %s",
lab,
mo_title[f-7]);
1740 lab = g_strdup_printf (
"%s contains the following <b>%d</b> type(s) of %s",
lab,
tmp_fmol -> nstruct[f-7],
elemts[f]);
1750 lab = g_strdup_printf (
"the force field do not contains any %s(s)",
elemts[f]);
1754 lab = g_strdup_printf (
"the force field contains the following <b>%d</b> %s(s)",
tmp_field -> nbody[k],
elemts[f]);
1773 i = GPOINTER_TO_INT(data);
1774 j = gtk_combo_box_get_active (box);
1776 gtk_label_set_use_markup (GTK_LABEL(
field_label[i]), TRUE);
1800 gtk_label_set_use_markup(GTK_LABEL(
field_label[i]), TRUE);
1819 j = (i > 1 && i < 8) ? (i-1)/2 + 1 - i/7 : i;
1946 for (j=0; j<15; j++)
1972 else if (j>0 && j<9)
2053 if (response_id == GTK_RESPONSE_YES)
2055 int i = GPOINTER_TO_INT(data);
2076 i = gtk_combo_box_get_active (box);
2081 GtkWidget * dialog = gtk_dialog_new_with_buttons (
"Change energy unit ?", GTK_WINDOW(
field_assistant),
2082 GTK_DIALOG_MODAL,
"Yes", GTK_RESPONSE_YES,
"No", GTK_RESPONSE_NO, NULL);
2083 gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
2085 add_box_child_start (GTK_ORIENTATION_VERTICAL,
vbox,
markup_label(
"Change the energy unit ?\nThe value of all field parameters that are energy related (listed below) will be scaled accordingly.", -1, -1, 0.5, 0.5), FALSE, FALSE, 0);
2088 GtkWidget * vbax, * vbbx;
2089 GtkWidget * hax, * hbx;
2105 str = g_strdup_printf (
"\t<b>%s(s):</b>",
felemts[3]);
2111 str = g_strdup_printf (
"k<sub>2</sub> and k<sub>4</sub>");
2118 for (j=0; j<15; j++)
2129 str = g_strdup_printf (
"\t<b>%s:</b>",
felemts[j+7]);
2150 str = g_strdup_printf (
"%s, %s", str,
is_var[k][l]);
2154 str = g_strdup_printf (
"%s",
is_var[k][l]);
2179 gtk_combo_box_set_active (box,
tmp_field -> energy_unit);
2193 int col[3]={5, 4, 4};
2201 str = g_strdup_printf (
"<b>Please select the %s:</b>",
felemts[0]);
2211 gtk_combo_box_set_active (GTK_COMBO_BOX(
enbox),
tmp_field -> energy_unit);
2213 gtk_widget_set_size_request (
enbox, 250, 30);
2219 ebox =
fbox (
hbox,
"<b>Please select the component(s) of the force field:</b>");
2237 for (j=0; j<
col[i]; j++)
2286 GtkTreeModel * tmodel = gtk_tree_view_get_model (GTK_TREE_VIEW(tree));
2318 if (g_strcmp0 (data, str) == 0)
2342 int i, j, k, l, m, n, o;
2343 gboolean changeit = TRUE;
2346 i = GPOINTER_TO_INT(data);
2348 g_object_get (combo,
"model", & cmodel, NULL);
2349 gtk_tree_model_get_value ((GtkTreeModel *)cmodel, iter, 0, &
val);
2350 if (gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL(
field_model[i]), iter, path_string))
2353 gtk_tree_model_get_value (GTK_TREE_MODEL(
field_model[i]), iter,
field_v[i]+1, & vbl);
2354 j = (int) g_value_get_int (& vbl);
2355 gchar * str = g_strdup_printf (
"%s", (
char *)g_value_get_string (&
val));
2359 if (i <
MOLIMIT) k = gtk_combo_box_get_active (GTK_COMBO_BOX(
combo_mol[i-1]));
2381 gtk_tree_model_get (GTK_TREE_MODEL(
field_model[i]), iter, 0, & m, -1);
2385 for (n=0; n<o; n++) ids[n] = -1;
2390 str = g_strdup_printf (
"<b>Default</b>: %s", str);
2400 for (n=1; n<o+1; n++)
2402 gtk_tree_model_get (GTK_TREE_MODEL(
field_model[i]), iter, n, & str, -1);
2403 ids[n-1] = (int) atof(str) - 1;
2467 g_value_unset(& vbl);
2469 g_value_unset(&
val);
2488 str = g_strdup_printf (
"%d: %s", i+1,
tmp_fmol -> name);
2494 gtk_combo_box_set_active (GTK_COMBO_BOX(combo), 0);
2495 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
changed_mol_box), GINT_TO_POINTER(f+1));
2519 str = g_strdup_printf (
"Molecule N°%d",
id+1);
2525 j = gtk_combo_box_get_active (GTK_COMBO_BOX(
combo_mol[i-1]));
2532 str = g_strdup_printf (
"Atom N°%d: \"%s\"",
tmp_fat ->
id+1,
tmp_fat -> name);
2543 str = g_strdup_printf (
"Core-Shell N°%d: Atom %d (%s) - ",
tmp_fshell ->
id+1,
tmp_fshell -> ia[0],
2548 str = g_strdup_printf (
"Core-Shell N°%d: <i>None</i> - ",
tmp_fshell ->
id+1);
2557 str = g_strdup_printf (
"%s<i>None</i>", str);
2569 str = g_strdup_printf (
"Constrained Bond N°%d: Atom %d (%s) - ",
tmp_fcons ->
id+1,
tmp_fcons -> ia[0],
2574 str = g_strdup_printf (
"Constrained Bond N°%d: <i>None</i> - ",
tmp_fcons ->
id+1);
2583 str = g_strdup_printf (
"%s<i>None</i>", str);
2592 str = g_strdup_printf (
"Mean Force Potential N°%d",
tmp_fpmf ->
id+1);
2600 str = g_strdup_printf (
"Rigid Unit N°%d: %d Atom(s)",
tmp_frig ->
id+1,
tmp_frig -> num);
2608 str = g_strdup_printf (
"Tethering Potential N°%d",
tmp_ftet ->
id+1);
2630 if (k<
struct_id(i)-1) str = g_strdup_printf (
"%s-", str);
2632 str = g_strdup_printf (
"%s\"", str);
2646 str = g_strdup_printf (
"%s - NONE", str);
2653 str = g_strdup_printf (
"%s\"", str);
2677 str = g_strdup_printf (
"Edit Name: \"%s\"",
tmp_fmol -> name);
2680 str = g_strdup_printf (
"Edit %s Properties",
elemts[i]);
2696 if ((i>1 && i<7) || (i>
MOLIMIT && i<
MAXDATA)) str = g_strdup_printf (
"Add a New %s",
elemts[i]);
2754 gchar * accel,
int image_format, gpointer icon,
2755 gboolean custom, GCallback handler, gpointer data,
2756 gboolean check, gboolean
status, gboolean radio, gboolean sensitive)
2758 gchar * str_a, * str_b, * str_c;
2759 str_a = g_strdup_printf (
"set-%s", key);
2760 str_b = g_strdup_printf (
"%s.%d", str_a, item_id);
2761 str_c = (sensitive) ? g_strdup_printf (
"ff-%d.%s", item_id, (radio) ? str_a : str_b) : g_strdup_printf (
"None");
2762 append_menu_item (menu, name, (
const gchar *) str_c, accel, (custom) ? str_b : NULL, image_format, icon, check,
status, radio, (radio) ? (
const gchar *)str_b : NULL);
2765 if (! radio || (radio &&
status))
2768 check,
status, radio, (
const gchar *)str_b);
2806 i = GPOINTER_TO_INT (data);
2810 GMenu * fmenu = g_menu_new ();
2814 fmenus = g_menu_new ();
2815 append_field_item (fmenus, str,
"pop", i, NULL,
IMG_NONE, NULL, FALSE, NULL, NULL, FALSE, FALSE, FALSE, TRUE);
2817 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2818 g_object_unref (fmenus);
2825 fmenus = g_menu_new ();
2826 append_field_item (fmenus, str,
"edit-fp", i, NULL,
IMG_NONE, NULL, FALSE, G_CALLBACK(
edit_field_prop), data, FALSE, FALSE, FALSE, TRUE);
2828 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2829 g_object_unref (fmenus);
2836 fmenus = g_menu_new ();
2837 append_field_item (fmenus,
"Add New Molecule",
"add-mol", i, NULL,
IMG_NONE, NULL, FALSE, G_CALLBACK(
add_molecule_to_field), data, FALSE, FALSE, FALSE, TRUE);
2838 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2839 g_object_unref (fmenus);
2843 &&
tmp_fmol -> multi < tmp_fmol ->
mol -> multiplicity)
2845 fmenus = g_menu_new ();
2846 str = g_strdup_printf (
"Remove Molecule %s From Field",
tmp_fmol -> name);
2847 append_field_item (fmenus, str,
"rem-mol", i, NULL,
IMG_NONE, NULL, FALSE, G_CALLBACK(
remove_molecule_from_field), data, FALSE, FALSE, FALSE, TRUE);
2849 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2850 g_object_unref (fmenus);
2856 j = gtk_combo_box_get_active (GTK_COMBO_BOX(
combo_mol[i-1]));
2861 fmenus = g_menu_new ();
2862 str = g_strdup_printf (
"Created New Field Atom From %s Atom(s)",
tmp_fat -> name);
2863 append_field_item (fmenus, str,
"add-fat", i, NULL,
IMG_NONE, NULL, FALSE, G_CALLBACK(
to_select_atom_id_from_fied_molecule), GINT_TO_POINTER(0), FALSE, FALSE, FALSE, TRUE);
2864 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2865 g_object_unref (fmenus);
2876 fmenus = g_menu_new ();
2877 str = g_strdup_printf (
"Remove Atom %s From Field Molecule",
tmp_fat -> name);
2878 append_field_item (fmenus, str,
"rem-fat", i, NULL,
IMG_NONE, NULL, FALSE, G_CALLBACK(
remove_atom_from_field_molecule), (gpointer *)
tmp_fat, FALSE, FALSE, FALSE, TRUE);
2880 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2881 g_object_unref (fmenus);
2885 if (str)
append_field_item (fmenu, str,
"rem-fp", i, NULL,
IMG_NONE, NULL, FALSE, G_CALLBACK(
remove_field_prop), data, FALSE, FALSE, FALSE, TRUE);
2893 fmenus = g_menu_new ();
2894 append_field_item (fmenus, str,
"add-prop", i, NULL,
IMG_NONE, NULL, FALSE, G_CALLBACK(
add_field_prop), data, FALSE, FALSE, FALSE, TRUE);
2896 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2897 g_object_unref (fmenus);
2900 menu = gtk_popover_menu_new_from_model_full ((GMenuModel *)fmenu, GTK_POPOVER_MENU_NESTED);
2901 gtk_widget_set_parent (menu, widget);
2904 menu = gtk_menu_new_from_model ((GMenuModel *)fmenu);
2906 str = g_strdup_printf (
"ff-%d", i);
3019G_MODULE_EXPORT gboolean on_pop_up_field (GtkWidget * widget, gpointer data)
3039void field_button_event (
double event_x,
double event_y, guint event_button, guint event_type, guint32 event_time, gpointer data)
3054void field_button_event (GdkEvent * event,
double event_x,
double event_y, guint event_button, guint event_type, guint32 event_time, gpointer data)
3057 if (event_type == GDK_BUTTON_PRESS)
3060 GtkTreeViewColumn * column;
3062 i = GPOINTER_TO_INT(data);
3065 gtk_tree_view_convert_widget_to_bin_window_coords (GTK_TREE_VIEW(
field_tree[i]), event_x, event_y, & e_x, & e_y);
3066 gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(
field_tree[i]), e_x, e_y, &
path, & column, & j, & k);
3068 gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(
field_tree[i]), event_x, event_y, &
path, & column, & j, & k);
3078 if (event_button == 3)
3101G_MODULE_EXPORT
void on_field_button_pressed (GtkGesture * gesture,
int n_press,
double x,
double y, gpointer data)
3103 field_button_event (
x,
y, gtk_gesture_single_get_current_button ((GtkGestureSingle * )gesture), GDK_BUTTON_PRESS, gtk_event_controller_get_current_event_time((GtkEventController *)gesture), data);
3117G_MODULE_EXPORT
void on_field_button_released (GtkGesture * gesture,
int n_press,
double x,
double y, gpointer data)
3119 field_button_event (
x,
y, gtk_gesture_single_get_current_button ((GtkGestureSingle * )gesture), GDK_BUTTON_RELEASE, gtk_event_controller_get_current_event_time((GtkEventController *)gesture), data);
3133 GdkEventButton * bevent = (GdkEventButton *)event;
3134 field_button_event (event, bevent ->
x, bevent ->
y, bevent -> button, bevent -> type, bevent -> time, data);
3150void field_set_color (GtkTreeViewColumn *
col, GtkCellRenderer * renderer, GtkTreeModel * mod, GtkTreeIter * iter, gpointer data)
3153 int tree = GPOINTER_TO_INT(data);
3154 gtk_tree_model_get (mod, iter, 0, & i, -1);
3159 gtk_tree_model_get (mod, iter,
field_v[tree]+1, & i, -1);
3166 for (k=0; k<
field_v[tree]; k++)
3170 gtk_tree_model_get (mod, iter, k, & j, -1);
3171 l = (tree && tree <
MOLIMIT) ? gtk_combo_box_get_active (GTK_COMBO_BOX(
combo_mol[tree-1])) : 0;
3188void field_set_markup_box (GtkTreeViewColumn *
col, GtkCellRenderer * renderer, GtkTreeModel * mod, GtkTreeIter * iter, gpointer data)
3190 int tree = GPOINTER_TO_INT(data);
3192 gtk_tree_model_get (mod, iter,
field_v[tree]-1, & str, -1);
3193 g_object_set (renderer,
"markup", str, NULL, NULL);
3208void field_set_markup (GtkTreeViewColumn *
col, GtkCellRenderer * renderer, GtkTreeModel * mod, GtkTreeIter * iter, gpointer data)
3211 int tree = GPOINTER_TO_INT(data);
3212 i = (tree > 5) ? 1 : 0;
3216 gtk_tree_model_get (mod, iter,
field_v[tree], & str, -1);
3217 g_object_set (renderer,
"markup", str, NULL, NULL);
3223 GtkTreeViewColumn * cal;
3227 gtk_tree_model_get (mod, iter, 3, & str, -1);
3231 cal = gtk_tree_view_get_column (GTK_TREE_VIEW(
field_tree[tree]), 1);
3234 gtk_tree_model_get (mod, iter, 1, & str, -1);
3238 gtk_tree_model_get (mod, iter, 2, & str, -1);
3242 g_object_set (renderer,
"markup", str, NULL, NULL);
3258void field_set_visible (GtkTreeViewColumn *
col, GtkCellRenderer * renderer, GtkTreeModel * mod, GtkTreeIter * iter, gpointer data)
3261 int tree = GPOINTER_TO_INT(data);
3264 if (tree == 4 || tree == 5)
3266 gtk_tree_model_get (mod, iter, 0, & j, -1);
3271 for (i=0; i<
field_v[tree]; i++)
3275 gtk_tree_model_get (mod, iter, i, & j, -1);
3277 gtk_cell_renderer_set_visible (renderer, j);
3329 gtk_tree_model_get (mod, iter, 0, & i, -1);
3330 gtk_cell_renderer_set_visible (renderer, i);
3349 i = GPOINTER_TO_INT(data);
3352 gtk_tree_model_get (mod, iter, i, & j, -1);
3353 k = (! j || j < 0) ? 0 : 1;
3357 gtk_tree_model_get (mod, iter, 4, & k, -1);
3359 gtk_cell_renderer_set_visible (renderer, k);
3377 gtk_tree_model_get (mod, iter, 0, & i, -1);
3379 gtk_cell_renderer_set_visible (renderer, ! i);
3428G_MODULE_EXPORT
void edit_field_cell (GtkCellRendererText * cell, gchar * path_string, gchar * new_text, gpointer data)
3431 i = GPOINTER_TO_INT(data);
3449 GtkTreePath *
path = gtk_tree_path_new_from_string (path_string);
3450 gtk_tree_model_get_iter (GTK_TREE_MODEL(
field_model[j]), & iter,
path);
3451 gtk_tree_model_get (GTK_TREE_MODEL(
field_model[j]), & iter, 0, & k, -1);
3452 l = gtk_combo_box_get_active (GTK_COMBO_BOX(
combo_mol[j-1]));
3453 float val = atof(new_text);
3466 gtk_tree_model_get (GTK_TREE_MODEL(
field_model[j]), & iter, 3, & n, 4, & m, -1);
3485 int i = GPOINTER_TO_INT(data);
3486 gtk_tree_model_get_iter (GTK_TREE_MODEL(
field_model[i]),
3488 gtk_tree_path_new_from_string (path_string));
3489 if (i == 4 || i == 5 || (i > 6 && i <
MOLIMIT))
3500 row_id = (int) g_value_get_int (& vbl);
3516G_MODULE_EXPORT
void to_edit_field_prop (GtkCellRenderer * cell, GtkCellEditable * editable, gchar * path_string, gpointer data)
3548 GtkListStore * list_store_combo;
3550 gboolean combox = FALSE;
3552 l = (f > 5) ? 1 : 0;
3556 for (i=0; i<
field_v[f]+l; i++)
3562 list_store_combo = gtk_list_store_new (1, G_TYPE_STRING);
3566 gtk_list_store_append (list_store_combo, & iter);
3567 gtk_list_store_set (list_store_combo, & iter, 0, str, -1);
3573 "editable", TRUE, NULL);
3576 g_object_unref (list_store_combo);
3582 field_col[f][i] = gtk_tree_view_column_new_with_attributes (
"Parameter(s)",
field_renderer[f][i],
"text", i, NULL);
3593 if ((f == 4 && i ==
field_v[f]+l-1) || f ==
SEXTERN) gtk_cell_renderer_toggle_set_radio (GTK_CELL_RENDERER_TOGGLE(
field_renderer[f][i]), TRUE);
3594 gtk_tree_view_column_set_clickable (
field_col[f][i], TRUE);
3611 j = 2*(f-1) + i - 3;
3619 j = (i == 1) ? 7 : 8;
3623 if ((f == 0 && i == 3) || (f == 2 && (i == 1 || i == 2)) || (f == 3 && (i == 1 || i == 2)))
3627 else if (f == 4 || f == 5)
3629 if ((f == 4 && i < 3) || (f == 5 && i < 2))
3633 else if (f == 4 && (i == 3 || i == 4 || i == 5))
3637 else if (f == 5 && i == 2)
3650 else if (l == 1 && i >
field_v[f]-2)
3667 gtk_tree_view_column_set_alignment (
field_col[f][i], 0.5);
3673 GtkTreeSelection * fieldselect = gtk_tree_view_get_selection (GTK_TREE_VIEW(
field_tree[f]));
3674 gtk_tree_selection_set_mode (fieldselect, GTK_SELECTION_SINGLE);
3676 add_widget_gesture_and_key_action (
field_tree[f],
"field-button-pressed", G_CALLBACK(on_field_button_pressed), GINT_TO_POINTER(f),
3677 "field-button-released", G_CALLBACK(on_field_button_released), GINT_TO_POINTER(f),
3678 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
3681 g_signal_connect (G_OBJECT(
field_tree[f]),
"popup-menu", G_CALLBACK(on_pop_up_field), GINT_TO_POINTER(f));
3700 for (i=0; i<11; i++)
3705 GtkWidget * scrollsets =
create_scroll (NULL, -1, -1, GTK_SHADOW_ETCHED_IN);
3708 gtk_widget_set_size_request (scrollsets,
field_s[f], 175);
3714 gtk_widget_set_size_request (scrollsets,
field_s[f], 320);
3716 else if (f == 8 || f == 10 || f == 12 || f == 13)
3718 gtk_widget_set_size_request (scrollsets,
field_s[f], 180);
3722 gtk_widget_set_size_request (scrollsets,
field_s[f], 220);
3727 gtk_widget_set_size_request (scrollsets,
field_s[f], 300);
3777 hbox =
fbox (
vbox,
"Number of isolated molecular fragments: ");
3778 str = g_strdup_printf (
"<b>%d</b>",
tmp_coord -> totcoord[2]);
3781 str = g_strdup_printf (
"\tEach of these fragments can be described separately in the force field.");
3785 str = g_strdup_printf (
"<b>%d</b>",
tmp_coord -> totcoord[3]);
3788 hbox =
fbox (
vbox,
"Number of molecules in the force field: ");
3814 hbox =
fbox (vbx, g_strdup_printf (
"%s(s) properties: ",
felemts[f+1]));
3837 if (f == 8 || f == 10 || f == 12 || f == 13)
3839 int g = (f < 12) ? f - 1 : 11;
3840 str = g_strdup_printf (
"\t <b>*</b> in the FIELD file %s(s) appear in the %s section.\n"
3841 "\t They are presented separately in this assistant for clarity purposes only.",
3848 str = g_strdup_printf (
"\t <b>*</b> the potential will be calculated by the sum of the 3 possible inversion terms between atoms 1 (center), 2, 3 and 4.");
3852 str = g_strdup_printf (
"\t <b>(1)</b> average value for the force field element as measured in the model.");
3855 str = g_strdup_printf (
"\t <b>(2)</b> only the selected element(s) will be used to create the force field.");
3858 str = g_strdup_printf (
"\t <b>(3)</b> each force field element can be tuned separately, if not the <b>Default</b> parameters will be used.");
3870 str = g_strdup_printf (
"\t <b>(3)</b> only the selected element(s) will be used to create the force field.");
3876 str = g_strdup_printf (
"\t <b>(1)</b> average value for the force field element as measured in the model.");
3879 str = g_strdup_printf (
"\t <b>(2)</b> only the selected element(s) will be used to create the force field.");
3885 str = g_strdup_printf (
"\t <b>(1)</b> average distance between the barycenters of units 1 and 2 as measured in the model.");
3888 str = g_strdup_printf (
"\t <b>(2)</b> if all 0.0 then atomic weight(s) will be used by DL-POLY.");
3891 str = g_strdup_printf (
"\t <b>(3)</b> only the selected element(s) will be used to create the force field.");
3895 else if ((f > 2 && f < 7) || f > 11)
3897 str = g_strdup_printf (
"\t <b>(1)</b> only the selected element(s) will be used to create the force field.");
4027 switch (current_page)
4055 for (i=current_page; i<
MAXDATC; i++)
4082 i = gtk_assistant_get_current_page (assistant);
4130 for (i=start; i<end; i++)
4132 if (
fibox[i+delta] != NULL)
4134 if (GTK_IS_WIDGET(
fibox[i+delta]))
4154 gtk_assistant_remove_page (assist, i+1);
4170 if (response_id == GTK_RESPONSE_APPLY)
4173 gtk_assistant_get_nth_page(GTK_ASSISTANT (
field_assistant), 0), FALSE);
4174 gtk_label_set_text (GTK_LABEL(
field_i_lab[1]),
"Initialize force field using: ");
4178 gtk_combo_box_set_active (GTK_COMBO_BOX(
field_i_combo[i]), -1);
4190 if (
fibox[i] != NULL)
4192 if (GTK_IS_WIDGET(
fibox[i]))
4194 gtk_widget_set_visible (
fibox[i], FALSE);
4199 for (i=0; i<19; i++)
4209 gtk_check_button_set_active (GTK_CHECK_BUTTON(data), FALSE);
4211 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(data), FALSE);
4227G_MODULE_EXPORT
void clean_field (GtkCheckButton * but, gpointer data)
4237G_MODULE_EXPORT
void clean_field (GtkToggleButton * but, gpointer data)
4241 if (gtk_check_button_get_active (but))
4243 if (gtk_toggle_button_get_active (but))
4248 gtk_box_set_homogeneous (GTK_BOX(box), FALSE);
4249 add_box_child_start (GTK_ORIENTATION_VERTICAL, box, gtk_label_new (
"Providing that the force field information was already saved once\n"
4250 "the previous data could still be retrieved by canceling the assistant."), FALSE, FALSE, 0);
4278 i = GPOINTER_TO_INT(data);
4280 tmp_field -> prepare_file[i] = gtk_check_button_get_active (but);
4282 tmp_field -> prepare_file[i] = gtk_toggle_button_get_active (but);
4315 gtk_assistant_append_page (assist,
fibox[i]);
4316 gtk_assistant_set_page_title (assist,
fibox[i], g_strdup_printf (
"%s",
celemts[i]));
4317 gtk_assistant_set_page_type (assist,
fibox[i], GTK_ASSISTANT_PAGE_CONTENT);
4318 gtk_assistant_set_page_complete (assist,
fibox[i], TRUE);
4324 gtk_assistant_append_page (assist,
fibox[i]);
4325 gtk_assistant_set_page_title (assist,
fibox[i],
"Select the component(s) of the force field");
4326 gtk_assistant_set_page_type (assist,
fibox[i], GTK_ASSISTANT_PAGE_CONTENT);
4327 gtk_assistant_set_page_complete (assist,
fibox[i], TRUE);
4331 gtk_assistant_append_page (assist,
fibox[i]);
4332 gtk_assistant_set_page_title (assist,
fibox[i], g_strdup_printf (
"%s(s)",
felemts[i-
MAXDATC]));
4333 gtk_assistant_set_page_type (assist,
fibox[i], GTK_ASSISTANT_PAGE_CONTENT);
4334 gtk_assistant_set_page_complete (assist,
fibox[i], TRUE);
4338 info = g_strdup_printf (
"<b> Finalize the creation of the DL-POLY input file(s) now !</b>");
4341 add_box_child_start (GTK_ORIENTATION_VERTICAL,
fibox[i],
markup_label(
"\n \t<b>Note: </b>You can re-open this assistant later if required to adjust your choices\n", -1, -1, 0.0, 0.5),
4343 gtk_assistant_append_page (assist,
fibox[i]);
4344 gtk_assistant_set_page_title (assist,
fibox[i],
"Create the DL-POLY input file(s) now !");
4345 gtk_assistant_set_page_type (assist,
fibox[i], GTK_ASSISTANT_PAGE_CONFIRM);
4346 gtk_assistant_set_page_complete (assist,
fibox[i], TRUE);
4347 gtk_assistant_update_buttons_state (assist);
4352 "Atomic species and total coordination(s) as field atom(s)",
4353 "Atomic species and partial coordination(s) as field atom(s)"};
4397 gtk_label_set_text (GTK_LABEL(
field_i_lab[1]),
"Force field was initialized using: ");
4399 gtk_assistant_get_nth_page(GTK_ASSISTANT (
field_assistant), 0), TRUE);
4418 i = GPOINTER_TO_INT(data);
4419 j = gtk_combo_box_get_active (box);
4436 gtk_combo_box_set_active (box, -1);
4474 GtkWidget * notebook = gtk_notebook_new ();
4475 GtkWidget * scrollsets;
4477 gchar * ff_files[2][3] = {{
"CONTROL",
"FIELD" ,
"CONFIG"}, {
"LAMMPS.IN",
"LAMMPS.DATA",
""}};
4478 int num_files[2] = {3, 2};
4481 for (i=0; i<num_files[
activef]; i++)
4483 if ((i==0 &&
tmp_field -> prepare_file[0]) || (i > 0 &&
tmp_field -> prepare_file[1]))
4486 scrollsets =
create_scroll (NULL, 700, 350, GTK_SHADOW_ETCHED_IN);
4516 gtk_notebook_append_page (GTK_NOTEBOOK(notebook), scrollsets, gtk_label_new (ff_files[
activef][i]));
4520 if (gtk_assistant_get_current_page (GTK_ASSISTANT (
field_assistant)) >
MAXDATC &&
tmp_field -> prepare_file[0]) gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 1);
4536 GtkFileChooser * chooser = GTK_FILE_CHOOSER((GtkFileChooserNative *)info);
4549 GtkFileChooser * chooser = GTK_FILE_CHOOSER((GtkWidget *)info);
4552 GtkTextBuffer * buffer;
4555 GError * err = NULL;
4556 gboolean result = FALSE;
4557 gchar * ff_files[2][3] = {{
"CONTROL",
"FIELD" ,
"CONFIG"}, {
"LAMMPS.IN",
"LAMMPS.DATA",
""}};
4558 int num_files[2] = {3, 2};
4559 if (response_id == GTK_RESPONSE_ACCEPT)
4562 if (direname != NULL)
4567 for (i=0; i<num_files[
activef]; i++)
4569 if ((i==0 &&
tmp_field -> prepare_file[0]) || (i > 0 &&
tmp_field -> prepare_file[1]))
4571 filename = g_strdup_printf (
"%s/%s", direname, ff_files[
activef][i]);
4572 if (g_file_test(filename, G_FILE_TEST_EXISTS))
4574 str = g_strdup_printf (
"%s file found in '%s'\nreplace existing %s file ?", ff_files[
activef][i], direname, ff_files[
activef][i]);
4588 for (i=0; i<num_files[
activef]; i++)
4593 filename = g_strdup_printf (
"%s/%s", direname, ff_files[
activef][i]);
4606 gtk_text_buffer_get_start_iter (buffer, & bStart);
4607 gtk_text_buffer_get_end_iter (buffer, & bEnd);
4608 gchar *
text = gtk_text_buffer_get_text (buffer, & bStart, & bEnd, FALSE);
4609 gtk_text_buffer_set_modified (buffer, FALSE);
4610 result = g_file_set_contents (filename,
text, -1, & err);
4612 g_object_unref (buffer);
4613 if (! result && err)
4615 show_error (g_strdup_printf (
"Error while saving input file: %s\n Error: %s", filename, err -> message), 0,
field_assistant);
4643 GtkFileChooserNative * info;
4647 gchar * ff_type[2] = {
"DL-POLY",
"LAMMPS"};
4649 text = g_strdup_printf (
"Saving %s input file(s)", ff_type[
activef]);
4651 GTK_WINDOW(assistant),
4652 GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
4689 gchar * field_type[2] = {
"DL-POLY 4",
"LAMMPS"};
4699 for (i=0; i<2; i++)
tmp_proj -> force_field[
activef] -> prepare_file[i] = TRUE;
4712 gchar * info = g_strdup_printf (
"%s calculation assistant", field_type[f]);
4717 info = g_strdup_printf (
"<b> This assistant will help you to setup a %s \n"
4718 "calculation using <i>%s</i> 3D model as starting point</b>", field_type[f],
tmp_proj -> name);
4722 gchar * i_titles[2][2] = {{
"Force field: ",
"Force field: "}, {
"Initialize force field using: ",
"Force field was initialized using: "}};
4732 gtk_combo_box_set_active (GTK_COMBO_BOX(
field_i_combo[i]), -1);
4756 GtkWidget * but =
check_button (
"\tDelete the existing force field data and reset the parameters to the default values",
4757 -1, 40, FALSE, G_CALLBACK(
clean_field), GINT_TO_POINTER(p));
4764 field_i_prep[1] =
check_button (
"\tPrepare the FIELD and CONFIG files to describe the force field and the atomistic model",
4771 field_i_prep[1] =
check_button (
"\tPrepare the LAMMPS Atom file to describe the force field and the atomistic model",
4783 markup_label(
"\n \t<b>Note: </b>You can re-open this assistant later if required to adjust your choices\n",
4784 -1, -1, 0.0, 0.5), FALSE, FALSE, 50);
4787 info = g_strdup_printf (
"%s calculation set-up", field_type[f]);
4788 gtk_assistant_set_page_title (GTK_ASSISTANT (
field_assistant), intro, info);
4790 gtk_assistant_set_page_type (GTK_ASSISTANT (
field_assistant), intro, GTK_ASSISTANT_PAGE_INTRO);
4819 tmp_view -> anim -> last ->
img -> labels_position[i] = 0;
Binding to the Fortran90 subroutines.
Variable declarations for the MD input preparation assistants.
Callback declarations for main window.
integer(kind=c_int) function chemistry()
double scale(double axe)
find appropriate major tick spacing based on axis length
void label(cairo_t *cr, double val, int axe, int p, project *this_proj)
draw axis label
field_constraint * get_active_constraint(int a, int b)
retrieve constraint property
field_molecule * get_active_field_molecule(int a)
retrieve field molecule
field_rigid * get_active_rigid(int a, int b)
retrieve rigid property
field_prop * get_active_prop_using_atoms(struct field_prop *pr, int ti, int *ids)
retrieve field molecule structural property using atoms
field_struct * get_active_struct(int s, int a, int b)
retrieve field structural property
field_shell * get_active_shell(int a, int b)
retrieve shell property
field_atom * get_active_atom(int a, int b)
retrieve field atom
field_external * get_active_external(int a)
retrieve external field property
field_nth_body * get_active_body(int a, int b)
retrieve field nth body interaction
field_pmf * get_active_pmf(int a, int b)
retrieve PMF property
field_tethered * get_active_tethered(int a, int b)
retrieve tethered property
G_MODULE_EXPORT void remove_atom_from_field_molecule(GSimpleAction *action, GVariant *parameter, gpointer data)
remove atom from field molecule - creating the dialog
void init_default_shaders(glwin *view)
re-initialize the default OpenGL shaders
GtkWidget * vbox_control(int f)
crerate DL-POLY option widgets
G_MODULE_EXPORT void add_field_prop(GSimpleAction *action, GVariant *parameter, gpointer data)
add field property callback
void adjust_field_prop(int fil, int sti, field_prop *tmp, int *ids, int key)
adjust field property
G_MODULE_EXPORT void select_atom_id_from_fied_molecule(GtkButton *but, gpointer data)
select atom id from field molecule - creating the dialog
G_MODULE_EXPORT void edit_field_prop(GSimpleAction *action, GVariant *parameter, gpointer data)
edit field property callback
G_MODULE_EXPORT void remove_field_prop(GSimpleAction *action, GVariant *parameter, gpointer data)
remove field property callback
int feunit_fbd[2][FFOURBODY][FFOURBODY_P]
GtkWidget * field_i_lab[2]
char * fvars_fbd[2][FFOURBODY][FFOURBODY_P]
field_constraint * tmp_fcons
char * fvars_bond[2][FBONDS][FBONDS_P]
gchar * pop_add(int i)
get add string label
void close_the_assistant(GtkAssistant *assistant)
classical force field creation close the assistant
gboolean field_file_has_energy_parameters(gboolean scale, int sca, int scb)
scale all field parameter(s) related to the energy unit
void on_assistant_apply(GtkAssistant *assistant, gpointer data)
on classical force field assistant apply - creating the dialog
GtkWidget * field_i_combo[2]
void field_unselect_all()
unselect all atoms
GtkWidget * field_i_fixed[2]
field_nth_body * tmp_fbody
float internal_to_other[5]
GtkCellRenderer * field_renderer[MAXDATA][11]
int feunit_tbd[2][FTHREEBODY][FTHREEBODY_P]
G_MODULE_EXPORT void on_assistant_cancel(GtkAssistant *assistant, gpointer data)
classical force field creation cancel assistant
int feunit_dihedral[2][FDIHEDRAL][FDIHEDRAL_P]
GtkWidget * mol_box[MOLIMIT-1]
G_MODULE_EXPORT gboolean on_field_button_event(GtkWidget *widget, GdkEvent *event, gpointer data)
classical force field tree model button event callback GTK3
void create_ff_structure(int ai, int type)
create the classical force field data structure and update widgets
G_MODULE_EXPORT void select_field_action(GtkToggleButton *but, gpointer data)
select force field creation option toggle callback GTK3
void pop_up_field_context_menu(int row_id, GtkWidget *widget, GdkEvent *event, gpointer data)
classical force field tree model popup menu GTK3
int saved_label_position[2]
int feunit_angle[2][FANGLES][FANGLES_P]
G_MODULE_EXPORT void toggle_field_params(GtkToggleButton *but, gpointer data)
change classical force field parameter toggle callback GTK3
int body_at(int b)
find the number of atom(s) in a non bonded interaction
void field_set_visible(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer visibility in the classical force field tree store
void create_field_list(GtkWidget *vbx, int f)
classical force field creation prepare list store selection widgets
GtkWidget * vbox_init(int p)
classical force field assistant prepare the field object configuration widgets
void print_all_field_struct(field_molecule *mol, int str)
print all field structural element(s)
gchar * fnames[2][16][21]
void field_set_markup_box(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer pango markup in the classical force field tree store
void set_mol_num_label()
classical force field prepare the molecule information widget
gchar * la_improper_style_keyw[11]
field_external * tmp_fext
GtkTreeViewColumn * field_col[MAXDATA][11]
G_MODULE_EXPORT void clean_field(GtkToggleButton *but, gpointer data)
clean force field data toggle callback GTK3
void field_set_color_and_markup(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer color and markup in the classical force field tree store
void field_set_color_markup_and_visible(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer color, markup and visibility in the classical force field tree store
void field_button_event(GdkEvent *event, double event_x, double event_y, guint event_button, guint event_type, guint32 event_time, gpointer data)
classical force field tree model button event GTK3
GtkTreeStore * field_model[MAXDATA]
int get_field_tree_data(GtkWidget *tree, int treeid, GtkTreePath *path)
retrieve classical force field data from tree model
gchar * felemts[MAXDATA+1]
G_MODULE_EXPORT void changed_mol_box(GtkComboBox *box, gpointer data)
classical force field assistant change the target molecule for the page
void field_set_color_and_visible(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer color and visibility in the classical force field tree store
gboolean afp_init[MAXDATC+MAXDATA]
GtkWidget * mol_num_label
char * fvars_ters[2][FTERSOFFS][FTERSOFFS_P]
G_MODULE_EXPORT void to_edit_field_prop(GtkCellRenderer *cell, GtkCellEditable *editable, gchar *path_string, gpointer data)
to edit data in the classical force field tree model
gchar * pop_remove(int i)
get remove string label
void check_tersoffs(int id, int key)
check non bonded potential
char * fvars_inversion[2][FINVERS][FINVERS_P]
int struct_id(int f)
number of atoms in a structural element
G_MODULE_EXPORT void on_assistant_close(GtkAssistant *assistant, gpointer data)
classical force field creation close assistant
int get_field_data_id(int k, gchar *data)
get classical force field parameter from description string
G_MODULE_EXPORT void to_select_atom_id_from_fied_molecule(GSimpleAction *action, GVariant *parameter, gpointer data)
create new field atom from field atom popup menu callback
G_MODULE_EXPORT void edit_field_cell(GtkCellRendererText *cell, gchar *path_string, gchar *new_text, gpointer data)
edit cell in the classical force field tree model
G_MODULE_EXPORT void on_field_row_activated(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data)
activating row in the classical force field tree model
void fill_field_model(GtkTreeStore *store, int f, int m)
classical force field fill the tree store
void update_field_trees()
classical force field assistant update all tree models
int feunit_teth[2][FTETH][FTETH_P]
int feunit_vdw[2][FVDW][FVDW_P]
G_MODULE_EXPORT void changed_field_key_renderer(GtkCellRendererCombo *combo, gchar *path_string, GtkTreeIter *iter, gpointer data)
change combo box in classical force field tree model
char * fvars_dihedral[2][FDIHEDRAL][FDIHEDRAL_P]
G_MODULE_EXPORT void show_force_field_preview(GtkButton *but, gpointer data)
show classical force field input files preview
ColRGBA init_color(int id, int numid)
initialize color based id number over total number of elements
void get_field_iter_and_edit(gchar *path_string, gpointer data)
edit field property in the classical force field tree model
char * fvars_angle[2][FANGLES][FANGLES_P]
gboolean tersoff_question()
change Tersoff potential ?
int feunit_bond[2][FBONDS][FBONDS_P]
gchar * parameters_info(int obj, int key, gchar **words, float *data)
prepare classical force field parameter description string
G_MODULE_EXPORT void changed_energy_unit(GtkComboBox *box, gpointer data)
change the classical force field energy unit - creating the dialog
GtkWidget * field_i_box[2]
int get_num_vdw_max()
Get the number of field shell interactions.
void field_set_color_markup_and_visible_box(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer color, markup and visibility in the classical force field tree store
G_MODULE_EXPORT void run_clean_field(GtkDialog *dial, gint response_id, gpointer data)
clean force field data - running the dialog
field_molecule * tmp_fmol
gboolean set_nbd_but_sensitive(int nbid)
adjust non bonded interaction button sensitivity
gchar * pop_info(int i, int id)
get popup information message
void remove_classical_assistant_pages()
classical force field creation remove assistant pages
void get_is_energy(int i, int l)
get the energy unit linked parameter list
void check_to_visualize_properties(int id)
check if it is requried to update rendering
GtkWidget * field_i_prep[2]
G_MODULE_EXPORT gboolean on_assistant_cancel_event(GtkWidget *assistant, GdkEvent *event, gpointer data)
classical force field creation cancel event callback GTK3
GtkWidget * extra_vbox[2]
gchar * ctitle[MAXDATA][12]
GtkWidget * create_mol_box(int f)
classical force field create molecule selection widgets
char * fvars_tbd[2][FTHREEBODY][FTHREEBODY_P]
void restore_ogl_selection(glwin *view)
restore a saved atom selection
GSimpleActionGroup * field_pop_actions
field_tethered * tmp_ftet
GType col_type[MAXDATA][12]
void print_lammps_atom_file(GtkTextBuffer *buf)
print LAMMPS atom file
void add_classical_assistant_pages(int p)
classical force field assistant add pages
void prop_set_color_and_visible(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer color and visibility in the classical force field structural property tree store
GtkWidget * create_combo_mol(int f)
classical force field create molecule selection combo box
GtkWidget * field_assistant
G_MODULE_EXPORT void on_assistant_prepare(GtkAssistant *assistant, GtkWidget *page, gpointer data)
prepare classical force field assistant pages before display
GtkWidget * create_field_tree(int f)
classical force field create the list store selection widgets
GtkWidget * field_tree[MAXDATA]
GtkWidget * fibox[MAXDATC+MAXDATA+2]
int feunit_inversion[2][FINVERS][FINVERS_P]
G_MODULE_EXPORT gint on_assistant_go_forward(gint current_page, gpointer data)
classical force field assistant find the next page to go to
G_MODULE_EXPORT void run_on_assistant_apply(GtkDialog *info, gint response_id, gpointer data)
on classical force field assistant apply - running the dialog GTK3
G_MODULE_EXPORT void run_changed_energy_unit(GtkDialog *dialog, gint response_id, gpointer data)
change the classical force field energy unit - running the dialog
char * fvars_vdw[2][FVDW][FVDW_P]
int feunit_fext[2][FEXTERNAL][FEXTERNAL_P]
void create_classical_force_field(int p, int f)
create classical force field prepare the assistant
gchar * fkeysw[2][16][21]
void field_set_markup(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer pango markup in the classical force field tree store
GtkWidget * field_label[MAXDATA]
gchar * pop_edit(int i)
get edit string label
void hide_show_this_pages(int start, int end, int status, int delta)
classical force field assistant show / hide pages
classical_field * tmp_field
void setup_cs_labels(int i)
classical force field prepare the core-shell description strings
void field_set_color(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer color in the classical force field tree store
void pmf_set_color_and_visible(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer color and visibility in the classical force field mean force potential tree store
char * fvars_fext[2][FEXTERNAL][FEXTERNAL_P]
int feunit_ters[2][FTERSOFFS][FTERSOFFS_P]
GtkWidget * vbox_field(int f)
classical force field create page option widgets
gchar * set_field_label(int f, int m)
prepare classical force field description string
void append_field_item(GMenu *menu, const gchar *name, const gchar *key, int item_id, gchar *accel, int image_format, gpointer icon, gboolean custom, GCallback handler, gpointer data, gboolean check, gboolean status, gboolean radio, gboolean sensitive)
append menu items to the popup menu
void fill_field_struct(GtkTreeStore *store, int id, int mo)
classical force field fill the tree store with structural element parameter(s)
int feunit_met[2][FMETALS][FMETALS_P]
GtkWidget * combo_mol[MOLIMIT-1]
char * fvars_met[2][FMETALS][FMETALS_P]
char * fvars_teth[2][FTETH][FTETH_P]
int is_special[MAXDATA][11]
GtkWidget * field_i_obj[2]
G_MODULE_EXPORT void changed_init_box(GtkComboBox *box, gpointer data)
classical force field change initialization parameter
void fill_field_body(GtkTreeStore *store, int id)
classical force field fill the tree store with non bonded parameter(s)
gchar * get_body_element_name(field_nth_body *body, int aid, int nbd)
get field body potential element name
void rig_set_color_and_visible(GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *mod, GtkTreeIter *iter, gpointer data)
set renderer color and visibility in the classical force field rigid constraint(s) tree store
int saved_label_format[2]
field_nth_body * new_body
Variable declarations for the creation of the DL_POLY input file(s)
int * duplicate_int(int num, int *old_val)
copy a list of int
void print_dlp_bond(int bi, GtkTextBuffer *buf, field_struct *bd, int fi, GtkTreeStore *store, GtkTreeIter *iter)
print / fill tree store with force field bond(s) information
G_MODULE_EXPORT void add_molecule_to_field(GSimpleAction *action, GVariant *parameter, gpointer data)
add molecule to force field - creating the dialog
G_MODULE_EXPORT void setup_this_force_field(int id)
setup force field parameters
void print_dlp_improper_inversion(int di, GtkTextBuffer *buf, field_struct *dh, int fi, GtkTreeStore *store, GtkTreeIter *iter)
print / fill tree store with force field improper(s)/inversion(s) information
void print_dlp_angle(int ai, GtkTextBuffer *buf, field_struct *an, int fi, GtkTreeStore *store, GtkTreeIter *iter)
print / fill tree store with force field angle(s) information
void print_dlp_control(GtkTextBuffer *buf)
print DL-POLY CONTROL file
char * field_acro[N_FIELDS]
G_MODULE_EXPORT void remove_molecule_from_field(GSimpleAction *action, GVariant *parameter, gpointer data)
remove molecule from force field - creating the dialog
classical_field * create_force_field_data_structure(int ai)
initialize classical force field
void print_dlp_field(GtkTextBuffer *buf)
print DL-POLY classical force field
void print_dlp_config(GtkTextBuffer *buf)
print DL-POLY CONFIG file
void visualize_object(int id, int jd, int kd)
visualize object and update OpenGL rendering
void print_dlp_dihedral(int di, GtkTextBuffer *buf, field_struct *dh, int fi, GtkTreeStore *store, GtkTreeIter *iter)
print / fill tree store with force field dihedral(s) information
G_MODULE_EXPORT void visualize_or_select_all_elements(GtkTreeViewColumn *col, gpointer data)
select all element(s) in the column for visualization
G_MODULE_EXPORT void on_toggle_visualize_or_select_object(GtkCellRendererToggle *cell_renderer, gchar *string_path, gpointer data)
on visualize force field object toggle callback
int get_field_objects(int id, int jd)
get the number of this type of field object
int ** allocdint(int xal, int yal)
allocate an int ** pointer
gchar ** duplicate_strings(int num, gchar **old_val)
copy a list of strings
int * allocint(int val)
allocate an int * pointer
float * allocfloat(int val)
allocate a float * pointer
GtkWidget * dialog_cancel_apply(gchar *title, GtkWidget *parent, gboolean resiz)
create a dialog modal offering a choice to apply something or not
void run_this_gtk_dialog(GtkWidget *dial, GCallback handler, gpointer data)
run a GTK (3 and 4) basic GtkDialog
void set_renderer_color(int tocol, GtkCellRenderer *renderer, ColRGBA col)
set the color of a GtkCellRenderer
GtkWidget * create_text_view(int dimx, int dimy, int edit, int mono, GCallback handler, gpointer data, gchar *text)
create a GtkTextView and display some text
GtkTextBuffer * add_buffer(GCallback handler, gpointer data, gchar *text)
create a GtkTextBuffer
GtkWidget * create_scroll(GtkWidget *box, int dimx, int dimy, int shadow)
create a scroll window
GtkWidget * dialogmodal(gchar *str, GtkWindow *parent)
Create a new dialog modal window.
void opengl_project_changed(int id)
change the OpenGL project
void pop_menu_at_pointer(GtkWidget *widg, GdkEvent *event)
popup a menu at pointer location
void widget_add_action(GSimpleActionGroup *action_group, const gchar *act, GCallback handler, gpointer data, gboolean check, gboolean status, gboolean radio, const gchar *stat)
add an action to an action group
GtkWidget * stock_image(const gchar *stock_id)
create a GtkImage for the Gtk database
void add_gtk_close_event(GtkWidget *widg, GCallback handler, gpointer data)
add a close event signal and callback to a GtkWidget
GtkWidget * fbox(GtkWidget *box, char *lab)
gchar * file_chooser_get_current_folder(GtkFileChooser *chooser)
get the current folder for a GtkFileChooser
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)
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.
void destroy_this_dialog(GtkDialog *dialog)
destroy a GtkDialog
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_container_child(int type, GtkWidget *widg, GtkWidget *child)
Add a GtkWidget into another GtkWidget.
#define MAXDATC
Number of tabs for the description of the classical calculation.
void append_menu_item(GMenu *menu, const gchar *label, const gchar *action, const gchar *accel, const gchar *custom, int format, const gchar *icon, gboolean check, gboolean status, gboolean radio, const gchar *rstatus)
create a menu item, then append it to a menu
GtkWidget * create_vbox(int spacing)
create a GtkBox with vertical orientation
GtkWidget * create_file_chooser(const gchar *title, GtkWindow *parent, GtkFileChooserAction act, const gchar *act_name)
create a GtkFileChooser, utility to select file(s)
#define MAXDATA
Number of tabs for the description of the classical force field.
void destroy_this_native_dialog(GtkNativeDialog *dialog)
destroy a GtkNativeDialog
void show_the_widgets(GtkWidget *widg)
show GtkWidget
project * get_project_by_id(int p)
get project pointer using id number
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
void show_error(char *error, int val, GtkWidget *win)
show error message
gboolean ask_yes_no(gchar *title, gchar *text, int type, GtkWidget *widg)
ask yes or no for something: prepare dialog
gchar * exact_name(gchar *name)
short cut to print string without spaces
Messaging function declarations.
integer(kind=c_int) function molecules(frag_and_mol, allbonds)
Function declarations for reading atomes project file Function declarations for saving atomes proje...