# | Line 6 | Line 6 | |
---|---|---|
6 | * redistribute this software in source and binary code form, provided | |
7 | * that the following conditions are met: | |
8 | * | |
9 | < | * 1. Acknowledgement of the program authors must be made in any |
10 | < | * publication of scientific results based in part on use of the |
11 | < | * program. An acceptable form of acknowledgement is citation of |
12 | < | * the article in which the program was described (Matthew |
13 | < | * A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher |
14 | < | * J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented |
15 | < | * Parallel Simulation Engine for Molecular Dynamics," |
16 | < | * J. Comput. Chem. 26, pp. 252-271 (2005)) |
17 | < | * |
18 | < | * 2. Redistributions of source code must retain the above copyright |
9 | > | * 1. Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | |
11 | * | |
12 | < | * 3. Redistributions in binary form must reproduce the above copyright |
12 | > | * 2. Redistributions in binary form must reproduce the above copyright |
13 | * notice, this list of conditions and the following disclaimer in the | |
14 | * documentation and/or other materials provided with the | |
15 | * distribution. | |
# | Line 37 | Line 28 | |
28 | * arising out of the use of or inability to use software, even if the | |
29 | * University of Notre Dame has been advised of the possibility of | |
30 | * such damages. | |
31 | + | * |
32 | + | * SUPPORT OPEN SCIENCE! If you use OpenMD or its source code in your |
33 | + | * research, please cite the appropriate papers when you publish your |
34 | + | * work. Good starting points are: |
35 | + | * |
36 | + | * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). |
37 | + | * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). |
38 | + | * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). |
39 | + | * [4] Vardeman & Gezelter, in progress (2009). |
40 | */ | |
41 | ||
42 | #include <iostream> | |
# | Line 48 | Line 48 | |
48 | #include "utils/MoLocator.hpp" | |
49 | #include "types/AtomType.hpp" | |
50 | ||
51 | < | namespace oopse { |
51 | > | namespace OpenMD { |
52 | MoLocator::MoLocator( MoleculeStamp* theStamp, ForceField* theFF){ | |
53 | ||
54 | myStamp = theStamp; | |
# | Line 58 | Line 58 | namespace oopse { | |
58 | } | |
59 | ||
60 | void MoLocator::placeMol( const Vector3d& offset, const Vector3d& ort, Molecule* mol){ | |
61 | + | |
62 | Vector3d newCoor; | |
63 | Vector3d curRefCoor; | |
64 | RotMat3x3d rotMat = latVec2RotMat(ort); | |
# | Line 78 | Line 79 | namespace oopse { | |
79 | ||
80 | newCoor = rotMat * refCoords[i]; | |
81 | newCoor += offset; | |
82 | < | |
83 | < | integrableObject->setPos( newCoor); |
82 | > | |
83 | > | integrableObject->setPos(newCoor); |
84 | integrableObject->setVel(V3Zero); | |
85 | ||
86 | if(integrableObject->isDirectional()){ | |
# | Line 94 | Line 95 | namespace oopse { | |
95 | RigidBodyStamp* rbStamp; | |
96 | int nAtoms; | |
97 | int nRigidBodies; | |
98 | < | std::vector<double> mass; |
98 | > | std::vector<RealType> mass; |
99 | Vector3d coor; | |
100 | Vector3d refMolCom; | |
101 | int nAtomsInRb; | |
102 | < | double totMassInRb; |
103 | < | double currAtomMass; |
104 | < | double molMass; |
102 | > | RealType totMassInRb; |
103 | > | RealType currAtomMass; |
104 | > | RealType molMass; |
105 | ||
106 | nAtoms= myStamp->getNAtoms(); | |
107 | nRigidBodies = myStamp->getNRigidBodies(); | |
# | Line 182 | Line 183 | namespace oopse { | |
183 | refCoords[i] -= refMolCom; | |
184 | } | |
185 | ||
186 | < | double getAtomMass(const std::string& at, ForceField* myFF) { |
187 | < | double mass; |
186 | > | RealType getAtomMass(const std::string& at, ForceField* myFF) { |
187 | > | RealType mass; |
188 | AtomType* atomType= myFF->getAtomType(at); | |
189 | if (atomType != NULL) { | |
190 | mass = atomType->getMass(); | |
# | Line 194 | Line 195 | namespace oopse { | |
195 | return mass; | |
196 | } | |
197 | ||
198 | < | double getMolMass(MoleculeStamp *molStamp, ForceField *myFF) { |
198 | > | RealType getMolMass(MoleculeStamp *molStamp, ForceField *myFF) { |
199 | int nAtoms; | |
200 | < | double totMass = 0; |
200 | > | RealType totMass = 0; |
201 | nAtoms = molStamp->getNAtoms(); | |
202 | ||
203 | for(size_t i = 0; i < nAtoms; i++) { | |
# | Line 207 | Line 208 | namespace oopse { | |
208 | } | |
209 | RotMat3x3d latVec2RotMat(const Vector3d& lv){ | |
210 | ||
211 | < | double theta =acos(lv[2]); |
212 | < | double phi = atan2(lv[1], lv[0]); |
213 | < | double psi = 0; |
211 | > | RealType theta =acos(lv[2]); |
212 | > | RealType phi = atan2(lv[1], lv[0]); |
213 | > | RealType psi = 0; |
214 | ||
215 | return RotMat3x3d(phi, theta, psi); | |
216 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |