| 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. |
| 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] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). |
| 40 |
+ |
* [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). |
| 41 |
|
*/ |
| 42 |
|
|
| 43 |
|
/** |
| 59 |
|
#include "utils/PropertyMap.hpp" |
| 60 |
|
#include "brains/Snapshot.hpp" |
| 61 |
|
#include "brains/SnapshotManager.hpp" |
| 62 |
< |
namespace oopse{ |
| 62 |
> |
namespace OpenMD{ |
| 63 |
|
|
| 64 |
|
|
| 65 |
|
|
| 928 |
|
void addZangle(RealType angle, int snapshotNo) { |
| 929 |
|
((snapshotMan_->getSnapshot(snapshotNo))->*storage_).zAngle[localIndex_] += angle; |
| 930 |
|
} |
| 931 |
+ |
|
| 932 |
+ |
/** |
| 933 |
+ |
* Returns the previous electric field of this stuntDouble |
| 934 |
+ |
* @return the electric field of this stuntDouble |
| 935 |
+ |
*/ |
| 936 |
+ |
Vector3d getPrevEField() { |
| 937 |
+ |
return ((snapshotMan_->getPrevSnapshot())->*storage_).electricField[localIndex_]; |
| 938 |
+ |
} |
| 939 |
+ |
|
| 940 |
+ |
/** |
| 941 |
+ |
* Returns the current electric field of this stuntDouble |
| 942 |
+ |
* @return the electric field of this stuntDouble |
| 943 |
+ |
*/ |
| 944 |
+ |
Vector3d getEField() { |
| 945 |
+ |
return ((snapshotMan_->getCurrentSnapshot())->*storage_).electricField[localIndex_]; |
| 946 |
+ |
} |
| 947 |
+ |
|
| 948 |
+ |
/** |
| 949 |
+ |
* Returns the electric field of this stuntDouble in specified snapshot |
| 950 |
+ |
* @return the electric field of this stuntDouble |
| 951 |
+ |
* @param snapshotNo |
| 952 |
+ |
*/ |
| 953 |
+ |
Vector3d getEField(int snapshotNo) { |
| 954 |
+ |
return ((snapshotMan_->getSnapshot(snapshotNo))->*storage_).electricField[localIndex_]; |
| 955 |
+ |
} |
| 956 |
|
|
| 957 |
+ |
/** |
| 958 |
+ |
* Sets the previous electric field of this stuntDouble |
| 959 |
+ |
* @param electricField new electric field |
| 960 |
+ |
* @see #getEField |
| 961 |
+ |
*/ |
| 962 |
+ |
void setPrevEField(const Vector3d& electricField) { |
| 963 |
+ |
((snapshotMan_->getPrevSnapshot())->*storage_).electricField[localIndex_] = electricField; |
| 964 |
+ |
} |
| 965 |
+ |
|
| 966 |
+ |
/** |
| 967 |
+ |
* Sets the current electric field of this stuntDouble |
| 968 |
+ |
* @param electricField new electric field |
| 969 |
+ |
*/ |
| 970 |
+ |
void setEField(const Vector3d& electricField) { |
| 971 |
+ |
DataStorage& data = snapshotMan_->getCurrentSnapshot()->*storage_; |
| 972 |
+ |
data.electricField[localIndex_] = electricField; |
| 973 |
+ |
//((snapshotMan_->getCurrentSnapshot())->*storage_).electricField[localIndex_] = electricField; |
| 974 |
+ |
} |
| 975 |
+ |
|
| 976 |
+ |
/** |
| 977 |
+ |
* Sets the electric field of this stuntDouble in specified snapshot |
| 978 |
+ |
* @param electricField electric field to be set |
| 979 |
+ |
* @param snapshotNo |
| 980 |
+ |
* @see #getEField |
| 981 |
+ |
*/ |
| 982 |
+ |
void setEField(const Vector3d& electricField, int snapshotNo) { |
| 983 |
+ |
|
| 984 |
+ |
((snapshotMan_->getSnapshot(snapshotNo))->*storage_).electricField[localIndex_] = electricField; |
| 985 |
+ |
|
| 986 |
+ |
} |
| 987 |
+ |
|
| 988 |
+ |
|
| 989 |
|
/** Set the force of this stuntDouble to zero */ |
| 990 |
|
void zeroForcesAndTorques(); |
| 991 |
|
/** |
| 1147 |
|
PropertyMap properties_; |
| 1148 |
|
}; |
| 1149 |
|
|
| 1150 |
< |
}//end namespace oopse |
| 1150 |
> |
}//end namespace OpenMD |
| 1151 |
|
#endif //PRIMITIVES_STUNTDOUBLE_HPP |