From 7ffe4d83d7e7d4b08d9de3ebde313ce091df98c3 Mon Sep 17 00:00:00 2001 From: graham Date: Tue, 28 Jun 2011 18:33:08 +0100 Subject: [PATCH] ENH: Using site lists in force calculation. --- .../molecularDynamics/mdFoam/Make/options | 5 +- .../polyatomic/polyatomic/polyatomic.C | 15 +- .../polyatomic/polyatomic/polyatomic.H | 54 +-- .../polyatomic/polyatomic/polyatomicI.H | 308 ++++++++-------- .../polyatomicCloud/polyatomicCloud.C | 23 +- .../polyatomicCloud/polyatomicCloudI.H | 349 +++++++++--------- 6 files changed, 372 insertions(+), 382 deletions(-) diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options index 14f2ed2f93..89431d0625 100644 --- a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options +++ b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options @@ -1,7 +1,6 @@ EXE_INC = \ -I$(LIB_SRC)/lagrangian/molecularDynamics/molecule/lnInclude \ -I$(LIB_SRC)/lagrangian/molecularDynamics/potential/lnInclude \ - -I$(LIB_SRC)/lagrangian/molecularDynamics/molecularMeasurements/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/lagrangian/basic/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude @@ -11,6 +10,4 @@ EXE_LIBS = \ -lfiniteVolume \ -llagrangian \ -lmolecule \ - -lpotential \ - -lmolecularMeasurements - + -lpotential diff --git a/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.C b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.C index f6b43ca0e9..86b1ac6f45 100644 --- a/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.C +++ b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.C @@ -156,13 +156,15 @@ bool Foam::polyatomic::move(polyatomic::trackingData& td, const scalar trackTime tau_ = vector::zero; - forAll(siteForces_, s) + forAll(siteForces_, sI) { - const vector& f = siteForces_[s]; + const vector& f = siteForces_[sI]; a_ += f/m; - tau_ += (constProps.siteReferencePositions()[s] ^ (Q_.T() & f)); + tau_ += + constProps.sites()[sI].siteReferencePosition() + ^ (Q_.T() & f); } v_ += 0.5*trackTime*a_; @@ -231,7 +233,12 @@ void Foam::polyatomic::transformProperties(const vector& separation) void Foam::polyatomic::setSitePositions(const constantProperties& constProps) { - sitePositions_ = position_ + (Q_ & constProps.siteReferencePositions()); + forAll(constProps.sites(), sI) + { + sitePositions_[sI] = + position_ + + (Q_ & constProps.sites()[sI].siteReferencePosition()); + } } diff --git a/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.H b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.H index 5177feb979..3b314ff2ac 100644 --- a/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.H +++ b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.H @@ -41,6 +41,7 @@ SourceFiles #include "IOstream.H" #include "autoPtr.H" #include "diagTensor.H" +#include "constPropSite.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -78,18 +79,16 @@ public: { // Private data - Field siteReferencePositions_; + //- Sites of mass, charge or interaction + List sites_; - List siteMasses_; + //- Which sites require electrostatic interactions + List