diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/createFields.H b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/createFields.H
new file mode 100644
index 0000000000..dc88bf6e88
--- /dev/null
+++ b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/createFields.H
@@ -0,0 +1,17 @@
+ Info<< "\nReading field U\n" << endl;
+ volVectorField U
+ (
+ IOobject
+ (
+ "U",
+ runTime.timeName(),
+ mesh,
+ IOobject::MUST_READ,
+ IOobject::AUTO_WRITE
+ ),
+ mesh
+ );
+
+ potential pot(mesh);
+
+ polyatomicCloud molecules(mesh, pot);
diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C
index 779172803d..660c12a5b8 100644
--- a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C
+++ b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C
@@ -30,59 +30,25 @@ Description
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
-#include "md.H"
+#include "polyatomicCloud.H"
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
+ #include "createFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
- Info<< "\nReading field U\n" << endl;
- volVectorField U
- (
- IOobject
- (
- "U",
- runTime.timeName(),
- mesh,
- IOobject::MUST_READ,
- IOobject::AUTO_WRITE
- ),
- mesh
- );
-
- potential pot(mesh);
-
- moleculeCloud molecules(mesh, pot);
-
- #include "temperatureAndPressureVariables.H"
-
- label nAveragingSteps = 0;
-
Info<< "\nStarting time loop\n" << endl;
while (runTime.loop())
{
- nAveragingSteps++;
-
Info<< "Time = " << runTime.timeName() << endl;
molecules.evolve();
- #include "meanMomentumEnergyAndNMols.H"
-
- #include "temperatureAndPressure.H"
-
- runTime.write();
-
- if (runTime.outputTime())
- {
- nAveragingSteps = 0;
- }
-
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
diff --git a/src/lagrangian/molecularDynamics/Allwmake b/src/lagrangian/molecularDynamics/Allwmake
index 7c17819ad5..118ba05f1a 100755
--- a/src/lagrangian/molecularDynamics/Allwmake
+++ b/src/lagrangian/molecularDynamics/Allwmake
@@ -4,7 +4,6 @@ makeType=${1:-libso}
set -x
wmake $makeType potential
-wmake $makeType molecularMeasurements
wmake $makeType molecule
# ----------------------------------------------------------------- end-of-file
diff --git a/src/lagrangian/molecularDynamics/molecule/Make/files b/src/lagrangian/molecularDynamics/molecule/Make/files
index 9086ba7ffa..7f8abcb0f3 100644
--- a/src/lagrangian/molecularDynamics/molecule/Make/files
+++ b/src/lagrangian/molecularDynamics/molecule/Make/files
@@ -1,9 +1,8 @@
-reducedUnits/reducedUnits.C
-reducedUnits/reducedUnitsIO.C
+constPropSite/constPropSite.C
-molecule/molecule.C
-molecule/moleculeIO.C
+polyatomic/polyatomic/polyatomic.C
+polyatomic/polyatomic/polyatomicIO.C
-moleculeCloud/moleculeCloud.C
+polyatomic/polyatomicCloud/polyatomicCloud.C
LIB = $(FOAM_LIBBIN)/libmolecule
diff --git a/src/lagrangian/molecularDynamics/molecule/constPropSite/constPropSite.C b/src/lagrangian/molecularDynamics/molecule/constPropSite/constPropSite.C
new file mode 100644
index 0000000000..431f37aeb4
--- /dev/null
+++ b/src/lagrangian/molecularDynamics/molecule/constPropSite/constPropSite.C
@@ -0,0 +1,76 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2011-2011 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ constPropSite
+
+Description
+
+\*----------------------------------------------------------------------------*/
+
+#include "constPropSite.H"
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::constPropSite::constPropSite()
+:
+ siteReferencePosition_(vector::zero),
+ siteMass_(0.0),
+ siteCharge_(0.0),
+ siteId_(0),
+ name_(),
+ pairPotentialSite_(false),
+ electrostaticSite_(false)
+{}
+
+
+Foam::constPropSite::constPropSite
+(
+ const vector& siteReferencePosition,
+ const scalar& siteMass,
+ const scalar& siteCharge,
+ const label& siteId,
+ const word& name,
+ const bool& pairPotentialSite,
+ const bool& electrostaticSite
+)
+:
+ siteReferencePosition_(siteReferencePosition),
+ siteMass_(siteMass),
+ siteCharge_(siteCharge),
+ siteId_(siteId),
+ name_(name),
+ pairPotentialSite_(pairPotentialSite),
+ electrostaticSite_(electrostaticSite)
+{}
+
+
+// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
+
+Foam::constPropSite::~constPropSite()
+{}
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+// ************************************************************************* //
diff --git a/src/lagrangian/molecularDynamics/molecule/constPropSite/constPropSite.H b/src/lagrangian/molecularDynamics/molecule/constPropSite/constPropSite.H
new file mode 100644
index 0000000000..0ffb63b0a8
--- /dev/null
+++ b/src/lagrangian/molecularDynamics/molecule/constPropSite/constPropSite.H
@@ -0,0 +1,162 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2011-2011 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+Class
+
+
+Description
+
+SourceFiles
+ constPropSiteI.H
+ constPropSite.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef constPropSite_H
+#define constPropSite_H
+
+#include "vector.H"
+#include "IFstream.H"
+#include "OFstream.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+ Class constPropSite Declaration
+\*---------------------------------------------------------------------------*/
+
+class constPropSite
+{
+ // Private data
+
+ //-
+ vector siteReferencePosition_;
+
+ //-
+ scalar siteMass_;
+
+ //-
+ scalar siteCharge_;
+
+ //-
+ label siteId_;
+
+ //-
+ word name_;
+
+ //-
+ bool pairPotentialSite_;
+
+ //-
+ bool electrostaticSite_;
+
+
+public:
+
+ // Constructors
+
+ //- Construct null
+ constPropSite();
+
+ //- Construct from components
+ constPropSite
+ (
+ const vector& siteReferencePosition,
+ const scalar& siteMass,
+ const scalar& siteCharge,
+ const label& siteId,
+ const word& name,
+ const bool& pairPotentialSite,
+ const bool& electrostaticSite
+ );
+
+
+ // Selectors
+
+ // Destructor
+
+ ~constPropSite();
+
+ // Member Functions
+
+ // Access
+
+ //-
+ inline const vector& siteReferencePosition() const;
+
+ //-
+ inline vector& siteReferencePosition();
+
+ //-
+ inline const scalar& siteMass() const;
+
+ //-
+ inline scalar& siteMass();
+
+ //-
+ inline const scalar& siteCharge() const;
+
+ //-
+ inline scalar& siteCharge();
+
+ //-
+ inline const label& siteId() const;
+
+ //-
+ inline label& siteId();
+
+ //-
+ inline const word& name() const;
+
+ //-
+ inline word& name();
+
+ //-
+ inline const bool& pairPotentialSite() const;
+
+ //-
+ inline bool& pairPotentialSite();
+
+ //-
+ inline const bool& electrostaticSite() const;
+
+ //-
+ inline bool& electrostaticSite();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "constPropSiteI.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/molecularDynamics/molecule/constPropSite/constPropSiteI.H b/src/lagrangian/molecularDynamics/molecule/constPropSite/constPropSiteI.H
new file mode 100644
index 0000000000..dbeb395920
--- /dev/null
+++ b/src/lagrangian/molecularDynamics/molecule/constPropSite/constPropSiteI.H
@@ -0,0 +1,117 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | Copyright (C) 2011-2011 OpenCFD Ltd.
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+
+
+Description
+
+\*---------------------------------------------------------------------------*/
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+inline const Foam::vector& Foam::constPropSite::siteReferencePosition() const
+{
+ return siteReferencePosition_;
+}
+
+
+inline Foam::vector& Foam::constPropSite::siteReferencePosition()
+{
+ return siteReferencePosition_;
+}
+
+
+inline const Foam::scalar& Foam::constPropSite::siteMass() const
+{
+ return siteMass_;
+}
+
+
+inline Foam::scalar& Foam::constPropSite::siteMass()
+{
+ return siteMass_;
+}
+
+
+inline const Foam::scalar& Foam::constPropSite::siteCharge() const
+{
+ return siteCharge_;
+}
+
+
+inline Foam::scalar& Foam::constPropSite::siteCharge()
+{
+ return siteCharge_;
+}
+
+
+inline const Foam::label& Foam::constPropSite::siteId() const
+{
+ return siteId_;
+}
+
+
+inline Foam::label& Foam::constPropSite::siteId()
+{
+ return siteId_;
+}
+
+
+inline const Foam::word& Foam::constPropSite::name() const
+{
+ return name_;
+}
+
+
+inline Foam::word& Foam::constPropSite::name()
+{
+ return name_;
+}
+
+
+inline const bool& Foam::constPropSite::pairPotentialSite() const
+{
+ return pairPotentialSite_;
+}
+
+
+inline bool& Foam::constPropSite::pairPotentialSite()
+{
+ return pairPotentialSite_;
+}
+
+
+inline const bool& Foam::constPropSite::electrostaticSite() const
+{
+ return electrostaticSite_;
+}
+
+
+inline bool& Foam::constPropSite::electrostaticSite()
+{
+ return electrostaticSite_;
+}
+
+
+// ************************************************************************* //
diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.C b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.C
similarity index 86%
rename from src/lagrangian/molecularDynamics/molecule/molecule/molecule.C
rename to src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.C
index 1163d3f184..f6b43ca0e9 100644
--- a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.C
+++ b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.C
@@ -23,14 +23,14 @@ License
\*----------------------------------------------------------------------------*/
-#include "moleculeCloud.H"
-#include "molecule.H"
+#include "polyatomicCloud.H"
+#include "polyatomic.H"
#include "Random.H"
#include "Time.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
-Foam::tensor Foam::molecule::rotationTensorX(scalar phi) const
+Foam::tensor Foam::polyatomic::rotationTensorX(scalar phi) const
{
return tensor
(
@@ -41,7 +41,7 @@ Foam::tensor Foam::molecule::rotationTensorX(scalar phi) const
}
-Foam::tensor Foam::molecule::rotationTensorY(scalar phi) const
+Foam::tensor Foam::polyatomic::rotationTensorY(scalar phi) const
{
return tensor
(
@@ -52,7 +52,7 @@ Foam::tensor Foam::molecule::rotationTensorY(scalar phi) const
}
-Foam::tensor Foam::molecule::rotationTensorZ(scalar phi) const
+Foam::tensor Foam::polyatomic::rotationTensorZ(scalar phi) const
{
return tensor
(
@@ -65,11 +65,16 @@ Foam::tensor Foam::molecule::rotationTensorZ(scalar phi) const
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
-bool Foam::molecule::move(molecule::trackingData& td, const scalar trackTime)
+bool Foam::polyatomic::move(polyatomic::trackingData& td, const scalar trackTime)
{
td.switchProcessor = false;
td.keepParticle = true;
+ if (special_ != SPECIAL_FROZEN)
+ {
+ return td.keepParticle;
+ }
+
const constantProperties& constProps(td.cloud().constProps(id_));
if (td.part() == 0)
@@ -180,7 +185,7 @@ bool Foam::molecule::move(molecule::trackingData& td, const scalar trackTime)
}
else
{
- FatalErrorIn("molecule::move(trackingData&, const scalar)") << nl
+ FatalErrorIn("polyatomic::move(trackingData&, const scalar)") << nl
<< td.part() << " is an invalid part of the integration method."
<< abort(FatalError);
}
@@ -189,7 +194,7 @@ bool Foam::molecule::move(molecule::trackingData& td, const scalar trackTime)
}
-void Foam::molecule::transformProperties(const tensor& T)
+void Foam::polyatomic::transformProperties(const tensor& T)
{
particle::transformProperties(T);
@@ -211,7 +216,7 @@ void Foam::molecule::transformProperties(const tensor& T)
}
-void Foam::molecule::transformProperties(const vector& separation)
+void Foam::polyatomic::transformProperties(const vector& separation)
{
particle::transformProperties(separation);
@@ -224,13 +229,13 @@ void Foam::molecule::transformProperties(const vector& separation)
}
-void Foam::molecule::setSitePositions(const constantProperties& constProps)
+void Foam::polyatomic::setSitePositions(const constantProperties& constProps)
{
sitePositions_ = position_ + (Q_ & constProps.siteReferencePositions());
}
-void Foam::molecule::setSiteSizes(label size)
+void Foam::polyatomic::setSiteSizes(label size)
{
sitePositions_.setSize(size);
@@ -238,7 +243,7 @@ void Foam::molecule::setSiteSizes(label size)
}
-bool Foam::molecule::hitPatch
+bool Foam::polyatomic::hitPatch
(
const polyPatch&,
trackingData&,
@@ -251,7 +256,7 @@ bool Foam::molecule::hitPatch
}
-void Foam::molecule::hitProcessorPatch
+void Foam::polyatomic::hitProcessorPatch
(
const processorPolyPatch&,
trackingData& td
@@ -261,7 +266,7 @@ void Foam::molecule::hitProcessorPatch
}
-void Foam::molecule::hitWallPatch
+void Foam::polyatomic::hitWallPatch
(
const wallPolyPatch& wpp,
trackingData& td,
@@ -269,7 +274,7 @@ void Foam::molecule::hitWallPatch
)
{
// Use of the normal from tetIs is not required as
- // hasWallImpactDistance for a moleculeCloud is false.
+ // hasWallImpactDistance for a polyatomicCloud is false.
vector nw = normal();
nw /= mag(nw);
@@ -283,7 +288,7 @@ void Foam::molecule::hitWallPatch
}
-void Foam::molecule::hitPatch
+void Foam::polyatomic::hitPatch
(
const polyPatch&,
trackingData& td
diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.H
similarity index 89%
rename from src/lagrangian/molecularDynamics/molecule/molecule/molecule.H
rename to src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.H
index 54bdb51b9f..5177feb979 100644
--- a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H
+++ b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomic.H
@@ -22,20 +22,20 @@ License
along with OpenFOAM. If not, see .
Class
- Foam::molecule
+ Foam::polyatomic
Description
- Foam::molecule
+ Foam::polyatomic
SourceFiles
- moleculeI.H
- molecule.C
- moleculeIO.C
+ polyatomicI.H
+ polyatomic.C
+ polyatomicIO.C
\*---------------------------------------------------------------------------*/
-#ifndef molecule_H
-#define molecule_H
+#ifndef polyatomic_H
+#define polyatomic_H
#include "particle.H"
#include "IOstream.H"
@@ -48,13 +48,13 @@ namespace Foam
{
// Class forward declarations
-class moleculeCloud;
+class polyatomicCloud;
/*---------------------------------------------------------------------------*\
- Class molecule Declaration
+ Class polyatomic Declaration
\*---------------------------------------------------------------------------*/
-class molecule
+class polyatomic
:
public particle
{
@@ -73,7 +73,7 @@ public:
SPECIAL_USER = 1
};
- //- Class to hold molecule constant properties
+ //- Class to hold polyatomic constant properties
class constantProperties
{
// Private data
@@ -152,7 +152,7 @@ public:
//- Class used to pass tracking data to the trackToFace function
class trackingData
:
- public particle::TrackingData
+ public particle::TrackingData
{
// label specifying which part of the integration algorithm is taking
label part_;
@@ -162,9 +162,9 @@ public:
// Constructors
- trackingData(moleculeCloud& cloud, label part)
+ trackingData(polyatomicCloud& cloud, label part)
:
- particle::TrackingData(cloud),
+ particle::TrackingData(cloud),
part_(part)
{}
@@ -218,12 +218,12 @@ private:
public:
- friend class Cloud;
+ friend class Cloud;
// Constructors
//- Construct from components
- inline molecule
+ inline polyatomic
(
const polyMesh& mesh,
const vector& position,
@@ -242,7 +242,7 @@ public:
);
//- Construct from Istream
- molecule
+ polyatomic
(
const polyMesh& mesh,
Istream& is,
@@ -252,7 +252,7 @@ public:
//- Construct and return a clone
autoPtr clone() const
{
- return autoPtr(new molecule(*this));
+ return autoPtr(new polyatomic(*this));
}
//- Factory class to read-construct particles used for
@@ -268,9 +268,9 @@ public:
mesh_(mesh)
{}
- autoPtr operator()(Istream& is) const
+ autoPtr operator()(Istream& is) const
{
- return autoPtr(new molecule(mesh_, is, true));
+ return autoPtr(new polyatomic(mesh_, is, true));
}
};
@@ -367,14 +367,14 @@ public:
// I-O
- static void readFields(Cloud& mC);
+ static void readFields(Cloud& mC);
- static void writeFields(const Cloud& mC);
+ static void writeFields(const Cloud& mC);
// IOstream Operators
- friend Ostream& operator<<(Ostream&, const molecule&);
+ friend Ostream& operator<<(Ostream&, const polyatomic&);
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -383,7 +383,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-#include "moleculeI.H"
+#include "polyatomicI.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeI.H b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomicI.H
similarity index 76%
rename from src/lagrangian/molecularDynamics/molecule/molecule/moleculeI.H
rename to src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomicI.H
index 451ed5750c..931d53b8bf 100644
--- a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeI.H
+++ b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomicI.H
@@ -25,7 +25,7 @@ License
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
-inline Foam::molecule::constantProperties::constantProperties()
+inline Foam::polyatomic::constantProperties::constantProperties()
:
siteReferencePositions_(Field(0)),
siteMasses_(List(0)),
@@ -38,7 +38,7 @@ inline Foam::molecule::constantProperties::constantProperties()
{}
-inline Foam::molecule::constantProperties::constantProperties
+inline Foam::polyatomic::constantProperties::constantProperties
(
const dictionary& dict
)
@@ -78,7 +78,7 @@ inline Foam::molecule::constantProperties::constantProperties
if (siteIds_.size() == 1)
{
- // Single site molecule - no rotational motion.
+ // Single site polyatomic - no rotational motion.
siteReferencePositions_[0] = vector::zero;
@@ -86,9 +86,9 @@ inline Foam::molecule::constantProperties::constantProperties
}
else if (linearMoleculeTest())
{
- // Linear molecule.
+ // Linear polyatomic.
- Info<< nl << "Linear molecule." << endl;
+ Info<< nl << "Linear polyatomic." << endl;
vector dir = siteReferencePositions_[1] - siteReferencePositions_[0];
@@ -131,7 +131,7 @@ inline Foam::molecule::constantProperties::constantProperties
}
else
{
- // Fully 6DOF molecule
+ // Fully 6DOF polyatomic
// Calculate the inertia tensor in the current orientation
@@ -151,8 +151,8 @@ inline Foam::molecule::constantProperties::constantProperties
if (eigenValues(momOfInertia).x() < VSMALL)
{
- FatalErrorIn("molecule::constantProperties::constantProperties")
- << "An eigenvalue of the inertia tensor is zero, the molecule "
+ FatalErrorIn("polyatomic::constantProperties::constantProperties")
+ << "An eigenvalue of the inertia tensor is zero, the polyatomic "
<< dict.name() << " is not a valid 6DOF shape."
<< nl << abort(FatalError);
}
@@ -217,7 +217,7 @@ inline Foam::molecule::constantProperties::constantProperties
}
-inline Foam::molecule::molecule
+inline Foam::polyatomic::polyatomic
(
const polyMesh& mesh,
const vector& position,
@@ -256,7 +256,7 @@ inline Foam::molecule::molecule
// * * * * * * * constantProperties Private Member Functions * * * * * * * * //
-inline void Foam::molecule::constantProperties::checkSiteListSizes() const
+inline void Foam::polyatomic::constantProperties::checkSiteListSizes() const
{
if
(
@@ -264,7 +264,7 @@ inline void Foam::molecule::constantProperties::checkSiteListSizes() const
|| siteIds_.size() != siteCharges_.size()
)
{
- FatalErrorIn("molecule::constantProperties::checkSiteListSizes")
+ FatalErrorIn("polyatomic::constantProperties::checkSiteListSizes")
<< "Sizes of site id, charge and "
<< "referencePositions are not the same. "
<< nl << abort(FatalError);
@@ -272,7 +272,7 @@ inline void Foam::molecule::constantProperties::checkSiteListSizes() const
}
-inline void Foam::molecule::constantProperties::setInteracionSiteBools
+inline void Foam::polyatomic::constantProperties::setInteracionSiteBools
(
const List& siteIds,
const List& pairPotSiteIds
@@ -293,7 +293,7 @@ inline void Foam::molecule::constantProperties::setInteracionSiteBools
}
-inline bool Foam::molecule::constantProperties::linearMoleculeTest() const
+inline bool Foam::polyatomic::constantProperties::linearMoleculeTest() const
{
if (siteIds_.size() == 2)
{
@@ -328,48 +328,48 @@ inline bool Foam::molecule::constantProperties::linearMoleculeTest() const
// * * * * * * * constantProperties Member Functions * * * * * * * * * * * * //
inline const Foam::Field&
-Foam::molecule::constantProperties::siteReferencePositions() const
+Foam::polyatomic::constantProperties::siteReferencePositions() const
{
return siteReferencePositions_;
}
inline const Foam::List&
-Foam::molecule::constantProperties::siteMasses() const
+Foam::polyatomic::constantProperties::siteMasses() const
{
return siteMasses_;
}
inline const Foam::List&
-Foam::molecule::constantProperties::siteCharges() const
+Foam::polyatomic::constantProperties::siteCharges() const
{
return siteCharges_;
}
inline const Foam::List&
-Foam::molecule::constantProperties::siteIds() const
+Foam::polyatomic::constantProperties::siteIds() const
{
return siteIds_;
}
inline Foam::List&
-Foam::molecule::constantProperties::siteIds()
+Foam::polyatomic::constantProperties::siteIds()
{
return siteIds_;
}
inline const Foam::List&
-Foam::molecule::constantProperties::pairPotentialSites() const
+Foam::polyatomic::constantProperties::pairPotentialSites() const
{
return pairPotentialSites_;
}
-inline bool Foam::molecule::constantProperties::pairPotentialSite
+inline bool Foam::polyatomic::constantProperties::pairPotentialSite
(
label sId
) const
@@ -378,7 +378,7 @@ inline bool Foam::molecule::constantProperties::pairPotentialSite
if (s == -1)
{
- FatalErrorIn("moleculeI.H") << nl
+ FatalErrorIn("polyatomicI.H") << nl
<< sId << " site not found."
<< nl << abort(FatalError);
}
@@ -388,13 +388,13 @@ inline bool Foam::molecule::constantProperties::pairPotentialSite
inline const Foam::List&
-Foam::molecule::constantProperties::electrostaticSites() const
+Foam::polyatomic::constantProperties::electrostaticSites() const
{
return electrostaticSites_;
}
-inline bool Foam::molecule::constantProperties::electrostaticSite
+inline bool Foam::polyatomic::constantProperties::electrostaticSite
(
label sId
) const
@@ -405,7 +405,7 @@ inline bool Foam::molecule::constantProperties::electrostaticSite
{
FatalErrorIn
(
- "molecule::constantProperties::electrostaticSite(label)"
+ "polyatomic::constantProperties::electrostaticSite(label)"
) << sId << " site not found."
<< nl << abort(FatalError);
}
@@ -415,25 +415,25 @@ inline bool Foam::molecule::constantProperties::electrostaticSite
inline const Foam::diagTensor&
-Foam::molecule::constantProperties::momentOfInertia() const
+Foam::polyatomic::constantProperties::momentOfInertia() const
{
return momentOfInertia_;
}
-inline bool Foam::molecule::constantProperties::linearMolecule() const
+inline bool Foam::polyatomic::constantProperties::linearMolecule() const
{
return ((momentOfInertia_.xx() < 0) && (momentOfInertia_.yy() > 0));
}
-inline bool Foam::molecule::constantProperties::pointMolecule() const
+inline bool Foam::polyatomic::constantProperties::pointMolecule() const
{
return (momentOfInertia_.zz() < 0);
}
-inline Foam::label Foam::molecule::constantProperties::degreesOfFreedom() const
+inline Foam::label Foam::polyatomic::constantProperties::degreesOfFreedom() const
{
if (linearMolecule())
{
@@ -450,154 +450,154 @@ inline Foam::label Foam::molecule::constantProperties::degreesOfFreedom() const
}
-inline Foam::scalar Foam::molecule::constantProperties::mass() const
+inline Foam::scalar Foam::polyatomic::constantProperties::mass() const
{
return mass_;
}
-inline Foam::label Foam::molecule::constantProperties::nSites() const
+inline Foam::label Foam::polyatomic::constantProperties::nSites() const
{
return siteIds_.size();
}
-// * * * * * * * * * * * * molecule Member Functions * * * * * * * * * * * * //
+// * * * * * * * * * * * * polyatomic Member Functions * * * * * * * * * * * * //
-inline const Foam::tensor& Foam::molecule::Q() const
+inline const Foam::tensor& Foam::polyatomic::Q() const
{
return Q_;
}
-inline Foam::tensor& Foam::molecule::Q()
+inline Foam::tensor& Foam::polyatomic::Q()
{
return Q_;
}
-inline const Foam::vector& Foam::molecule::v() const
+inline const Foam::vector& Foam::polyatomic::v() const
{
return v_;
}
-inline Foam::vector& Foam::molecule::v()
+inline Foam::vector& Foam::polyatomic::v()
{
return v_;
}
-inline const Foam::vector& Foam::molecule::a() const
+inline const Foam::vector& Foam::polyatomic::a() const
{
return a_;
}
-inline Foam::vector& Foam::molecule::a()
+inline Foam::vector& Foam::polyatomic::a()
{
return a_;
}
-inline const Foam::vector& Foam::molecule::pi() const
+inline const Foam::vector& Foam::polyatomic::pi() const
{
return pi_;
}
-inline Foam::vector& Foam::molecule::pi()
+inline Foam::vector& Foam::polyatomic::pi()
{
return pi_;
}
-inline const Foam::vector& Foam::molecule::tau() const
+inline const Foam::vector& Foam::polyatomic::tau() const
{
return tau_;
}
-inline Foam::vector& Foam::molecule::tau()
+inline Foam::vector& Foam::polyatomic::tau()
{
return tau_;
}
-inline const Foam::List& Foam::molecule::siteForces() const
+inline const Foam::List& Foam::polyatomic::siteForces() const
{
return siteForces_;
}
-inline Foam::List& Foam::molecule::siteForces()
+inline Foam::List& Foam::polyatomic::siteForces()
{
return siteForces_;
}
-inline const Foam::List& Foam::molecule::sitePositions() const
+inline const Foam::List& Foam::polyatomic::sitePositions() const
{
return sitePositions_;
}
-inline Foam::List& Foam::molecule::sitePositions()
+inline Foam::List& Foam::polyatomic::sitePositions()
{
return sitePositions_;
}
-inline const Foam::vector& Foam::molecule::specialPosition() const
+inline const Foam::vector& Foam::polyatomic::specialPosition() const
{
return specialPosition_;
}
-inline Foam::vector& Foam::molecule::specialPosition()
+inline Foam::vector& Foam::polyatomic::specialPosition()
{
return specialPosition_;
}
-inline Foam::scalar Foam::molecule::potentialEnergy() const
+inline Foam::scalar Foam::polyatomic::potentialEnergy() const
{
return potentialEnergy_;
}
-inline Foam::scalar& Foam::molecule::potentialEnergy()
+inline Foam::scalar& Foam::polyatomic::potentialEnergy()
{
return potentialEnergy_;
}
-inline const Foam::tensor& Foam::molecule::rf() const
+inline const Foam::tensor& Foam::polyatomic::rf() const
{
return rf_;
}
-inline Foam::tensor& Foam::molecule::rf()
+inline Foam::tensor& Foam::polyatomic::rf()
{
return rf_;
}
-inline Foam::label Foam::molecule::special() const
+inline Foam::label Foam::polyatomic::special() const
{
return special_;
}
-inline bool Foam::molecule::tethered() const
+inline bool Foam::polyatomic::tethered() const
{
return special_ == SPECIAL_TETHERED;
}
-inline Foam::label Foam::molecule::id() const
+inline Foam::label Foam::polyatomic::id() const
{
return id_;
}
diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomicIO.C
similarity index 90%
rename from src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C
rename to src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomicIO.C
index 77685e6c0d..0d93a071c0 100644
--- a/src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C
+++ b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomic/polyatomicIO.C
@@ -23,13 +23,13 @@ License
\*---------------------------------------------------------------------------*/
-#include "molecule.H"
+#include "polyatomic.H"
#include "IOstreams.H"
-#include "moleculeCloud.H"
+#include "polyatomicCloud.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
-Foam::molecule::molecule
+Foam::polyatomic::polyatomic
(
const polyMesh& mesh,
Istream& is,
@@ -91,13 +91,13 @@ Foam::molecule::molecule
// Check state of Istream
is.check
(
- "Foam::molecule::molecule"
- "(const Cloud& cloud, Foam::Istream&), bool"
+ "Foam::polyatomic::polyatomic"
+ "(const Cloud& cloud, Foam::Istream&), bool"
);
}
-void Foam::molecule::readFields(Cloud& mC)
+void Foam::polyatomic::readFields(Cloud& mC)
{
if (!mC.size())
{
@@ -134,9 +134,9 @@ void Foam::molecule::readFields(Cloud& mC)
mC.checkFieldIOobject(mC, id);
label i = 0;
- forAllIter(moleculeCloud, mC, iter)
+ forAllIter(polyatomicCloud, mC, iter)
{
- molecule& mol = iter();
+ polyatomic& mol = iter();
mol.Q_ = Q[i];
mol.v_ = v[i];
@@ -151,7 +151,7 @@ void Foam::molecule::readFields(Cloud& mC)
}
-void Foam::molecule::writeFields(const Cloud& mC)
+void Foam::polyatomic::writeFields(const Cloud& mC)
{
particle::writeFields(mC);
@@ -203,9 +203,9 @@ void Foam::molecule::writeFields(const Cloud& mC)
);
label i = 0;
- forAllConstIter(moleculeCloud, mC, iter)
+ forAllConstIter(polyatomicCloud, mC, iter)
{
- const molecule& mol = iter();
+ const polyatomic& mol = iter();
Q[i] = mol.Q_;
v[i] = mol.v_;
@@ -244,13 +244,13 @@ void Foam::molecule::writeFields(const Cloud& mC)
Info<< "writeFields " << mC.name() << endl;
- if (isA(mC))
+ if (isA(mC))
{
- const moleculeCloud& m = dynamic_cast(mC);
+ const polyatomicCloud& m = dynamic_cast(mC);
m.writeXYZ
(
- m.mesh().time().timePath()/cloud::prefix/"moleculeCloud.xmol"
+ m.mesh().time().timePath()/cloud::prefix/"polyatomicCloud.xmol"
);
}
}
@@ -258,7 +258,7 @@ void Foam::molecule::writeFields(const Cloud& mC)
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
-Foam::Ostream& Foam::operator<<(Ostream& os, const molecule& mol)
+Foam::Ostream& Foam::operator<<(Ostream& os, const polyatomic& mol)
{
if (os.format() == IOstream::ASCII)
{
@@ -302,7 +302,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const molecule& mol)
os.check
(
"Foam::Ostream& Foam::operator<<"
- "(Foam::Ostream&, const Foam::molecule&)"
+ "(Foam::Ostream&, const Foam::polyatomic&)"
);
return os;
diff --git a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomicCloud/polyatomicCloud.C
similarity index 88%
rename from src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C
rename to src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomicCloud/polyatomicCloud.C
index 289735c170..eb1680b646 100644
--- a/src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C
+++ b/src/lagrangian/molecularDynamics/molecule/polyatomic/polyatomicCloud/polyatomicCloud.C
@@ -23,7 +23,7 @@ License
\*----------------------------------------------------------------------------*/
-#include "moleculeCloud.H"
+#include "polyatomicCloud.H"
#include "fvMesh.H"
#include "mathematicalConstants.H"
@@ -33,14 +33,14 @@ using namespace Foam::constant::mathematical;
namespace Foam
{
- defineTemplateTypeNameAndDebug(Cloud, 0);
+ defineTemplateTypeNameAndDebug(Cloud, 0);
}
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
-void Foam::moleculeCloud::buildConstProps()
+void Foam::polyatomicCloud::buildConstProps()
{
- Info<< nl << "Reading moleculeProperties dictionary." << endl;
+ Info<< nl << "Reading polyatomicProperties dictionary." << endl;
const List& idList(pot_.idList());
@@ -48,11 +48,11 @@ void Foam::moleculeCloud::buildConstProps()
const List& siteIdList(pot_.siteIdList());
- IOdictionary moleculePropertiesDict
+ IOdictionary polyatomicPropertiesDict
(
IOobject
(
- "moleculeProperties",
+ "polyatomicProperties",
mesh_.time().constant(),
mesh_,
IOobject::MUST_READ_IF_MODIFIED,
@@ -64,7 +64,7 @@ void Foam::moleculeCloud::buildConstProps()
forAll(idList, i)
{
const word& id = idList[i];
- const dictionary& molDict = moleculePropertiesDict.subDict(id);
+ const dictionary& molDict = polyatomicPropertiesDict.subDict(id);
List siteIdNames = molDict.lookup("siteIds");
@@ -78,26 +78,26 @@ void Foam::moleculeCloud::buildConstProps()
if (siteIds[sI] == -1)
{
- FatalErrorIn("moleculeCloud::buildConstProps()")
+ FatalErrorIn("polyatomicCloud::buildConstProps()")
<< siteId << " site not found."
<< nl << abort(FatalError);
}
}
- molecule::constantProperties& constProp = constPropList_[i];
+ polyatomic::constantProperties& constProp = constPropList_[i];
- constProp = molecule::constantProperties(molDict);
+ constProp = polyatomic::constantProperties(molDict);
constProp.siteIds() = siteIds;
}
}
-void Foam::moleculeCloud::setSiteSizesAndPositions()
+void Foam::polyatomicCloud::setSiteSizesAndPositions()
{
- forAllIter(moleculeCloud, *this, mol)
+ forAllIter(polyatomicCloud, *this, mol)
{
- const molecule::constantProperties& cP = constProps(mol().id());
+ const polyatomic::constantProperties& cP = constProps(mol().id());
mol().setSiteSizes(cP.nSites());
@@ -106,14 +106,14 @@ void Foam::moleculeCloud::setSiteSizesAndPositions()
}
-void Foam::moleculeCloud::buildCellOccupancy()
+void Foam::polyatomicCloud::buildCellOccupancy()
{
forAll(cellOccupancy_, cO)
{
cellOccupancy_[cO].clear();
}
- forAllIter(moleculeCloud, *this, mol)
+ forAllIter(polyatomicCloud, *this, mol)
{
cellOccupancy_[mol().cell()].append(&mol());
}
@@ -125,15 +125,15 @@ void Foam::moleculeCloud::buildCellOccupancy()
}
-void Foam::moleculeCloud::calculatePairForce()
+void Foam::polyatomicCloud::calculatePairForce()
{
PstreamBuffers pBufs(Pstream::nonBlocking);
// Start sending referred data
il_.sendReferredData(cellOccupancy(), pBufs);
- molecule* molI = NULL;
- molecule* molJ = NULL;
+ polyatomic* molI = NULL;
+ polyatomic* molJ = NULL;
{
// Real-Real interactions
@@ -148,7 +148,7 @@ void Foam::moleculeCloud::calculatePairForce()
forAll(dil[d], interactingCells)
{
- List cellJ =
+ List cellJ =
cellOccupancy_[dil[d][interactingCells]];
forAll(cellJ, cellJMols)
@@ -180,24 +180,24 @@ void Foam::moleculeCloud::calculatePairForce()
const labelListList& ril = il_.ril();
- List >& referredMols = il_.referredParticles();
+ List >& referredMols = il_.referredParticles();
forAll(ril, r)
{
const List