projects
/
physik
/
posic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
introduce a 2body bond function with callback, modified pair corr calc
[physik/posic.git]
/
moldyn.h
diff --git
a/moldyn.h
b/moldyn.h
index
2290743
..
1647c1c
100644
(file)
--- a/
moldyn.h
+++ b/
moldyn.h
@@
-137,7
+137,8
@@
typedef struct s_moldyn {
double gp_sum; /* sum over all gp */
double gp_avg; /* average value of gp */
double gp_sum; /* sum over all gp */
double gp_avg; /* average value of gp */
- double virial; /* actual virial */
+ t_virial vir; /* actual virial */
+ double virial;
double virial_sum; /* sum over all calculated virials */
double virial_avg; /* average of virial */
double virial_sum; /* sum over all calculated virials */
double virial_avg; /* average of virial */
@@
-146,8
+147,10
@@
typedef struct s_moldyn {
double p_sum; /* sum over all p */
double p_avg; /* average value of p */
double p_sum; /* sum over all p */
double p_avg; /* average value of p */
- t_3dvec tp; /* thermodynamic pressure dU/dV */
- double dv; /* dV for thermodynamic pressure calc */
+ double tp; /* thermodynamic pressure dU/dV */
+ double tp_sum; /* sum over dU/dV pressure */
+ double tp_avg; /* average value of dU/dV pressure */
+ int tp_cnt; /* how often to do thermodynamic p calc */
/* pressure and temperature control (velocity/volume scaling) */
/* (t_tc in units of tau, p_tc in units of tau * isoth. compressib.) */
/* pressure and temperature control (velocity/volume scaling) */
/* (t_tc in units of tau, p_tc in units of tau * isoth. compressib.) */
@@
-198,7
+201,9
@@
typedef struct s_moldyn {
int pfd; /* fd for pressure log */
unsigned int twrite; /* how often to log temperature */
int tfd; /* fd for temperature log */
int pfd; /* fd for pressure log */
unsigned int twrite; /* how often to log temperature */
int tfd; /* fd for temperature log */
- unsigned int vwrite; /* how often to visualize atom information */
+ unsigned int vwrite; /* how often to log volume */
+ int vfd; /* fd for volume log */
+ unsigned int awrite; /* how often to visualize atom information */
unsigned int swrite; /* how often to create a save file */
int rfd; /* report file descriptor */
char rtitle[64]; /* report title */
unsigned int swrite; /* how often to create a save file */
int rfd; /* report file descriptor */
char rtitle[64]; /* report title */
@@
-214,6
+219,19
@@
typedef struct s_moldyn {
double debug; /* debugging stuff, ignore */
} t_moldyn;
double debug; /* debugging stuff, ignore */
} t_moldyn;
+typedef struct s_pcc {
+ int o1;
+ int o2;
+ double dr;
+ double *stat;
+} t_pcc;
+
+typedef struct s_ba {
+ int *acnt;
+ int *bcnt;
+ int tcnt;
+} t_ba;
+
/*
*
* defines
/*
*
* defines
@@
-252,6
+270,7
@@
typedef struct s_moldyn {
#define KILOGRAM (1.0/AMU) /* amu */
#define NEWTON (METER*KILOGRAM/(SECOND*SECOND)) /* A amu / fs^2 */
#define PASCAL (NEWTON/(METER*METER)) /* N / A^2 */
#define KILOGRAM (1.0/AMU) /* amu */
#define NEWTON (METER*KILOGRAM/(SECOND*SECOND)) /* A amu / fs^2 */
#define PASCAL (NEWTON/(METER*METER)) /* N / A^2 */
+#define GPA (1e9*PASCAL) /* N / A^2 */
#define BAR ((1.0e5*PASCAL)) /* N / A^2 */
#define K_BOLTZMANN (1.380650524e-23*METER*NEWTON) /* NA/K */
#define K_B2 (K_BOLTZMANN*K_BOLTZMANN) /* (NA)^2/K^2 */
#define BAR ((1.0e5*PASCAL)) /* N / A^2 */
#define K_BOLTZMANN (1.380650524e-23*METER*NEWTON) /* NA/K */
#define K_B2 (K_BOLTZMANN*K_BOLTZMANN) /* (NA)^2/K^2 */
@@
-274,9
+293,10
@@
typedef struct s_moldyn {
#define LOG_TOTAL_MOMENTUM 0x02
#define LOG_PRESSURE 0x04
#define LOG_TEMPERATURE 0x08
#define LOG_TOTAL_MOMENTUM 0x02
#define LOG_PRESSURE 0x04
#define LOG_TEMPERATURE 0x08
-#define SAVE_STEP 0x10
-#define VISUAL_STEP 0x20
-#define CREATE_REPORT 0x40
+#define LOG_VOLUME 0x10
+#define SAVE_STEP 0x20
+#define VISUAL_STEP 0x40
+#define CREATE_REPORT 0x80
#define TRUE 1
#define FALSE 0
#define TRUE 1
#define FALSE 0
@@
-444,7
+464,8
@@
double get_temperature(t_moldyn *moldyn);
int scale_velocity(t_moldyn *moldyn,u8 equi_init);
double virial_sum(t_moldyn *moldyn);
double pressure_calc(t_moldyn *moldyn);
int scale_velocity(t_moldyn *moldyn,u8 equi_init);
double virial_sum(t_moldyn *moldyn);
double pressure_calc(t_moldyn *moldyn);
-int energy_fluctuation_calc(t_moldyn *moldyn);
+int average_reset(t_moldyn *moldyn);
+int average_and_fluctuation_calc(t_moldyn *moldyn);
int get_heat_capacity(t_moldyn *moldyn);
double thermodynamic_pressure_calc(t_moldyn *moldyn);
double get_pressure(t_moldyn *moldyn);
int get_heat_capacity(t_moldyn *moldyn);
double thermodynamic_pressure_calc(t_moldyn *moldyn);
double get_pressure(t_moldyn *moldyn);
@@
-486,11
+507,21
@@
int check_per_bound(t_moldyn *moldyn,t_3dvec *a);
int moldyn_bc_check(t_moldyn *moldyn);
int moldyn_read_save_file(t_moldyn *moldyn,char *file);
int moldyn_bc_check(t_moldyn *moldyn);
int moldyn_read_save_file(t_moldyn *moldyn,char *file);
+int moldyn_free_save_file(t_moldyn *moldyn);
int moldyn_load(t_moldyn *moldyn);
int moldyn_load(t_moldyn *moldyn);
+int process_2b_bonds(t_moldyn *moldyn,void *data,
+ int (*process)(t_moldyn *moldyn,t_atom *itom,t_atom *jtom,
+ void *data,u8 bc));
int get_line(int fd,char *line,int max);
int pair_correlation_init(t_moldyn *moldyn,double dr);
int get_line(int fd,char *line,int max);
int pair_correlation_init(t_moldyn *moldyn,double dr);
+int calculate_diffusion_coefficient(t_moldyn *moldyn,double *dc);
+int calculate_pair_correlation_process(t_moldyn *moldyn,t_atom *itom,
+ t_atom *jtom,void *data,u8 bc);
int calculate_pair_correlation(t_moldyn *moldyn,double dr,void *ptr);
int calculate_pair_correlation(t_moldyn *moldyn,double dr,void *ptr);
+int bond_analyze_process(t_moldyn *moldyn,t_atom *itom,t_atom *jtom,
+ void *data,u8 bc);
+int bond_analyze(t_moldyn *moldyn,double *quality);
int visual_init(t_moldyn *moldyn,char *filebase);
int visual_atoms(t_moldyn *moldyn);
int visual_init(t_moldyn *moldyn,char *filebase);
int visual_atoms(t_moldyn *moldyn);