int (*func3b_j1)(struct s_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
int (*func3b_j2)(struct s_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
int (*func3b_j3)(struct s_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc);
-#ifdef PTHREADS
- void *(*func3b_k1)(void *ptr);
-#else
int (*func3b_k1)(struct s_moldyn *moldyn,
t_atom *ai,t_atom *aj,t_atom *ak,u8 bck);
-#endif
int (*func3b_k2)(struct s_moldyn *moldyn,
t_atom *ai,t_atom *aj,t_atom *ak,u8 bck);
void *pot_params;
int fd;
} t_vb;
+typedef struct s_part_vals {
+ double r;
+ t_3dvec p;
+ t_3dvec d;
+} t_part_vals;
+
+#define PART_INSIDE_R 1
+#define PART_OUTSIDE_R 2
+
/*
*
* defines
int moldyn_log_shutdown(t_moldyn *moldyn);
int create_lattice(t_moldyn *moldyn,u8 type,double lc,int element,double mass,
- u8 attr,u8 brand,int a,int b,int c,t_3dvec *origin);
+ u8 attr,u8 brand,int a,int b,int c,t_3dvec *origin,
+ u8 p_type,t_part_vals *p_vals);
int add_atom(t_moldyn *moldyn,int element,double mass,u8 brand,u8 attr,
t_3dvec *r,t_3dvec *v);
int del_atom(t_moldyn *moldyn,int tag);
-int cubic_init(int a,int b,int c,double lc,t_atom *atom,t_3dvec *origin);
-int fcc_init(int a,int b,int c,double lc,t_atom *atom,t_3dvec *origin);
-int diamond_init(int a,int b,int c,double lc,t_atom *atom,t_3dvec *origin);
+int cubic_init(int a,int b,int c,double lc,t_atom *atom,t_3dvec *origin,
+ u8 p_type,t_part_vals *p_vals);
+int fcc_init(int a,int b,int c,double lc,t_atom *atom,t_3dvec *origin,
+ u8 p_type,t_part_vals *p_vals);
+int diamond_init(int a,int b,int c,double lc,t_atom *atom,t_3dvec *origin,
+ u8 p_type,t_part_vals *p_vals);
int destroy_atoms(t_moldyn *moldyn);
int thermal_init(t_moldyn *moldyn,u8 equi_init);
int visual_init(t_moldyn *moldyn,char *filebase);
int visual_bonds_process(t_moldyn *moldyn,t_atom *itom,t_atom *jtom,
void *data,u8 bc);
-#ifdef PTHREADS
+#ifdef VISUAL_THREAD
void *visual_atoms(void *ptr);
#else
int visual_atoms(t_moldyn *moldyn);