PmeRealSpace.h

Go to the documentation of this file.
00001 
00007 #ifndef PME_REAL_SPACE_H__
00008 #define PME_REAL_SPACE_H__
00009 
00010 #include "PmeBase.h"
00011 #include "Vector.h"
00012 #include "ResizeArray.h"
00013 
00014 class PmeRealSpace {
00015   
00016 public:
00017   PmeRealSpace(PmeGrid grid);
00018   ~PmeRealSpace();
00019 
00020   void set_num_atoms(int natoms);
00021 
00022   void fill_charges(float **q_arr, float **q_arr_list, int &q_arr_count,
00023                        int &stray_count, char *f_arr, char *fz_arr, PmeParticle p[]); 
00024   void compute_forces(const float * const *q_arr, const PmeParticle p[], 
00025                       Vector f[]);
00026                       
00027   void compute_forces_order4_partial(int first, int last, const float * const *q_arr, const PmeParticle p[], 
00028                       Vector f[]);                      
00029 private:
00030   void fill_charges_order4(float **q_arr, float **q_arr_list, int &q_arr_count,
00031                        int &stray_count, char *f_arr, char *fz_arr, PmeParticle p[]); 
00032   template <int order>
00033   void fill_charges_order(float **q_arr, float **q_arr_list, int &q_arr_count,
00034                        int &stray_count, char *f_arr, char *fz_arr, PmeParticle p[]); 
00035   void compute_forces_order4(const float * const *q_arr, const PmeParticle p[], 
00036                       Vector f[]);
00037   template <int order>
00038   void compute_forces_order(const float * const *q_arr, const PmeParticle p[], 
00039                       Vector f[]);
00040   template <int order> void fill_b_spline(PmeParticle p[]);
00041 
00042   const PmeGrid myGrid;
00043   int N;
00044   float *M, *dM;
00045   ResizeArray<float> M_alloc, dM_alloc;
00046 };
00047 
00048 
00049 #endif
00050 

Generated on Fri Sep 22 01:17:14 2017 for NAMD by  doxygen 1.4.7