X-Git-Url: https://hackdaworld.org/gitweb/?p=physik%2Fposic.git;a=blobdiff_plain;f=moldyn.h;h=a1866a98ac1ac0e4087f07344144d0e7763e69d1;hp=538e0eba8863bbb69f1071b72f07584e57a74dbb;hb=8524173a28f2c22a539ef1b0910a1136d9cb254b;hpb=dfb47bde6bf974d1b231048ec8bcda712404ccc1 diff --git a/moldyn.h b/moldyn.h index 538e0eb..a1866a9 100644 --- a/moldyn.h +++ b/moldyn.h @@ -45,6 +45,7 @@ typedef struct s_atom { u8 brand; /* brand id */ int tag; /* atom unique id (number of atom) */ u8 attr; /* attributes */ + int pbc[3]; /* pb crossing in x, y and z direction */ } t_atom; #define ATOM_ATTR_FP 0x01 /* fixed position (bulk material) */ @@ -290,6 +291,11 @@ typedef struct s_defect_params { #define DEFECT_STYPE_DB_Z 3 #define DEFECT_STYPE_DB_R 4 +typedef struct s_offset_params { + t_3dvec o; + u8 use; +} t_offset_params; + /* * * defines @@ -438,7 +444,8 @@ int moldyn_log_shutdown(t_moldyn *moldyn); int create_lattice(t_moldyn *moldyn,u8 type,double lc,int element, u8 attr,u8 brand,int a,int b,int c,t_3dvec *origin, - t_part_params *p_params,t_defect_params *d_params); + t_part_params *p_params,t_defect_params *d_params, + t_offset_params *o_params); int add_atom(t_moldyn *moldyn,int element,u8 brand,u8 attr, t_3dvec *r,t_3dvec *v); int del_atom(t_moldyn *moldyn,int tag); @@ -496,6 +503,7 @@ int virial_calc(t_atom *a,t_3dvec *f,t_3dvec *d); //inline int virial_calc(t_atom *a,t_3dvec *f,t_3dvec *d) // __attribute__((always_inline)); int check_per_bound(t_moldyn *moldyn,t_3dvec *a); +int check_per_bound_and_care_for_pbc(t_moldyn *moldyn,t_atom *a); //inline int check_per_bound(t_moldyn *moldyn,t_3dvec *a) // __attribute__((always_inline)); @@ -515,6 +523,7 @@ 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_msd(t_moldyn *moldyn,double *msd); 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);