BoxPartition.h

Go to the documentation of this file.
00001 // This is a -*- C++ -*-  file
00002 //------------------------------------------------------------------------------------//
00003 //                                                                                    //
00004 //   Copyright (c) 2001                                                               //
00005 //      INRIA                                                                         //
00006 //      54600 VILLERS LES NANCY                                                       //
00007 //      France                                                                        //
00008 //                                                                                    //
00009 //------------------------------------------------------------------------------------//
00010 //                                                                                    //
00011 //                 * NOTICE OF PROPRIETARY INFORMATION *                              //
00012 //                                                                                    //
00013 // The information contained in this file is considered proprietary and the exclusive //
00014 // property of  INRIA. This information may not be disclosed, duplicated              //
00015 // or used, in whole or in part, for  any purpose  whatsoever without express written //
00016 // authorization from INRIA                                                           //
00017 //                                                                                    //
00018 
00019 
00020 #ifndef _OC_BOX_PARTITION_H_
00021 #define _OC_BOX_PARTITION_H_
00022 
00023 #include "PartitionBaseT.h"
00024 
00025 class  BoxPartition : public  PartitionBase< setOfAtoms >{
00026 
00027   
00028 public:
00029   BoxPartition() ;
00030   BoxPartition(const int size, const double &R_overlap, const double & R_cut) ;
00031   BoxPartition(const int size1, const int size2, const int size3, const double &R_overlap, const double & R_cut) ;
00032   BoxPartition(const int size[3],const double &R_overlap, const double & R_cut) ;
00033   ~BoxPartition() ;
00034   //
00035   bool partitionate(int n, const bool use_frag) ;
00036   //
00037 private :
00038   void innerReperOfMolecule() ;
00039   void projectOnInnerReper() ;
00040   void setToZero() ;
00041   bool setAtomsInKernel();
00042   bool setAtomsInOverlapAndCut(); 
00043   //  bool setAtomsInOverlapAndCut(const double &R_overlap, const double & R_cut); 
00044   void buildLocalNumerotation() ;
00045   void sortInFirstDimension(int* ordre) ;
00046   bool computeBoxEquilibrateCharge( const double &R_overlap, const double &R_cut);
00047   void setNeigboors();
00048  //
00049 protected:
00050   double _gravityCenter[3]  ;
00051   int    _gridOfPartition[3] ;
00052   double _axe1[3]  ;
00053   double _axe2[3]  ;
00054   double _axe3[3]  ;
00055   double _inertialMatrix[3][3] ;
00056 };                      
00057 #endif

Generated on Sat Jan 28 21:07:24 2006 for QC++ by  doxygen 1.4.4