| 1 |
|
/* |
| 2 |
< |
* Copyright (C) 2000-2004 Object Oriented Parallel Simulation Engine (OOPSE) project |
| 2 |
> |
* Copyright (C) 2000-2009 The Open Molecular Dynamics Engine (OpenMD) project |
| 3 |
|
* |
| 4 |
< |
* Contact: oopse@oopse.org |
| 4 |
> |
* Contact: gezelter@openscience.org |
| 5 |
|
* |
| 6 |
|
* This program is free software; you can redistribute it and/or |
| 7 |
|
* modify it under the terms of the GNU Lesser General Public License |
| 25 |
|
|
| 26 |
|
#include "primitives/RigidBody.hpp" |
| 27 |
|
|
| 28 |
< |
namespace oopse { |
| 28 |
> |
namespace OpenMD { |
| 29 |
|
|
| 30 |
|
RigidBody::RigidBody() : StuntDouble(otRigidBody, &Snapshot::rigidbodyData){ |
| 31 |
|
|
| 33 |
|
|
| 34 |
|
void RigidBody::setPrevA(const RotMat3x3d& a) { |
| 35 |
|
((snapshotMan_->getPrevSnapshot())->*storage_).aMat[localIndex_] = a; |
| 36 |
< |
((snapshotMan_->getPrevSnapshot())->*storage_).unitVector[localIndex_] = a.inverse() * sU_.getColum(2); |
| 36 |
> |
((snapshotMan_->getPrevSnapshot())->*storage_).unitVector[localIndex_] = a.inverse() * sU_.getColumn(2); |
| 37 |
|
|
| 38 |
|
std::vector<Atom*>::iterator i; |
| 39 |
|
for (i = atoms_.begin(); i != atoms_.end(); ++i) { |
| 47 |
|
|
| 48 |
|
void RigidBody::setA(const RotMat3x3d& a) { |
| 49 |
|
((snapshotMan_->getCurrentSnapshot())->*storage_).aMat[localIndex_] = a; |
| 50 |
< |
((snapshotMan_->getCurrentSnapshot())->*storage_).unitVector[localIndex_] = a.inverse() * sU_.getColum(2); |
| 50 |
> |
((snapshotMan_->getCurrentSnapshot())->*storage_).unitVector[localIndex_] = a.inverse() * sU_.getColumn(2); |
| 51 |
|
|
| 52 |
|
std::vector<Atom*>::iterator i; |
| 53 |
|
for (i = atoms_.begin(); i != atoms_.end(); ++i) { |
| 59 |
|
|
| 60 |
|
void RigidBody::setA(const RotMat3x3d& a, int snapshotNo) { |
| 61 |
|
((snapshotMan_->getSnapshot(snapshotNo))->*storage_).aMat[localIndex_] = a; |
| 62 |
< |
((snapshotMan_->getSnapshot(snapshotNo))->*storage_).unitVector[localIndex_] = a.inverse() * sU_.getColum(2); |
| 62 |
> |
((snapshotMan_->getSnapshot(snapshotNo))->*storage_).unitVector[localIndex_] = a.inverse() * sU_.getColumn(2); |
| 63 |
|
|
| 64 |
|
std::vector<Atom*>::iterator i; |
| 65 |
|
for (i = atoms_.begin(); i != atoms_.end(); ++i) { |
| 221 |
|
if (n_linear_coords > 1) { |
| 222 |
|
sprintf( painCave.errMsg, |
| 223 |
|
"RigidBody error.\n" |
| 224 |
< |
"\tOOPSE found more than one axis in this rigid body with a vanishing \n" |
| 224 |
> |
"\tOpenMD found more than one axis in this rigid body with a vanishing \n" |
| 225 |
|
"\tmoment of inertia. This can happen in one of three ways:\n" |
| 226 |
|
"\t 1) Only one atom was specified, or \n" |
| 227 |
|
"\t 2) All atoms were specified at the same location, or\n" |