144 i18n(
"Core-shell unit(s)"),
145 i18n(
"Constraint bond(s)"),
146 i18n(
"Mean force potential(s)"),
147 i18n(
"Rigid unit(s)"),
148 i18n(
"Tethering potential(s)"),
149 i18n(
"Flexible chemical bond(s)"),
150 i18n(
"Bond restraint(s)"),
151 i18n(
"Bond angle(s)"),
152 i18n(
"Angular restraint(s)"),
153 i18n(
"Dihedral angle(s)"),
154 i18n(
"Torsional restraint(s)"),
155 i18n(
"Improper angle(s)"),
156 i18n(
"Inversion angle(s)"),
157 i18n(
"van der Waals potential(s)"),
158 i18n(
"Metal potential(s)"),
159 i18n(
"Tersoff Potential(s)"),
160 i18n(
"Three-body potential(s)"),
161 i18n(
"Four-body potential(s)"),
162 i18n(
"External field(s)")};
167 i18n(
"Core-shell unit"),
168 i18n(
"Constraint bond"),
169 i18n(
"Mean force potential"),
171 i18n(
"Tethering potential"),
172 i18n(
"Flexible chemical bond"),
173 i18n(
"Bond restraint"),
175 i18n(
"Angular restraint"),
176 i18n(
"Dihedral angle"),
177 i18n(
"Torsional restraint"),
178 i18n(
"Improper angle"),
179 i18n(
"Inversion angle"),
180 i18n(
"van der Waals potential"),
181 i18n(
"Metal potential"),
182 i18n(
"Tersoff Potential"),
183 i18n(
"Three-body potential"),
184 i18n(
"Four-body potential"),
185 i18n(
"External field")};
189 i18n(
"core-shell unit(s)"),
190 i18n(
"constraint bond(s)"),
191 i18n(
"mean force potential(s)"),
192 i18n(
"rigid unit(s)"),
193 i18n(
"tethering potential(s)"),
194 i18n(
"flexible chemical bond(s)"),
195 i18n(
"bond restraint(s)"),
196 i18n(
"bond angle(s)"),
197 i18n(
"angular restraint(s)"),
198 i18n(
"dihedral angle(s)"),
199 i18n(
"torsional restraint(s)"),
200 i18n(
"improper angle(s)"),
201 i18n(
"inversion angle(s)"),
202 i18n(
"van der Waals potential(s)"),
203 i18n(
"metal potential(s)"),
204 i18n(
"Tersoff Potential(s)"),
205 i18n(
"three-body potential(s)"),
206 i18n(
"four-body potential(s)"),
207 i18n(
"external field(s)")};
211 i18n(
"core-shell unit"),
212 i18n(
"constraint bond"),
213 i18n(
"mean force potential"),
215 i18n(
"tethering potential"),
216 i18n(
"flexible chemical bond"),
217 i18n(
"bond restraint"),
219 i18n(
"angular restraint"),
220 i18n(
"dihedral angle"),
221 i18n(
"torsional restraint"),
222 i18n(
"improper angle"),
223 i18n(
"inversion angle"),
224 i18n(
"van der Waals potential"),
225 i18n(
"metal potential"),
226 i18n(
"Tersoff Potential"),
227 i18n(
"three-body potential"),
228 i18n(
"four-body potential"),
229 i18n(
"external field")};
233 i18n(
"of core-shell unit(s)"),
234 i18n(
"of constraint bond(s)"),
235 i18n(
"of mean force potential(s)"),
236 i18n(
"of rigid unit(s)"),
237 i18n(
"of tethering potential(s)"),
238 i18n(
"of flexible chemical bond(s)"),
239 i18n(
"of bond restraint(s)"),
240 i18n(
"of bond angle(s)"),
241 i18n(
"of angular restraint(s)"),
242 i18n(
"of dihedral angle(s)"),
243 i18n(
"of torsional restraint(s)"),
244 i18n(
"of improper angle(s)"),
245 i18n(
"of inversion angle(s)"),
246 i18n(
"of van der Waals potential(s)"),
247 i18n(
"of metal potential(s)"),
248 i18n(
"of Tersoff Potential(s)"),
249 i18n(
"of three-body potential(s)"),
250 i18n(
"of four-body potential(s)"),
251 i18n(
"of external field(s)")};
255 i18n(
"of the core-shell unit"),
256 i18n(
"of the constraint bond"),
257 i18n(
"of the mean force potential"),
258 i18n(
"of the rigid unit)"),
259 i18n(
"of the tethering potential"),
260 i18n(
"of the flexible chemical bond"),
261 i18n(
"of the bond restraint"),
262 i18n(
"of the bond angle"),
263 i18n(
"of the angular restraint"),
264 i18n(
"of the dihedral angle"),
265 i18n(
"of the torsional restraint"),
266 i18n(
"of the improper angle"),
267 i18n(
"of the inversion angle"),
268 i18n(
"of the van der Waals potential"),
269 i18n(
"of the metal potential"),
270 i18n(
"of the Tersoff Potential"),
271 i18n(
"of the three-body potential"),
272 i18n(
"of the four-body potential"),
273 i18n(
"of the external field")};
275gchar *
fkeysw[2][16][21] = {{{
"eV",
"kcal",
"kJ",
"K",
"internal",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
276 {
"harm",
"rhrm",
"quar",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
277 {
"harm",
"mors",
"12-6",
"lj ",
"rhrm",
"quar",
"buck",
"coul",
"fene",
"mmst",
"tab ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
278 {
"-hrm",
"-mrs",
"-126",
"-lj ",
"-rhm",
"-qur",
"-bck",
"-cul",
"-fne",
"-mst",
"-tab",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
279 {
"harm",
"quar",
"thrm",
"shrm",
"bvs1",
"bvs2",
"hcos",
"cos ",
"mmsb",
"stst",
"stbe",
"cmps",
"mmbd",
"kky ",
"tab ",
" ",
" ",
" ",
" ",
" ",
" "},
280 {
"-hrm",
"-qur",
"-thm",
"-shm",
"-bv1",
"-bv2",
"-hcs",
"-cos",
"-msb",
"-sts",
"-stb",
"-cmp",
"-mbd",
"-kky",
"-tab",
" ",
" ",
" ",
" ",
" ",
" "},
281 {
"cos ",
"harm",
"hcos",
"cos3",
"ryck",
"rbf ",
"opls",
"tab ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
282 {
"-cos",
"-hrm",
"-hcs",
"-cs3",
"-rck",
"-rbf",
"-opl",
"-tab",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
283 {
"cos ",
"harm",
"hcos",
"cos3",
"ryck",
"rbf ",
"opls",
"tab ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
284 {
"harm",
"hcos",
"plan",
"xpln",
"calc",
"tab ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
285 {
"12-6",
"lj ",
"ljc",
"nm ",
"buck",
"bhm ",
"hbnd",
"snm ",
"mors",
"wca ",
"dpd",
"14-7",
"mstw",
"ryb",
"zbl",
"zbls",
"zblb",
"mlj",
"mbuc",
"m126",
"tab "},
286 {
"eam ",
"eeam",
"2bea",
"2bee",
"fnsc",
"exfs",
"stch",
"gupt",
"mbpc",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
287 {
"ters",
"kihs",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
288 {
"harm",
"thrm",
"shrm",
"bvs1",
"bvs2",
"hbnd",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
289 {
"harm",
"hcos",
"plan",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
290 {
"elec",
"oshr",
"shrx",
"grav",
"magn",
"sphr",
"zbnd",
"xpis",
"zres",
"zrs-",
"zrs+",
"osel",
"ushr",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}},
291 {{
"lj",
"real",
"metal",
"si",
"cgs",
"electron",
"micro",
"nano",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
292 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
293 {
"harmonic",
"class2",
"fene",
"fene/expand",
"gromos",
"harmonic/shift",
"harmonic/shift/cut",
"mm3",
"morse",
"nonlinear",
"oxdna/fene",
"oxdna2/fene",
"oxrna2/fene",
"quartic",
"special",
"table",
" ",
" ",
" ",
" ",
" "},
294 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
295 {
"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",
" ",
" "},
296 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
297 {
"cosine/shift/exp",
"charmm",
"charmmfsw",
"class2",
"fourier",
"harmonic",
"helix",
"multi/harmonic",
"nharmonic",
"opls",
"quadratic",
"spherical",
"table",
"table/cut",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
298 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
299 {
"harmonic",
"class2",
"cossq",
"cvff",
"distance",
"distharm",
"fourier",
"ring",
"sqdistharm",
"umbrella",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
300 {
"inversion/harmonic",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
301 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
302 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
303 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
304 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
305 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
306 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}}};
308gchar *
fnames[2][16][21] = {{{
i18n(
"Electron-Volts"),
i18n(
"k-calories per mol"),
i18n(
"k-Joules per mol"),
i18n(
"Kelvin per Boltzmann"),
i18n(
"DL_POLY internal units"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
309 {
i18n(
"Harmonic"),
i18n(
"Restraint"),
i18n(
"Quartic"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
310 {
i18n(
"Harmonic"),
"Morse",
"12-6",
"Lennard-Jones",
i18n(
"Restraint"),
i18n(
"Quartic"),
"Buckingham",
"Coulomb",
i18n(
"Shifted FENE"),
i18n(
"MM3 bond stretch"),
i18n(
"Tabulated"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
311 {
i18n(
"Harmonic"),
"Morse",
"12-6",
"Lennard-Jones",
i18n(
"Restraint"),
i18n(
"Quartic"),
"Buckingham",
"Coulomb",
i18n(
"Shifted FENE"),
i18n(
"MM3 bond stretch"),
i18n(
"Tabulated"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
312 {
i18n(
"Harmonic"),
i18n(
"Quartic"),
i18n(
"Truncated harmonic"),
i18n(
"Screened harmonic"),
i18n(
"Screened Vessal"),
i18n(
"Truncated Vessal"),
i18n(
"Harmonic cosine"),
i18n(
"Cosine"),
i18n(
"MM3 stretch-bend"),
i18n(
"Compass stretch-stretch"),
i18n(
"Compass stretch-bend"),
i18n(
"Compass all terms"),
i18n(
"MM3 angle bend"),
"KKY",
i18n(
"Tabulated"),
" ",
" ",
" ",
" ",
" ",
" "},
313 {
i18n(
"Harmonic"),
i18n(
"Quartic"),
i18n(
"Truncated harmonic"),
i18n(
"Screened harmonic"),
i18n(
"Screened Vessal"),
i18n(
"Truncated Vessal"),
i18n(
"Harmonic cosine"),
i18n(
"Cosine"),
i18n(
"MM3 stretch-bend"),
i18n(
"Compass stretch-stretch"),
i18n(
"Compass stretch-bend"),
i18n(
"Compass all terms"),
i18n(
"MM3 angle bend"),
"KKY",
i18n(
"Tabulated"),
" ",
" ",
" ",
" ",
" ",
" "},
314 {
i18n(
"Cosine"),
i18n(
"Harmonic"),
i18n(
"Harmonic cosine"),
i18n(
"Triple cosine"),
"Ryckaert-Bellemans",
i18n(
"Fluorinated Ryckaert-Bellemans"),
i18n(
"OPLS torsion"),
i18n(
"Tabulated"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
315 {
i18n(
"Cosine"),
i18n(
"Harmonic"),
i18n(
"Harmonic cosine"),
i18n(
"Triple cosine"),
"Ryckaert-Bellemans",
i18n(
"Fluorinated Ryckaert-Bellemans"),
i18n(
"OPLS torsion"),
i18n(
"Tabulated"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
316 {
i18n(
"Cosine"),
i18n(
"Harmonic"),
i18n(
"Harmonic cosine"),
i18n(
"Triple cosine"),
"Ryckaert-Bellemans",
i18n(
"Fluorinated Ryckaert-Bellemans"),
i18n(
"OPLS torsion"),
i18n(
"Tabulated"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
317 {
i18n(
"Harmonic"),
i18n(
"Harmonic cosine"),
i18n(
"Planar"),
i18n(
"Extended Planar"),
i18n(
"Calcite"),
i18n(
"Tabulated"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
318 {
"12-6",
"Lennard-Jones",
i18n(
"LJ cohesive"),
"n-m",
"Buckingham",
"Born-Huggins-Meyer",
i18n(
"12-10 H-bond"),
i18n(
"Shifted force n-m"),
"Morse",
i18n(
"Shifted Weeks-Chandler-Anderson"),
i18n(
"Standard DPD"),
i18n(
"14-7 buffered AMOEBA FF"),
319 i18n(
"Morse modified"),
"Rydberg",
"ZBL",
i18n(
"ZBL mixed with Morse"),
i18n(
"ZBL mixed with Buckingham"),
i18n(
"Lennard-Jones tapered with MDF"),
i18n(
"Buckingham tapered with MDF"),
i18n(
"12-6 Lennard-Jones tapered with MDF"),
i18n(
"Tabulated")},
320 {
"EAM",
"EEAM",
"2BEAM",
"2BEEAM",
"Finis-Sinclair",
i18n(
"Extended Finis-Sinclair"),
"Sutton-Chen",
"Gupta",
"MBPC",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
321 {
"Tersoff",
"KIHS",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
322 {
i18n(
"Harmonic"),
i18n(
"Truncated harmonic"),
i18n(
"Screened harmonic"),
i18n(
"Screened Vessal"),
i18n(
"Truncated Vessal"),
i18n(
"H-bond"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
323 {
i18n(
"Harmonic"),
i18n(
"Harmonic cosine"),
i18n(
"Planar"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
324 {
i18n(
"Electric field"),
i18n(
"Oscillating Shear"),
i18n(
"Continuous Shear"),
i18n(
"Gravitational field"),
i18n(
"Magnetic field"),
i18n(
"Containing Sphere"),
i18n(
"Repulsive Wall"),
i18n(
"X-Piston"),
i18n(
"Molecule in HR Zone"),
i18n(
"HR Zone (pull out)"),
i18n(
"HR Zone (pull in)"),
i18n(
"Osc. Electric Field"),
i18n(
"Umbrella sampling, harm. constant"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}},
325 {{
"lj",
i18n(
"k-calories per mol"),
i18n(
"Electron-Volts"),
i18n(
"k-Joules per mol"),
"cgs",
i18n(
"electron"),
"micro",
"nano",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
326 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
327 {
i18n(
"Harmonic"),
i18n(
"COMPASS class2 force field"),
i18n(
"Finite extensible nonlinear elastic (FENE)"),
i18n(
"FENE with variable size particles"),
i18n(
"GROMOS force field"),
i18n(
"Shifted harmonic"),
i18n(
"Shifted truncated harmonic"),
i18n(
"MM3 anharmonic"),
"Morse",
i18n(
"Nonlinear"),
i18n(
"Finite extensible nonlinear elastic DNA"),
328 i18n(
"Finite extensible nonlinear elastic DNA (2)"),
i18n(
"Finite extensible nonlinear elastic RNA"),
i18n(
"Breakable quartic"),
i18n(
"Special bond exclusions for 1-5 pairs and beyond"),
i18n(
"Tabulated"),
" ",
" ",
" ",
" ",
" "},
329 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
330 {
i18n(
"Harmonic"),
i18n(
"CHARMM force field"),
i18n(
"COMPASS class2 force field"),
i18n(
"COMPASS class2 force field - 6th order"),
i18n(
"Cosine"),
i18n(
"Cosine with Buckingham term between 1-3"),
i18n(
"Difference of cosines"),
i18n(
"DREIDING force field"),
i18n(
"Cosine with a shift"),
i18n(
"Cosine with a shift and exponential term in spring"),
331 i18n(
"Cosine with squared term"),
i18n(
"Cross term coupling angle and bond length"),
i18n(
"Dipole orientation"),
i18n(
"Fourier (multiple cosines)"),
i18n(
"Fourier (single cosine)"),
"MM3",
i18n(
"Quartic"),
i18n(
"Combination of the harmonic (SDK)"),
i18n(
"Tabulated"),
" ",
" "},
332 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
333 {
i18n(
"Cosine with a shift and exponential term in spring"),
i18n(
"CHARMM force field"),
i18n(
"CHARMM force field with force switching"),
i18n(
"COMPASS class2 force field"),
i18n(
"Fourier (multiple cosines)"),
i18n(
"Harmonic"),
i18n(
"Helix"),
i18n(
"Harmonic with 5 terms"),
334 i18n(
"Harmonic with N terms"),
i18n(
"OPLS force field"),
i18n(
"Quadratic"),
i18n(
"Spherical"),
i18n(
"Tabulated"),
i18n(
"Tabulated with analytic cutoff"),
" ",
" ",
" ",
" ",
" ",
" ",
" "},
335 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
336 {
i18n(
"Harmonic"),
i18n(
"COMPASS class2 force field"),
i18n(
"Cosine squared"),
i18n(
"CVFF force field"),
i18n(
"Distance between atom planes"),
i18n(
"Out-of-the plane distance"),
i18n(
"Fourier (multiple cosines)"),
i18n(
"Planar conformation"),
i18n(
"Squared distance harmonic"),
i18n(
"DREIDING force field"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
337 {
i18n(
"Harmonic with Wilson Decius out-of-plane"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
338 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
339 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
340 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
341 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
342 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
343 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}}};
345int 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},
346 { 2, 3, 2, 2, 3, 4, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
347 { 2, 3, 2, 2, 3, 4, 3, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
348 { 2, 4, 3, 4, 4, 4, 2, 3, 4, 3, 3, 6, 2, 4, 0, 0, 0, 0, 0, 0, 0},
349 { 2, 4, 3, 4, 4, 4, 2, 3, 4, 3, 3, 6, 2, 4, 0, 0, 0, 0, 0, 0, 0},
350 { 3, 2, 2, 3, 1, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
351 { 3, 2, 2, 3, 1, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
352 { 3, 2, 2, 3, 1, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
353 { 2, 2, 1, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
354 { 2, 2, 3, 4, 3, 5, 2, 5, 3, 3, 2, 2, 4, 3, 2, 7, 7, 3, 4, 3, 0},
355 { 0, 0, 0, 0, 7, 9, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
356 {11,16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
357 { 2, 3, 4, 4, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
358 { 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
359 { 3, 2, 2, 3, 3, 4, 3, 3, 5, 5, 5, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0}},
360 {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
361 { 2, 4, 4, 5, 2, 3, 3, 2, 3, 3, 3, 3, 3, 5, 2, 2, 0, 0, 0, 0, 0},
362 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
363 { 2, 4, 4, 4, 1, 3, 2, 3, 2, 3, 2, 6, 2, 4, 3, 2, 4, 2, 2, 0, 0},
364 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
365 { 3, 4, 4, 6, 4, 3, 3, 5, 2, 4, 2,11, 2, 2, 0, 0, 0, 0, 0, 0, 0},
366 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
367 { 2, 2, 2, 3, 2, 2, 5, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
368 { 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
369 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
370 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
371 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
372 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
373 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
374 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}};
376int 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},
377 {
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}};
379int 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},
380 {
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}};
383 {
"k",
"r<sub>c</sub>",
" "},
397 {
"E<sub>0</sub>",
"r<sub>0</sub>",
"k",
" ",
" "},
398 {
"A",
"B",
" ",
" ",
" "},
399 {
"ϵ",
"σ",
" ",
" ",
" "},
400 {
"k",
"r<sub>0</sub>",
"r<sub>c</sub>",
" ",
" "},
401 {
"k",
"r<sub>0</sub>",
"k'",
"k''",
" "},
402 {
"A",
"ρ",
"C",
" ",
" "},
403 {
"k",
" ",
" ",
" ",
" "},
404 {
"k",
"R<sub>0</sub>",
"Δ",
" ",
" "},
405 {
"k",
"r<sub>o</sub>",
" ",
" ",
" "},
406 {
" ",
" ",
" ",
" ",
" "},
407 {
" ",
" ",
" ",
" ",
" "},
408 {
" ",
" ",
" ",
" ",
" "},
409 {
" ",
" ",
" ",
" ",
" "},
410 {
" ",
" ",
" ",
" ",
" "},
411 {
" ",
" ",
" ",
" ",
" "}},
412 {{
"K",
"r<sub>0</sub>",
" ",
" ",
" "},
413 {
"r<sub>0</sub>",
"K<sub>2</sub>",
"K<sub>3</sub>",
"K<sub>4</sub>",
" "},
414 {
"K",
"R<sub>0</sub>",
"ϵ",
"σ",
" "},
415 {
"K",
"R<sub>0</sub>",
"ϵ",
"σ",
"Δ"},
416 {
"K",
"r<sub>0</sub>",
" ",
" ",
" "},
417 {
"K",
"r<sub>0</sub>",
"r<sub>c</sub>",
" ",
" "},
418 {
"U<sub>min</sub>",
"r<sub>0</sub>",
"r<sub>c</sub>",
" ",
" "},
419 {
"K",
"r<sub>0</sub>",
" ",
" ",
" "},
420 {
"D",
"α",
"r<sub>0</sub>",
" ",
" "},
421 {
"ϵ",
"r<sub>0</sub>",
"λ",
" ",
" "},
422 {
"ϵ",
"Δ",
"r<sub>0</sub>",
" ",
" "},
423 {
"ϵ",
"Δ",
"r<sub>0</sub>",
" ",
" "},
424 {
"ϵ",
"Δ",
"r<sub>0</sub>",
" ",
" "},
425 {
"K",
"B<sub>1</sub>",
"B<sub>2</sub>",
"R<sub>c</sub>",
"U<sub>0</sub>"},
426 {
"w<sub>LJ</sub>",
"w<sub>Coul</sub>",
" ",
" ",
" "},
427 {
i18n(
"Interpolation style"),
i18n(
"Distances"),
" ",
" ",
" "}}};
463 {
"k",
"θ<sub>0</sub>",
"k'",
"k''",
" ",
" "},
464 {
"k",
"θ<sub>0</sub>",
"ρ",
" ",
" ",
" "},
465 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" ",
" "},
466 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" ",
" "},
467 {
"k",
"θ<sub>0</sub>",
"a",
"ρ",
" ",
" "},
468 {
"k",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
469 {
"A",
"δ",
"m",
" ",
" ",
" "},
470 {
"A",
"θ<sub>0</sub>",
"r<sup>o</sup><sub>ij</sub>",
"r<sup>o</sup><sub>jk</sub>",
" ",
" "},
471 {
"A",
"r<sup>o</sup><sub>ij</sub>",
"r<sup>o</sup><sub>jk</sub>",
" ",
" ",
" "},
472 {
"A",
"θ<sub>0</sub>",
"r<sup>o</sup><sub>ij</sub>",
" ",
" ",
" "},
473 {
"A",
"B",
"C",
"θ<sub>0</sub>",
"r<sup>o</sup><sub>ij</sub>",
"r<sup>o</sup><sub>jk</sub>"},
474 {
"k",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
475 {
"f<sub>k</sub>",
"θ<sub>0</sub>",
"g<sub>r</sub>",
"r<sub>o</sub>",
" ",
" "},
476 {
" ",
" ",
" ",
" ",
" ",
" "},
477 {
" ",
" ",
" ",
" ",
" ",
" "},
478 {
" ",
" ",
" ",
" ",
" ",
" "},
479 {
" ",
" ",
" ",
" ",
" ",
" "},
480 {
" ",
" ",
" ",
" ",
" ",
" "}},
481 {{
"K",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
482 {
"K",
"θ<sub>0</sub>",
"K<sub>ub</sub>",
"r<sub>ub</sub>",
" ",
" "},
483 {
"θ<sub>0</sub>",
"K<sub>2</sub>",
"K<sub>3</sub>",
"K<sub>4</sub>",
" ",
" "},
484 {
"θ<sub>0</sub>",
"K<sub>2</sub>",
"K<sub>3</sub>",
"K<sub>4</sub>",
" ",
" "},
485 {
"K",
" ",
" ",
" ",
" ",
" "},
486 {
"K",
"n",
"θ<sub>0</sub>",
" ",
" ",
" "},
487 {
"K",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
488 {
"C",
"B",
"n",
" ",
" ",
" "},
489 {
"U<sub>min</sub>",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
490 {
"U<sub>min</sub>",
"θ<sub>0</sub>",
"A",
" ",
" ",
" "},
491 {
"K",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
492 {
"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>"},
493 {
"K",
"λ<sub>0</sub>",
" ",
" ",
" ",
" "},
494 {
"K",
"C<sub>0</sub>",
"C<sub>1</sub>",
"C<sub>2</sub>",
" ",
" "},
495 {
"K",
"c",
"n",
"",
" ",
" "},
496 {
"K",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
497 {
"θ<sub>0</sub>",
"K<sub>2</sub>",
"K<sub>3</sub>",
"K<sub>4</sub>",
" ",
" "},
498 {
"K",
"θ<sub>0</sub>",
" ",
" ",
" ",
" "},
499 {
i18n(
"Interpolation style"),
i18n(
"Angles"),
" ",
" ",
" ",
" "}}};
538 {0, 0, 0, 0, 0, 0}}};
540char *
fvars_dihedral[2][
FDIHEDRAL][
FDIHEDRAL_P] = {{{
"A",
"δ",
"m",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
541 {
"k",
"ϕ<sub>0</sub>",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
542 {
"k",
"ϕ<sub>0</sub>",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
543 {
"A<sub>1</sub>",
"A<sub>2</sub>",
"A<sub>3</sub>",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
544 {
"A",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
545 {
"A",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
546 {
"A<sub>0</sub>",
"A<sub>1</sub>",
"A<sub>2</sub>",
"A<sub>3</sub>",
"ϕ<sub>0</sub>",
" ",
" ",
" ",
" ",
" ",
" "},
547 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
548 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
549 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
550 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
551 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
552 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
553 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}},
554 {{
"U<sub>min</sub>",
"θ<sub>0</sub>",
"a",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
555 {
"K",
"n",
"d",
i18n(
"weighting factor"),
" ",
" ",
" ",
" ",
" ",
" ",
" "},
556 {
"K",
"n",
"d",
i18n(
"weighting factor"),
" ",
" ",
" ",
" ",
" ",
" ",
" "},
557 {
"E<sub>d</sub>",
"E<sub>mbt</sub>",
"E<sub>ebt</sub>",
"E<sub>at</sub>",
"E<sub>aat</sub>",
"E<sub>bb13</sub>",
" ",
" ",
" ",
" ",
" "},
558 {
"m",
"K",
"n",
"d",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
559 {
"K",
"d",
"n",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
560 {
"A",
"B",
"C",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
561 {
"A<sub>1</sub>",
"A<sub>2</sub>",
"A<sub>3</sub>",
"A<sub>4</sub>",
"A<sub>5</sub>",
" ",
" ",
" ",
" ",
" ",
" "},
562 {
"n",
"A",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
563 {
"K<sub>1</sub>",
"K<sub>2</sub>",
"K<sub>3</sub>",
"K<sub>4</sub>",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
564 {
"K",
"ϕ<sub>0</sub>",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
565 {
"n",
"C",
"K",
"a",
"u",
"L",
"b",
"v",
"M",
"c",
"w"},
566 {
i18n(
"Interpolation style"),
i18n(
"Dihedrals"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
567 {
i18n(
"Interpolation style"),
i18n(
"Dihedrals"),
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "}}};
569int feunit_dihedral[2][
FDIHEDRAL][
FDIHEDRAL_P] = {{{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
570 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
571 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
572 {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
573 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
574 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
575 {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
576 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
577 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
578 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
579 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
580 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
581 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
582 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},
583 {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
584 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
585 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
586 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
587 {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
588 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
589 {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
590 {1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0},
591 {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
592 {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
593 {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
594 {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
595 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
596 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}};
613 {
"k",
"ϕ<sub>0</sub>",
" "},
615 {
"k",
"m",
"ϕ<sub>0</sub>"},
646 "inversion/harmonic",
693 {
"ϵ",
"ρ",
" ",
" ",
" ",
" ",
" "},
694 {
"ϵ",
"ρ",
"c",
" ",
" ",
" ",
" "},
695 {
"E<sub>0</sub>",
"n",
"m",
"r<sub>0</sub>",
" ",
" ",
" "},
696 {
"A",
"ρ",
"C",
" ",
" ",
" ",
" "},
697 {
"A",
"B",
"σ",
"C",
"D",
" ",
" "},
698 {
"A",
"B",
" ",
" ",
" ",
" ",
" "},
699 {
"E<sub>0</sub>",
"n",
"m",
"r<sub>0</sub>",
"r<sub>c</sub>",
" ",
" "},
700 {
"E<sub>0</sub>",
"r<sub>0</sub>",
"k",
" ",
" ",
" ",
" "},
701 {
"ϵ",
"σ",
"Δ",
" ",
" ",
" ",
" "},
702 {
"A",
"r<sub>c</sub>",
" ",
" ",
" ",
" ",
" "},
703 {
"ϵ",
"r<sub>o</sub>",
" ",
" ",
" ",
" ",
" "},
704 {
"E<sub>0</sub>",
"r<sub>0</sub>",
"k",
"c",
" ",
" ",
" "},
705 {
"a",
"b",
"σ",
" ",
" ",
" ",
" "},
706 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
" ",
" ",
" ",
" ",
" "},
707 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
"r<sub>m</sub>",
"ξ",
"E<sub>0</sub>",
"r<sub>0</sub>",
"k"},
708 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
"r<sub>m</sub>",
"ξ",
"A",
"ρ",
"C"},
709 {
"ϵ",
"ρ",
"r<sub>i</sub>",
" ",
" ",
" ",
" "},
710 {
"A",
"ρ",
"C",
"r<sub>i</sub>",
" ",
" ",
" "},
711 {
"A",
"B",
"r<sub>i</sub>",
" ",
" ",
" ",
" "},
712 {
" ",
" ",
" ",
" ",
" ",
" ",
" "}},
713 {{
"A",
"B",
" ",
" ",
" ",
" ",
" "},
714 {
"A",
"B",
" ",
" ",
" ",
" ",
" "},
715 {
"ϵ",
"ρ",
" ",
" ",
" ",
" ",
" "},
716 {
"ϵ",
"ρ",
"c",
" ",
" ",
" ",
" "},
717 {
"E<sub>0</sub>",
"n",
"m",
"r<sub>0</sub>",
" ",
" ",
" "},
718 {
"A",
"ρ",
"C",
" ",
" ",
" ",
" "},
719 {
"A",
"B",
"σ",
"C",
"D",
" ",
" "},
720 {
"E<sub>0</sub>",
"n",
"m",
"r<sub>0</sub>",
"r<sub>c</sub>",
" ",
" "},
721 {
"E<sub>0</sub>",
"r<sub>0</sub>",
"k",
" ",
" ",
" ",
" "},
722 {
"ϵ",
"σ",
"Δ",
" ",
" ",
" ",
" "},
723 {
"A",
"r<sub>c</sub>",
" ",
" ",
" ",
" ",
" "},
724 {
"ϵ",
"r<sub>o</sub>",
" ",
" ",
" ",
" ",
" "},
725 {
"E<sub>0</sub>",
"r<sub>0</sub>",
"k",
"c",
" ",
" ",
" "},
726 {
"a",
"b",
"σ",
" ",
" ",
" ",
" "},
727 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
" ",
" ",
" ",
" ",
" "},
728 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
"r<sub>m</sub>",
"ξ",
"E<sub>0</sub>",
"r<sub>0</sub>",
"k"},
729 {
"Z<sub>1</sub>",
"Z<sub>2</sub>",
"r<sub>m</sub>",
"ξ",
"A",
"ρ",
"C"},
730 {
"ϵ",
"ρ",
"r<sub>i</sub>",
" ",
" ",
" ",
" "},
731 {
"A",
"ρ",
"C",
"r<sub>i</sub>",
" ",
" ",
" "},
732 {
"A",
"B",
"r<sub>i</sub>",
" ",
" ",
" ",
" "},
733 {
" ",
" ",
" ",
" ",
" ",
" ",
" "}}};
736 {1, 0, 0, 0, 0, 0, 0},
737 {1, 0, 0, 0, 0, 0, 0},
738 {1, 0, 0, 0, 0, 0, 0},
739 {1, 0, 1, 0, 0, 0, 0},
740 {1, 0, 0, 1, 1, 0, 0},
741 {1, 1, 0, 0, 0, 0, 0},
742 {1, 0, 0, 0, 0, 0, 0},
743 {1, 0, 0, 0, 0, 0, 0},
744 {1, 0, 0, 0, 0, 0, 0},
745 {1, 0, 0, 0, 0, 0, 0},
746 {1, 0, 0, 0, 0, 0, 0},
747 {1, 0, 0, 0, 0, 0, 0},
748 {1, 1, 0, 0, 0, 0, 0},
749 {1, 1, 0, 0, 0, 0, 0},
750 {1, 1, 0, 0, 1, 0, 0},
751 {1, 1, 0, 0, 1, 0, 0},
752 {1, 0, 0, 0, 0, 0, 0},
753 {1, 0, 0, 0, 0, 0, 0},
754 {1, 1, 0, 0, 0, 0, 0},
755 {0, 0, 0, 0, 0, 0, 0}},
756 {{1, 1, 0, 0, 0, 0, 0},
757 {1, 0, 0, 0, 0, 0, 0},
758 {1, 0, 0, 0, 0, 0, 0},
759 {1, 0, 0, 0, 0, 0, 0},
760 {1, 0, 1, 0, 0, 0, 0},
761 {1, 0, 0, 1, 1, 0, 0},
762 {1, 1, 0, 0, 0, 0, 0},
763 {1, 0, 0, 0, 0, 0, 0},
764 {1, 0, 0, 0, 0, 0, 0},
765 {1, 0, 0, 0, 0, 0, 0},
766 {1, 0, 0, 0, 0, 0, 0},
767 {1, 0, 0, 0, 0, 0, 0},
768 {1, 0, 0, 0, 0, 0, 0},
769 {1, 1, 0, 0, 0, 0, 0},
770 {1, 1, 0, 0, 0, 0, 0},
771 {1, 1, 0, 0, 1, 0, 0},
772 {1, 1, 0, 0, 1, 0, 0},
773 {1, 0, 0, 0, 0, 0, 0},
774 {1, 0, 0, 0, 0, 0, 0},
775 {1, 1, 0, 0, 0, 0, 0},
776 {0, 0, 0, 0, 0, 0, 0}}};
779 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
780 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
781 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
782 {
"c<sub>0</sub>",
"c<sub>1</sub>",
"c<sub>2</sub>",
"c",
"A",
"d",
"β",
" ",
" "},
783 {
"c<sub>0</sub>",
"c<sub>1</sub>",
"c<sub>2</sub>",
"c<sub>3</sub>",
"c<sub>4</sub>",
"c",
"A",
"d",
"B"},
784 {
"ϵ",
"a",
"n",
"m",
"c",
" ",
" ",
" ",
" "},
785 {
"A",
"r<sub>0</sub>",
"p",
"B",
"q<sub>ij</sub>",
" ",
" ",
" ",
" "},
786 {
"ϵ",
"a",
"m",
"α",
"r<sub>o</sub>",
" ",
" ",
" ",
" "}},
787 {{
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
788 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
789 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
790 {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "},
791 {
"c<sub>0</sub>",
"c<sub>1</sub>",
"c<sub>2</sub>",
"c",
"A",
"d",
"β",
" ",
" "},
792 {
"c<sub>0</sub>",
"c<sub>1</sub>",
"c<sub>2</sub>",
"c<sub>3</sub>",
"c<sub>4</sub>",
"c",
"A",
"d",
"B"},
793 {
"ϵ",
"a",
"n",
"m",
"c",
" ",
" ",
" ",
" "},
794 {
"A",
"r<sub>0</sub>",
"p",
"B",
"q<sub>ij</sub>",
" ",
" ",
" ",
" "},
795 {
"ϵ",
"a",
"m",
"α",
"r<sub>o</sub>",
" ",
" ",
" ",
" "}}};
798 {0, 0, 0, 0, 0, 0, 0, 0, 0},
799 {0, 0, 0, 0, 0, 0, 0, 0, 0},
800 {0, 0, 0, 0, 0, 0, 0, 0, 0},
801 {0, 0, 0, 0, 1, 0, 1, 0, 0},
802 {0, 0, 0, 0, 0, 0, 1, 0, 1},
803 {1, 0, 0, 0, 0, 0, 0, 0, 0},
804 {1, 0, 0, 1, 0, 0, 0, 0, 0},
805 {1, 0, 0, 0, 0, 0, 0, 0, 0}},
806 {{0, 0, 0, 0, 0, 0, 0, 0, 0},
807 {0, 0, 0, 0, 0, 0, 0, 0, 0},
808 {0, 0, 0, 0, 0, 0, 0, 0, 0},
809 {0, 0, 0, 0, 0, 0, 0, 0, 0},
810 {0, 0, 0, 0, 1, 0, 1, 0, 0},
811 {0, 0, 0, 0, 0, 0, 1, 0, 1},
812 {1, 0, 0, 0, 0, 0, 0, 0, 0},
813 {1, 0, 0, 1, 0, 0, 0, 0, 0},
814 {1, 0, 0, 0, 0, 0, 0, 0, 0}}};
816char *
fvars_ters[2][
FTERSOFFS][
FTERSOFFS_P] = {{{
"A",
"a",
"B",
"b",
"R",
"S",
"β",
"η",
"c",
"d",
"h",
"χ",
"ω",
"δ",
" ",
" "},
817 {
"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",
"α",
"β"}},
818 {{
"A",
"a",
"B",
"b",
"R",
"S",
"β",
"η",
"c",
"d",
"h",
"χ",
"ω",
"δ",
" ",
" "},
819 {
"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",
"α",
"β"}}};
821int feunit_ters[2][
FTERSOFFS][
FTERSOFFS_P] = {{{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
822 {1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}},
823 {{1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
824 {1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}};
827 {
"k",
"θ<sub>0</sub>",
"ρ",
" ",
" "},
828 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" "},
829 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" "},
830 {
"k",
"θ<sub>0</sub>",
"a",
"ρ",
" "},
831 {
"D<sub>hb</sub>",
"R<sub>hb</sub>",
" ",
" ",
" "}},
832 {{
"k",
"θ<sub>0</sub>",
" ",
" ",
" "},
833 {
"k",
"θ<sub>0</sub>",
"ρ",
" ",
" "},
834 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" "},
835 {
"k",
"θ<sub>0</sub>",
"ρ<sub>1</sub>",
"ρ<sub>2</sub>",
" "},
836 {
"k",
"θ<sub>0</sub>",
"a",
"ρ",
" "},
837 {
"D<sub>hb</sub>",
"R<sub>hb</sub>",
" ",
" ",
" "}}};
853 {
"k",
"ϕ<sub>0</sub>",
" "},
855 {{
"k",
"ϕ<sub>0</sub>",
" "},
856 {
"k",
"ϕ<sub>0</sub>",
" "},
867 {
"A",
"n",
" ",
" ",
" ",
" "},
868 {
"A",
"z<sub>0</sub>",
" ",
" ",
" ",
" "},
869 {
"G<sub>x</sub>",
"G<sub>y</sub>",
"G<sub>z</sub>",
" ",
" ",
" "},
870 {
"H<sub>x</sub>",
"H<sub>y</sub>",
"H<sub>z</sub>",
" ",
" ",
" "},
871 {
"A",
"R<sub>0</sub>",
"n",
"R<sub>cut</sub>",
" ",
" "},
872 {
"A",
"z<sub>0</sub>",
"p",
" ",
" ",
" "},
873 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"P<sup>in</sup><sub>k-atom</sub>",
" ",
" ",
" "},
874 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
875 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
876 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
877 {
"E<sub>x</sub>",
"E<sub>y</sub>",
"E<sub>z</sub>",
"ω<sup>in</sup><sub>ps<sup>-1</sup></sub>",
" ",
" "},
878 {
"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>"}},
879 {{
"E<sub>x</sub>",
"E<sub>y</sub>",
"E<sub>z</sub>",
" ",
" ",
" "},
880 {
"A",
"n",
" ",
" ",
" ",
" "},
881 {
"A",
"z<sub>0</sub>",
" ",
" ",
" ",
" "},
882 {
"G<sub>x</sub>",
"G<sub>y</sub>",
"G<sub>z</sub>",
" ",
" ",
" "},
883 {
"H<sub>x</sub>",
"H<sub>y</sub>",
"H<sub>z</sub>",
" ",
" ",
" "},
884 {
"A",
"R<sub>0</sub>",
"n",
"R<sub>cut</sub>",
" ",
" "},
885 {
"A",
"z<sub>0</sub>",
"p",
" ",
" ",
" "},
886 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"P<sup>in</sup><sub>k-atom</sub>",
" ",
" ",
" "},
887 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
888 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
889 {
"i<sub>ind</sub><sup>glob</sup>",
"j<sub>ind</sub><sup>glob</sup>",
"k",
"z<sub>mn</sub>",
"z<sub>mx</sub>",
" "},
890 {
"E<sub>x</sub>",
"E<sub>y</sub>",
"E<sub>z</sub>",
"ω<sup>in</sup><sub>ps<sup>-1</sup></sub>",
" ",
" "},
891 {
"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>"}}};
918 {0, 0, 0, 0, 1, 0}}};
920int field_v[
MAXDATA] = { 8, 8, 9, 7, 8, 5, 5, 8, 8, 9, 9, 10, 10, 10, 10, 6, 6, 5, 7, 8, 3};
921int field_s[
MAXDATA] = {650, 520, 520, 500, 600, 450, 600, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720};
922int field_a[
MAXDATA] = { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0};
929 {
i18n(
"Id."),
i18n(
"Atom(s) in unit"),
i18n(
"List of atom(s)"),
i18n(
"Viz. 3D"),
i18n(
"Use (1)")},
935 {
i18n(
"Id."),
i18n(
"At.1"),
i18n(
"At.2"),
i18n(
"At.3"),
i18n(
"At.4"),
i18n(
"Dihedral(s)"),
i18n(
"av. ϕ [°] (1)"),
i18n(
"Viz. 3D"),
i18n(
"Use (2)"),
i18n(
"Potential (3)")},
936 {
i18n(
"Id."),
i18n(
"At.1"),
i18n(
"At.2"),
i18n(
"At.3"),
i18n(
"At.4"),
i18n(
"Torsional restraint(s)"),
i18n(
"av. ϕ [°] (1)"),
i18n(
"Viz. 3D"),
i18n(
"Use (2)"),
i18n(
"Potential (3)")},
937 {
i18n(
"Id."),
i18n(
"At.1"),
i18n(
"At.2"),
i18n(
"At.3"),
i18n(
"At.4"),
i18n(
"Improper(s)"),
i18n(
"av. ϕ [°] (1)"),
i18n(
"Viz. 3D"),
i18n(
"Use (2)"),
i18n(
"Potential (3)")},
938 {
i18n(
"Id."),
i18n(
"At.1"),
i18n(
"At.2"),
i18n(
"At.3"),
i18n(
"At.4"),
i18n(
"Inversion(s)"),
i18n(
"av. ϕ [°] (1)"),
i18n(
"Viz. 3D"),
i18n(
"Use (2)"),
i18n(
"Potential (3)")},
946GType
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},
947 {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},
948 {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},
949 {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},
950 {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},
951 {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},
952 {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},
953 {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},
954 {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},
955 {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},
956 {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},
957 {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},
958 {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},
959 {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},
960 {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},
961 {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},
962 {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},
963 {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},
964 {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},
965 {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},
966 {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}};
973int is_special[
MAXDATA][11] ={{0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0},
974 {0, 0, 0, 4, 4, 0, 0, 2, 0, 0, 0},
975 {0, 0, 0, 4, 4, 4, 4, 2, 3, 0, 0},
976 {0, 0, 0, 4, 0, 2, 3, 0, 0, 0, 0},
977 {0, 4, 0, 0, 0, 4, 2, 3, 0, 0, 0},
978 {0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0},
979 {0, 0, 2, 3, 1, 0, 0, 0, 0, 0, 0},
980 {0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 0},
981 {0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 0},
982 {0, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0},
983 {0, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0},
984 {0, 0, 0, 0, 0, 0, 0, 2, 3, 1, 0},
985 {0, 0, 0, 0, 0, 0, 0, 2, 3, 1, 0},
986 {0, 0, 0, 0, 0, 0, 0, 2, 3, 1, 0},
987 {0, 0, 0, 0, 0, 0, 0, 2, 3, 1, 0},
988 {0, 0, 0, 2, 3, 1, 0, 0, 0, 0, 0},
989 {0, 0, 0, 2, 3, 1, 0, 0, 0, 0, 0},
990 {0, 0, 2, 3, 1, 0, 0, 0, 0, 0, 0},
991 {0, 0, 0, 0, 2, 3, 1, 0, 0, 0, 0},
992 {0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 0},
993 {0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0}};
1160 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]));
1161 gtk_label_set_text (GTK_LABEL(
cs_label[0]), str);
1162 gtk_label_set_use_markup (GTK_LABEL(
cs_label[0]), TRUE);
1165 str = g_strdup_printf (_(
"\t <b>(2)</b> Quartic (anharmonic) force constant of the core-shell spring in [<b>%s Å<sup>-4</sup></b>]"
1167 gtk_label_set_text (GTK_LABEL(
cs_label[1]), str);
1168 gtk_label_set_use_markup (GTK_LABEL(
cs_label[1]), TRUE);
1194 str = g_strdup_printf (
" <b><i>%s</i>=</b> %.3f", words[0], data[0]);
1195 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]);
1199 str = g_strdup_printf (_(
"<i>Tabulated</i>"));
1220 if (obj == 0 || obj == 1 || obj == 9 || obj == 13 || obj == 14 || obj == 15)
return TRUE;
1221 if ((obj == 2 || obj == 3) && (key == 0 || key == 3 || key == 4 || key == 7 || key == 8 || key == 9))
return TRUE;
1222 if ((obj == 4 || obj == 5) && key != 13)
return TRUE;
1223 if ((obj == 6 || obj == 7 || obj == 8) && key != 4)
return TRUE;
1224 if (obj == 10 && (key == 2 || key == 6 || key == 7 || key == 8 || key == 9 || key == 10))
return TRUE;
1225 if (obj == 11 && key == 5)
return TRUE;
1228 if (obj == 0 && (key == 1 || key == 2 || key == 3 || key == 5))
return TRUE;
1229 if (obj == 2 && key != 7)
return TRUE;
1230 if (obj == 4 && key != 16)
return TRUE;
1231 if (obj == 6 || obj == 8 || obj == 10)
return TRUE;
1250 gchar * stra, * strb, * strc;
1251 GtkTreeIter field_level;
1264 gtk_tree_store_append (store, & field_level, NULL);
1266 stra = g_strdup_printf (
"%.3f",
tmp_fstr -> av);
1267 strb = g_strdup_printf (_(
"<b>Default</b>: %s (%s)"),
1289 gtk_tree_store_set (store, & field_level, 0,
tmp_fstr ->
id+1,
1335 gchar * stra, * strb;
1336 GtkTreeIter field_level;
1343 for (i=0; i <
tmp_field -> nbody[id]; i++)
1345 gtk_tree_store_append (store, & field_level, NULL);
1346 for (j=0; j<k ; j++)
1361 stra = g_strdup_printf (
"%s (%s)",
1369 gtk_tree_store_set (store, & field_level, 0,
tmp_fbody ->
id+1,
1391 GtkTreeIter field_level, unit_level, site_level;
1393 gchar * stra, * strb, * strc, * strd;
1410 for (j=0; j <
tmp_proj -> nspec; j++)
1412 if (
tmp_mol -> species[j] > 0)
1414 if (
tmp_mol -> species[j] == 1)
1438 gtk_tree_store_append (store, & field_level, NULL);
1439 gtk_tree_store_set (store, & field_level, 0, i+1,
1460 gtk_tree_store_append (store, & field_level, NULL);
1461 stra = g_strdup_printf (
"%.3f",
tmp_fat -> mass);
1462 strb = g_strdup_printf (
"%.2f",
tmp_fat -> charge);
1463 gtk_tree_store_set (store, & field_level, 0, i+1,
1482 for (i=0; i <
tmp_fmol -> shells; i++)
1484 gtk_tree_store_append (store, & field_level, NULL);
1493 stra = g_strdup_printf (
"<i>%s</i>", _(
"None"));
1503 strb = g_strdup_printf (
"<i>%s</i>", _(
"None"));
1505 strc = g_strdup_printf (
"%.3f",
tmp_fshell -> m);
1507 gtk_tree_store_set (store, & field_level, 0, i+1,
1529 for (i=0; i <
tmp_fmol -> constraints; i++)
1531 gtk_tree_store_append (store, & field_level, NULL);
1540 stra = g_strdup_printf (
"<i>%s</i>", _(
"None"));
1550 strb = g_strdup_printf (
"<i>%s</i>", _(
"None"));
1552 gtk_tree_store_set (store, & field_level, 0, i+1,
1570 for (i=0; i <
tmp_fmol -> pmfs; i++)
1572 gtk_tree_store_append (store, & field_level, NULL);
1573 gtk_tree_store_set (store, & field_level, 0, i+1,
1581 gtk_tree_store_append (store, & unit_level, & field_level);
1582 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);
1585 for (k=0; k<
tmp_fpmf -> num[j]; k++)
1587 gtk_tree_store_append (store, & site_level, & unit_level);
1588 gtk_tree_store_set (store, & site_level, 0, -(i+1), 1, 0.0, 2, 0.0, 3, -(j+1),
1603 for (i=0; i <
tmp_fmol -> rigids; i++)
1605 gtk_tree_store_append (store, & field_level, NULL);
1606 gtk_tree_store_set (store, & field_level, 0, i+1,
1618 gtk_tree_store_append (store, & unit_level, & field_level);
1619 gtk_tree_store_set (store, & unit_level, 0, -(i+1), 1, 0, 2, stra, 3, FALSE, 4, FALSE, -1);
1632 for (i=0; i <
tmp_fmol -> tethered; i++)
1639 gtk_tree_store_append (store, & field_level, NULL);
1640 gtk_tree_store_set (store, & field_level, 0, i+1,
1655 for (i=0; i <
tmp_field -> extern_fields; i++)
1657 gtk_tree_store_append (store, & field_level, NULL);
1659 gtk_tree_store_set (store, & field_level, 0,
tmp_fext ->
id+1,
1704 i = GPOINTER_TO_INT (data);
1729 if (nbid == 0 || nbid == 2 || nbid == 5)
1736 i = (nbid == 1) ? 2 : nbid;
1744 gboolean
res = (j >= i) ? TRUE : FALSE;
1766 lab = g_strdup_printf (_(
"the <b>%d</b> different fragment(s) in molecule <b>%s</b>\n"),
1771 lab = g_strdup_printf (_(
"the system\n"));
1777 lab = g_strdup_printf (_(
"%seach contains the following <b>%d</b> type(s) of atom"),
lab,
tmp_fmol ->
atoms);
1782 lab = g_strdup_printf (_(
"%sdo not contains any core-shell unit"),
lab);
1786 lab = g_strdup_printf (_(
"%seach contains the following <b>%d</b> core-shell unit"),
lab,
tmp_fmol -> shells);
1792 lab = g_strdup_printf (_(
"%sdo not contains any constraint"),
lab);
1796 lab = g_strdup_printf (_(
"%seach contains the following <b>%d</b> constraint(s)"),
lab,
tmp_fmol -> constraints);
1802 lab = g_strdup_printf (_(
"%sdo not contains any mean force potential"),
lab);
1806 lab = g_strdup_printf (_(
"%seach contains the following <b>%d</b> type(s) of mean force potential(s)"),
lab,
tmp_fmol -> pmfs);
1812 lab = g_strdup_printf (_(
"%sdo not contains any rigid unit"),
lab);
1816 lab = g_strdup_printf (_(
"%seach contains the following <b>%d</b> rigid unit(s)"),
lab,
tmp_fmol -> rigids);
1822 lab = g_strdup_printf (_(
"%sdo not contains any tethering potential(s)"),
lab);
1826 lab = g_strdup_printf (_(
"%seach contains the following <b>%d</b> tethering potential(s)"),
lab,
tmp_fmol -> tethered);
1832 lab = g_strdup_printf (_(
"the force field do not contains any external field(s)"));
1836 lab = g_strdup_printf (_(
"the force field contains the following <b>%d</b> external field(s)"),
tmp_field -> extern_fields);
1846 lab = g_strdup_printf (_(
"%sdo not contains any %s <sup>*</sup>"),
lab, _(
mo_title[f-7]));
1850 lab = g_strdup_printf (_(
"%s contains the following <b>%d</b> type(s) %s <sup>*</sup>"),
lab,
tmp_fmol -> nstruct[f-7], _(
intelemts[f]));
1857 lab = g_strdup_printf (_(
"%sdo not contains any %s"),
lab, _(
mo_title[f-7]));
1861 lab = g_strdup_printf (_(
"%s contains the following <b>%d</b> type(s) %s"),
lab,
tmp_fmol -> nstruct[f-7], _(
intelemts[f]));
1871 lab = g_strdup_printf (_(
"the force field do not contains any %s"), _(
elemt[f]));
1875 lab = g_strdup_printf (_(
"the force field contains the following <b>%d</b> %s"),
tmp_field -> nbody[k], _(
elemts[f]));
1894 i = GPOINTER_TO_INT(data);
1897 gtk_label_set_use_markup (GTK_LABEL(
field_label[i]), TRUE);
1921 gtk_label_set_use_markup(GTK_LABEL(
field_label[i]), TRUE);
1940 j = (i > 1 && i < 8) ? (i-1)/2 + 1 - i/7 : i;
2067 for (j=0; j<15; j++)
2093 else if (j>0 && j<9)
2174 if (response_id == GTK_RESPONSE_YES)
2176 int i = GPOINTER_TO_INT(data);
2202 GtkWidget * dialog = gtk_dialog_new_with_buttons (_(
"Change energy unit ?"), GTK_WINDOW(
field_assistant),
2203 GTK_DIALOG_MODAL, _(
"Yes"), GTK_RESPONSE_YES,
"No", GTK_RESPONSE_NO, NULL);
2204 gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
2206 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);
2209 GtkWidget * vbax, * vbbx;
2210 GtkWidget * hax, * hbx;
2226 str = g_strdup_printf (
"\t<b>%s:</b>", _(
felemts[3]));
2232 str = g_strdup_printf (
"k<sub>2</sub> %s k<sub>4</sub>", _(
"and"));
2239 for (j=0; j<15; j++)
2250 str = g_strdup_printf (
"\t<b>%s:</b>", _(
felemt[j+7]));
2271 str = g_strdup_printf (
"%s, %s", str,
is_var[k][l]);
2275 str = g_strdup_printf (
"%s",
is_var[k][l]);
2314 int col[3]={5, 4, 4};
2322 str = g_strdup_printf (_(
"<b>Please select the %s:</b>"), _(
felemt[0]));
2334 gtk_widget_set_size_request (
enbox, 250, 30);
2340 ebox =
fbox (
hbox, _(
"<b>Please select the component(s) of the force field:</b>"));
2358 for (j=0; j<
col[i]; j++)
2407 GtkTreeModel * tmodel = gtk_tree_view_get_model (GTK_TREE_VIEW(tree));
2439 if (g_strcmp0 (data, str) == 0)
2463 int i, j, k, l, m, n, o;
2464 gboolean changeit = TRUE;
2467 i = GPOINTER_TO_INT(data);
2469 g_object_get (combo,
"model", & cmodel, NULL);
2470 gtk_tree_model_get_value ((GtkTreeModel *)cmodel, iter, 0, &
val);
2471 if (gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL(
field_model[i]), iter, path_string))
2474 gtk_tree_model_get_value (GTK_TREE_MODEL(
field_model[i]), iter,
field_v[i]+1, & vbl);
2475 j = (int) g_value_get_int (& vbl);
2476 gchar * str = g_strdup_printf (
"%s", (
char *)g_value_get_string (&
val));
2502 gtk_tree_model_get (GTK_TREE_MODEL(
field_model[i]), iter, 0, & m, -1);
2506 for (n=0; n<o; n++) ids[n] = -1;
2511 str = g_strdup_printf (_(
"<b>Default</b>: %s"), str);
2521 for (n=1; n<o+1; n++)
2523 gtk_tree_model_get (GTK_TREE_MODEL(
field_model[i]), iter, n, & str, -1);
2588 g_value_unset(& vbl);
2590 g_value_unset(&
val);
2609 str = g_strdup_printf (
"%d: %s", i+1,
tmp_fmol -> name);
2616 g_signal_connect (G_OBJECT (combo),
"changed", G_CALLBACK(
changed_mol_box), GINT_TO_POINTER(f+1));
2640 str = g_strdup_printf (_(
"Molecule N°%d"),
id+1);
2653 str = g_strdup_printf (_(
"Atom N°%d: \"%s\""),
tmp_fat ->
id+1,
tmp_fat -> name);
2664 str = g_strdup_printf (_(
"Core-Shell N°%d: Atom %d (%s) - "),
tmp_fshell ->
id+1,
tmp_fshell -> ia[0],
2669 str = g_strdup_printf (_(
"Core-Shell N°%d: <i>%s</i> - "),
tmp_fshell ->
id+1, _(
"None"));
2678 str = g_strdup_printf (
"%s<i>%s</i>", str, _(
"None"));
2690 str = g_strdup_printf (_(
"Constrained Bond N°%d: Atom %d (%s) - "),
tmp_fcons ->
id+1,
tmp_fcons -> ia[0],
2695 str = g_strdup_printf (_(
"Constrained Bond N°%d: <i>%s</i> - "),
tmp_fcons ->
id+1, _(
"None"));
2704 str = g_strdup_printf (
"%s<i>%s</i>", str, _(
"None"));
2713 str = g_strdup_printf (_(
"Mean Force Potential N°%d"),
tmp_fpmf ->
id+1);
2721 str = g_strdup_printf (_(
"Rigid Unit N°%d: %d Atom(s)"),
tmp_frig ->
id+1,
tmp_frig -> num);
2729 str = g_strdup_printf (_(
"Tethering Potential N°%d"),
tmp_ftet ->
id+1);
2736 str = g_strdup_printf (
"%s N°: %d", _(
felemt[i+1]),
tmp_fext ->
id+1);
2751 if (k<
struct_id(i)-1) str = g_strdup_printf (
"%s-", str);
2753 str = g_strdup_printf (
"%s\"", str);
2767 str = g_strdup_printf (_(
"%s - NONE"), str);
2774 str = g_strdup_printf (
"%s\"", str);
2798 str = g_strdup_printf (_(
"Edit Name: \"%s\""),
tmp_fmol -> name);
2801 str = g_strdup_printf (_(
"Edit properties %s"), _(
intelemt[i]));
2817 if ((i>1 && i<7) || (i>
MOLIMIT && i<
MAXDATA)) str = g_strdup_printf (_(
"Add a new %s"), _(
elemt[i]));
2831 if ((i>1 && i<7) || (i>
MOLIMIT && i<
MAXDATA)) str = g_strdup_printf (_(
"Remove %s"), _(
elemt[i]));
2875 gchar * accel,
int image_format, gpointer icon,
2876 gboolean custom, GCallback handler, gpointer data,
2877 gboolean check, gboolean
status, gboolean radio, gboolean sensitive)
2879 gchar * str_a, * str_b, * str_c;
2880 str_a = g_strdup_printf (
"set-%s", key);
2881 str_b = g_strdup_printf (
"%s.%d", str_a, item_id);
2882 str_c = (sensitive) ? g_strdup_printf (
"ff-%d.%s", item_id, (radio) ? str_a : str_b) : g_strdup_printf (
"None");
2883 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);
2886 if (! radio || (radio &&
status))
2889 check,
status, radio, (
const gchar *)str_b);
2927 i = GPOINTER_TO_INT (data);
2931 GMenu * fmenu = g_menu_new ();
2935 fmenus = g_menu_new ();
2936 append_field_item (fmenus, str,
"pop", i, NULL,
IMG_NONE, NULL, FALSE, NULL, NULL, FALSE, FALSE, FALSE, TRUE);
2938 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2939 g_object_unref (fmenus);
2946 fmenus = g_menu_new ();
2947 append_field_item (fmenus, str,
"edit-fp", i, NULL,
IMG_NONE, NULL, FALSE, G_CALLBACK(
edit_field_prop), data, FALSE, FALSE, FALSE, TRUE);
2949 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2950 g_object_unref (fmenus);
2957 fmenus = g_menu_new ();
2958 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);
2959 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2960 g_object_unref (fmenus);
2966 fmenus = g_menu_new ();
2967 str = g_strdup_printf (_(
"Remove molecule %s from force field"),
tmp_fmol -> name);
2968 append_field_item (fmenus, str,
"rem-mol", i, NULL,
IMG_NONE, NULL, FALSE, G_CALLBACK(
remove_molecule_from_field), data, FALSE, FALSE, FALSE, TRUE);
2970 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2971 g_object_unref (fmenus);
2982 fmenus = g_menu_new ();
2983 str = g_strdup_printf (_(
"Created new force field atom from %s atom(s)"),
tmp_fat -> name);
2984 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);
2985 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
2986 g_object_unref (fmenus);
2997 fmenus = g_menu_new ();
2998 str = g_strdup_printf (_(
"Remove atom %s from force field molecule"),
tmp_fat -> name);
2999 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);
3001 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
3002 g_object_unref (fmenus);
3006 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);
3014 fmenus = g_menu_new ();
3015 append_field_item (fmenus, str,
"add-prop", i, NULL,
IMG_NONE, NULL, FALSE, G_CALLBACK(
add_field_prop), data, FALSE, FALSE, FALSE, TRUE);
3017 g_menu_append_section (fmenu, NULL, (GMenuModel *)fmenus);
3018 g_object_unref (fmenus);
3021 menu = gtk_popover_menu_new_from_model_full ((GMenuModel *)fmenu, GTK_POPOVER_MENU_NESTED);
3022 gtk_widget_set_parent (menu, widget);
3025 menu = gtk_menu_new_from_model ((GMenuModel *)fmenu);
3027 str = g_strdup_printf (
"ff-%d", i);
3140G_MODULE_EXPORT gboolean on_pop_up_field (GtkWidget * widget, gpointer data)
3160void field_button_event (
double event_x,
double event_y, guint event_button, guint event_type, guint32 event_time, gpointer data)
3175void field_button_event (GdkEvent * event,
double event_x,
double event_y, guint event_button, guint event_type, guint32 event_time, gpointer data)
3178 if (event_type == GDK_BUTTON_PRESS)
3181 GtkTreeViewColumn * column;
3183 i = GPOINTER_TO_INT(data);
3186 gtk_tree_view_convert_widget_to_bin_window_coords (GTK_TREE_VIEW(
field_tree[i]), event_x, event_y, & e_x, & e_y);
3187 gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(
field_tree[i]), e_x, e_y, &
path, & column, & j, & k);
3189 gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(
field_tree[i]), event_x, event_y, &
path, & column, & j, & k);
3199 if (event_button == 3)
3222G_MODULE_EXPORT
void on_field_button_pressed (GtkGesture * gesture,
int n_press,
double x,
double y, gpointer data)
3224 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);
3238G_MODULE_EXPORT
void on_field_button_released (GtkGesture * gesture,
int n_press,
double x,
double y, gpointer data)
3240 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);
3254 GdkEventButton * bevent = (GdkEventButton *)event;
3255 field_button_event (event, bevent ->
x, bevent ->
y, bevent -> button, bevent -> type, bevent -> time, data);
3271void field_set_color (GtkTreeViewColumn *
col, GtkCellRenderer * renderer, GtkTreeModel * mod, GtkTreeIter * iter, gpointer data)
3274 int tree = GPOINTER_TO_INT(data);
3275 gtk_tree_model_get (mod, iter, 0, & i, -1);
3280 gtk_tree_model_get (mod, iter,
field_v[tree]+1, & i, -1);
3287 for (k=0; k<
field_v[tree]; k++)
3291 gtk_tree_model_get (mod, iter, k, & j, -1);
3309void field_set_markup_box (GtkTreeViewColumn *
col, GtkCellRenderer * renderer, GtkTreeModel * mod, GtkTreeIter * iter, gpointer data)
3311 int tree = GPOINTER_TO_INT(data);
3326void field_set_markup (GtkTreeViewColumn *
col, GtkCellRenderer * renderer, GtkTreeModel * mod, GtkTreeIter * iter, gpointer data)
3329 int tree = GPOINTER_TO_INT(data);
3330 i = (tree > 5) ? 1 : 0;
3338 GtkTreeViewColumn * cal;
3342 gtk_tree_model_get (mod, iter, 3, & str, -1);
3346 cal = gtk_tree_view_get_column (GTK_TREE_VIEW(
field_tree[tree]), 1);
3349 gtk_tree_model_get (mod, iter, 1, & str, -1);
3353 gtk_tree_model_get (mod, iter, 2, & str, -1);
3357 g_object_set (renderer,
"markup", str, NULL, NULL);
3373void field_set_visible (GtkTreeViewColumn *
col, GtkCellRenderer * renderer, GtkTreeModel * mod, GtkTreeIter * iter, gpointer data)
3376 int tree = GPOINTER_TO_INT(data);
3379 if (tree == 4 || tree == 5)
3381 gtk_tree_model_get (mod, iter, 0, & j, -1);
3386 for (i=0; i<
field_v[tree]; i++)
3390 gtk_tree_model_get (mod, iter, i, & j, -1);
3392 gtk_cell_renderer_set_visible (renderer, j);
3444 gtk_tree_model_get (mod, iter, 0, & i, -1);
3445 gtk_cell_renderer_set_visible (renderer, i);
3464 i = GPOINTER_TO_INT(data);
3467 gtk_tree_model_get (mod, iter, i, & j, -1);
3468 k = (! j || j < 0) ? 0 : 1;
3472 gtk_tree_model_get (mod, iter, 4, & k, -1);
3474 gtk_cell_renderer_set_visible (renderer, k);
3492 gtk_tree_model_get (mod, iter, 0, & i, -1);
3494 gtk_cell_renderer_set_visible (renderer, ! i);
3543G_MODULE_EXPORT
void edit_field_cell (GtkCellRendererText * cell, gchar * path_string, gchar * new_text, gpointer data)
3546 i = GPOINTER_TO_INT(data);
3564 GtkTreePath *
path = gtk_tree_path_new_from_string (path_string);
3565 gtk_tree_model_get_iter (GTK_TREE_MODEL(
field_model[j]), & iter,
path);
3566 gtk_tree_model_get (GTK_TREE_MODEL(
field_model[j]), & iter, 0, & k, -1);
3581 gtk_tree_model_get (GTK_TREE_MODEL(
field_model[j]), & iter, 3, & n, 4, & m, -1);
3600 int i = GPOINTER_TO_INT(data);
3601 gtk_tree_model_get_iter (GTK_TREE_MODEL(
field_model[i]),
3603 gtk_tree_path_new_from_string (path_string));
3604 if (i == 4 || i == 5 || (i > 6 && i <
MOLIMIT))
3615 row_id = (int) g_value_get_int (& vbl);
3631G_MODULE_EXPORT
void to_edit_field_prop (GtkCellRenderer * cell, GtkCellEditable * editable, gchar * path_string, gpointer data)
3663 GtkListStore * list_store_combo;
3665 gboolean combox = FALSE;
3667 l = (f > 5) ? 1 : 0;
3671 for (i=0; i<
field_v[f]+l; i++)
3677 list_store_combo = gtk_list_store_new (1, G_TYPE_STRING);
3681 gtk_list_store_append (list_store_combo, & iter);
3682 gtk_list_store_set (list_store_combo, & iter, 0, str, -1);
3688 "editable", TRUE, NULL);
3690 str = g_strdup_printf (
"%s", (f == 2 && (i == 5|| i == 6)) ?
ctitle[f][i] : _(
ctitle[f][i]));
3693 g_object_unref (list_store_combo);
3699 field_col[f][i] = gtk_tree_view_column_new_with_attributes (_(
"Parameter(s)"),
field_renderer[f][i],
"text", i, NULL);
3706 str = g_strdup_printf (
"%s", (f == 2 && (i-m == 5|| i-m == 6)) ?
ctitle[f][i-m] : _(
ctitle[f][i-m]));
3712 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);
3713 gtk_tree_view_column_set_clickable (
field_col[f][i], TRUE);
3722 str = g_strdup_printf (
"%s", (f == 2 && (i-m == 5|| i-m == 6)) ?
ctitle[f][i-m] : _(
ctitle[f][i-m]));
3732 j = 2*(f-1) + i - 3;
3740 j = (i == 1) ? 7 : 8;
3744 if ((f == 0 && i == 3) || (f == 2 && (i == 1 || i == 2)) || (f == 3 && (i == 1 || i == 2)))
3748 else if (f == 4 || f == 5)
3750 if ((f == 4 && i < 3) || (f == 5 && i < 2))
3754 else if (f == 4 && (i == 3 || i == 4 || i == 5))
3758 else if (f == 5 && i == 2)
3771 else if (l == 1 && i >
field_v[f]-2)
3788 gtk_tree_view_column_set_alignment (
field_col[f][i], 0.5);
3794 GtkTreeSelection * fieldselect = gtk_tree_view_get_selection (GTK_TREE_VIEW(
field_tree[f]));
3795 gtk_tree_selection_set_mode (fieldselect, GTK_SELECTION_SINGLE);
3797 add_widget_gesture_and_key_action (
field_tree[f],
"field-button-pressed", G_CALLBACK(on_field_button_pressed), GINT_TO_POINTER(f),
3798 "field-button-released", G_CALLBACK(on_field_button_released), GINT_TO_POINTER(f),
3799 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
3802 g_signal_connect (G_OBJECT(
field_tree[f]),
"popup-menu", G_CALLBACK(on_pop_up_field), GINT_TO_POINTER(f));
3821 for (i=0; i<11; i++)
3826 GtkWidget * scrollsets =
create_scroll (NULL, -1, -1, GTK_SHADOW_ETCHED_IN);
3829 gtk_widget_set_size_request (scrollsets,
field_s[f], 175);
3835 gtk_widget_set_size_request (scrollsets,
field_s[f], 320);
3837 else if (f == 8 || f == 10 || f == 12 || f == 13)
3839 gtk_widget_set_size_request (scrollsets,
field_s[f], 180);
3843 gtk_widget_set_size_request (scrollsets,
field_s[f], 220);
3848 gtk_widget_set_size_request (scrollsets,
field_s[f], 300);
3898 hbox =
fbox (
vbox, _(
"Number of isolated molecular fragments: "));
3899 str = g_strdup_printf (
"<b>%d</b>",
tmp_coord -> totcoord[2]);
3902 str = g_strdup_printf (_(
"\tEach of these fragments can be described separately in the force field."));
3905 hbox =
fbox (
vbox, _(
"Number of distinct molecules: "));
3906 str = g_strdup_printf (
"<b>%d</b>",
tmp_coord -> totcoord[3]);
3909 hbox =
fbox (
vbox, _(
"Number of molecules in the force field: "));
3958 if (f == 8 || f == 10 || f == 12 || f == 13)
3960 int g = (f < 12) ? f - 1 : 11;
3961 str = g_strdup_printf (_(
"\t <b>*</b> in the FIELD file %s(s) appear in the %s section.\n"
3962 "\t They are presented separately in this assistant for clarity purposes only."),
3969 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."));
3973 str = g_strdup_printf (_(
"\t <b>(1)</b> average value for the force field element as measured in the model."));
3976 str = g_strdup_printf (_(
"\t <b>(2)</b> only the selected element(s) will be used to create the force field."));
3979 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."));
3991 str = g_strdup_printf (_(
"\t <b>(3)</b> only the selected element(s) will be used to create the force field."));
3997 str = g_strdup_printf (_(
"\t <b>(1)</b> average value for the force field element as measured in the model."));
4000 str = g_strdup_printf (_(
"\t <b>(2)</b> only the selected element(s) will be used to create the force field."));
4006 str = g_strdup_printf (_(
"\t <b>(1)</b> average distance between the barycenters of units 1 and 2 as measured in the model."));
4009 str = g_strdup_printf (_(
"\t <b>(2)</b> if all 0.0 then atomic weight(s) will be used by DL-POLY."));
4012 str = g_strdup_printf (_(
"\t <b>(3)</b> only the selected element(s) will be used to create the force field."));
4016 else if ((f > 2 && f < 7) || f > 11)
4018 str = g_strdup_printf (_(
"\t <b>(1)</b> only the selected element(s) will be used to create the force field."));
4148 switch (current_page)
4176 for (i=current_page; i<
MAXDATC; i++)
4203 i = gtk_assistant_get_current_page (assistant);
4251 for (i=start; i<end; i++)
4253 if (
fibox[i+delta] != NULL)
4255 if (GTK_IS_WIDGET(
fibox[i+delta]))
4275 gtk_assistant_remove_page (assist, i+1);
4291 if (response_id == GTK_RESPONSE_APPLY)
4294 gtk_assistant_get_nth_page(GTK_ASSISTANT (
field_assistant), 0), FALSE);
4295 gtk_label_set_text (GTK_LABEL(
field_i_lab[1]), _(
"Initialize force field using: "));
4311 if (
fibox[i] != NULL)
4313 if (GTK_IS_WIDGET(
fibox[i]))
4315 gtk_widget_set_visible (
fibox[i], FALSE);
4320 for (i=0; i<19; i++)
4340G_MODULE_EXPORT
void clean_field (GtkCheckButton * but, gpointer data)
4350G_MODULE_EXPORT
void clean_field (GtkToggleButton * but, gpointer data)
4357 gtk_box_set_homogeneous (GTK_BOX(
box), FALSE);
4358 add_box_child_start (GTK_ORIENTATION_VERTICAL,
box, gtk_label_new (_(
"Providing that the force field information was already saved once\n"
4359 "the previous data could still be retrieved by canceling the assistant.")), FALSE, FALSE, 0);
4387 i = GPOINTER_TO_INT(data);
4420 gtk_assistant_append_page (assist,
fibox[i]);
4421 gtk_assistant_set_page_title (assist,
fibox[i], g_strdup_printf (
"%s", _(
celemts[i])));
4422 gtk_assistant_set_page_type (assist,
fibox[i], GTK_ASSISTANT_PAGE_CONTENT);
4423 gtk_assistant_set_page_complete (assist,
fibox[i], TRUE);
4429 gtk_assistant_append_page (assist,
fibox[i]);
4430 gtk_assistant_set_page_title (assist,
fibox[i], _(
"Select the component(s) of the force field"));
4431 gtk_assistant_set_page_type (assist,
fibox[i], GTK_ASSISTANT_PAGE_CONTENT);
4432 gtk_assistant_set_page_complete (assist,
fibox[i], TRUE);
4436 gtk_assistant_append_page (assist,
fibox[i]);
4437 gtk_assistant_set_page_title (assist,
fibox[i], g_strdup_printf (
"%s", _(
felemts[i-
MAXDATC])));
4438 gtk_assistant_set_page_type (assist,
fibox[i], GTK_ASSISTANT_PAGE_CONTENT);
4439 gtk_assistant_set_page_complete (assist,
fibox[i], TRUE);
4444 info = g_strdup_printf (_(
"<b> Finalize the creation of the %s input file(s) now !</b>"), (
activef) ?
"LAMMPS" :
"DL-POLY");
4447 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),
4449 gtk_assistant_append_page (assist,
fibox[i]);
4450 gtk_assistant_set_page_title (assist,
fibox[i], (
activef) ? _(
"Create the LAMMPS input file(s) now !") : _(
"Create the DL-POLY input file(s) now !"));
4451 gtk_assistant_set_page_type (assist,
fibox[i], GTK_ASSISTANT_PAGE_CONFIRM);
4452 gtk_assistant_set_page_complete (assist,
fibox[i], TRUE);
4453 gtk_assistant_update_buttons_state (assist);
4458 i18n(
"Atomic Species and Total Coordinations as Field Atoms"),
4459 i18n(
"Atomic Species and Partial Coordinations as Field Atoms")};
4499 gtk_label_set_text (GTK_LABEL(
field_i_lab[1]), _(
"Force field was initialized using: "));
4501 gtk_assistant_get_nth_page(GTK_ASSISTANT (
field_assistant), 0), TRUE);
4520 i = GPOINTER_TO_INT(data);
4576 GtkWidget * notebook = gtk_notebook_new ();
4577 GtkWidget * scrollsets;
4579 gchar * ff_files[2][3] = {{
"CONTROL",
"FIELD" ,
"CONFIG"}, {
"LAMMPS.IN",
"LAMMPS.DATA",
""}};
4580 int num_files[2] = {3, 2};
4582 for (i=0; i<num_files[
activef]; i++)
4584 if ((i==0 &&
tmp_field -> prepare_file[0]) || (i > 0 &&
tmp_field -> prepare_file[1]))
4586 scrollsets =
create_scroll (NULL, 700, 350, GTK_SHADOW_ETCHED_IN);
4616 gtk_notebook_append_page (GTK_NOTEBOOK(notebook), scrollsets, gtk_label_new (ff_files[
activef][i]));
4620 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);
4636 GtkFileChooser * chooser = GTK_FILE_CHOOSER((GtkFileChooserNative *)info);
4649 GtkFileChooser * chooser = GTK_FILE_CHOOSER((GtkWidget *)info);
4652 GtkTextBuffer * buffer;
4655 GError * err = NULL;
4656 gboolean result = FALSE;
4657 gchar * ff_files[2][3] = {{
"CONTROL",
"FIELD" ,
"CONFIG"}, {
"LAMMPS.IN",
"LAMMPS.DATA",
""}};
4658 int num_files[2] = {3, 2};
4659 if (response_id == GTK_RESPONSE_ACCEPT)
4662 if (direname != NULL)
4667 for (i=0; i<num_files[
activef]; i++)
4669 if ((i==0 &&
tmp_field -> prepare_file[0]) || (i > 0 &&
tmp_field -> prepare_file[1]))
4671 filename = g_strdup_printf (
"%s/%s", direname, ff_files[
activef][i]);
4672 if (g_file_test(filename, G_FILE_TEST_EXISTS))
4674 str = g_strdup_printf (_(
"%s file found in '%s'\nreplace existing %s file ?"), ff_files[
activef][i], direname, ff_files[
activef][i]);
4688 for (i=0; i<num_files[
activef]; i++)
4693 filename = g_strdup_printf (
"%s/%s", direname, ff_files[
activef][i]);
4706 gtk_text_buffer_get_start_iter (buffer, & bStart);
4707 gtk_text_buffer_get_end_iter (buffer, & bEnd);
4708 gchar *
text = gtk_text_buffer_get_text (buffer, & bStart, & bEnd, FALSE);
4709 gtk_text_buffer_set_modified (buffer, FALSE);
4710 result = g_file_set_contents (filename,
text, -1, & err);
4712 g_object_unref (buffer);
4713 if (! result && err)
4715 show_error (g_strdup_printf (_(
"Error while saving input file: %s\n Error: %s"), filename, err -> message), 0,
field_assistant);
4743 GtkFileChooserNative * info;
4747 gchar * ff_type[2] = {
"DL-POLY",
"LAMMPS"};
4749 text = g_strdup_printf (_(
"Saving %s input file(s)"), ff_type[
activef]);
4751 GTK_WINDOW(assistant),
4752 GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
4789 gchar * field_type[2] = {
"DL-POLY 4",
"LAMMPS"};
4799 for (i=0; i<2; i++)
tmp_proj -> force_field[
activef] -> prepare_file[i] = TRUE;
4812 gchar * info = g_strdup_printf (_(
"%s calculation assistant"), field_type[f]);
4817 info = g_strdup_printf (_(
"<b> This assistant will help you to setup a %s \n"
4818 "calculation using <i>%s</i> 3D model as starting point</b>"), field_type[f],
tmp_proj -> name);
4822 gchar * i_titles[2][2] = {{
i18n(
"Force field: "),
i18n(
"Force field: ")}, {
i18n(
"Initialize force field using: "),
i18n(
"Force field was initialized using: ")}};
4856 GtkWidget * but =
check_button (_(
"\tDelete the existing force field data and reset the parameters to the default values"),
4857 -1, 40, FALSE, G_CALLBACK(
clean_field), GINT_TO_POINTER(p));
4864 field_i_prep[1] =
check_button (_(
"\tPrepare the FIELD and CONFIG files to describe the force field and the atomic scale model"),
4871 field_i_prep[1] =
check_button (_(
"\tPrepare the LAMMPS Atom file to describe the force field and the atomic scale model"),
4883 markup_label(_(
"\n \t<b>Note: </b>You can re-open this assistant later if required to adjust your choices\n"),
4884 -1, -1, 0.0, 0.5), FALSE, FALSE, 50);
4887 info = g_strdup_printf (
"%s calculation set-up", field_type[f]);
4888 gtk_assistant_set_page_title (GTK_ASSISTANT (
field_assistant), intro, info);
4890 gtk_assistant_set_page_type (GTK_ASSISTANT (
field_assistant), intro, GTK_ASSISTANT_PAGE_INTRO);
Binding to the Fortran90 subroutines.
Variable declarations for the MD input preparation assistants.
Callback declarations for main window.
integer(kind=c_int) function chemistry()
ColRGBA init_color(int id, int numid)
initialize color based id number over total number of elements
double scale(double axe)
find appropriate major tick spacing based on axis length
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 * extra_vbox[2]
GtkWidget * vbox_control(int f)
crerate DL-POLY option widgets
gchar * felemt[MAXDATA+1]
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
gchar * get_body_element_name(field_nth_body *body, int aid, int nbd)
get field body potential element name
char * fvars_bond[2][FBONDS][FBONDS_P]
gchar * felemts[MAXDATA+1]
char * fvars_inversion[2][FINVERS][FINVERS_P]
char * fvars_dihedral[2][FDIHEDRAL][FDIHEDRAL_P]
char * fvars_angle[2][FANGLES][FANGLES_P]
char * fvars_vdw[2][FVDW][FVDW_P]
int feunit_fbd[2][FFOURBODY][FFOURBODY_P]
GtkWidget * field_i_lab[2]
char * fvars_fbd[2][FFOURBODY][FFOURBODY_P]
field_constraint * tmp_fcons
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
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
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
gchar * intelemt[MAXDATA]
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
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]
gchar * intelemts[MAXDATA]
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
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
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
gboolean dlp_to_translate(int fid, int obj, int key)
test if fnames text is to be translated or not
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
double string_to_double(gpointer string)
convert string to double
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
int combo_get_active(GtkWidget *combo)
retrieve the active item's position
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 combo_set_active(GtkWidget *combo, int pos)
set the active item's position
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
void set_renderer_markup(GtkTreeModel *mod, GtkTreeIter *iter, GtkCellRenderer *renderer, int col)
set Pango text markup for a GtkCellRenderer
void button_set_status(GtkWidget *button, int status)
set status of check / toggle button
GtkWidget * fbox(GtkWidget *box, char *lab)
box creating routine, to help design faster elements for the GUI
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)
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.
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 hide_the_widgets(GtkWidget *widg)
hide GtkWidget
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
int button_get_status(GtkWidget *button)
get status of check / toggle button
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...