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)20void 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)46double 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()65double* paw_get_ion_pot() 66 { 67 return Vion; 68 } 69 paw_get_ion_charge()70double paw_get_ion_charge() 71 { 72 73 return Zion; 74 75 76 } 77 78