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) */
#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
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);
//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));
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);