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

Comparing trunk/OOPSE-3.0/src/io/StickyAtomTypesSectionParser.cpp (file contents):
Revision 1957 by tim, Tue Jan 25 17:45:23 2005 UTC vs.
Revision 2220 by chrisfen, Thu May 5 14:47:35 2005 UTC

# Line 1 | Line 1
1 < /*
1 > /*
2   * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3   *
4   * The University of Notre Dame grants you ("Licensee") a
# 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 <
49 < StickyAtomTypesSectionParser::StickyAtomTypesSectionParser() {
48 >  
49 >  StickyAtomTypesSectionParser::StickyAtomTypesSectionParser() {
50      setSectionName("StickyAtomTypes");
51 < }
52 <
53 < void StickyAtomTypesSectionParser::parseLine(ForceField& ff,const std::string& line, int lineNo){
51 >  }
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);
62 <        painCave.isFatal = 1;
63 <        simError();                      
60 >      sprintf(painCave.errMsg, "StickyAtomTypesSectionParser Error: Not enough tokens at line %d\n",
61 >              lineNo);
62 >      painCave.isFatal = 1;
63 >      simError();                      
64      } else {
65 <
66 <        std::string atomTypeName = tokenizer.nextToken();    
67 <        AtomType* atomType = ff.getAtomType(atomTypeName);
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 <            }
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();    
65 >      
66 >      std::string atomTypeName = tokenizer.nextToken();    
67 >      AtomType* atomType = ff.getAtomType(atomTypeName);
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          }
91 <                      
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();    
96 >        
97 >      }
98 >      
99      }    
100 <
101 <
102 < }
103 <
100 >        
101 >  }
102 >    
103   } //end namespace oopse
104  
105  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines