X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=moldyn.h;h=31794c898f2eed1e5faf5b4d0146a07892af706b;hb=b4628acf6967b179451bd36f74c2ba312590ecbf;hp=cd7c5d02b890b6fbe3374cce2de1ee05d3559e89;hpb=1bcee27b60522025d3f43ad02347c413f6030698;p=physik%2Fposic.git diff --git a/moldyn.h b/moldyn.h index cd7c5d0..31794c8 100644 --- a/moldyn.h +++ b/moldyn.h @@ -58,6 +58,12 @@ typedef struct s_atom { #define DEFAULT_ATOM_ATTR 0x74 // 1,2,3 body interaction + visualize +/* special list structure for low mem approach */ +typedef struct s_lowmem_list { + int *head; + int *list; +} t_lowmem_list; + /* cell lists */ typedef struct s_linkcell { int nx,ny,nz; /* amount of cells in x, y and z direction */ @@ -66,6 +72,8 @@ typedef struct s_linkcell { double x,y,z; /* the actual cell lengthes */ #ifdef STATIC_LISTS int **subcell; /* pointer to the cell lists */ +#elif LOWMEM_LISTS + t_lowmem_list *subcell; /* low mem approach list */ #else t_list *subcell; /* pointer to the cell lists */ #endif @@ -352,6 +360,13 @@ typedef struct s_vb { #define FCC 0x02 #define DIAMOND 0x04 #define ZINCBLENDE 0x08 +#define NONE 0x80 + +/* + * more includes + */ + +//#include "pse.h" /* * @@ -417,6 +432,8 @@ int link_cell_init(t_moldyn *moldyn,u8 vol); int link_cell_update(t_moldyn *moldyn); #ifdef STATIC_LISTS int link_cell_neighbour_index(t_moldyn *moldyn,int i,int j,int k,int **cell); +#elif LOWMEM_LISTS +int link_cell_neighbour_index(t_moldyn *moldyn,int i,int j,int k,int *cell); #else int link_cell_neighbour_index(t_moldyn *moldyn,int i,int j,int k,t_list *cell); #endif @@ -446,6 +463,10 @@ 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 process_neighbours(t_moldyn *moldyn,void *data,t_atom *atom, + int (*process)(t_moldyn *moldyn,t_atom *atom,t_atom *natom, + void *data,u8 bc)); + int get_line(int fd,char *line,int max); int pair_correlation_init(t_moldyn *moldyn,double dr); @@ -460,7 +481,13 @@ int bond_analyze(t_moldyn *moldyn,double *quality); 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 +void *visual_atoms(void *ptr); +#else int visual_atoms(t_moldyn *moldyn); +#endif + +int fpu_set_rtd(void); #endif