nearly finished init stuff (probs with rand function!)
[physik/posic.git] / moldyn.h
1 /*
2  * moldyn.h - molecular dynamics library header file
3  *
4  * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
5  *
6  */
7
8 #ifndef MOLDYN_H
9 #define MOLDYN_H
10
11 #include "math/math.h"
12 #include "random/random.h"
13
14 /* datatypes */
15
16 typedef struct s_atom {
17         t_3dvec r;      /* positions */
18         t_3dvec v;      /* velocities */
19         t_3dvec f;      /* forces */
20         int element;    /* number of element in pse */
21         double mass;    /* atom mass */
22 } t_atom;
23
24
25 /* defines */
26
27 #define K_BOLTZMANN             1.3807E-23
28
29 #define FCC                     0x01
30 #define DIAMOND                 0x02
31
32 #define C                       0x06
33 #define M_C                     6.0
34
35 #define Si                      0x0e
36 #define M_SI                    14.0
37 #define LC_SI                   5.43105
38
39 /* function prototypes */
40
41 int create_lattice(unsigned char type,int element,double mass,double lc,
42                    int a,int b,int c,t_atom **atom);
43 int destroy_lattice(t_atom *atom);
44 int thermal_init(t_atom *atom,t_random *random,int count,double t);
45 int scale_velocity(t_atom *atom,int count,double t);
46 double get_e_kin(t_atom *atom,int count);
47
48 #endif