00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_MOLMEC_PARAMETER_QUADRATICBONDSTRETCH_H
00008 #define BALL_MOLMEC_PARAMETER_QUADRATICBONDSTRETCH_H
00009
00010 #ifndef BALL_FORMAT_PARAMETERSECTION_H
00011 # include <BALL/FORMAT/parameterSection.h>
00012 #endif
00013
00014 #ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H
00015 # include <BALL/MOLMEC/PARAMETER/atomTypes.h>
00016 #endif
00017
00018 namespace BALL
00019 {
00027 class BALL_EXPORT QuadraticBondStretch
00028 : public ParameterSection
00029 {
00030 public:
00031
00032 enum
00033 {
00034 UNKNOWN
00035 };
00036
00037 struct BALL_EXPORT Values
00038 {
00039 float r0;
00040 float k;
00041 };
00042
00043 struct BALL_EXPORT Data
00044 {
00045 Atom::StaticAtomAttributes* atom1;
00046 Atom::StaticAtomAttributes* atom2;
00047 Values values;
00048 };
00049
00050
00053 QuadraticBondStretch();
00054
00057 virtual ~QuadraticBondStretch() ;
00058
00061 virtual void clear() ;
00062
00068 virtual bool extractSection(ForceFieldParameters& parameters, const String& section_name);
00069
00071 virtual bool extractSection(Parameters& parameters, const String& section_name);
00072
00075 bool hasParameters(Atom::Type I, Atom::Type J) const;
00076
00079 QuadraticBondStretch::Values getParameters
00080 (Atom::Type I, Atom::Type J) const;
00081
00086 bool assignParameters
00087 (QuadraticBondStretch::Values& parameters,
00088 Atom::Type I, Atom::Type J) const;
00089
00090 protected:
00091
00092 Size number_of_atom_types_;
00093
00094 float* k_;
00095
00096 float* r0_;
00097
00098 bool* is_defined_;
00099
00100 String* names_;
00101 };
00102 }
00103
00104 #endif // BALL_MOLMEC_PARAMETER_QUADRATICBONDSTRETCH_H