| 55 | 
  | 
#include <utility> | 
| 56 | 
  | 
#include <vector> | 
| 57 | 
  | 
 | 
| 58 | 
< | 
#include "io/basic_ifstrstream.hpp" | 
| 58 | 
> | 
#include "io/ifstrstream.hpp" | 
| 59 | 
  | 
#include "io/ForceFieldOptions.hpp" | 
| 60 | 
  | 
#include "utils/TypeContainer.hpp" | 
| 61 | 
  | 
#include "utils/Tuple.hpp" | 
| 65 | 
  | 
#include "types/TorsionType.hpp" | 
| 66 | 
  | 
#include "types/InversionType.hpp" | 
| 67 | 
  | 
#include "types/NonBondedInteractionType.hpp" | 
| 68 | 
– | 
#include "UseTheForce/fForceOptions.h" | 
| 68 | 
  | 
namespace OpenMD { | 
| 69 | 
  | 
 | 
| 70 | 
  | 
  /** | 
| 82 | 
  | 
    typedef TypeContainer<InversionType, 4> InversionTypeContainer; | 
| 83 | 
  | 
    typedef TypeContainer<NonBondedInteractionType, 2> NonBondedInteractionTypeContainer; | 
| 84 | 
  | 
     | 
| 85 | 
< | 
    ForceField();  | 
| 85 | 
> | 
    ForceField(); | 
| 86 | 
  | 
     | 
| 87 | 
< | 
    virtual ~ForceField(); | 
| 87 | 
> | 
    virtual ~ForceField() {}; | 
| 88 | 
  | 
 | 
| 89 | 
  | 
    std::string getForceFieldFileName() { | 
| 90 | 
  | 
      return forceFieldFileName_; | 
| 97 | 
  | 
    virtual void parse(const std::string& filename) = 0;   | 
| 98 | 
  | 
 | 
| 99 | 
  | 
    AtomType* getAtomType(const std::string &at); | 
| 100 | 
+ | 
    AtomType* getAtomType(int ident); | 
| 101 | 
  | 
    BondType* getBondType(const std::string &at1, const std::string &at2); | 
| 102 | 
  | 
    BendType* getBendType(const std::string &at1, const std::string &at2, | 
| 103 | 
  | 
                          const std::string &at3); | 
| 138 | 
  | 
    unsigned int getNAtomType() { | 
| 139 | 
  | 
      return atomTypeCont_.size(); | 
| 140 | 
  | 
    } | 
| 141 | 
+ | 
 | 
| 142 | 
+ | 
    AtomTypeContainer* getAtomTypes() { | 
| 143 | 
+ | 
      return &atomTypeCont_; | 
| 144 | 
+ | 
    } | 
| 145 | 
+ | 
     | 
| 146 | 
+ | 
    NonBondedInteractionTypeContainer* getNonBondedInteractionTypes() { | 
| 147 | 
+ | 
      return &nonBondedInteractionTypeCont_; | 
| 148 | 
+ | 
    } | 
| 149 | 
  | 
         | 
| 150 | 
  | 
    bool addAtomType(const std::string &at, AtomType* atomType); | 
| 151 | 
  | 
 | 
| 173 | 
  | 
     | 
| 174 | 
  | 
    ForceFieldOptions& getForceFieldOptions() {return forceFieldOptions_;} | 
| 175 | 
  | 
 | 
| 168 | 
– | 
    void setFortranForceOptions(void); | 
| 169 | 
– | 
 | 
| 170 | 
– | 
  | 
| 176 | 
  | 
  protected: | 
| 177 | 
  | 
 | 
| 178 | 
  | 
    AtomTypeContainer atomTypeCont_;     | 
| 182 | 
  | 
    InversionTypeContainer inversionTypeCont_; | 
| 183 | 
  | 
    NonBondedInteractionTypeContainer nonBondedInteractionTypeCont_; | 
| 184 | 
  | 
    ForceFieldOptions forceFieldOptions_; | 
| 185 | 
+ | 
    std::map<int, std::string> atypeIdentToName; | 
| 186 | 
  | 
     | 
| 187 | 
  | 
  private:   | 
| 188 | 
< | 
    std::string ffPath_; | 
| 189 | 
< | 
     | 
| 184 | 
< | 
    std::string wildCardAtomTypeName_; | 
| 185 | 
< | 
     | 
| 188 | 
> | 
    std::string ffPath_;     | 
| 189 | 
> | 
    std::string wildCardAtomTypeName_;     | 
| 190 | 
  | 
    std::string forceFieldFileName_;     | 
| 191 | 
  | 
     | 
| 192 | 
  | 
  }; |