release on 2013-05-16_07-06-53

This commit is contained in:
goniva
2013-05-16 07:06:53 +02:00
parent 60821fc645
commit 73c2d15d82
40 changed files with 1046 additions and 101 deletions

81
README
View File

@ -1,81 +0,0 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling 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.
CFDEMcoupling 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 CFDEMcoupling; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
and OpenFOAM. Note: this code is not part of OpenFOAM (see DISCLAIMER).
\*---------------------------------------------------------------------------*/
CFDEM coupling provides an open source parallel coupled CFD-DEM framework
combining the strengths of LIGGGHTS DEM code and the Open Source
CFD package OpenFOAM(R)(*). The CFDEMcoupling toolbox allows to expand
standard CFD solvers of OpenFOAM(R)(*) to include a coupling to the DEM
code LIGGGHTS. In this toolbox the particle representation within the
CFD solver is organized by "cloud" classes. Key functionalities are organised
in sub-models (e.g. force models, data exchange models, etc.) which can easily
be selected and combined by dictionary settings.
The coupled solvers run fully parallel on distributed-memory clusters.
Features are:
- its modular approach allows users to easily implement new models
- its MPI parallelization enables to use it for large scale problems
- the "forum"_lws on CFD-DEM gives the possibility to exchange with other
users / developers
- the use of GIT allows to easily update to the latest version
- basic documentation is provided
The file structure:
- "src" directory including the source files of the coupling toolbox and models
- "applications" directory including the solver files for coupled CFD-DEM simulations
- "doc" directory including the documentation of CFDEMcoupling
- "tutorials" directory including basic tutorial cases showing the functionality
Details on installation are given on the "www.cfdem.com"
The functionality of this CFD-DEM framwork is described via "tutorial cases" showing
how to use different solvers and models.
CFDEMcoupling stands for Computational Fluid Dynamics (CFD) -
Discrete Element Method (DEM) coupling.
CFDEMcoupling is an open-source code, distributed freely under the terms of the
GNU Public License (GPL).
Core development of CFDEMcoupling is done by
Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012
\*---------------------------------------------------------------------------*/
(*) "OpenFOAM(R)"_of is a registered trade mark of the ESI Group.
This offering is not affiliated, approved or endorsed by ESI Group,
the producer of the OpenFOAM® software and owner of the OpenFOAM® trade mark.
\*---------------------------------------------------------------------------*/

View File

@ -123,7 +123,7 @@ int main(int argc, char *argv[])
fvScalarMatrix pEqn
(
fvm::laplacian(rUA, p) == fvc::div(phi) + fvc::ddt(voidfraction)
fvm::laplacian(rUA, p) == fvc::div(phi) + particleCloud.ddtVoidfraction()
);
pEqn.setReference(pRefCell, pRefValue);

View File

@ -43,6 +43,7 @@ Description
#include "cfdemCloud.H"
#include "implicitCouple.H"
#include "smoothingModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -80,7 +81,8 @@ int main(int argc, char *argv[])
particleCloud.evolve(voidfraction,Us,U);
Info << "update Ksl.internalField()" << endl;
Ksl.internalField() = particleCloud.momCoupleM(0).impMomSource();
Ksl.oldTime().internalField() = particleCloud.momCoupleM(0).impMomSource();
particleCloud.smoothingM().smoothen(Ksl);
Ksl.correctBoundaryConditions();
// --- Pressure-velocity PIMPLE corrector loop

View File

@ -41,6 +41,7 @@ Description
#include "cfdemCloud.H"
#include "implicitCouple.H"
#include "clockModel.H"
#include "smoothingModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -74,7 +75,8 @@ int main(int argc, char *argv[])
particleCloud.evolve(voidfraction,Us,U);
Info << "update Ksl.internalField()" << endl;
Ksl.internalField() = particleCloud.momCoupleM(0).impMomSource();
Ksl.oldTime().internalField() = particleCloud.momCoupleM(0).impMomSource();
particleCloud.smoothingM().smoothen(Ksl);
Ksl.correctBoundaryConditions();
#include "solverDebugInfo.H"

View File

@ -41,6 +41,7 @@ Description
#include "cfdemCloud.H"
#include "implicitCouple.H"
#include "forceModel.H"
#include "smoothingModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -74,9 +75,11 @@ int main(int argc, char *argv[])
Info << "- evolve()" << endl;
particleCloud.evolve(voidfraction,Us,U);
Ksl.internalField() = particleCloud.momCoupleM(0).impMomSource();
Ksl.oldTime().internalField() = particleCloud.momCoupleM(0).impMomSource();
particleCloud.smoothingM().smoothen(Ksl);
Ksl.correctBoundaryConditions();
#include "solverDebugInfo.H"
// get scalar source from DEM

View File

@ -229,9 +229,11 @@ listing below of styles within certain commands.
<TR ALIGN="center"><TD ><A HREF = "momCoupleModel.html">momCoupleModel</A></TD><TD ><A HREF = "momCoupleModel_explicitCouple.html">momCoupleModel_explicitCouple</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "momCoupleModel_implicitCouple.html">momCoupleModel_implicitCouple</A></TD><TD ><A HREF = "momCoupleModel_noCouple.html">momCoupleModel_noCouple</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "regionModel.html">regionModel</A></TD><TD ><A HREF = "regionModel_allRegion.html">regionModel_allRegion</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "voidFractionModel.html">voidfractionModel</A></TD><TD ><A HREF = "voidFractionModel_GaussVoidFraction.html">voidfractionModel_GaussVoidFraction</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "voidFractionModel_IBVoidFraction.html">voidfractionModel_IBVoidFraction</A></TD><TD ><A HREF = "voidFractionModel_bigParticleVoidFraction.html">voidfractionModel_bigParticleVoidFraction</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "voidFractionModel_centreVoidFraction.html">voidfractionModel_centreVoidFraction</A></TD><TD ><A HREF = "voidFractionModel_dividedVoidFraction.html">voidfractionModel_dividedVoidFraction</A>
<TR ALIGN="center"><TD ><A HREF = "smoothingModel.html">smoothingModel</A></TD><TD ><A HREF = "smoothingModel_constDiffSmoothing.html">smoothingModel_constDiffSmoothing</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "smoothingModel_noSmoothing.html">smoothingModel_noSmoothing</A></TD><TD ><A HREF = "voidFractionModel.html">voidfractionModel</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "voidFractionModel_GaussVoidFraction.html">voidfractionModel_GaussVoidFraction</A></TD><TD ><A HREF = "voidFractionModel_IBVoidFraction.html">voidfractionModel_IBVoidFraction</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "voidFractionModel_bigParticleVoidFraction.html">voidfractionModel_bigParticleVoidFraction</A></TD><TD ><A HREF = "voidFractionModel_centreVoidFraction.html">voidfractionModel_centreVoidFraction</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "voidFractionModel_dividedVoidFraction.html">voidfractionModel_dividedVoidFraction</A>
</TD></TR></TABLE></DIV>
</HTML>

Binary file not shown.

View File

@ -260,6 +260,9 @@ listing below of styles within certain commands.
"momCoupleModel_noCouple"_momCoupleModel_noCouple.html,
"regionModel"_regionModel.html,
"regionModel_allRegion"_regionModel_allRegion.html,
"smoothingModel"_smoothingModel.html,
"smoothingModel_constDiffSmoothing"_smoothingModel_constDiffSmoothing.html,
"smoothingModel_noSmoothing"_smoothingModel_noSmoothing.html,
"voidfractionModel"_voidFractionModel.html,
"voidfractionModel_GaussVoidFraction"_voidFractionModel_GaussVoidFraction.html,
"voidfractionModel_IBVoidFraction"_voidFractionModel_IBVoidFraction.html,

Binary file not shown.

34
doc/smoothingModel.html Normal file
View File

@ -0,0 +1,34 @@
<HTML>
<CENTER><A HREF = "http://www.cfdem.com">CFDEMproject WWW Site</A> - <A HREF = "CFDEMcoupling_Manual.html#comm">CFDEM Commands</A>
</CENTER>
<HR>
<H3>smoothingModel command
</H3>
<P><B>Syntax:</B>
</P>
<P>Defined in couplingProperties dictionary.
</P>
<PRE>smoothingModel model;
</PRE>
<UL><LI>model = name of the smoothingModel to be applied
</UL>
<P><B>Examples:</B>
</P>
<PRE>smoothingModel off;
</PRE>
<P>Note: This examples list might not be complete - please look for other models (smoothingModel_XY) in this documentation.
</P>
<P><B>Description:</B>
</P>
<P>The smoothingModel is the base class for models smoothen the exchange fields.
</P>
<P><B>Restrictions:</B> none.
</P>
<P><B>Default:</B> none.
</P>
</HTML>

30
doc/smoothingModel.txt Normal file
View File

@ -0,0 +1,30 @@
"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c
:link(lws,http://www.cfdem.com)
:link(lc,CFDEMcoupling_Manual.html#comm)
:line
smoothingModel command :h3
[Syntax:]
Defined in couplingProperties dictionary.
smoothingModel model; :pre
model = name of the smoothingModel to be applied :ul
[Examples:]
smoothingModel off; :pre
Note: This examples list might not be complete - please look for other models (smoothingModel_XY) in this documentation.
[Description:]
The smoothingModel is the base class for models smoothen the exchange fields.
[Restrictions:] none.
[Default:] none.

View File

@ -0,0 +1,49 @@
<HTML>
<CENTER><A HREF = "http://www.cfdem.com">CFDEMproject WWW Site</A> - <A HREF = "CFDEMcoupling_Manual.html#comm">CFDEM Commands</A>
</CENTER>
<HR>
<H3>smoothingModel_constDiffSmoothing command
</H3>
<P><B>Syntax:</B>
</P>
<P>Defined in couplingProperties dictionary.
</P>
<PRE>smoothingModel constDiffSmoothing;
constDiffSmoothingProps
{
lowerLimit number1;
upperLimit number2;
DT number3;
}
</PRE>
<UL><LI><I>number1</I> = scalar fields will be bound to this lower value
<LI><I>number2</I> = scalar fields will be bound to this upper value
<LI><I>number3</I> = diffusion constant
<P><B>Examples:</B>
</P>
<PRE>constDiffSmoothingProps
{
lowerLimit 0.1;
upperLimit 1e10;
DT 1e-3;
}
</PRE>
<P><B>Description:</B>
</P>
<P>The "constDiffSmoothing" model is a basic smoothingModel model which reads a diffusion coefficient being used for smoothening the exchange fields (voidfraction, Ksl, f if present).
</P>
<P><B>Restrictions:</B> none.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "smoothingModel.html">smoothingModel</A>
</P>
</HTML>

View File

@ -0,0 +1,44 @@
"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c
:link(lws,http://www.cfdem.com)
:link(lc,CFDEMcoupling_Manual.html#comm)
:line
smoothingModel_constDiffSmoothing command :h3
[Syntax:]
Defined in couplingProperties dictionary.
smoothingModel constDiffSmoothing;
constDiffSmoothingProps
\{
lowerLimit number1;
upperLimit number2;
DT number3;
\} :pre
{number1} = scalar fields will be bound to this lower value :ulb,l
{number2} = scalar fields will be bound to this upper value :l
{number3} = diffusion constant :l
[Examples:]
constDiffSmoothingProps
\{
lowerLimit 0.1;
upperLimit 1e10;
DT 1e-3;
\} :pre
[Description:]
The "constDiffSmoothing" model is a basic smoothingModel model which reads a diffusion coefficient being used for smoothening the exchange fields (voidfraction, Ksl, f if present).
[Restrictions:] none.
[Related commands:]
"smoothingModel"_smoothingModel.html

View File

@ -0,0 +1,32 @@
<HTML>
<CENTER><A HREF = "http://www.cfdem.com">CFDEMproject WWW Site</A> - <A HREF = "CFDEMcoupling_Manual.html#comm">CFDEM Commands</A>
</CENTER>
<HR>
<H3>smoothingModel_noSmoothing command
</H3>
<P><B>Syntax:</B>
</P>
<P>Defined in couplingProperties dictionary.
</P>
<PRE>smoothingModel off;
</PRE>
<P><B>Examples:</B>
</P>
<PRE>smoothingModel off;
</PRE>
<P><B>Description:</B>
</P>
<P>The "noSmoothing" model is a dummy smoothingModel model which does no smoothing.
</P>
<P><B>Restrictions:</B> none.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "smoothingModel.html">smoothingModel</A>
</P>
</HTML>

View File

@ -0,0 +1,29 @@
"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c
:link(lws,http://www.cfdem.com)
:link(lc,CFDEMcoupling_Manual.html#comm)
:line
smoothingModel_noSmoothing command :h3
[Syntax:]
Defined in couplingProperties dictionary.
smoothingModel off; :pre
[Examples:]
smoothingModel off; :pre
[Description:]
The "noSmoothing" model is a dummy smoothingModel model which does no smoothing.
[Restrictions:] none.
[Related commands:]
"smoothingModel"_smoothingModel.html

View File

@ -6,11 +6,11 @@ voidFractionModels = subModels/voidFractionModel
locateModels = subModels/locateModel
meshMotionModels = subModels/meshMotionModel
momCoupleModels = subModels/momCoupleModel
regionModels = subModels/regionModel
dataExchangeModels = subModels/dataExchangeModel
averagingModels = subModels/averagingModel
clockModels = subModels/clockModel
liggghtsCommandModels = subModels/liggghtsCommandModel
smoothingModels = subModels/smoothingModel
$(cfdemCloud)/cfdemCloud.C
derived/cfdemCloudIB/cfdemCloudIB.C
@ -21,20 +21,33 @@ $(forceModels)/forceModel/newForceModel.C
$(forceModels)/noDrag/noDrag.C
$(forceModels)/checkCouplingInterval/checkCouplingInterval.C
$(forceModels)/DiFeliceDrag/DiFeliceDrag.C
$(forceModels)/DiFeliceDragNLift/DiFeliceDragNLift.C
$(forceModels)/GidaspowDrag/GidaspowDrag.C
$(forceModels)/SchillerNaumannDrag/SchillerNaumannDrag.C
$(forceModels)/Archimedes/Archimedes.C
$(forceModels)/ArchimedesIB/ArchimedesIB.C
$(forceModels)/interface/interface.C
$(forceModels)/ShirgaonkarIB/ShirgaonkarIB.C
$(forceModels)/fieldTimeAverage/fieldTimeAverage.C
$(forceModels)/fieldBound/fieldBound.C
$(forceModels)/volWeightedAverage/volWeightedAverage.C
$(forceModels)/totalMomentumExchange/totalMomentumExchange.C
$(forceModels)/KochHillDrag/KochHillDrag.C
$(forceModels)/BeetstraDrag/multiphaseFlowBasic/multiphaseFlowBasic.C
$(forceModels)/BeetstraDrag/BeetstraDrag.C
$(forceModels)/LaEuScalarLiquid/LaEuScalarLiquid.C
$(forceModels)/LaEuScalarTemp/LaEuScalarTemp.C
$(forceModels)/LaEuScalarDust/LaEuScalarDust.C
$(forceModels)/virtualMassForce/virtualMassForce.C
$(forceModels)/gradPForce/gradPForce.C
$(forceModels)/gradULiftForce/gradULiftForce.C
$(forceModels)/viscForce/viscForce.C
$(forceModels)/MeiLift/MeiLift.C
$(forceModels)/fieldTimeAverage/fieldTimeAverage.C
$(forceModels)/volWeightedAverage/volWeightedAverage.C
$(forceModels)/KochHillDragNLift/KochHillDragNLift.C
$(forceModels)/solidsPressureForce/solidsPressureForce.C
$(forceModels)/periodicPressure/periodicPressure.C
$(forceModels)/periodicPressureControl/periodicPressureControl.C
$(forceModels)/averageSlipVel/averageSlipVel.C
$(forceModelsMS)/forceModelMS/forceModelMS.C
$(forceModelsMS)/forceModelMS/newForceModelMS.C
@ -64,21 +77,18 @@ $(locateModels)/turboEngineSearch/turboEngineSearch.C
$(locateModels)/turboEngineSearchM2M/turboEngineSearchM2M.C
$(locateModels)/engineSearchIB/engineSearchIB.C
$(meshMotionModels)/meshMotionModel/meshMotionModel.C
$(meshMotionModels)/meshMotionModel/newMeshMotionModel.C
$(meshMotionModels)/noMeshMotion/noMeshMotion.C
$(meshMotionModels)/DEMdrivenMeshMotion/DEMdrivenMeshMotion.C
$(momCoupleModels)/momCoupleModel/momCoupleModel.C
$(momCoupleModels)/momCoupleModel/newMomCoupleModel.C
$(momCoupleModels)/explicitCouple/explicitCouple.C
$(momCoupleModels)/explicitCoupleSource/explicitCoupleSource.C
$(momCoupleModels)/implicitCouple/implicitCouple.C
$(momCoupleModels)/noCouple/noCouple.C
$(regionModels)/regionModel/regionModel.C
$(regionModels)/regionModel/newRegionModel.C
$(regionModels)/allRegion/allRegion.C
$(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C
$(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C
$(dataExchangeModels)/oneWayVTK/oneWayVTK.C
@ -104,4 +114,9 @@ $(liggghtsCommandModels)/runLiggghts/runLiggghts.C
$(liggghtsCommandModels)/writeLiggghts/writeLiggghts.C
$(liggghtsCommandModels)/readLiggghtsData/readLiggghtsData.C
LIB = $(FOAM_USER_LIBBIN)/lib$(CFDEM_LIB_NAME)
$(smoothingModels)/smoothingModel/smoothingModel.C
$(smoothingModels)/smoothingModel/newSmoothingModel.C
$(smoothingModels)/noSmoothing/noSmoothing.C
$(smoothingModels)/constDiffSmoothing/constDiffSmoothing.C
LIB = $(CFDEM_LIB_DIR)/lib$(CFDEM_LIB_NAME)

View File

@ -1,4 +1,4 @@
word CFDEMversion="cfdem-2.5.3";
word CFDEMversion="cfdem-2.5.4";
word compatibleLIGGGHTSversion="2.3.2";
Info << "\nCFDEMcoupling version: " << CFDEMversion << "\n" << endl;

View File

@ -40,6 +40,7 @@ Description
#include "IOModel.H"
#include "averagingModel.H"
#include "clockModel.H"
#include "smoothingModel.H"
#include "liggghtsCommandModel.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
@ -180,6 +181,14 @@ Foam::cfdemCloud::cfdemCloud
*this
)
),
smoothingModel_
(
smoothingModel::New
(
couplingProperties_,
*this
)
),
meshMotionModel_
(
meshMotionModel::New
@ -503,7 +512,10 @@ bool Foam::cfdemCloud::evolve
clockM().start(24,"interpolateEulerFields");
// update voidFractionField
alpha.internalField() = voidFractionM().voidFractionInterp();
alpha.oldTime().internalField() = voidFractionM().voidFractionInterp();
// smoothing exchange field
smoothingM().smoothen(alpha);
alpha.correctBoundaryConditions();
// calc ddt(voidfraction)

View File

@ -67,6 +67,7 @@ class dataExchangeModel;
class IOModel;
class averagingModel;
class clockModel;
class smoothingModel;
class momCoupleModel;
class meshMotionModel;
class liggghtsCommandModel;
@ -164,6 +165,8 @@ protected:
autoPtr<clockModel> clockModel_;
autoPtr<smoothingModel> smoothingModel_;
autoPtr<meshMotionModel> meshMotionModel_;
autoPtr<liggghtsCommandModel>* liggghtsCommand_;
@ -285,6 +288,8 @@ public:
inline const clockModel& clockM() const;
inline const smoothingModel& smoothingM() const;
inline const meshMotionModel& meshMotionM() const;
inline const wordList& liggghtsCommandModelList() const;

View File

@ -192,6 +192,11 @@ inline const clockModel& cfdemCloud::clockM() const
return clockModel_;
}
inline const smoothingModel& cfdemCloud::smoothingM() const
{
return smoothingModel_;
}
inline const meshMotionModel& cfdemCloud::meshMotionM() const
{
return meshMotionModel_;

View File

@ -54,7 +54,7 @@ namespace Foam
class cfdemCloudIB
:
private cfdemCloud
public cfdemCloud
{
protected:

View File

@ -0,0 +1,107 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling 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.
CFDEMcoupling 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 CFDEMcoupling; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
and OpenFOAM(R). Note: this code is not part of OpenFOAM(R) (see DISCLAIMER).
\*---------------------------------------------------------------------------*/
#include "error.H"
#include "constDiffSmoothing.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(constDiffSmoothing, 0);
addToRunTimeSelectionTable
(
smoothingModel,
constDiffSmoothing,
dictionary
);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// Construct from components
constDiffSmoothing::constDiffSmoothing
(
const dictionary& dict,
cfdemCloud& sm
)
:
smoothingModel(dict,sm),
propsDict_(dict.subDict(typeName + "Props")),
lowerLimit_(readScalar(propsDict_.lookup("lowerLimit"))),
upperLimit_(readScalar(propsDict_.lookup("upperLimit"))),
DT_(dimensionedScalar("DT",dimensionSet(0,2,-1,0,0,0,0),readScalar(propsDict_.lookup("DT"))))
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
constDiffSmoothing::~constDiffSmoothing()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::constDiffSmoothing::smoothen(volScalarField& field) const
{
// do smoothing
solve
(
fvm::ddt(field)
-fvm::laplacian(DT_, field)
);
// bound field
forAll(field,cellI)
{
field[cellI]=max(lowerLimit_,min(upperLimit_,field[cellI]));
}
}
void Foam::constDiffSmoothing::smoothen(volVectorField& field) const
{
// do smoothing
solve
(
fvm::ddt(field)
-fvm::laplacian(DT_, field)
);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View File

@ -0,0 +1,100 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling 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.
CFDEMcoupling 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 CFDEMcoupling; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
and OpenFOAM(R). Note: this code is not part of OpenFOAM(R) (see DISCLAIMER).
Class
constDiffSmoothing
SourceFiles
constDiffSmoothing.C
\*---------------------------------------------------------------------------*/
#ifndef constDiffSmoothing_H
#define constDiffSmoothing_H
#include "smoothingModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class constDiffSmoothing Declaration
\*---------------------------------------------------------------------------*/
class constDiffSmoothing
:
public smoothingModel
{
private:
dictionary propsDict_;
scalar lowerLimit_;
scalar upperLimit_;
dimensionedScalar DT_;
public:
//- Runtime type information
TypeName("constDiffSmoothing");
// Constructors
//- Construct from components
constDiffSmoothing
(
const dictionary& dict,
cfdemCloud& sm
);
// Destructor
~constDiffSmoothing();
// Member Functions
void smoothen(volScalarField&) const;
void smoothen(volVectorField&) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -0,0 +1,87 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling 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.
CFDEMcoupling 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 CFDEMcoupling; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
and OpenFOAM(R). Note: this code is not part of OpenFOAM(R) (see DISCLAIMER).
\*---------------------------------------------------------------------------*/
#include "error.H"
#include "noSmoothing.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(noSmoothing, 0);
addToRunTimeSelectionTable
(
smoothingModel,
noSmoothing,
dictionary
);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// Construct from components
noSmoothing::noSmoothing
(
const dictionary& dict,
cfdemCloud& sm
)
:
smoothingModel(dict,sm)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
noSmoothing::~noSmoothing()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::noSmoothing::smoothen(volScalarField& field) const
{
field=field.oldTime();
}
void Foam::noSmoothing::smoothen(volVectorField& field) const
{
field=field.oldTime();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View File

@ -0,0 +1,93 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling 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.
CFDEMcoupling 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 CFDEMcoupling; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
and OpenFOAM(R). Note: this code is not part of OpenFOAM(R) (see DISCLAIMER).
Class
noSmoothing
SourceFiles
noSmoothing.C
\*---------------------------------------------------------------------------*/
#ifndef noSmoothing_H
#define noSmoothing_H
#include "smoothingModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class noSmoothing Declaration
\*---------------------------------------------------------------------------*/
class noSmoothing
:
public smoothingModel
{
public:
//- Runtime type information
TypeName("off");
// Constructors
//- Construct from components
noSmoothing
(
const dictionary& dict,
cfdemCloud& sm
);
// Destructor
~noSmoothing();
// Member Functions
void smoothen(volScalarField&) const;
void smoothen(volVectorField&) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -0,0 +1,84 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling 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.
CFDEMcoupling 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 CFDEMcoupling; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
and OpenFOAM(R). Note: this code is not part of OpenFOAM(R) (see DISCLAIMER).
\*---------------------------------------------------------------------------*/
#include "error.H"
#include "smoothingModel.H"
#include "standardSearch.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
autoPtr<smoothingModel> smoothingModel::New
(
const dictionary& dict,
cfdemCloud& sm
)
{
word smoothingModelType
(
dict.lookup("smoothingModel")
);
Info<< "Selecting smoothingModel "
<< smoothingModelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(smoothingModelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
FatalError
<< "smoothingModel::New(const dictionary&, const spray&) : "
<< endl
<< " unknown smoothingModelType type "
<< smoothingModelType
<< ", constructor not in hash table" << endl << endl
<< " Valid smoothingModel types are :"
<< endl;
Info<< dictionaryConstructorTablePtr_->toc()
<< abort(FatalError);
}
return autoPtr<smoothingModel>(cstrIter()(dict,sm));
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View File

@ -0,0 +1,74 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling 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.
CFDEMcoupling 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 CFDEMcoupling; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
and OpenFOAM(R). Note: this code is not part of OpenFOAM(R) (see DISCLAIMER).
\*---------------------------------------------------------------------------*/
#include "error.H"
#include "smoothingModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(smoothingModel, 0);
defineRunTimeSelectionTable(smoothingModel, dictionary);
// * * * * * * * * * * * * * public Member Functions * * * * * * * * * * * * //
// * * * * * * * * * * * * * private Member Functions * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// Construct from components
Foam::smoothingModel::smoothingModel
(
const dictionary& dict,
cfdemCloud& sm
)
:
dict_(dict),
particleCloud_(sm)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::smoothingModel::~smoothingModel()
{}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View File

@ -0,0 +1,118 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling 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.
CFDEMcoupling 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 CFDEMcoupling; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
and OpenFOAM(R). Note: this code is not part of OpenFOAM(R) (see DISCLAIMER).
Class
smoothingModel
SourceFiles
smoothingModel.C
\*---------------------------------------------------------------------------*/
#ifndef smoothingModel_H
#define smoothingModel_H
#include "fvCFD.H"
#include "cfdemCloud.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class smoothingModel Declaration
\*---------------------------------------------------------------------------*/
class smoothingModel
{
protected:
// Protected data
const dictionary& dict_;
cfdemCloud& particleCloud_;
public:
//- Runtime type information
TypeName("smoothingModel");
// Declare runtime constructor selection table
declareRunTimeSelectionTable
(
autoPtr,
smoothingModel,
dictionary,
(
const dictionary& dict,
cfdemCloud& sm
),
(dict,sm)
);
// Constructors
//- Construct from components
smoothingModel
(
const dictionary& dict,
cfdemCloud& sm
);
// Destructor
virtual ~smoothingModel();
// Selector
static autoPtr<smoothingModel> New
(
const dictionary& dict,
cfdemCloud& sm
);
// Member Functions
virtual void smoothen(volScalarField&) const=0;
virtual void smoothen(volVectorField&) const=0;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -48,6 +48,8 @@ averagingModel dilute;
clockModel off;
smoothingModel off;
forceModels
(
ShirgaonkarIB

View File

@ -46,6 +46,8 @@ averagingModel dense;//dilute;//
clockModel off;
smoothingModel constDiffSmoothing;
forceModels
(
//GidaspowDrag
@ -68,6 +70,13 @@ turbulenceModelType RASProperties;//LESProperties;//
//===========================================================================//
// sub-model properties
constDiffSmoothingProps
{
lowerLimit 0.1;
upperLimit 1e10;
DT 1e-3;
}
implicitCoupleProps
{
velFieldName "U";

View File

@ -54,6 +54,13 @@ solvers
tolerance 1e-05;
relTol 0;
}
"(voidfraction|Ksl|f)"
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}
}
PIMPLE

View File

@ -1,3 +1,68 @@
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile

View File

@ -18,7 +18,7 @@ casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
logpath=$casePath
headerText="run_parallel_cfdemSolverPimple_ErgunTestMPI_CFDDEM"
logfileName="log_$headerText"
solverName="cfdemSolverPimple"
solverName="cfdemSolverPimpleSmooth"
nrProcs="2"
machineFileName="none" # yourMachinefileName | none
debugMode="off" # on | off

View File

@ -46,6 +46,8 @@ averagingModel dense;//dilute;//
clockModel standardClock;//off;
smoothingModel off;
forceModels
(
//GidaspowDrag

View File

@ -46,6 +46,8 @@ averagingModel dense;//dilute;//
clockModel standardClock;//off;
smoothingModel off;
forceModels
(
//GidaspowDrag

View File

@ -46,6 +46,8 @@ averagingModel dense;//dilute;//
clockModel off;
smoothingModel off;
forceModels
(
//GidaspowDrag

View File

@ -46,6 +46,8 @@ averagingModel dense;//dilute;//
clockModel off;
smoothingModel off;
forceModels
(
//GidaspowDrag

View File

@ -43,3 +43,4 @@ dummyfile
dummyfile
dummyfile
dummyfile
dummyfile

View File

@ -46,6 +46,8 @@ averagingModel dense;//dilute;//
clockModel standardClock;//off; //
smoothingModel off;
forceModels
(
DiFeliceDrag

View File

@ -46,6 +46,8 @@ averagingModel dense;//dilute;//
clockModel off;//standardClock;//
smoothingModel off;
forceModels
(
KochHillDrag