From f9a9c7148ebbcb315de1c36a455269324a1080e1 Mon Sep 17 00:00:00 2001 From: Andrew Heather Date: Wed, 14 Dec 2016 15:47:15 +0000 Subject: [PATCH] ENH: Added new injectedParticleDistributionInjection lagrangian injection model Description Interrogates an injectedParticleCloud to convert the raw particle data into a set of 'binned' injectors. The bins are set according to the particle \c tag property, from which: - diameters are converted into \c general distributions with a user-specified bin width - raw velocity and diameter data are resampled and stored to provide variations per injector The mass to inject can be set according to the raw input data mass total by using the \c applyDistributionMassTotal switch Usage \verbatim model1 { type injectedParticleDistributionInjection; SOI 0; parcelBasisType mass; cloud eulerianParticleCloud; positionOffset (-0.025 2 -0.025); binWidth 0.1e-3; parcelsPerInjector 500; resampleSize 100; // optional applyDistributionMassTotal yes; // Placeholder only when using applyDistributionMassTotal massTotal 0; } \endverbatim Note The each injector location is assumed to be operating under steady conditions, i.e. using a constant flow rate profile SourceFiles InjectedParticleDistributionInjection.C See also Foam::injectedParticle Foam::injectedParticleCloud Foam::functionObjects::extractEulerianParticles Foam::distributionModels::general --- .../InjectedParticleDistributionInjection.C | 525 ++++++++++++++++++ .../InjectedParticleDistributionInjection.H | 263 +++++++++ 2 files changed, 788 insertions(+) create mode 100644 src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C create mode 100644 src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.H diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C new file mode 100644 index 0000000000..8254aec7ae --- /dev/null +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectedParticleDistributionInjection/InjectedParticleDistributionInjection.C @@ -0,0 +1,525 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2015-2016 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 . + +\*---------------------------------------------------------------------------*/ + +#include "InjectedParticleDistributionInjection.H" +#include "mathematicalConstants.H" +#include "PackedBoolList.H" +#include "injectedParticleCloud.H" + +using namespace Foam::constant; + +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + +template +void Foam::InjectedParticleDistributionInjection::initialise() +{ + injectedParticleCloud ipCloud(this->owner().mesh(), cloudName_); + + List