ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-4/src/io/ElectrostaticAtomTypesSectionParser.cpp
(Generate patch)

Comparing branches/new_design/OOPSE-4/src/io/ElectrostaticAtomTypesSectionParser.cpp (file contents):
Revision 1770 by tim, Tue Nov 23 17:53:43 2004 UTC vs.
Revision 1790 by tim, Mon Nov 29 15:50:05 2004 UTC

# Line 25 | Line 25 | namespace oopse {
25  
26   #include "io/ElectrostaticAtomTypesSectionParser.hpp"
27  
28 + #include "types/AtomType.hpp"
29 + #include "types/DirectionalAtomType.hpp"
30 + #include "UseTheForce/ForceField.hpp"
31 +
32   namespace oopse {
33  
34   ElectrostaticAtomTypesSectionParser::ElectrostaticAtomTypesSectionParser() {
# Line 38 | Line 42 | void ElectrostaticAtomTypesSectionParser::parseLine(Fo
42      //in AtomTypeSection, a line at least contains 2 tokens
43      //atomTypeName and biggest rank
44      //for the time being, we only support up to quadrupole
45 <    //name 0 charge
46 <    //name 1 charge dipole_moment
47 <    //name 2 chargre dipole_moment Qxx Qyy Qzz
45 >    // "name" must match the name in the AtomTypes section
46 >    // charge is given in units of electrons (1.61 x 10^-19 C)
47 >    // Directionality for dipoles and quadrupoles must be given because the body-fixed
48 >    // reference frame for directional atoms is determined by the *mass* distribution and
49 >    // not by the charge distribution.  
50 >    // Dipoles are given in units of Debye  
51 >    // Quadrupoles are given in units of
52 >    // name 0 charge
53 >    // name 1 charge |u| [theta phi psi]
54 >    // name 2 charge |u| Qxx Qyy Qzz [theta phi psi]
55      
56      if (nTokens < 2)  {
57          std::cerr << "ElectrostaticAtomTypesSectionParser Error: Not enought Tokens at line " << lineNo << std::endl;                  
# Line 53 | Line 64 | void ElectrostaticAtomTypesSectionParser::parseLine(Fo
64          if (nTokens < requiredTokens(biggestRank)) {
65  
66          }
56
67          
68 <        AtomType* atomType = ff ->getAtomType(atomTypeName);
68 >        AtomType* atomType = ff.getAtomType(atomTypeName);
69  
70          if (atomType != NULL) {
71              //parse charge
72              double charge = tokenizer.nextTokenAsDouble();
73 <            atomType.addProperty(new DoubleGenericData("Charge", charge));
73 >            atomType->addProperty(new DoubleGenericData("Charge", charge));
74              atomType->setCharge();
75  
76              //parse dipole
77              DirectionalAtomType* dAtomType = dynamic_cast<DirectionalAtomType*>(atomType);            
78              if (dAtomType != NULL) {
79 <                double dipole = tokenizer.nextToken();
79 >                double dipole = tokenizer.nextTokenAsDouble();
80                  dAtomType->addProperty(new DoubleGenericData("Dipole", dipole));
81                  dAtomType->setDipole();
82              } else {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines