atomes 1.1.14
atomes: an atomic scale modeling tool box
Loading...
Searching...
No Matches
save_field.c
Go to the documentation of this file.
1/* This file is part of the 'atomes' software
2
3'atomes' is free software: you can redistribute it and/or modify it under the terms
4of the GNU Affero General Public License as published by the Free Software Foundation,
5either version 3 of the License, or (at your option) any later version.
6
7'atomes' is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
8without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9See the GNU General Public License for more details.
10
11You should have received a copy of the GNU Affero General Public License along with 'atomes'.
12If not, see <https://www.gnu.org/licenses/>
13
14Copyright (C) 2022-2024 by CNRS and University of Strasbourg */
15
22/*
23* This file: 'save_field.c'
24*
25* Contains:
26*
27
28 - The functions to save force field information in the atomes project file format
29
30*
31* List of functions:
32
33 int save_field_atom (FILE * fp);
34 int save_field_shell (FILE * fp);
35 int save_field_constraint (FILE * fp);
36 int save_field_pmf (FILE * fp);
37 int save_field_rigid (FILE * fp);
38 int save_field_tethered (FILE * fp, int fid);
39 int save_field_prop (FILE * fp, int fid, int pid);
40 int save_field_struct (FILE * fp, int fid);
41 int save_field_molecule (FILE * fp, int fid);
42 int save_field_body (FILE * fp, int fid);
43 int save_field_external (FILE * fp, int fid);
44 int save_dlp_field_data (FILE * fp, project * this_proj);
45 int save_lmp_field_data (FILE * fp, project * this_proj);
46
47*/
48
49#include "global.h"
50#include "project.h"
51#include "dlp_field.h"
52
53/*
54typedef struct field field
55struct field
56{
57 gboolean prepare_file[2];
58 // Field and Config files
59 gboolean afp[MAXDATC+MAXDATA];
60 int type;
61 int energy_unit;
62 int atom_init;
63 int molecules;
64 field_molecule * first_molecule;
65 int nbody[5];
66 field_nth_body * first_body[5];
67 // Tersoff potential cross terms
68 double ** cross;
69 int extern_fields;
70 field_external * first_external;
71
72 // Control file
73 double sys_opts[17];
74 double io_opts[23];
75 double ana_opts[17];
76 double elec_opts[11];
77 double vdw_opts[6];
78 double met_opts[2];
79 double equi_opts[17];
80 int ensemble;
81 int thermostat;
82 double thermo_opts[10];
83 double md_opts[20];
84 double out_opts[31];
85};
86
87*/
88
96int save_field_atom (FILE * fp)
97{
98 if (fwrite (& tmp_fat -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
99 if (fwrite (& tmp_fat -> fid, sizeof(int), 1, fp) != 1) return ERROR_RW;
100 if (fwrite (& tmp_fat -> afid, sizeof(int), 1, fp) != 1) return ERROR_RW;
101 if (fwrite (& tmp_fat -> type, sizeof(int), 1, fp) != 1) return ERROR_RW;
102 if (save_this_string (fp, tmp_fat -> name) != OK) return ERROR_RW;
103 if (fwrite (& tmp_fat -> num, sizeof(int), 1, fp) != 1) return ERROR_RW;
104 if (fwrite (& tmp_fat -> sp, sizeof(int), 1, fp) != 1) return ERROR_RW;
105 if (fwrite (& tmp_fat -> mass, sizeof(float), 1, fp) != 1) return ERROR_RW;
106 if (fwrite (& tmp_fat -> charge, sizeof(float), 1, fp) != 1) return ERROR_RW;
107 if (fwrite (& tmp_fat -> frozen, sizeof(int), 1, fp) != 1) return ERROR_RW;
108 if (fwrite (tmp_fat -> frozen_id, sizeof(gboolean), tmp_fat -> num, fp) != tmp_fat -> num) return ERROR_RW;
109 if (fwrite (& tmp_fat -> show, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
110 if (fwrite (tmp_fat -> list, sizeof(int), tmp_fat -> num, fp) != tmp_fat -> num) return ERROR_RW;
111 if (fwrite (tmp_fat -> list_id, sizeof(int), tmp_fat -> num, fp) != tmp_fat -> num) return ERROR_RW;
112 return OK;
113}
114
123{
124 if (fwrite (& tmp_fshell -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
125 if (fwrite (tmp_fshell -> ia, sizeof(int), 2, fp) != 2) return ERROR_RW;
126 if (fwrite (& tmp_fshell -> m, sizeof(float), 1, fp) != 1) return ERROR_RW;
127 if (fwrite (& tmp_fshell -> z, sizeof(float), 1, fp) != 1) return ERROR_RW;
128 if (fwrite (& tmp_fshell -> k2, sizeof(float), 1, fp) != 1) return ERROR_RW;
129 if (fwrite (& tmp_fshell -> k4, sizeof(float), 1, fp) != 1) return ERROR_RW;
130 if (fwrite (& tmp_fshell -> vdw, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
131 if (fwrite (& tmp_fshell -> show, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
132 if (fwrite (& tmp_fshell -> use, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
133 return OK;
134}
135
144{
145 if (fwrite (& tmp_fcons -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
146 if (fwrite (tmp_fcons -> ia, sizeof(int), 2, fp) != 2) return ERROR_RW;
147 if (fwrite (& tmp_fcons -> av, sizeof(float), 1, fp) != 1) return ERROR_RW;
148 if (fwrite (& tmp_fcons -> length, sizeof(float), 1, fp) != 1) return ERROR_RW;
149 if (fwrite (& tmp_fcons -> show, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
150 if (fwrite (& tmp_fcons -> use, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
151 return OK;
152}
153
161int save_field_pmf (FILE * fp)
162{
163 if (fwrite (& tmp_fpmf -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
164 if (fwrite (& tmp_fpmf -> av, sizeof(float), 1, fp) != 1) return ERROR_RW;
165 if (fwrite (& tmp_fpmf -> length, sizeof(float), 1, fp) != 1) return ERROR_RW;
166 if (fwrite (tmp_fpmf -> num, sizeof(int), 2, fp) != 2) return ERROR_RW;
167 int i;
168 for (i=0; i<2; i++)
169 {
170 if (fwrite (tmp_fpmf -> list[i], sizeof(int), tmp_fpmf -> num[i], fp) != tmp_fpmf -> num[i]) return ERROR_RW;
171 if (fwrite (tmp_fpmf -> weight[i], sizeof(float), tmp_fpmf -> num[i], fp) != tmp_fpmf -> num[i]) return ERROR_RW;
172 }
173
174 if (fwrite (& tmp_fpmf -> show, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
175 if (fwrite (& tmp_fpmf -> use, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
176 return OK;
177}
178
187{
188 if (fwrite (& tmp_frig -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
189 if (fwrite (& tmp_frig -> num, sizeof(int), 1, fp) != 1) return ERROR_RW;
190 if (fwrite (tmp_frig -> list, sizeof(int), tmp_frig -> num, fp) != tmp_frig -> num) return ERROR_RW;
191 if (fwrite (& tmp_frig -> show, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
192 if (fwrite (& tmp_frig -> use, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
193 return OK;
194}
195
204int save_field_tethered (FILE * fp, int fid)
205{
206 if (fwrite (& tmp_ftet -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
207 if (fwrite (& tmp_ftet -> num, sizeof(int), 1, fp) != 1) return ERROR_RW;
208 if (fwrite (& tmp_ftet -> key, sizeof(int), 1, fp) != 1) return ERROR_RW;
209 int i = fvalues[fid][0][tmp_ftet -> key];
210 if (fwrite (tmp_ftet -> val, sizeof(float), i, fp) != i) return ERROR_RW;
211 if (fwrite (& tmp_ftet -> show, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
212 if (fwrite (& tmp_ftet -> use, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
213 return OK;
214}
215
225int save_field_prop (FILE * fp, int fid, int pid)
226{
227 if (fwrite (& tmp_fprop -> pid, sizeof(int), 1, fp) != 1) return ERROR_RW;
228 if (fwrite (& tmp_fprop -> fpid, sizeof(int), 1, fp) != 1) return ERROR_RW;
229 if (fwrite (& tmp_fprop -> key, sizeof(int), 1, fp) != 1) return ERROR_RW;
230 int i = struct_id(pid+7);
231 if (fwrite (tmp_fprop -> aid, sizeof(int), i, fp) != i) return ERROR_RW;
232 i = fvalues[fid][pid+1][tmp_fprop -> key];
233 if (fwrite (tmp_fprop -> val, sizeof(float), i, fp) != i) return ERROR_RW;
234 if (fwrite (& tmp_fprop -> show, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
235 if (fwrite (& tmp_fprop -> use, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
236 return OK;
237}
238
247int save_field_struct (FILE * fp, int fid)
248{
249 if (fwrite (& tmp_fstr -> st, sizeof(int), 1, fp) != 1) return ERROR_RW;
250 if (fwrite (& tmp_fstr -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
251 if (fwrite (& tmp_fstr -> num, sizeof(int), 1, fp) != 1) return ERROR_RW;
252 int i = struct_id(tmp_fstr -> st + 7);
253 if (fwrite (tmp_fstr -> aid, sizeof(int), i, fp) != i) return ERROR_RW;
254 if (fwrite (& tmp_fstr-> av, sizeof(float), 1, fp) != 1) return ERROR_RW;
255 tmp_fprop = tmp_fstr -> def;
256 if (save_field_prop(fp, fid, tmp_fstr -> st) != OK) return ERROR_RW;
257 tmp_fprop = tmp_fstr -> other;
258 i = 0;
259 while (tmp_fprop)
260 {
261 i ++;
262 tmp_fprop = tmp_fprop -> next;
263 }
264 if (fwrite (& i, sizeof(int), 1, fp) != 1) return ERROR_RW;
265 if (tmp_fstr -> other)
266 {
267 tmp_fprop = tmp_fstr -> other;
268 while (tmp_fprop)
269 {
270 if (save_field_prop(fp, fid, tmp_fstr -> st) != OK) return ERROR_RW;
271 tmp_fprop = tmp_fprop -> next;
272 }
273 }
274 return OK;
275}
276
285int save_field_molecule (FILE * fp, int fid)
286{
287 if (fwrite (& tmp_fmol -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
288 if (fwrite (& tmp_fmol -> mol -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
289 if (save_this_string (fp, tmp_fmol -> name) != OK) return ERROR_RW;
290 if (fwrite (& tmp_fmol -> multi, sizeof(int), 1, fp) != 1) return ERROR_RW;
291 if (fwrite (tmp_fmol -> fragments, sizeof(int), tmp_fmol -> multi, fp) != tmp_fmol -> multi) return ERROR_RW;
292 int i;
293 for (i=0; i<tmp_fmol -> mol -> natoms; i++)
294 {
295 if (fwrite (tmp_fmol -> atoms_id[i], sizeof(dint), tmp_fmol -> multi, fp) != tmp_fmol -> multi) return ERROR_RW;
296 }
297 if (fwrite (& tmp_fmol -> atoms, sizeof(int), 1, fp) != 1) return ERROR_RW;
298 tmp_fat = tmp_fmol -> first_atom;
299 while (tmp_fat)
300 {
301 if (save_field_atom(fp) != OK) return ERROR_RW;
302 tmp_fat = tmp_fat -> next;
303 }
304
305 if (fwrite (& tmp_fmol -> shells, sizeof(int), 1, fp) != 1) return ERROR_RW;
306 tmp_fshell = tmp_fmol -> first_shell;
307 while (tmp_fshell)
308 {
309 if (save_field_shell(fp) != OK) return ERROR_RW;
310 tmp_fshell = tmp_fshell -> next;
311 }
312
313 if (fwrite (& tmp_fmol -> constraints, sizeof(int), 1, fp) != 1) return ERROR_RW;
314 tmp_fcons = tmp_fmol -> first_constraint;
315 while (tmp_fcons)
316 {
317 if (save_field_constraint(fp) != OK) return ERROR_RW;
318 tmp_fcons = tmp_fcons -> next;
319 }
320
321 if (fwrite (& tmp_fmol -> pmfs, sizeof(int), 1, fp) != 1) return ERROR_RW;
322 tmp_fpmf = tmp_fmol -> first_pmf;
323 while (tmp_fpmf)
324 {
325 if (save_field_pmf(fp) != OK) return ERROR_RW;
326 tmp_fpmf = tmp_fpmf -> next;
327 }
328
329 if (fwrite (& tmp_fmol -> rigids, sizeof(int), 1, fp) != 1) return ERROR_RW;
330 tmp_frig = tmp_fmol -> first_rigid;
331 while (tmp_frig)
332 {
333 if (save_field_rigid(fp) != OK) return ERROR_RW;
334 tmp_frig = tmp_frig -> next;
335 }
336
337 if (fwrite (& tmp_fmol -> tethered, sizeof(int), 1, fp) != 1) return ERROR_RW;
338 tmp_ftet = tmp_fmol -> first_tethered;
339 while (tmp_ftet)
340 {
341 if (save_field_tethered(fp, fid) != OK) return ERROR_RW;
342 tmp_ftet = tmp_ftet -> next;
343 }
344 if (fwrite (tmp_fmol -> nstruct, sizeof(int), 8, fp) != 8) return ERROR_RW;
345 for (i=0; i<8; i++)
346 {
347 tmp_fstr = tmp_fmol -> first_struct[i];
348 while (tmp_fstr)
349 {
350 if (save_field_struct (fp, fid) != OK) return ERROR_RW;
351 tmp_fstr = tmp_fstr -> next;
352 }
353 }
354 return OK;
355}
356
365int save_field_body (FILE * fp, int fid)
366{
367 if (fwrite (& tmp_fbody -> bd, sizeof(int), 1, fp) != 1) return ERROR_RW;
368 if (fwrite (& tmp_fbody -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
369 if (fwrite (& tmp_fbody -> key, sizeof(int), 1, fp) != 1) return ERROR_RW;
370 if (tmp_fbody -> bd == 0) if (fwrite (tmp_fbody -> fpid, sizeof(int), 2, fp) != 2) return ERROR_RW;
371 if (fwrite (tmp_fbody -> na, sizeof(int), body_at(tmp_fbody -> bd), fp) != body_at(tmp_fbody -> bd)) return ERROR_RW;
372 int i;
373 for (i=0; i<body_at(tmp_fbody -> bd); i++)
374 {
375 if (fwrite (tmp_fbody -> ma[i], sizeof(int), tmp_fbody -> na[i], fp) != tmp_fbody -> na[i]) return ERROR_RW;
376 if (fwrite (tmp_fbody -> a[i], sizeof(int), tmp_fbody -> na[i], fp) != tmp_fbody -> na[i]) return ERROR_RW;
377 }
378 i = fvalues[fid][9+tmp_fbody -> bd][tmp_fbody -> key];
379 if (fwrite (tmp_fbody -> val, sizeof(float), i, fp) != i) return ERROR_RW;
380 if (fwrite (& tmp_fbody -> show, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
381 if (fwrite (& tmp_fbody -> use, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
382 return OK;
383}
384
393int save_field_external (FILE * fp, int fid)
394{
395 if (fwrite (& tmp_fext -> id, sizeof(int), 1, fp) != 1) return ERROR_RW;
396 if (fwrite (& tmp_fext -> key, sizeof(int), 1, fp) != 1) return ERROR_RW;
397 int i = fvalues[fid][14][tmp_fext -> key];
398 if (fwrite (tmp_fext -> val, sizeof(float), i, fp) != i) return ERROR_RW;
399 if (fwrite (& tmp_fext -> use, sizeof(gboolean), 1, fp) != 1) return ERROR_RW;
400 return OK;
401}
402
411int save_dlp_field_data (FILE * fp, project * this_proj)
412{
413 int i, j;
414 if (this_proj -> force_field[0] == NULL)
415 {
416 i = 0;
417 if (fwrite (& i, sizeof(int), 1, fp) != 1) return ERROR_RW;
418 return OK;
419 }
420 i = 1;
421 if (fwrite (& i, sizeof(int), 1, fp) != 1) return ERROR_RW;
422 // CONTROL file
423 if (fwrite (this_proj -> force_field[0] -> sys_opts, sizeof(double), 17, fp) != 17) return ERROR_RW;
424 if (fwrite (this_proj -> force_field[0] -> io_opts, sizeof(double), 23, fp) != 23) return ERROR_RW;
425 if (fwrite (this_proj -> force_field[0] -> ana_opts, sizeof(double), 17, fp) != 17) return ERROR_RW;
426 if (fwrite (this_proj -> force_field[0] -> elec_opts, sizeof(double), 11, fp) != 11) return ERROR_RW;
427 if (fwrite (this_proj -> force_field[0] -> vdw_opts, sizeof(double), 6, fp) != 6) return ERROR_RW;
428 if (fwrite (this_proj -> force_field[0] -> met_opts, sizeof(double), 2, fp) != 2) return ERROR_RW;
429 if (fwrite (this_proj -> force_field[0] -> equi_opts, sizeof(double), 17, fp) != 17) return ERROR_RW;
430 if (fwrite (& this_proj -> force_field[0] -> ensemble, sizeof(int), 1, fp) != 1) return ERROR_RW;
431 if (fwrite (& this_proj -> force_field[0] -> thermostat, sizeof(int), 1, fp) != 1) return ERROR_RW;
432 if (fwrite (this_proj -> force_field[0] -> thermo_opts, sizeof(double), 10, fp) != 10) return ERROR_RW;
433 if (fwrite (this_proj -> force_field[0] -> md_opts, sizeof(double), 20, fp) != 20) return ERROR_RW;
434 if (fwrite (this_proj -> force_field[0] -> out_opts, sizeof(double), 31, fp) != 31) return ERROR_RW;
435 // FIELD file
436 if (fwrite (this_proj -> force_field[0] -> prepare_file, sizeof(gboolean), 2, fp) != 2) return ERROR_RW;
437 if (fwrite (this_proj -> force_field[0] -> afp, sizeof(gboolean), MAXDATC+MAXDATA, fp) != MAXDATC+MAXDATA) return ERROR_RW;
438 if (fwrite (& this_proj -> force_field[0] -> type, sizeof(int), 1, fp) != 1) return ERROR_RW;
439 if (fwrite (& this_proj -> force_field[0] -> energy_unit, sizeof(int), 1, fp) != 1) return ERROR_RW;
440 if (fwrite (& this_proj -> force_field[0] -> atom_init, sizeof(int), 1, fp) != 1) return ERROR_RW;
441 if (fwrite (& this_proj -> force_field[0] -> molecules, sizeof(int), 1, fp) != 1) return ERROR_RW;
442 if (! this_proj -> force_field[0] -> molecules) return ERROR_RW;
443 tmp_fmol = this_proj -> force_field[0] -> first_molecule;
444 while (tmp_fmol)
445 {
446 if (save_field_molecule (fp, 0) != OK) return ERROR_RW;
447 tmp_fmol = tmp_fmol -> next;
448 }
449 if (fwrite (this_proj -> force_field[0] -> nbody, sizeof(int), 5, fp) != 5) return ERROR_RW;
450 for (i=0; i<5; i++)
451 {
452 if (this_proj -> force_field[0] -> nbody[i])
453 {
454 tmp_fbody = this_proj -> force_field[0] -> first_body[i];
455 while (tmp_fbody)
456 {
457 if (save_field_body (fp, 0) != OK) return ERROR_RW;
458 tmp_fbody = tmp_fbody -> next;
459 }
460 }
461 }
462 // Tersoff potential cross terms
463 i = (this_proj -> force_field[0] -> cross) ? 1 : 0;
464 if (fwrite (& i, sizeof(int), 1, fp) != 1) return ERROR_RW;
465 if (this_proj -> force_field[0] -> cross)
466 {
467
468 i = this_proj -> force_field[0] -> nbody[2] * (this_proj -> force_field[0] -> nbody[2] - 1) / 2;
469 for (j=0; j<i; j++)
470 {
471 if (fwrite (& this_proj -> force_field[0] -> cross[j], sizeof(double), 3, fp) != 3) return ERROR_RW;
472 }
473 }
474 if (fwrite (& this_proj -> force_field[0] -> extern_fields, sizeof(int), 1, fp) != 1) return ERROR_RW;
475 tmp_fext = this_proj -> force_field[0] -> first_external;
476 while (tmp_fext)
477 {
478 if (save_field_external(fp, 0) != OK) return ERROR_RW;
479 tmp_fext = tmp_fext -> next;
480 }
481 return OK;
482}
483
492int save_lmp_field_data (FILE * fp, project * this_proj)
493{
494 int i;
495 if (this_proj -> force_field[1] == NULL)
496 {
497 i = 0;
498 if (fwrite (& i, sizeof(int), 1, fp) != 1) return ERROR_RW;
499 return OK;
500 }
501 return OK;
502}
insertion_menu mol[]
Definition w_library.c:193
int atoms[NUM_STYLES][2]
float val
Definition dlp_init.c:117
gchar * sys_opts[10]
int * atoms_id
double *** cross
Definition dlp_edit.c:418
field_constraint * tmp_fcons
Definition dlp_field.c:959
int fvalues[2][15][21]
Definition dlp_field.c:255
field_nth_body * tmp_fbody
Definition dlp_field.c:965
field_shell * tmp_fshell
Definition dlp_field.c:958
field_rigid * tmp_frig
Definition dlp_field.c:961
int body_at(int b)
find the number of atom(s) in a non bonded interaction
Definition dlp_field.c:1022
field_pmf * tmp_fpmf
Definition dlp_field.c:960
field_external * tmp_fext
Definition dlp_field.c:967
field_atom * tmp_fat
Definition dlp_field.c:957
int struct_id(int f)
number of atoms in a structural element
Definition dlp_field.c:999
field_struct * tmp_fstr
Definition dlp_field.c:964
field_molecule * tmp_fmol
Definition dlp_field.c:955
int atom_init
Definition dlp_field.c:950
field_prop * tmp_fprop
Definition dlp_field.c:963
field_tethered * tmp_ftet
Definition dlp_field.c:962
Variable declarations for the creation of the DL_POLY input file(s)
gboolean afp[MAXDATA]
int multi
Definition dlp_init.c:121
FILE * fp
Global variable declarations Global convenience function declarations Global data structure defin...
#define ERROR_RW
Definition global.h:252
#define OK
Definition global.h:251
#define MAXDATC
Number of tabs for the description of the classical calculation.
Definition global.h:657
#define MAXDATA
Number of tabs for the description of the classical force field.
Definition global.h:662
integer(kind=c_int) function molecules(frag_and_mol, allbonds)
double z
Definition ogl_draw.c:57
Function declarations for reading atomes project file Function declarations for saving atomes proje...
int save_this_string(FILE *fp, gchar *string)
save string to file
Definition save_p.c:49
int save_lmp_field_data(FILE *fp, project *this_proj)
save LAMMPS force field data to file
Definition save_field.c:492
int save_field_struct(FILE *fp, int fid)
save field structural properties to file
Definition save_field.c:247
int save_field_shell(FILE *fp)
save field core shell data to file
Definition save_field.c:122
int save_field_tethered(FILE *fp, int fid)
save field tethered data to file
Definition save_field.c:204
int save_field_prop(FILE *fp, int fid, int pid)
save field property data to file
Definition save_field.c:225
int save_field_atom(FILE *fp)
save field atom data to file
Definition save_field.c:96
int save_field_molecule(FILE *fp, int fid)
save field molecule data to file
Definition save_field.c:285
int save_field_rigid(FILE *fp)
save field rigid constraints data to file
Definition save_field.c:186
int save_field_constraint(FILE *fp)
save field constraint data to file
Definition save_field.c:143
int save_field_pmf(FILE *fp)
save field mean force potential data to file
Definition save_field.c:161
int save_dlp_field_data(FILE *fp, project *this_proj)
save force field data to file
Definition save_field.c:411
int save_field_external(FILE *fp, int fid)
save field external data to file
Definition save_field.c:393
int save_field_body(FILE *fp, int fid)
save field nth body data to file
Definition save_field.c:365
Definition global.h:91
int a
Definition tab-1.c:95