1 /*
2    $Id$
3 */
4 
5 #include  <stdio.h>
6 #include  <math.h>
7 #include  "paw_loggrid.h"
8 #include  "paw_pred_cor.h"
9 #include  "paw_hartree.h"
10 
11 
12 static double Zion;
13 static double Eion;
14 static double *Vion;
15 
16 /****************************************
17  Function name	  : paw_init_ion(double Z)
18  Description	    :
19 ****************************************/
paw_init_ion(double Z)20 void paw_init_ion(double Z)
21 {
22     int i;
23     int Ngrid;
24     double *rgrid;
25 
26 
27     Ngrid = paw_N_LogGrid();
28     rgrid = paw_r_LogGrid();
29 
30     Zion = Z;
31 
32     Vion  = paw_alloc_LogGrid();
33     for (i=0; i<Ngrid; ++i)
34         Vion[i] = -Z/rgrid[i];
35 
36 }
37 
38 /****************************************
39  Function name	  : paw_get_ion_energy
40  Description	    :
41  Return type		  : double
42  Argument         : double *dn
43  Author     		  : Marat Valiev
44  Date & Time		  : 3/31/99 2:12:25 PM
45 ****************************************/
paw_get_ion_energy(double * dn)46 double paw_get_ion_energy(double *dn)
47 {
48     int    k;
49     int Ngrid;
50     double *tmp;
51 
52 
53     Ngrid = paw_N_LogGrid();
54     tmp   = paw_scratch_LogGrid();
55 
56     for (k=0; k<Ngrid; ++k)
57     {
58         tmp[k] = Vion[k]*dn[k];
59     }
60 
61     Eion = paw_Integrate_LogGrid(tmp);
62     return Eion;
63 }
64 
paw_get_ion_pot()65 double* paw_get_ion_pot()
66 {
67     return Vion;
68 }
69 
paw_get_ion_charge()70 double paw_get_ion_charge()
71 {
72 
73     return Zion;
74 
75 
76 }
77 
78