00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: solventParameter.h,v 1.17 2005/12/23 17:02:00 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_SOLVATION_SOLVENTPARAMETER_H 00008 #define BALL_SOLVATION_SOLVENTPARAMETER_H 00009 00010 #ifndef BALL_SOLVATION_SOLVENTDESCRIPTOR_H 00011 # include <BALL/SOLVATION/solventDescriptor.h> 00012 #endif 00013 00014 #ifndef BALL_FORMAT_PARAMETERS_H 00015 # include <BALL/FORMAT/parameters.h> 00016 #endif 00017 00018 #ifndef BALL_FORMAT_PARAMETERSECTION_H 00019 # include <BALL/FORMAT/parameterSection.h> 00020 #endif 00021 00022 #ifndef BALL_MOLMEC_PARAMETER_FORCEFIELDPARAMETERS_H 00023 # include <BALL/MOLMEC/PARAMETER/forceFieldParameters.h> 00024 #endif 00025 00026 namespace BALL 00027 { 00033 class BALL_EXPORT SolventParameter 00034 : public ParameterSection 00035 { 00036 00037 public: 00038 00039 BALL_CREATE(SolventParameter) 00040 00041 00044 00047 SolventParameter(); 00048 00049 //SolventParameter(Parameters& parameters); 00050 00053 SolventParameter(const SolventParameter& param); 00054 00057 SolventParameter(const AtomTypes& atom_types); 00058 00060 virtual ~SolventParameter(); 00061 00063 00066 00069 const SolventParameter& operator = (const SolventParameter& param); 00070 00073 virtual void clear(); 00074 00076 00079 00082 const SolventDescriptor& getSolventDescriptor() const; 00083 00087 SolventDescriptor& getSolventDescriptor(); 00088 00091 const String& getSolventName() const; 00092 00093 00096 const float& getSolventDensity() const; 00097 00100 const std::vector<SolventAtomDescriptor>& getSolventDescription() const; 00101 00103 00106 00109 bool operator == (const SolventParameter& param) const; 00110 00112 00115 virtual bool extractSection(Parameters& parameters, const String& section_name); 00116 00117 00118 protected: 00119 00120 /*_ The name of the solvent description freom the INI file 00121 */ 00122 String name_; 00123 00124 /*_ The density of the solvent description freom the INI file 00125 */ 00126 float number_density_; 00127 00128 /*_ The atoms of the solvent description freom the INI file 00129 */ 00130 std::vector<SolventAtomDescriptor> solvent_atoms_; 00131 00132 /*_ The solvent descriptor to be created 00133 */ 00134 SolventDescriptor solvent_descriptor_; 00135 00136 /*_ 00137 */ 00138 AtomTypes atom_types_; 00139 00140 }; 00141 } // namespace BALL 00142 00143 #endif // BALL_SOLVATION_SOLVENTPARAMETER_H