From 1845e2014d13cc2da6c68d7e1a725d1ebd90335e Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 20 Feb 2015 17:24:14 +0000 Subject: [PATCH] DSMC: Rationalization and addition of mapping support --- .../dsmc/dsmcFoam/Make/options | 4 +- .../foamDebugSwitches/Make/options | 2 +- .../miscellaneous/dsmcFieldsCalc/Make/options | 5 +- .../preProcessing/dsmcInitialise/Make/options | 4 +- src/lagrangian/Allwmake | 2 +- src/lagrangian/DSMC/Make/files | 13 ++ src/lagrangian/{dsmc => DSMC}/Make/options | 0 .../clouds/Templates/DSMCCloud/DSMCCloud.C} | 103 ++++++++++----- .../clouds/Templates/DSMCCloud/DSMCCloud.H} | 58 +++++---- .../clouds/Templates/DSMCCloud/DSMCCloudI.H} | 118 +++++++++--------- .../DSMCBaseCloud/DSMCBaseCloud.C} | 10 +- .../DSMCBaseCloud/DSMCBaseCloud.H} | 26 ++-- .../clouds/derived/dsmcCloud/dsmcCloud.H | 6 +- .../Templates/DSMCParcel/DSMCParcel.C} | 22 ++-- .../Templates/DSMCParcel/DSMCParcel.H} | 54 ++++---- .../Templates/DSMCParcel/DSMCParcelI.H} | 30 ++--- .../Templates/DSMCParcel/DSMCParcelIO.C} | 26 ++-- .../derived/dsmcParcel/defineDSMCParcel.C} | 8 +- .../parcels/derived/dsmcParcel/dsmcParcel.C | 6 +- .../parcels/derived/dsmcParcel/dsmcParcel.H | 52 ++++++++ .../makeDSMCParcelBinaryCollisionModels.C} | 8 +- .../makeDSMCParcelInflowBoundaryModels.C} | 6 +- .../makeDSMCParcelWallInteractionModels.C} | 6 +- .../BinaryCollisionModel.C | 2 +- .../BinaryCollisionModel.H | 2 +- .../BinaryCollisionModelNew.C | 2 +- .../LarsenBorgnakkeVariableHardSphere.C | 2 +- .../LarsenBorgnakkeVariableHardSphere.H | 2 +- .../NoBinaryCollision/NoBinaryCollision.C | 2 +- .../NoBinaryCollision/NoBinaryCollision.H | 2 +- .../VariableHardSphere/VariableHardSphere.C | 2 +- .../VariableHardSphere/VariableHardSphere.H | 2 +- .../FreeStream/FreeStream.C | 38 ++++-- .../FreeStream/FreeStream.H | 7 +- .../InflowBoundaryModel/InflowBoundaryModel.C | 3 +- .../InflowBoundaryModel/InflowBoundaryModel.H | 8 +- .../InflowBoundaryModelNew.C | 2 +- .../InflowBoundaryModel/NoInflow/NoInflow.C | 2 +- .../InflowBoundaryModel/NoInflow/NoInflow.H | 2 +- .../MaxwellianThermal/MaxwellianThermal.C | 2 +- .../MaxwellianThermal/MaxwellianThermal.H | 2 +- .../MixedDiffuseSpecular.C | 2 +- .../MixedDiffuseSpecular.H | 2 +- .../SpecularReflection/SpecularReflection.C | 2 +- .../SpecularReflection/SpecularReflection.H | 2 +- .../WallInteractionModel.C | 3 +- .../WallInteractionModel.H | 2 +- .../WallInteractionModelNew.C | 2 +- src/lagrangian/dsmc/Make/files | 13 -- .../parcels/derived/dsmcParcel/dsmcParcel.H | 112 ----------------- .../functionObjects/utilities/Make/options | 4 +- 51 files changed, 404 insertions(+), 393 deletions(-) create mode 100644 src/lagrangian/DSMC/Make/files rename src/lagrangian/{dsmc => DSMC}/Make/options (100%) rename src/lagrangian/{dsmc/clouds/Templates/DsmcCloud/DsmcCloud.C => DSMC/clouds/Templates/DSMCCloud/DSMCCloud.C} (91%) rename src/lagrangian/{dsmc/clouds/Templates/DsmcCloud/DsmcCloud.H => DSMC/clouds/Templates/DSMCCloud/DSMCCloud.H} (92%) rename src/lagrangian/{dsmc/clouds/Templates/DsmcCloud/DsmcCloudI.H => DSMC/clouds/Templates/DSMCCloud/DSMCCloudI.H} (69%) rename src/lagrangian/{dsmc/clouds/baseClasses/DsmcBaseCloud/DsmcBaseCloud.C => DSMC/clouds/baseClasses/DSMCBaseCloud/DSMCBaseCloud.C} (86%) rename src/lagrangian/{dsmc/clouds/baseClasses/DsmcBaseCloud/DsmcBaseCloud.H => DSMC/clouds/baseClasses/DSMCBaseCloud/DSMCBaseCloud.H} (80%) rename src/lagrangian/{dsmc => DSMC}/clouds/derived/dsmcCloud/dsmcCloud.H (91%) rename src/lagrangian/{dsmc/parcels/Templates/DsmcParcel/DsmcParcel.C => DSMC/parcels/Templates/DSMCParcel/DSMCParcel.C} (91%) rename src/lagrangian/{dsmc/parcels/Templates/DsmcParcel/DsmcParcel.H => DSMC/parcels/Templates/DSMCParcel/DSMCParcel.H} (87%) rename src/lagrangian/{dsmc/parcels/Templates/DsmcParcel/DsmcParcelI.H => DSMC/parcels/Templates/DSMCParcel/DSMCParcelI.H} (74%) rename src/lagrangian/{dsmc/parcels/Templates/DsmcParcel/DsmcParcelIO.C => DSMC/parcels/Templates/DSMCParcel/DSMCParcelIO.C} (85%) rename src/lagrangian/{dsmc/parcels/derived/dsmcParcel/defineDsmcParcel.C => DSMC/parcels/derived/dsmcParcel/defineDSMCParcel.C} (87%) rename src/lagrangian/{dsmc => DSMC}/parcels/derived/dsmcParcel/dsmcParcel.C (93%) create mode 100644 src/lagrangian/DSMC/parcels/derived/dsmcParcel/dsmcParcel.H rename src/lagrangian/{dsmc/parcels/derived/dsmcParcel/makeDsmcParcelBinaryCollisionModels.C => DSMC/parcels/derived/dsmcParcel/makeDSMCParcelBinaryCollisionModels.C} (89%) rename src/lagrangian/{dsmc/parcels/derived/dsmcParcel/makeDsmcParcelInflowBoundaryModels.C => DSMC/parcels/derived/dsmcParcel/makeDSMCParcelInflowBoundaryModels.C} (91%) rename src/lagrangian/{dsmc/parcels/derived/dsmcParcel/makeDsmcParcelWallInteractionModels.C => DSMC/parcels/derived/dsmcParcel/makeDSMCParcelWallInteractionModels.C} (92%) rename src/lagrangian/{dsmc => DSMC}/submodels/BinaryCollisionModel/BinaryCollisionModel/BinaryCollisionModel.C (97%) rename src/lagrangian/{dsmc => DSMC}/submodels/BinaryCollisionModel/BinaryCollisionModel/BinaryCollisionModel.H (98%) rename src/lagrangian/{dsmc => DSMC}/submodels/BinaryCollisionModel/BinaryCollisionModel/BinaryCollisionModelNew.C (96%) rename src/lagrangian/{dsmc => DSMC}/submodels/BinaryCollisionModel/LarsenBorgnakkeVariableHardSphere/LarsenBorgnakkeVariableHardSphere.C (99%) rename src/lagrangian/{dsmc => DSMC}/submodels/BinaryCollisionModel/LarsenBorgnakkeVariableHardSphere/LarsenBorgnakkeVariableHardSphere.H (98%) rename src/lagrangian/{dsmc => DSMC}/submodels/BinaryCollisionModel/NoBinaryCollision/NoBinaryCollision.C (97%) rename src/lagrangian/{dsmc => DSMC}/submodels/BinaryCollisionModel/NoBinaryCollision/NoBinaryCollision.H (97%) rename src/lagrangian/{dsmc => DSMC}/submodels/BinaryCollisionModel/VariableHardSphere/VariableHardSphere.C (98%) rename src/lagrangian/{dsmc => DSMC}/submodels/BinaryCollisionModel/VariableHardSphere/VariableHardSphere.H (97%) rename src/lagrangian/{dsmc => DSMC}/submodels/InflowBoundaryModel/FreeStream/FreeStream.C (92%) rename src/lagrangian/{dsmc => DSMC}/submodels/InflowBoundaryModel/FreeStream/FreeStream.H (93%) rename src/lagrangian/{dsmc => DSMC}/submodels/InflowBoundaryModel/InflowBoundaryModel/InflowBoundaryModel.C (97%) rename src/lagrangian/{dsmc => DSMC}/submodels/InflowBoundaryModel/InflowBoundaryModel/InflowBoundaryModel.H (95%) rename src/lagrangian/{dsmc => DSMC}/submodels/InflowBoundaryModel/InflowBoundaryModel/InflowBoundaryModelNew.C (96%) rename src/lagrangian/{dsmc => DSMC}/submodels/InflowBoundaryModel/NoInflow/NoInflow.C (96%) rename src/lagrangian/{dsmc => DSMC}/submodels/InflowBoundaryModel/NoInflow/NoInflow.H (97%) rename src/lagrangian/{dsmc => DSMC}/submodels/WallInteractionModel/MaxwellianThermal/MaxwellianThermal.C (98%) rename src/lagrangian/{dsmc => DSMC}/submodels/WallInteractionModel/MaxwellianThermal/MaxwellianThermal.H (97%) rename src/lagrangian/{dsmc => DSMC}/submodels/WallInteractionModel/MixedDiffuseSpecular/MixedDiffuseSpecular.C (98%) rename src/lagrangian/{dsmc => DSMC}/submodels/WallInteractionModel/MixedDiffuseSpecular/MixedDiffuseSpecular.H (97%) rename src/lagrangian/{dsmc => DSMC}/submodels/WallInteractionModel/SpecularReflection/SpecularReflection.C (96%) rename src/lagrangian/{dsmc => DSMC}/submodels/WallInteractionModel/SpecularReflection/SpecularReflection.H (97%) rename src/lagrangian/{dsmc => DSMC}/submodels/WallInteractionModel/WallInteractionModel/WallInteractionModel.C (97%) rename src/lagrangian/{dsmc => DSMC}/submodels/WallInteractionModel/WallInteractionModel/WallInteractionModel.H (98%) rename src/lagrangian/{dsmc => DSMC}/submodels/WallInteractionModel/WallInteractionModel/WallInteractionModelNew.C (96%) delete mode 100644 src/lagrangian/dsmc/Make/files delete mode 100644 src/lagrangian/dsmc/parcels/derived/dsmcParcel/dsmcParcel.H diff --git a/applications/solvers/discreteMethods/dsmc/dsmcFoam/Make/options b/applications/solvers/discreteMethods/dsmc/dsmcFoam/Make/options index 62520c19b0..fa35b0bbd0 100644 --- a/applications/solvers/discreteMethods/dsmc/dsmcFoam/Make/options +++ b/applications/solvers/discreteMethods/dsmc/dsmcFoam/Make/options @@ -1,11 +1,11 @@ EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/lagrangian/basic/lnInclude \ - -I$(LIB_SRC)/lagrangian/dsmc/lnInclude \ + -I$(LIB_SRC)/lagrangian/DSMC/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude EXE_LIBS = \ -lmeshTools \ -lfiniteVolume \ -llagrangian \ - -ldsmc + -lDSMC diff --git a/applications/utilities/miscellaneous/foamDebugSwitches/Make/options b/applications/utilities/miscellaneous/foamDebugSwitches/Make/options index 386b6826d3..2324ff61d0 100644 --- a/applications/utilities/miscellaneous/foamDebugSwitches/Make/options +++ b/applications/utilities/miscellaneous/foamDebugSwitches/Make/options @@ -12,7 +12,7 @@ EXE_LIBS = \ -ldecompositionMethods \ -ldistributed \ -ldistributionModels \ - -ldsmc \ + -lDSMC \ -ldynamicFvMesh \ -ldynamicMesh \ -ledgeMesh \ diff --git a/applications/utilities/postProcessing/miscellaneous/dsmcFieldsCalc/Make/options b/applications/utilities/postProcessing/miscellaneous/dsmcFieldsCalc/Make/options index 4e81bb55de..8411a01ed2 100644 --- a/applications/utilities/postProcessing/miscellaneous/dsmcFieldsCalc/Make/options +++ b/applications/utilities/postProcessing/miscellaneous/dsmcFieldsCalc/Make/options @@ -3,7 +3,7 @@ EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/lagrangian/basic/lnInclude \ -I$(LIB_SRC)/postProcessing/functionObjects/utilities/lnInclude \ - -I$(LIB_SRC)/lagrangian/dsmc/lnInclude \ + -I$(LIB_SRC)/lagrangian/DSMC/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude EXE_LIBS = \ @@ -12,5 +12,4 @@ EXE_LIBS = \ -lfiniteVolume \ -lutilityFunctionObjects \ -llagrangian \ - -ldsmc - + -lDSMC diff --git a/applications/utilities/preProcessing/dsmcInitialise/Make/options b/applications/utilities/preProcessing/dsmcInitialise/Make/options index 62520c19b0..fa35b0bbd0 100644 --- a/applications/utilities/preProcessing/dsmcInitialise/Make/options +++ b/applications/utilities/preProcessing/dsmcInitialise/Make/options @@ -1,11 +1,11 @@ EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/lagrangian/basic/lnInclude \ - -I$(LIB_SRC)/lagrangian/dsmc/lnInclude \ + -I$(LIB_SRC)/lagrangian/DSMC/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude EXE_LIBS = \ -lmeshTools \ -lfiniteVolume \ -llagrangian \ - -ldsmc + -lDSMC diff --git a/src/lagrangian/Allwmake b/src/lagrangian/Allwmake index 66d1baabaf..909ec9f4ed 100755 --- a/src/lagrangian/Allwmake +++ b/src/lagrangian/Allwmake @@ -12,7 +12,7 @@ wmake $targetType solidParticle wmake $targetType intermediate wmake $targetType turbulence wmake $targetType spray -wmake $targetType dsmc +wmake $targetType DSMC wmake $targetType coalCombustion molecularDynamics/Allwmake $targetType $* diff --git a/src/lagrangian/DSMC/Make/files b/src/lagrangian/DSMC/Make/files new file mode 100644 index 0000000000..799db937b3 --- /dev/null +++ b/src/lagrangian/DSMC/Make/files @@ -0,0 +1,13 @@ +/* Parcels */ +parcels/derived/dsmcParcel/dsmcParcel.C + +/* Cloud base classes */ +clouds/baseClasses/DSMCBaseCloud/DSMCBaseCloud.C + +/* Sub-models */ +parcels/derived/dsmcParcel/defineDSMCParcel.C +parcels/derived/dsmcParcel/makeDSMCParcelBinaryCollisionModels.C +parcels/derived/dsmcParcel/makeDSMCParcelWallInteractionModels.C +parcels/derived/dsmcParcel/makeDSMCParcelInflowBoundaryModels.C + +LIB = $(FOAM_LIBBIN)/libDSMC diff --git a/src/lagrangian/dsmc/Make/options b/src/lagrangian/DSMC/Make/options similarity index 100% rename from src/lagrangian/dsmc/Make/options rename to src/lagrangian/DSMC/Make/options diff --git a/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.C b/src/lagrangian/DSMC/clouds/Templates/DSMCCloud/DSMCCloud.C similarity index 91% rename from src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.C rename to src/lagrangian/DSMC/clouds/Templates/DSMCCloud/DSMCCloud.C index 3c70abb5ab..ff6166ffd0 100644 --- a/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.C +++ b/src/lagrangian/DSMC/clouds/Templates/DSMCCloud/DSMCCloud.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -23,7 +23,7 @@ License \*---------------------------------------------------------------------------*/ -#include "DsmcCloud.H" +#include "DSMCCloud.H" #include "BinaryCollisionModel.H" #include "WallInteractionModel.H" #include "InflowBoundaryModel.H" @@ -33,11 +33,10 @@ License using namespace Foam::constant; - // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // template -void Foam::DsmcCloud::buildConstProps() +void Foam::DSMCCloud::buildConstProps() { Info<< nl << "Constructing constant properties for" << endl; constProps_.setSize(typeIdList_.size()); @@ -62,14 +61,14 @@ void Foam::DsmcCloud::buildConstProps() template -void Foam::DsmcCloud::buildCellOccupancy() +void Foam::DSMCCloud::buildCellOccupancy() { forAll(cellOccupancy_, cO) { cellOccupancy_[cO].clear(); } - forAllIter(typename DsmcCloud, *this, iter) + forAllIter(typename DSMCCloud, *this, iter) { cellOccupancy_[iter().cell()].append(&iter()); } @@ -77,7 +76,7 @@ void Foam::DsmcCloud::buildCellOccupancy() template -void Foam::DsmcCloud::initialise +void Foam::DSMCCloud::initialise ( const IOdictionary& dsmcInitialiseDict ) @@ -134,7 +133,7 @@ void Foam::DsmcCloud::initialise if (typeId == -1) { - FatalErrorIn("Foam::DsmcCloud::initialise") + FatalErrorIn("Foam::DSMCCloud::initialise") << "typeId " << moleculeName << "not defined." << nl << abort(FatalError); } @@ -216,7 +215,7 @@ void Foam::DsmcCloud::initialise template -void Foam::DsmcCloud::collisions() +void Foam::DSMCCloud::collisions() { if (!binaryCollision().active()) { @@ -395,7 +394,7 @@ void Foam::DsmcCloud::collisions() template -void Foam::DsmcCloud::resetFields() +void Foam::DSMCCloud::resetFields() { q_ = dimensionedScalar("zero", dimensionSet(1, 0, -3, 0, 0), 0.0); @@ -428,7 +427,7 @@ void Foam::DsmcCloud::resetFields() template -void Foam::DsmcCloud::calculateFields() +void Foam::DSMCCloud::calculateFields() { scalarField& rhoN = rhoN_.internalField(); @@ -444,7 +443,7 @@ void Foam::DsmcCloud::calculateFields() vectorField& momentum = momentum_.internalField(); - forAllConstIter(typename DsmcCloud, *this, iter) + forAllConstIter(typename DSMCCloud, *this, iter) { const ParcelType& p = iter(); const label cellI = p.cell(); @@ -489,7 +488,7 @@ void Foam::DsmcCloud::calculateFields() // * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * * // template -void Foam::DsmcCloud::addNewParcel +void Foam::DSMCCloud::addNewParcel ( const vector& position, const vector& U, @@ -519,7 +518,7 @@ void Foam::DsmcCloud::addNewParcel // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template -Foam::DsmcCloud::DsmcCloud +Foam::DSMCCloud::DSMCCloud ( const word& cloudName, const fvMesh& mesh, @@ -527,7 +526,7 @@ Foam::DsmcCloud::DsmcCloud ) : Cloud(mesh, cloudName, false), - DsmcBaseCloud(), + DSMCBaseCloud(), cloudName_(cloudName), mesh_(mesh), particleProperties_ @@ -556,7 +555,17 @@ Foam::DsmcCloud::DsmcCloud ), mesh_ ), - collisionSelectionRemainder_(mesh_.nCells(), 0), + collisionSelectionRemainder_ + ( + IOobject + ( + this->name() + ":collisionSelectionRemainder", + mesh_.time().timeName(), + mesh_ + ), + mesh_, + dimensionedScalar("collisionSelectionRemainder", dimless, 0) + ), q_ ( IOobject @@ -699,7 +708,7 @@ Foam::DsmcCloud::DsmcCloud ), binaryCollisionModel_ ( - BinaryCollisionModel >::New + BinaryCollisionModel >::New ( particleProperties_, *this @@ -707,7 +716,7 @@ Foam::DsmcCloud::DsmcCloud ), wallInteractionModel_ ( - WallInteractionModel >::New + WallInteractionModel >::New ( particleProperties_, *this @@ -715,7 +724,7 @@ Foam::DsmcCloud::DsmcCloud ), inflowBoundaryModel_ ( - InflowBoundaryModel >::New + InflowBoundaryModel >::New ( particleProperties_, *this @@ -741,7 +750,7 @@ Foam::DsmcCloud::DsmcCloud template -Foam::DsmcCloud::DsmcCloud +Foam::DSMCCloud::DSMCCloud ( const word& cloudName, const fvMesh& mesh, @@ -749,7 +758,7 @@ Foam::DsmcCloud::DsmcCloud ) : Cloud(mesh, cloudName, false), - DsmcBaseCloud(), + DSMCBaseCloud(), cloudName_(cloudName), mesh_(mesh), particleProperties_ @@ -780,7 +789,17 @@ Foam::DsmcCloud::DsmcCloud dimensionedScalar("zero", dimensionSet(0, 3, -1, 0, 0), 0.0), zeroGradientFvPatchScalarField::typeName ), - collisionSelectionRemainder_(), + collisionSelectionRemainder_ + ( + IOobject + ( + this->name() + ":collisionSelectionRemainder", + mesh_.time().timeName(), + mesh_ + ), + mesh_, + dimensionedScalar("collisionSelectionRemainder", dimless, 0) + ), q_ ( IOobject @@ -962,14 +981,14 @@ Foam::DsmcCloud::DsmcCloud // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template -Foam::DsmcCloud::~DsmcCloud() +Foam::DSMCCloud::~DSMCCloud() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -void Foam::DsmcCloud::evolve() +void Foam::DSMCCloud::evolve() { typename ParcelType::trackingData td(*this); @@ -999,12 +1018,12 @@ void Foam::DsmcCloud::evolve() template -void Foam::DsmcCloud::info() const +void Foam::DSMCCloud::info() const { - label nDsmcParticles = this->size(); - reduce(nDsmcParticles, sumOp