ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/utils/ParameterManager.hpp
(Generate patch)

Comparing trunk/src/utils/ParameterManager.hpp (file contents):
Revision 2025 by gezelter, Sun Jun 16 15:15:42 2013 UTC vs.
Revision 2026 by gezelter, Wed Oct 22 12:23:59 2014 UTC

# Line 37 | Line 37
37   * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38   * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).          
39   * [4] Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40 * [4] , Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). *
41 *  ParameterManager.hpp
40   *
43 *  Created by Charles F. Vardeman II on 11/16/05.
44 *  @author  Charles F. Vardeman II
45 *  @version $Id$
46 *
41   */
42  
43   #ifndef UTILS_PARAMETERMANAGER_HPP
# Line 159 | Line 153 | struct ParameterTraits<std::pair<int, int> >{
153    static std::string getParamType() { return "std::pair<int, int>";}    
154   };
155  
156 < //OpenMD's internal Vector3d
156 >
157   template<>                    
158 < struct ParameterTraits<OpenMD::Vector3d >{
159 <  typedef OpenMD::Vector3d  RepType;
158 > struct ParameterTraits<std::vector<RealType> >{
159 >  typedef std::vector<RealType>  RepType;
160    template<typename T> static bool    convert(T, RepType&){return false;}
161    template<typename T> static RepType convert(T v)        {RepType tmp; convert(v,tmp);return tmp;}
162    static bool convert(RepType v, RepType& r)            {r=v; return true;}
163    static bool convert(std::string v, RepType& r) {
164      std::cerr << "calling tokenizer\n";
165      OpenMD::StringTokenizer tokenizer(v," ();,\t\n\r");
166 <    if (tokenizer.countTokens() == 3) {
167 <      RealType v1 = tokenizer.nextTokenAsDouble();
168 <      RealType v2 = tokenizer.nextTokenAsDouble();
169 <      RealType v3 = tokenizer.nextTokenAsDouble();
170 <      r = OpenMD::Vector3d(v1, v2, v3);
177 <      return true;
178 <    } else {
179 <      sprintf(painCave.errMsg,
180 <              "ParameterManager Error: "
181 <              "Incorrect number of tokens to make a Vector3!\n");
182 <      painCave.severity = OPENMD_ERROR;
183 <      painCave.isFatal = 1;
184 <      simError();    
166 >    unsigned int size = tokenizer.countTokens();
167 >    r = std::vector<RealType>( size, 0.0 );
168 >    for (unsigned int i = 0; i < size; i++) {
169 >      RealType v = tokenizer.nextTokenAsDouble();
170 >      r[i] = v;
171      }
172 <    return false;
172 >    return true;
173    }
174 <  static std::string getParamType() { return "OpenMD::Vector3d";}    
174 >  static std::string getParamType() {return "std::vector<RealType>"; }
175   };
176  
177  
# Line 205 | Line 191 | class ParameterBase { (public)
191    virtual bool setData(unsigned long int) = 0;
192    virtual bool setData(RealType) = 0;
193    virtual bool setData(std::pair<int, int>) = 0;
194 <  virtual bool setData(OpenMD::Vector3d) = 0;
194 >  virtual bool setData(std::vector<RealType>) = 0;
195    virtual std::string getParamType() = 0;
196   protected:
197    std::string keyword_;
# Line 224 | Line 210 | class Parameter : public ParameterBase{ (public)
210    virtual bool setData(std::string sval) {
211      return internalSetData<std::string>(sval);
212    }
227
213    virtual bool setData(int ival) {
214      return internalSetData<int>(ival);
215    }
231
216    virtual bool setData(unsigned long int lival) {
217      return internalSetData<unsigned long int>(lival);
218    }
235  
219    virtual bool setData(RealType dval) {
220      return internalSetData<RealType>(dval);
221    }
239
222    virtual bool setData(std::pair<int, int> pval) {
223      return internalSetData<std::pair<int, int> >(pval);
224    }
225 <  virtual bool setData(OpenMD::Vector3d pval) {
226 <    return internalSetData<OpenMD::Vector3d >(pval);
225 >  virtual bool setData(std::vector<RealType> pval) {
226 >    return internalSetData<std::vector<RealType> >(pval);
227    }
228    
229    virtual std::string getParamType() { return ParameterTraits<ParamType>::getParamType();}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines