00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_SOLVATION_PAIR6_12INTERACTIONENERGYPROCESSOR_H
00008 #define BALL_SOLVATION_PAIR6_12INTERACTIONENERGYPROCESSOR_H
00009
00010 #ifndef BALL_COMMON_H
00011 # include <BALL/common.h>
00012 #endif
00013
00014 #ifndef BALL_DATATYPE_OPTIONS_H
00015 # include <BALL/DATATYPE/options.h>
00016 #endif
00017
00018 #ifndef BALL_MATHS_SURFACE_H
00019 # include <BALL/MATHS/surface.h>
00020 #endif
00021
00022 #ifndef BALL_ENERGY_ENERGYPROCESSOR_H
00023 # include <BALL/ENERGY/energyProcessor.h>
00024 #endif
00025
00026 #ifndef BALL_STRUCTURE_RDFPARAMETER_H
00027 # include <BALL/STRUCTURE/RDFParameter.h>
00028 #endif
00029
00030 #ifndef BALL_SOLVATION_PAIR6_12RDFINTEGRATOR_H
00031 # include <BALL/SOLVATION/pair6_12RDFIntegrator.h>
00032 #endif
00033
00034 #ifndef BALL_SOLVATION_SOLVENTDESCRIPTOR_H
00035 # include <BALL/SOLVATION/solventDescriptor.h>
00036 #endif
00037
00038 namespace BALL
00039 {
00048 class BALL_EXPORT Pair6_12InteractionEnergyProcessor
00049 : public EnergyProcessor
00050 {
00051
00052 public:
00053
00054
00055 enum SurfaceType
00056 {
00057 SURFACE__UNKNOWN = 0,
00058 SURFACE__SAS = 1,
00059 SURFACE__SES = 2,
00060 SURFACE__EXTERNAL = 3
00061 };
00062
00067 struct BALL_EXPORT Option
00068 {
00069
00075 static const char* VERBOSITY;
00076
00083 static const char* USE_RDF;
00084
00091 static const char* RDF_FILENAME;
00092
00099 static const char* SOLVENT_FILENAME;
00100
00107 static const char* LJ_FILENAME;
00108
00115 static const char* SOLVENT_NUMBER_DENSITY;
00116
00121 static const char* SURFACE_TYPE;
00122
00127 static const char* SURFACE_FILENAME;
00128
00129 };
00130
00135 struct BALL_EXPORT Default
00136 {
00140 static const Size VERBOSITY;
00141
00146 static const bool USE_RDF;
00147 static const char* RDF_FILENAME;
00148 static const char* SOLVENT_FILENAME;
00149 static const char* LJ_FILENAME;
00150
00156 static const float SOLVENT_NUMBER_DENSITY;
00157
00161 static const Size SURFACE_TYPE;
00162
00166 static const char* SURFACE_FILENAME;
00167
00168 };
00169
00173
00176 Pair6_12InteractionEnergyProcessor()
00177 ;
00178
00182 Pair6_12InteractionEnergyProcessor
00183 (const Pair6_12InteractionEnergyProcessor& proc)
00184 ;
00185
00192 Pair6_12InteractionEnergyProcessor(const SolventDescriptor& solvent,
00193 const RDFParameter& rdf_param,
00194 const Pair6_12RDFIntegrator& rdf_integrator)
00195 ;
00196
00199 virtual ~Pair6_12InteractionEnergyProcessor() ;
00200
00202
00205
00209 void setSolventDescriptor(const SolventDescriptor& solvent) ;
00210
00214 const SolventDescriptor& getSolventDescriptor() const ;
00215
00219 void setRDFParameters(const RDFParameter& rdf_parameter) ;
00220
00224 const RDFParameter& getRDFParameter() const ;
00225
00229 void setRDFIntegrator(const Pair6_12RDFIntegrator& integrator) ;
00230
00234 const Pair6_12RDFIntegrator& getRDFIntegrator() const ;
00235
00237
00240
00243 const Pair6_12InteractionEnergyProcessor& operator =
00244 (const Pair6_12InteractionEnergyProcessor& proc) ;
00245
00248 virtual void clear() ;
00249
00251
00254
00257 virtual bool finish()
00258 throw(Exception::DivisionByZero);
00259
00261
00264
00267 Options options;
00268
00270
00273
00276 bool operator == (const Pair6_12InteractionEnergyProcessor& proc)
00277 const ;
00278
00280
00281 protected:
00282
00283
00284
00285 SolventDescriptor solvent_;
00286
00287
00288
00289 RDFParameter rdf_parameter_;
00290
00291
00292
00293 Pair6_12RDFIntegrator rdf_integrator_;
00294
00295
00296 private:
00297
00298 void getExternalSurface_(std::vector<std::pair<Vector3, Surface> >& surface_map,
00299 const char* surface_file) ;
00300 };
00301
00302 }
00303
00304 #endif // BALL__PAIR6_12INTERACTIONENERGYPROCESSOR_H