From 4da50ebb91ee3f695c7fe67f16e7f77ee51d57c7 Mon Sep 17 00:00:00 2001 From: graham Date: Thu, 7 Jul 2011 13:30:42 +0100 Subject: [PATCH] Rolling back MD modifications to master branch. --- .../mdEquilibrationFoam/Make/files | 3 + .../mdEquilibrationFoam/Make/options | 15 + .../mdEquilibrationFoam/mdEquilibrationFoam.C | 101 ++ .../readmdEquilibrationDict.H | 18 + .../molecularDynamics/mdFoam/Make/options | 7 +- .../molecularDynamics/mdFoam/mdFoam.C | 41 +- .../preProcessing/mdInitialise/Make/options | 4 +- .../preProcessing/mdInitialise/mdInitialise.C | 99 +- src/lagrangian/molecularDynamics/Allwmake | 1 + .../molecularMeasurements/Make/files | 3 + .../molecularMeasurements/Make/options | 0 .../bufferedAccumulator/bufferedAccumulator.C | 236 ++++ .../bufferedAccumulator/bufferedAccumulator.H | 176 +++ .../bufferedAccumulatorI.H | 79 ++ .../bufferedAccumulatorIO.C | 51 + .../correlationFunction/correlationFunction.C | 223 +++ .../correlationFunction/correlationFunction.H | 181 +++ .../correlationFunctionI.H | 69 + .../correlationFunctionIO.C | 71 + .../distribution/distribution.C | 478 +++++++ .../distribution/distribution.H | 148 ++ .../distribution/distributionI.H | 34 + .../molecularDynamics/molecule/Make/files | 15 +- .../molecularDynamics/molecule/Make/options | 6 +- .../molecule/mdTools/averageMDFields.H | 222 +++ .../calculateAutoCorrelationFunctions.H | 77 + .../molecule/mdTools/calculateMDFields.H | 23 + .../mdTools/calculateTransportProperties.H | 81 ++ .../mdTools/createAutoCorrelationFunctions.H | 98 ++ .../molecule/mdTools/createMDFields.H | 324 +++++ .../molecule/mdTools/createRefUnits.H | 22 + .../molecularDynamics/molecule/mdTools/md.H | 8 + .../mdTools/meanMomentumEnergyAndNMols.H | 180 +++ .../molecule/mdTools/resetMDFields.H | 26 + .../molecule/mdTools/temperatureAndPressure.H | 111 ++ .../mdTools/temperatureAndPressureVariables.H | 62 + .../mdTools/temperatureEquilibration.H | 42 + .../molecule/molecule/molecule.C | 296 ++++ .../molecule/molecule/molecule.H | 392 ++++++ .../molecule/molecule/moleculeI.H | 606 ++++++++ .../molecule/molecule/moleculeIO.C | 312 ++++ .../molecule/moleculeCloud/moleculeCloud.C | 1250 +++++++++++++++++ .../molecule/moleculeCloud/moleculeCloud.H | 219 +++ .../molecule/moleculeCloud/moleculeCloudI.H | 390 +++++ .../molecule/reducedUnits/reducedUnits.C | 164 +++ .../molecule/reducedUnits/reducedUnits.H | 182 +++ .../molecule/reducedUnits/reducedUnitsI.H | 94 ++ .../molecule/reducedUnits/reducedUnitsIO.C | 60 + .../electrostaticPotential.C | 2 +- .../electrostaticPotential.H | 2 +- .../basic/energyScalingFunction.C | 2 +- .../basic/energyScalingFunction.H | 2 +- .../basic/energyScalingFunctionNew.C | 2 +- .../derived/doubleSigmoid/doubleSigmoid.C | 2 +- .../derived/doubleSigmoid/doubleSigmoid.H | 2 +- .../derived/noScaling/noScaling.C | 2 +- .../derived/noScaling/noScaling.H | 2 +- .../derived/shifted/shifted.C | 2 +- .../derived/shifted/shifted.H | 2 +- .../derived/shiftedForce/shiftedForce.C | 2 +- .../derived/shiftedForce/shiftedForce.H | 2 +- .../derived/sigmoid/sigmoid.C | 2 +- .../derived/sigmoid/sigmoid.H | 2 +- .../pairPotential/basic/pairPotential.C | 2 +- .../pairPotential/basic/pairPotential.H | 2 +- .../pairPotential/basic/pairPotentialI.H | 2 +- .../pairPotential/basic/pairPotentialIO.C | 2 +- .../pairPotential/basic/pairPotentialNew.C | 2 +- .../pairPotential/derived/azizChen/azizChen.C | 2 +- .../pairPotential/derived/coulomb/coulomb.C | 2 +- .../pairPotential/derived/coulomb/coulomb.H | 2 +- .../derived/dampedCoulomb/dampedCoulomb.C | 2 +- .../derived/dampedCoulomb/dampedCoulomb.H | 2 +- .../exponentialRepulsion.C | 2 +- .../exponentialRepulsion.H | 2 +- .../derived/lennardJones/lennardJones.C | 2 +- .../derived/lennardJones/lennardJones.H | 2 +- .../derived/maitlandSmith/maitlandSmith.C | 2 +- .../derived/noInteraction/noInteraction.C | 2 +- .../derived/noInteraction/noInteraction.H | 2 +- .../pairPotentialList/pairPotentialList.C | 2 +- .../pairPotentialList/pairPotentialList.H | 2 +- .../pairPotentialList/pairPotentialListI.H | 2 +- .../potential/potential/potential.C | 97 +- .../potential/potential/potential.H | 42 +- .../potential/potential/potentialI.H | 2 +- .../tetherPotential/basic/tetherPotential.C | 2 +- .../tetherPotential/basic/tetherPotential.H | 2 +- .../basic/tetherPotentialNew.C | 2 +- .../derived/harmonicSpring/harmonicSpring.C | 2 +- .../derived/harmonicSpring/harmonicSpring.H | 2 +- .../derived/pitchForkRing/pitchForkRing.C | 2 +- .../derived/pitchForkRing/pitchForkRing.H | 2 +- .../restrainedHarmonicSpring.C | 2 +- .../restrainedHarmonicSpring.H | 2 +- .../tetherPotentialList/tetherPotentialList.C | 2 +- .../tetherPotentialList/tetherPotentialList.H | 2 +- .../tetherPotentialListI.H | 2 +- 98 files changed, 7298 insertions(+), 237 deletions(-) create mode 100644 applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/files create mode 100644 applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/options create mode 100644 applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C create mode 100644 applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/Make/files create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/Make/options create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/bufferedAccumulator/bufferedAccumulator.C create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/bufferedAccumulator/bufferedAccumulator.H create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/bufferedAccumulator/bufferedAccumulatorI.H create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/bufferedAccumulator/bufferedAccumulatorIO.C create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunction.C create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunction.H create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunctionI.H create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/correlationFunction/correlationFunctionIO.C create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.C create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distribution.H create mode 100644 src/lagrangian/molecularDynamics/molecularMeasurements/distribution/distributionI.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/averageMDFields.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/calculateAutoCorrelationFunctions.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/calculateMDFields.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/calculateTransportProperties.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/createAutoCorrelationFunctions.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/createMDFields.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/createRefUnits.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/md.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/meanMomentumEnergyAndNMols.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/resetMDFields.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/temperatureAndPressure.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/temperatureAndPressureVariables.H create mode 100644 src/lagrangian/molecularDynamics/molecule/mdTools/temperatureEquilibration.H create mode 100644 src/lagrangian/molecularDynamics/molecule/molecule/molecule.C create mode 100644 src/lagrangian/molecularDynamics/molecule/molecule/molecule.H create mode 100644 src/lagrangian/molecularDynamics/molecule/molecule/moleculeI.H create mode 100644 src/lagrangian/molecularDynamics/molecule/molecule/moleculeIO.C create mode 100644 src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.C create mode 100644 src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloud.H create mode 100644 src/lagrangian/molecularDynamics/molecule/moleculeCloud/moleculeCloudI.H create mode 100644 src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnits.C create mode 100644 src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnits.H create mode 100644 src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnitsI.H create mode 100644 src/lagrangian/molecularDynamics/molecule/reducedUnits/reducedUnitsIO.C diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/files b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/files new file mode 100644 index 0000000000..c3a050bb68 --- /dev/null +++ b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/files @@ -0,0 +1,3 @@ +mdEquilibrationFoam.C + +EXE = $(FOAM_APPBIN)/mdEquilibrationFoam diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/options b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/options new file mode 100644 index 0000000000..91cab4609b --- /dev/null +++ b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/Make/options @@ -0,0 +1,15 @@ +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 + +EXE_LIBS = \ + -lmeshTools \ + -lfiniteVolume \ + -llagrangian \ + -lmolecule \ + -lpotential \ + -lmolecularMeasurements diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C new file mode 100644 index 0000000000..96c07a1756 --- /dev/null +++ b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/mdEquilibrationFoam.C @@ -0,0 +1,101 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2008-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 . + +Application + mdEquilibrationFoam + +Description + Equilibrates and/or preconditions molecular dynamics systems + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "md.H" + +int main(int argc, char *argv[]) +{ + #include "setRootCase.H" + #include "createTime.H" + #include "createMesh.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" + + #include "readmdEquilibrationDict.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" + + #include "temperatureEquilibration.H" + + runTime.write(); + + if (runTime.outputTime()) + { + nAveragingSteps = 0; + } + + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; + } + + Info<< "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H new file mode 100644 index 0000000000..3f43981907 --- /dev/null +++ b/applications/solvers/discreteMethods/molecularDynamics/mdEquilibrationFoam/readmdEquilibrationDict.H @@ -0,0 +1,18 @@ +Info<< nl << "Reading MD Equilibration Dictionary" << nl << endl; + +IOdictionary mdEquilibrationDict +( + IOobject + ( + "mdEquilibrationDict", + runTime.system(), + mesh, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ) +); + +scalar targetTemperature = readScalar +( + mdEquilibrationDict.lookup("targetTemperature") +); diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options index 98f09f1b4b..91cab4609b 100644 --- a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options +++ b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/Make/options @@ -1,9 +1,7 @@ -EXE_DEBUG = -DFULLDEBUG -g -O0 - EXE_INC = \ - ${EXE_DEBUG} \ -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 @@ -13,4 +11,5 @@ EXE_LIBS = \ -lfiniteVolume \ -llagrangian \ -lmolecule \ - -lpotential + -lpotential \ + -lmolecularMeasurements diff --git a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C index 38510dc453..779172803d 100644 --- a/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C +++ b/applications/solvers/discreteMethods/molecularDynamics/mdFoam/mdFoam.C @@ -30,31 +30,60 @@ Description \*---------------------------------------------------------------------------*/ #include "fvCFD.H" -#include "monoatomicCloud.H" -#include "polyatomicCloud.H" +#include "md.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; - monoatomics.evolve(); + molecules.evolve(); - polyatomics.evolve(); + #include "meanMomentumEnergyAndNMols.H" + + #include "temperatureAndPressure.H" runTime.write(); - Info<< nl << "ExecutionTime = " << runTime.elapsedCpuTime() << " s" + if (runTime.outputTime()) + { + nAveragingSteps = 0; + } + + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; } diff --git a/applications/utilities/preProcessing/mdInitialise/Make/options b/applications/utilities/preProcessing/mdInitialise/Make/options index 7633b07554..289c0990a2 100644 --- a/applications/utilities/preProcessing/mdInitialise/Make/options +++ b/applications/utilities/preProcessing/mdInitialise/Make/options @@ -3,6 +3,7 @@ EXE_INC = \ -I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/lagrangian/molecularDynamics/molecule/lnInclude \ -I$(LIB_SRC)/lagrangian/molecularDynamics/potential/lnInclude \ + -I$(LIB_SRC)/lagrangian/molecularDynamics/molecularMeasurements/lnInclude \ -I$(LIB_SRC)/lagrangian/basic/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude @@ -12,5 +13,6 @@ EXE_LIBS = \ -lfiniteVolume \ -llagrangian \ -lmolecule \ - -lpotential + -lpotential \ + -lmolecularMeasurements diff --git a/applications/utilities/preProcessing/mdInitialise/mdInitialise.C b/applications/utilities/preProcessing/mdInitialise/mdInitialise.C index d29ef0a72d..3551e46133 100644 --- a/applications/utilities/preProcessing/mdInitialise/mdInitialise.C +++ b/applications/utilities/preProcessing/mdInitialise/mdInitialise.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,9 +26,8 @@ Description \*---------------------------------------------------------------------------*/ +#include "md.H" #include "fvCFD.H" -#include "polyatomicCloud.H" -#include "monoatomicCloud.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -51,15 +50,11 @@ int main(int argc, char *argv[]) ) ); - word polyCloudName("polyatomicCloud"); - - const dictionary& polyDict(mdInitialiseDict.subDict(polyCloudName)); - - IOdictionary polyIdListDict + IOdictionary idListDict ( IOobject ( - polyCloudName + "_idList", + "idList", mesh.time().constant(), mesh, IOobject::NO_READ, @@ -67,88 +62,26 @@ int main(int argc, char *argv[]) ) ); - potential polyPot - ( - mesh, - polyDict, - IOdictionary - ( - IOobject - ( - polyCloudName + "Properties", - mesh.time().constant(), - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE, - false - ) - ), - polyIdListDict - ); + potential pot(mesh, mdInitialiseDict, idListDict); - polyatomicCloud poly - ( - polyCloudName, - mesh, - polyPot, - polyDict - ); + moleculeCloud molecules(mesh, pot, mdInitialiseDict); - Info<< nl << returnReduce(poly.size(), sumOp