X-Git-Url: https://www.hackdaworld.org/gitweb/?a=blobdiff_plain;f=moldyn.h;h=2d4ca4873109a80732606ff7f425d764d8b59259;hb=95cfeec6fbbfa975d5ac5b99ec3f7386ca3d6071;hp=36e701ea0877d88118d4d6441d963b5c1cbac803;hpb=684bf7c398cdfa98549b0c7a1fa37e6dc5b35bea;p=physik%2Fposic.git diff --git a/moldyn.h b/moldyn.h index 36e701e..2d4ca48 100644 --- a/moldyn.h +++ b/moldyn.h @@ -49,6 +49,8 @@ typedef struct s_atom { #define ATOM_ATTR_FP 0x01 /* fixed position (bulk material) */ #define ATOM_ATTR_HB 0x02 /* coupled to heat bath (velocity scaling) */ +#define ATOM_ATTR_VA 0x04 /* visualize this atom */ +#define ATOM_ATTR_VB 0x08 /* visualize the bond of this atom */ #define ATOM_ATTR_1BP 0x10 /* single paricle potential */ #define ATOM_ATTR_2BP 0x20 /* pair potential */ @@ -64,8 +66,6 @@ typedef struct s_linkcell { int dnlc; /* direct neighbour lists counter */ } t_linkcell; -#include "visual/visual.h" - /* moldyn schedule structure */ typedef struct s_moldyn_schedule { int count; @@ -76,6 +76,13 @@ typedef struct s_moldyn_schedule { void *hook_params; } t_moldyn_schedule; +/* visualization structure */ +typedef struct s_visual { + int fd; /* rasmol script file descriptor */ + char fb[128]; /* basename of the save files */ + t_3dvec dim; /* dimensions of the simulation cell */ +} t_visual; + /* moldyn main structure */ typedef struct s_moldyn { int argc; /* number of arguments */ @@ -104,6 +111,7 @@ typedef struct s_moldyn { double cutoff; /* cutoff radius */ double cutoff_square; /* square of the cutoff radius */ double nnd; /* nearest neighbour distance (optional) */ + double bondlen[3]; /* bond lengthes (only 2 atomic systems) */ t_linkcell lc; /* linked cell list interface */ @@ -375,7 +383,6 @@ typedef struct s_moldyn { #define FCC 0x02 #define DIAMOND 0x04 - /* * * function prototypes @@ -391,6 +398,7 @@ int moldyn_shutdown(t_moldyn *moldyn); int set_int_alg(t_moldyn *moldyn,u8 algo); int set_cutoff(t_moldyn *moldyn,double cutoff); +int set_bondlen(t_moldyn *moldyn,double b0,double b1,double bm); int set_temperature(t_moldyn *moldyn,double t_ref); int set_pressure(t_moldyn *moldyn,double p_ref); int set_pt_scale(t_moldyn *moldyn,u8 ptype,double ptc,u8 ttype,double ttc); @@ -417,6 +425,7 @@ 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); 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); @@ -468,4 +477,8 @@ int moldyn_bc_check(t_moldyn *moldyn); int get_line(int fd,char *line,int max); +int visual_init(t_moldyn *moldyn,char *filebase); +int visual_atoms(t_moldyn *moldyn); + #endif +