ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/io/StickyAtomTypesSectionParser.cpp
(Generate patch)

Comparing trunk/OOPSE-2.0/src/io/StickyAtomTypesSectionParser.cpp (file contents):
Revision 2204 by gezelter, Fri Apr 15 22:04:00 2005 UTC vs.
Revision 2220 by chrisfen, Thu May 5 14:47:35 2005 UTC

# Line 38 | Line 38
38   * University of Notre Dame has been advised of the possibility of
39   * such damages.
40   */
41 <
41 >
42   #include "io/StickyAtomTypesSectionParser.hpp"
43   #include "types/AtomType.hpp"
44   #include "types/DirectionalAtomType.hpp"
45   #include "UseTheForce/ForceField.hpp"
46   #include "utils/simError.h"
47   namespace oopse {
48 <
48 >  
49    StickyAtomTypesSectionParser::StickyAtomTypesSectionParser() {
50      setSectionName("StickyAtomTypes");
51    }
52 <
52 >  
53    void StickyAtomTypesSectionParser::parseLine(ForceField& ff,const std::string& line, int lineNo){
54      StringTokenizer tokenizer(line);
55      int nTokens = tokenizer.countTokens();    
56 <
56 >    
57      //in AtomTypeSection, a line at least contains 8 tokens
58      //atomTypeName and 7 different sticky parameters
59      if (nTokens < 8)  {
60        sprintf(painCave.errMsg, "StickyAtomTypesSectionParser Error: Not enough tokens at line %d\n",
61 <              lineNo);
61 >              lineNo);
62        painCave.isFatal = 1;
63        simError();                      
64      } else {
65 <
65 >      
66        std::string atomTypeName = tokenizer.nextToken();    
67        AtomType* atomType = ff.getAtomType(atomTypeName);
68 <
68 >      
69        if (atomType != NULL) {
70 <        DirectionalAtomType* dAtomType = dynamic_cast<DirectionalAtomType*>(atomType);
71 <            
72 <        if (dAtomType != NULL) {
73 <          StickyParam sticky;
74 <          sticky.w0 = tokenizer.nextTokenAsDouble();
75 <          sticky.v0 = tokenizer.nextTokenAsDouble();
76 <          sticky.v0p = tokenizer.nextTokenAsDouble();
77 <          sticky.rl = tokenizer.nextTokenAsDouble();
78 <          sticky.ru = tokenizer.nextTokenAsDouble();
79 <          sticky.rlp = tokenizer.nextTokenAsDouble();
80 <          sticky.rup = tokenizer.nextTokenAsDouble();  
81 <                
82 <          dAtomType->addProperty(new StickyParamGenericData("Sticky", sticky));
83 <          dAtomType->setSticky();
84 <        } else {
85 <          sprintf(painCave.errMsg, "StickyAtomTypesSectionParser Error: Not enough tokens at line %d\n",
86 <                  lineNo);
87 <          painCave.isFatal = 1;
88 <          simError();            
89 <          std::cerr << "StickyAtomTypesSectionParser Warning:" << std::endl;
90 <        }
70 >        DirectionalAtomType* dAtomType = dynamic_cast<DirectionalAtomType*>(atomType);
71 >        
72 >        if (dAtomType != NULL) {
73 >          StickyParam sticky;
74 >          sticky.w0 = tokenizer.nextTokenAsDouble();
75 >          sticky.v0 = tokenizer.nextTokenAsDouble();
76 >          sticky.v0p = tokenizer.nextTokenAsDouble();
77 >          sticky.rl = tokenizer.nextTokenAsDouble();
78 >          sticky.ru = tokenizer.nextTokenAsDouble();
79 >          sticky.rlp = tokenizer.nextTokenAsDouble();
80 >          sticky.rup = tokenizer.nextTokenAsDouble();  
81 >          
82 >          dAtomType->addProperty(new StickyParamGenericData("Sticky", sticky));
83 >          dAtomType->setSticky();
84 >        } else {
85 >          sprintf(painCave.errMsg, "StickyAtomTypesSectionParser Error: Not enough tokens at line %d\n",
86 >                  lineNo);
87 >          painCave.isFatal = 1;
88 >          simError();            
89 >          std::cerr << "StickyAtomTypesSectionParser Warning:" << std::endl;
90 >        }
91        } else {
92 <        sprintf(painCave.errMsg, "StickyAtomTypesSectionParser Error: Can not find matched AtomType %s\n",
93 <                atomTypeName.c_str());
94 <        painCave.isFatal = 1;
95 <        simError();    
92 >        sprintf(painCave.errMsg, "StickyAtomTypesSectionParser Error: Can not find matched AtomType %s\n",
93 >                atomTypeName.c_str());
94 >        painCave.isFatal = 1;
95 >        simError();    
96          
97        }
98 <                      
98 >      
99      }    
100 <
101 <
100 >        
101    }
102 <
102 >    
103   } //end namespace oopse
104  
105  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines