00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_STRUCTURE_RDFPARAMETER_H
00008 #define BALL_STRUCTURE_RDFPARAMETER_H
00009
00010 #ifndef BALL_KERNEL_ATOM_H
00011 # include <BALL/KERNEL/atom.h>
00012 #endif
00013
00014 #ifndef BALL_STRUCTURE_RADIALDISTRIBUTIONFUNCTION_H
00015 # include <BALL/STRUCTURE/radialDistributionFunction.h>
00016 #endif
00017
00018 #ifndef BALL_FORMAT_PARAMETERSECTION_H
00019 # include <BALL/FORMAT/parameterSection.h>
00020 #endif
00021
00022 #ifndef BALL_MOLMEC_PARAMETERS_FORCEFIELDPARAMETERS_H
00023 # include <BALL/MOLMEC/PARAMETER/forceFieldParameters.h>
00024 #endif
00025
00026 namespace BALL
00027 {
00033 class BALL_EXPORT RDFParameter
00034 : public ParameterSection
00035 {
00036 public:
00037
00038 BALL_CREATE(RDFParameter)
00039
00040
00043
00046 RDFParameter()
00047 ;
00048
00052 RDFParameter(const RDFParameter& rdf_parameter)
00053 ;
00054
00057 virtual ~RDFParameter()
00058 ;
00059
00061
00064
00069 const RDFParameter& operator = (const RDFParameter& rdf_parameter)
00070 ;
00071
00074 virtual void clear()
00075 ;
00076
00078
00081
00088 Position getIndex(Atom::Type type_i, Atom::Type type_j) const
00089 ;
00090
00096 const RadialDistributionFunction& getRDF(Atom::Type type_i,
00097 Atom::Type type_j) const
00098 ;
00099
00105 const RadialDistributionFunction& getRDF(Position index) const
00106 ;
00107
00109
00115 virtual bool extractSection(ForceFieldParameters& parameters,
00116 const String& section_name)
00117 ;
00118
00122
00130 bool hasRDF(Atom::Type solvent_atom_type, Atom::Type solute_atom_type)
00131 const ;
00132
00136 bool hasParameters(Atom::Type solvent_atom_type,
00137 Atom::Type solute_atom_type) const
00138 ;
00139
00141
00142 protected:
00143
00144
00145 std::vector<RadialDistributionFunction> rdf_list_;
00146
00147
00148 HashMap< Atom::Type, HashMap<Atom::Type, Position> > rdf_indices_;
00149
00150
00151 };
00152
00153 }
00154 #endif // BALL__RDFPARAMETER_H