00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: electrostaticPotentialCalculator.h,v 1.10 2005/12/23 17:01:59 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_SOLVATION_ELECTROSTATICPOTENTIALCALCULATOR_H 00008 #define BALL_SOLVATION_ELECTROSTATICPOTENTIALCALCULATOR_H 00009 00010 #ifndef BALL_KERNEL_SYSTEM_H 00011 # include <BALL/KERNEL/system.h> 00012 #endif 00013 00014 #ifndef BALL_DATATYPE_OPTIONS_H 00015 # include <BALL/DATATYPE/options.h> 00016 #endif 00017 00018 #ifndef BALL_STRUCTURE_DEFAULTPROCESSORS_H 00019 # include <BALL/STRUCTURE/defaultProcessors.h> 00020 #endif 00021 00022 namespace BALL 00023 { 00024 class FragmentDB; 00025 00033 class BALL_EXPORT ElectrostaticPotentialCalculator 00034 { 00035 BALL_CREATE(ElectrostaticPotentialCalculator) 00036 00037 public: 00038 00043 struct Option 00044 { 00047 static const char* LOCALITY; 00048 }; 00049 00052 struct Default 00053 { 00057 static const bool LOCALITY; 00058 }; 00059 00063 00066 ElectrostaticPotentialCalculator() 00067 ; 00068 00071 ElectrostaticPotentialCalculator(const ElectrostaticPotentialCalculator& epc) 00072 ; 00073 00076 virtual ~ElectrostaticPotentialCalculator() 00077 ; 00078 00080 00083 00087 void apply(System &S) 00088 throw(Exception::NullPointer); 00089 00091 void setFragmentDB(const FragmentDB* db) 00092 ; 00093 00095 const FragmentDB* getFragmentDB() const 00096 ; 00097 00099 00102 00105 float operator() (const Vector3& pos) 00106 ; 00107 00109 00112 00115 Options options; 00116 00118 00120 //_@{ 00121 protected: 00122 00123 System mySys_; 00124 00125 FragmentDB *frag_db_; 00126 00127 AssignRadiusProcessor radii_; 00128 00129 AssignChargeProcessor charges_; 00130 //_@} 00131 }; 00132 } 00133 00134 00135 #endif // BALL_SOLVATION_ELECTROSTATICPOTENTIALCALCULATOR_H