release on 2012-07-30_10-43-02

This commit is contained in:
cfdem
2012-07-30 10:43:03 +02:00
parent 00f0086c5f
commit 6677dfbc43
38 changed files with 688 additions and 142 deletions

82
README
View File

@ -1,82 +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 Silicon Graphics
International Corp. This offering is not affiliated, approved or endorsed by
Silicon Graphics International Corp., the producer of the OpenFOAM(R) software
and owner of the OpenFOAM(R) trademark.
\*---------------------------------------------------------------------------*/

View File

@ -50,13 +50,11 @@ int main(int argc, char *argv[])
#include "createTime.H"
#include "createMesh.H"
#include "createFields.H"
#include "initContinuityErrs.H"
// create cfdemCloud
#include "readGravitationalAcceleration.H"
cfdemCloud particleCloud(mesh);
#include "checkModelType.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -1,33 +1,34 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright (C) 1991-2009 OpenCFD Ltd.
Copyright (C) 2009-2012 JKU, Linz
Copyright (C) 2012- DCS Computing GmbH,Linz
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
This file is part of CFDEMcoupling.
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 2 of the License, or (at your
option) any later version.
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.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
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 OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
along with CFDEMcoupling. If not, see <http://www.gnu.org/licenses/>.
Application
cfdemPostproc
Description
Tool for DEM->CFD (Lagrange->Euler) mapping to calculate local voidfraction
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"

View File

@ -0,0 +1,3 @@
writeUfluid.C
EXE = $(FOAM_APPBIN)/writeUfluid

View File

@ -0,0 +1,10 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-lgenericPatchFields \
-llagrangian

View File

@ -0,0 +1,25 @@
IOdictionary propsDict
(
IOobject
(
"particleTrackProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED
)
);
const word cloudName(propsDict.lookup("cloudName"));
//label sampleFrequency(readLabel(propsDict.lookup("sampleFrequency")));
// outputMode: compositeFile, filePerTrack
//word outputmode(propsDict.lookup("outputMode"))
//label maxPositions(readLabel(propsDict.lookup("maxPositions")));
// outputFormat: raw, vtk
//word outputFormat(propsDict.lookup("outputFormat"));

View File

@ -0,0 +1,25 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object particleTrackProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
cloudName cfdemCloud1;
sampleFrequency 1;
maxPositions 1000000;
maxPositions 20000;
// ************************************************************************* //

View File

@ -0,0 +1,99 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright (C) 1991-2009 OpenCFD Ltd.
Copyright (C) 2009-2012 JKU, Linz
Copyright (C) 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, see <http://www.gnu.org/licenses/>.
Application
writeUfluidwriteUfluid
Description
Writes the the cell center fluid velocity to particles in the lagrangian
time directory.
\*---------------------------------------------------------------------------*/
#include "argList.H"
#include "Cloud.H"
#include "IOdictionary.H"
#include "fvCFD.H"
#include "fvMesh.H"
#include "Time.H"
#include "timeSelector.H"
#include "OFstream.H"
#include "passiveParticleCloud.H"
using namespace Foam;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
timeSelector::addOptions();
#include "addRegionOption.H"
#include "setRootCase.H"
#include "createTime.H"
instantList timeDirs = timeSelector::select0(runTime, args);
#include "createMesh.H"
#include "createFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int nParticle=0;
forAll(timeDirs, timeI)
{
runTime.setTime(timeDirs[timeI], timeI);
Info<< "Time = " << runTime.timeName() << endl;
IOobject UHeader
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ
);
if (UHeader.headerOk())
{
volVectorField U(UHeader,mesh);
passiveParticleCloud myCloud(mesh, cloudName);
myCloud.write();
nParticle = myCloud.size();
IOField<vector> Ufluid(myCloud.fieldIOobject("Ufluid",IOobject::NO_READ),nParticle);
label i = 0;
forAllConstIter(passiveParticleCloud, myCloud, iter)
{
Ufluid[i]=U[iter().cell()];
i++;
}
Ufluid.write();
}
else
{
Info << "velocity field not found" << endl;
}
}
return 0;
}
// ************************************************************************* //

View File

@ -189,32 +189,33 @@ listing below of styles within certain commands.
</P>
<DIV ALIGN=center><TABLE BORDER=1 >
<TR ALIGN="center"><TD ><A HREF = "IOModel.html">IOModel</A></TD><TD ><A HREF = "IOModel_basicIO.html">IOModel_basicIO</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "IOModel_noIO.html">IOModel_noIO</A></TD><TD ><A HREF = "averagingModel.html">averagingModel</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "averagingModel_dilute.html">averagingModel_dilute</A></TD><TD ><A HREF = "cfdemSolverIB.html">cfdemSolverIB</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "cfdemSolverPiso.html">cfdemSolverPiso</A></TD><TD ><A HREF = "cfdemSolverPisoScalar.html">cfdemSolverPisoScalar</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "clockModel.html">clockModel</A></TD><TD ><A HREF = "clockModel_noClock.html">clockModel_noClock</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "clockModel_standardClock.html">clockModel_standardClock</A></TD><TD ><A HREF = "dataExchangeModel.html">dataExchangeModel</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "dataExchangeModel_noDataExchange.html">dataExchangeModel_noDataExchange</A></TD><TD ><A HREF = "dataExchangeModel_oneWayVTK.html">dataExchangeModel_oneWayVTK</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "dataExchangeModel_twoWayFiles.html">dataExchangeModel_twoWayFiles</A></TD><TD ><A HREF = "dataExchangeModel_twoWayMPI.html">dataExchangeModel_twoWayMPI</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel.html">forceModel</A></TD><TD ><A HREF = "forceModel_Archimedes.html">forceModel_Archimedes</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_ArchimedesIB.html">forceModel_ArchimedesIB</A></TD><TD ><A HREF = "forceModel_DiFeliceDrag.html">forceModel_DiFeliceDrag</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_GidaspowDrag.html">forceModel_GidaspowDrag</A></TD><TD ><A HREF = "forceModel_KochHillDrag.html">forceModel_KochHillDrag</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_LaEuScalarTemp.html">forceModel_LaEuScalarTemp</A></TD><TD ><A HREF = "forceModel_MeiLift.html">forceModel_MeiLift</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_SchillerNaumannDrag.html">forceModel_SchillerNaumannDrag</A></TD><TD ><A HREF = "forceModel_ShirgaonkarIB.html">forceModel_ShirgaonkarIB</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_gradPForce.html">forceModel_gradPForce</A></TD><TD ><A HREF = "forceModel_noDrag.html">forceModel_noDrag</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_virtualMassForce.html">forceModel_virtualMassForce</A></TD><TD ><A HREF = "forceModel_viscForce.html">forceModel_viscForce</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "liggghtsCommandModel.html">liggghtsCommandModel</A></TD><TD ><A HREF = "liggghtsCommandModel_execute.html">liggghtsCommandModel_execute</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "liggghtsCommandModel_readLiggghtsData.html">liggghtsCommandModel_readLiggghtsData</A></TD><TD ><A HREF = "liggghtsCommandModel_runLiggghts.html">liggghtsCommandModel_runLiggghts</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "liggghtsCommandModel_writeLiggghts.html">liggghtsCommandModel_writeLiggghts</A></TD><TD ><A HREF = "locateModel.html">locateModel</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "locateModel_engineSearch.html">locateModel_engineSearch</A></TD><TD ><A HREF = "locateModel_engineSearchIB.html">locateModel_engineSearchIB</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "locateModel_standardSearch.html">locateModel_standardSearch</A></TD><TD ><A HREF = "locateModel_turboEngineSearch.html">locateModel_turboEngineSearch</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "meshMotionModel.html">meshMotionModel</A></TD><TD ><A HREF = "meshMotionModel_noMeshMotion.html">meshMotionModel_noMeshMotion</A></TD></TR>
<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 = "IOModel_noIO.html">IOModel_noIO</A></TD><TD ><A HREF = "IOModel_trackIO.html">IOModel_trackIO</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "averagingModel.html">averagingModel</A></TD><TD ><A HREF = "averagingModel_dilute.html">averagingModel_dilute</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "cfdemSolverIB.html">cfdemSolverIB</A></TD><TD ><A HREF = "cfdemSolverPiso.html">cfdemSolverPiso</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "cfdemSolverPisoScalar.html">cfdemSolverPisoScalar</A></TD><TD ><A HREF = "clockModel.html">clockModel</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "clockModel_noClock.html">clockModel_noClock</A></TD><TD ><A HREF = "clockModel_standardClock.html">clockModel_standardClock</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "dataExchangeModel.html">dataExchangeModel</A></TD><TD ><A HREF = "dataExchangeModel_noDataExchange.html">dataExchangeModel_noDataExchange</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "dataExchangeModel_oneWayVTK.html">dataExchangeModel_oneWayVTK</A></TD><TD ><A HREF = "dataExchangeModel_twoWayFiles.html">dataExchangeModel_twoWayFiles</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "dataExchangeModel_twoWayMPI.html">dataExchangeModel_twoWayMPI</A></TD><TD ><A HREF = "forceModel.html">forceModel</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_Archimedes.html">forceModel_Archimedes</A></TD><TD ><A HREF = "forceModel_ArchimedesIB.html">forceModel_ArchimedesIB</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_DiFeliceDrag.html">forceModel_DiFeliceDrag</A></TD><TD ><A HREF = "forceModel_GidaspowDrag.html">forceModel_GidaspowDrag</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_KochHillDrag.html">forceModel_KochHillDrag</A></TD><TD ><A HREF = "forceModel_LaEuScalarTemp.html">forceModel_LaEuScalarTemp</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_MeiLift.html">forceModel_MeiLift</A></TD><TD ><A HREF = "forceModel_SchillerNaumannDrag.html">forceModel_SchillerNaumannDrag</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_ShirgaonkarIB.html">forceModel_ShirgaonkarIB</A></TD><TD ><A HREF = "forceModel_gradPForce.html">forceModel_gradPForce</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_noDrag.html">forceModel_noDrag</A></TD><TD ><A HREF = "forceModel_virtualMassForce.html">forceModel_virtualMassForce</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "forceModel_viscForce.html">forceModel_viscForce</A></TD><TD ><A HREF = "liggghtsCommandModel.html">liggghtsCommandModel</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "liggghtsCommandModel_execute.html">liggghtsCommandModel_execute</A></TD><TD ><A HREF = "liggghtsCommandModel_readLiggghtsData.html">liggghtsCommandModel_readLiggghtsData</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "liggghtsCommandModel_runLiggghts.html">liggghtsCommandModel_runLiggghts</A></TD><TD ><A HREF = "liggghtsCommandModel_writeLiggghts.html">liggghtsCommandModel_writeLiggghts</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "locateModel.html">locateModel</A></TD><TD ><A HREF = "locateModel_engineSearch.html">locateModel_engineSearch</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "locateModel_engineSearchIB.html">locateModel_engineSearchIB</A></TD><TD ><A HREF = "locateModel_standardSearch.html">locateModel_standardSearch</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "locateModel_turboEngineSearch.html">locateModel_turboEngineSearch</A></TD><TD ><A HREF = "meshMotionModel.html">meshMotionModel</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "meshMotionModel_noMeshMotion.html">meshMotionModel_noMeshMotion</A></TD><TD ><A HREF = "momCoupleModel.html">momCoupleModel</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "momCoupleModel_explicitCouple.html">momCoupleModel_explicitCouple</A></TD><TD ><A HREF = "momCoupleModel_implicitCouple.html">momCoupleModel_implicitCouple</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "momCoupleModel_noCouple.html">momCoupleModel_noCouple</A></TD><TD ><A HREF = "regionModel.html">regionModel</A></TD></TR>
<TR ALIGN="center"><TD ><A HREF = "regionModel_allRegion.html">regionModel_allRegion</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

@ -368,6 +368,28 @@ Reasonable example settings for the "liggghtsCommands" dictionary are given in t
@ -398,6 +420,7 @@ listing below of styles within certain commands.
"IOModel"_IOModel.html,
"IOModel_basicIO"_IOModel_basicIO.html,
"IOModel_noIO"_IOModel_noIO.html,
"IOModel_trackIO"_IOModel_trackIO.html,
"averagingModel"_averagingModel.html,
"averagingModel_dilute"_averagingModel_dilute.html,
"cfdemSolverIB"_cfdemSolverIB.html,

32
doc/IOModel_trackIO.html Normal file
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>IOModel_trackIO command
</H3>
<P><B>Syntax:</B>
</P>
<P>Defined in couplingProperties dictionary.
</P>
<PRE>IOModel "trackIO";
</PRE>
<P><B>Examples:</B>
</P>
<PRE>IOModel "trackIO";
</PRE>
<P><B>Description:</B>
</P>
<P>The basic IO-model writes particle positions, velocities, index and radii to files. The output directories ($casePath/CFD/$timestep) are created automatically. Data is written every write time of the CFD simulation.
</P>
<P><B>Restrictions:</B> None.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "IOModel.html">IOModel</A>
</P>
</HTML>

29
doc/IOModel_trackIO.txt Normal file
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
IOModel_trackIO command :h3
[Syntax:]
Defined in couplingProperties dictionary.
IOModel "trackIO"; :pre
[Examples:]
IOModel "trackIO"; :pre
[Description:]
The basic IO-model writes particle positions, velocities, index and radii to files. The output directories ($casePath/CFD/$timestep) are created automatically. Data is written every write time of the CFD simulation.
[Restrictions:] None.
[Related commands:]
"IOModel"_IOModel.html

View File

@ -137,6 +137,18 @@ Alternatively you can run each tutorial using the <I>Allrun.sh</I> scripts in th
<P>If you want to run your own cases, please do so in $CFDEM_PROJECT_USER_DIR/run which is automatically being generated. E.g. copy one of the tutorial cases there, adapt it to your needs.
Changes in $CFDEM_TUT_DIR will be lost after every <I>git stash</I>!
</P>
<P><B>Additional Installations:</B>
</P>
<P>Optionally you can install lpp which will help you convert the DEM (dump) data to VTK format. For standard CFD-DEM runs this will not be necessary. To get the DEM postporcessing tool "lpp" you need python-numpy package installed:
</P>
<PRE>sudo apt-get install python-numpy
</PRE>
<P>You can pull the latest version of lpp with:
</P>
<PRE>cd $HOME/LIGGGHTS
</PRE>
<PRE>git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/lpp mylpp
</PRE>
<P><B>Troubleshooting:</B>
</P>
<UL><LI>toubles with git clone?

Binary file not shown.

View File

@ -123,6 +123,17 @@ In case questions concerning the installation arise, please feel free to contact
If you want to run your own cases, please do so in $CFDEM_PROJECT_USER_DIR/run which is automatically being generated. E.g. copy one of the tutorial cases there, adapt it to your needs.
Changes in $CFDEM_TUT_DIR will be lost after every {git stash}!
[Additional Installations:]
Optionally you can install lpp which will help you convert the DEM (dump) data to VTK format. For standard CFD-DEM runs this will not be necessary. To get the DEM postporcessing tool "lpp" you need python-numpy package installed:
sudo apt-get install python-numpy :pre
You can pull the latest version of lpp with:
cd $HOME/LIGGGHTS :pre
git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/lpp mylpp :pre
[Troubleshooting:]
toubles with git clone? :ulb,l

View File

@ -1,5 +1,6 @@
cfdemCloud = cfdemCloud
forceModels = subModels/forceModel
forceModelsMS = subModels/forceModelMS
IOModels = subModels/IOModel
voidFractionModels = subModels/voidFractionModel
locateModels = subModels/locateModel
@ -13,33 +14,53 @@ liggghtsCommandModels = subModels/liggghtsCommandModel
$(cfdemCloud)/cfdemCloud.C
derived/cfdemCloudIB/cfdemCloudIB.C
derived/cfdemCloudMS/cfdemCloudMS.C
$(forceModels)/forceModel/forceModel.C
$(forceModels)/forceModel/newForceModel.C
$(forceModels)/noDrag/noDrag.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)/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)/KochHillDragNLift/KochHillDragNLift.C
$(forceModels)/solidsPressureForce/solidsPressureForce.C
$(forceModels)/periodicPressure/periodicPressure.C
$(forceModels)/averageSlipVel/averageSlipVel.C
$(forceModelsMS)/forceModelMS/forceModelMS.C
$(forceModelsMS)/forceModelMS/newForceModelMS.C
$(forceModelsMS)/DiFeliceDragMS/DiFeliceDragMS.C
$(IOModels)/IOModel/IOModel.C
$(IOModels)/IOModel/newIOModel.C
$(IOModels)/noIO/noIO.C
$(IOModels)/basicIO/basicIO.C
$(IOModels)/trackIO/trackIO.C
$(IOModels)/sophIO/sophIO.C
$(voidFractionModels)/voidFractionModel/voidFractionModel.C
$(voidFractionModels)/voidFractionModel/newVoidFractionModel.C
$(voidFractionModels)/centreVoidFraction/centreVoidFraction.C
$(voidFractionModels)/dividedVoidFraction/dividedVoidFraction.C
$(voidFractionModels)/dividedVoidFractionMS/dividedVoidFractionMS.C
$(voidFractionModels)/bigParticleVoidFraction/bigParticleVoidFraction.C
$(voidFractionModels)/GaussVoidFraction/GaussVoidFraction.C
$(voidFractionModels)/IBVoidFraction/IBVoidFraction.C
@ -55,16 +76,19 @@ $(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
$(regionModels)/differentialRegion/differentialRegion.C
$(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C
$(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C

View File

@ -1,4 +1,4 @@
word CFDEMversion="cfdem-2.4.2";
word CFDEMversion="cfdem-2.4.3";
Info << "\ncfdem version: " << CFDEMversion << "\n" << endl;

View File

@ -233,6 +233,8 @@ public:
inline double ** expForces() const;
inline double ** DEMForces() const;
inline double ** radii() const;
inline double ** voidfractions() const;

View File

@ -74,6 +74,11 @@ inline double ** cfdemCloud::expForces() const
return expForces_;
}
inline double ** cfdemCloud::DEMForces() const
{
return DEMForces_;
}
inline double ** cfdemCloud::radii() const
{
return radii_;

View File

@ -557,3 +557,18 @@ trackMem()
done | /usr/bin/sort -n -k2 >> $fileName
}
#========================================#
#- remove brackets from file
removeBracketsFromFile()
{
#--------------------------------------------------------------------------------#
#- define variables
oldFileName="$1"
newFileName="$oldFileName""_noBrackets"
#--------------------------------------------------------------------------------#
sed -e 's/[(,)]//g' $oldFileName > $newFileName
}

View File

@ -55,6 +55,15 @@ fileName IOModel::createTimeDir(fileName path) const
return timeDirPath;
}
fileName IOModel::createLagrangianDir(fileName path) const
{
fileName lagrangianDirPath(path/"lagrangian");
mkDir(lagrangianDirPath,0777);
fileName cfdemCloudDirPath(lagrangianDirPath/"cfdemCloud1");
mkDir(cfdemCloudDirPath,0777);
return cfdemCloudDirPath;
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// Construct from components

View File

@ -112,6 +112,8 @@ public:
virtual void dumpDEMdata() const;
fileName createTimeDir(fileName) const;
fileName createLagrangianDir(fileName) const;
};

View File

@ -63,7 +63,8 @@ basicIO::basicIO
IOModel(dict,sm),
//propsDict_(dict.subDict(typeName + "Props")),
dirName_("particles"),
path_("dev/null")
path_("dev/null"),
lagPath_("dev/null")
{
//if (propsDict_.found("dirName")) dirName_=word(propsDict_.lookup("dirName"));
path_ = buildFilePath(dirName_);
@ -86,13 +87,13 @@ void basicIO::dumpDEMdata() const
if (time_.outputTime())
{
// make time directory
fileName lagPath=createTimeDir(path_);
lagPath=createTimeDir(fileName(lagPath/"lagrangian"));
lagPath_=createTimeDir(path_);
lagPath_=createTimeDir(fileName(lagPath_/"lagrangian"));
// stream data to file
streamDataToPath(lagPath, particleCloud_.positions(), particleCloud_.numberOfParticles(), "positions","vector","Cloud<passiveParticle>","0");
streamDataToPath(lagPath, particleCloud_.velocities(), particleCloud_.numberOfParticles(), "v","vector","vectorField","");
streamDataToPath(lagPath, particleCloud_.radii(), particleCloud_.numberOfParticles(), "r","scalar","scalarField","");
streamDataToPath(lagPath_, particleCloud_.positions(), particleCloud_.numberOfParticles(), "positions","vector","Cloud<passiveParticle>","0");
streamDataToPath(lagPath_, particleCloud_.velocities(), particleCloud_.numberOfParticles(), "v","vector","vectorField","");
streamDataToPath(lagPath_, particleCloud_.radii(), particleCloud_.numberOfParticles(), "r","scalar","scalarField","");
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -111,7 +112,7 @@ fileName basicIO::buildFilePath(word dirName) const
void basicIO::streamDataToPath(fileName path, double** array,int n,word name,word type,word className,word finaliser) const
{
vector position;
vector vec;
OFstream* fileStream = new OFstream(fileName(path/name));
*fileStream << "FoamFile\n";
*fileStream << "{version 2.0; format ascii;class "<< className << "; location 0;object "<< name <<";}\n";
@ -123,8 +124,8 @@ void basicIO::streamDataToPath(fileName path, double** array,int n,word name,wor
if (type=="scalar"){
*fileStream << array[index][0] << " \n";
}else {
for(int i=0;i<3;i++) position[i] = array[index][i];
*fileStream <<"( "<< position[0] <<" "<<position[1]<<" "<<position[2]<<" ) "<< finaliser << " \n";
for(int i=0;i<3;i++) vec[i] = array[index][i];
*fileStream <<"( "<< vec[0] <<" "<<vec[1]<<" "<<vec[2]<<" ) "<< finaliser << " \n";
}
}
*fileStream << ")\n";

View File

@ -63,10 +63,12 @@ private:
fileName path_;
// Member Functions
fileName buildFilePath(word) const;
protected:
mutable fileName lagPath_;
void streamDataToPath(fileName,double**,int,word,word type,word className,word finaliser) const;
public:

View File

@ -0,0 +1,146 @@
/*---------------------------------------------------------------------------*\
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 "trackIO.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(trackIO, 0);
addToRunTimeSelectionTable
(
IOModel,
trackIO,
dictionary
);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// Construct from components
trackIO::trackIO
(
const dictionary& dict,
cfdemCloud& sm
)
:
IOModel(dict,sm),
//propsDict_(dict.subDict(typeName + "Props")),
dirName_(""),
path_("dev/null"),
lagPath_("dev/null")
{
//if (propsDict_.found("dirName")) dirName_=word(propsDict_.lookup("dirName"));
path_ = buildFilePath(dirName_);
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
trackIO::~trackIO()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
// Public Member Functions
void trackIO::dumpDEMdata() const
{
if (time_.outputTime())
{
// make time directory
lagPath_=createTimeDir(path_);
lagPath_=createLagrangianDir(fileName(lagPath_));
// stream data to file
streamDataToPath(lagPath_, particleCloud_.positions(), particleCloud_.numberOfParticles(), "positions","position","Cloud<passiveParticle>","0");
streamDataToPath(lagPath_, particleCloud_.velocities(), particleCloud_.numberOfParticles(), "v","vector","vectorField","");
streamDataToPath(lagPath_, particleCloud_.velocities(), particleCloud_.numberOfParticles(), "origId","label","labelField","");
streamDataToPath(lagPath_, particleCloud_.velocities(), particleCloud_.numberOfParticles(), "origProcId","origProcId","labelField","");
streamDataToPath(lagPath_, particleCloud_.radii(), particleCloud_.numberOfParticles(), "r","scalar","scalarField","");
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Private Member Functions
fileName trackIO::buildFilePath(word dirName) const
{
// create file structure
fileName path("."/dirName);
OFstream* stubFile = new OFstream(fileName(path/"particles.foam"));
delete stubFile;
return path;
}
void trackIO::streamDataToPath(fileName path, double** array,int n,word name,word type,word className,word finaliser) const
{
vector vec;
OFstream* fileStream = new OFstream(fileName(path/name));
*fileStream << "FoamFile\n";
*fileStream << "{version 2.0; format ascii;class "<< className << "; location 0;object "<< name <<";}\n";
*fileStream << n <<"\n";
if(type!="origProcId")*fileStream << "(\n";
else if(type=="origProcId")*fileStream <<"{0}"<< "\n";
for(int index = 0;index < n; ++index)
{
if (type=="scalar"){
*fileStream << array[index][0] << finaliser << " \n";
}else if (type=="position"){
for(int i=0;i<3;i++) vec[i] = array[index][i];
// You may need to use these two lines if you have cyclics
// if(vec[0]<0)vec[0]+=0.12;if(vec[0]>0.12)vec[0]-=0.12;
// if(vec[1]<0)vec[1]+=0.06;if(vec[1]>0.06)vec[1]-=0.06;
*fileStream <<"( "<< vec[0] <<" "<<vec[1]<<" "<<vec[2]<<" ) "<< finaliser << " \n";
}else if (type=="label"){
*fileStream << index << finaliser << " \n";
}else if (type=="vector"){
for(int i=0;i<3;i++) vec[i] = array[index][i];
*fileStream <<"( "<< vec[0] <<" "<<vec[1]<<" "<<vec[2]<<" ) " << finaliser << " \n";
}
}
if(type!="origProcId")*fileStream << ")\n";
delete fileStream;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

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).
Class
trackIO
SourceFiles
trackIO.C
\*---------------------------------------------------------------------------*/
#ifndef trackIO_H
#define trackIO_H
#include "IOModel.H"
#include "interpolationCellPoint.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class noDrag Declaration
\*---------------------------------------------------------------------------*/
class trackIO
:
public IOModel
{
private:
//dictionary propsDict_;
word dirName_;
fileName path_;
// Member Functions
fileName buildFilePath(word) const;
protected:
mutable fileName lagPath_;
void streamDataToPath(fileName,double**,int,word,word type,word className,word finaliser) const;
public:
//- Runtime type information
TypeName("trackIO");
// Constructors
//- Construct from components
trackIO
(
const dictionary& dict,
cfdemCloud& sm
);
// Destructor
~trackIO();
// Member Functions
void dumpDEMdata() const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -75,6 +75,8 @@ KochHillDrag::KochHillDrag
if (propsDict_.found("verbose")) verbose_=true;
if (propsDict_.found("treatExplicit")) treatExplicit_=true;
if (propsDict_.found("interpolation")) interpolation_=true;
if (propsDict_.found("scale"))
scale_=scalar(readScalar(propsDict_.lookup("scale")));
}
@ -154,7 +156,7 @@ void KochHillDrag::setForce
if (magUr > 0)
{
// calc particle Re Nr
Rep = ds*voidfraction*magUr/(nuf+SMALL);
Rep = ds/scale_*voidfraction*magUr/(nuf+SMALL);
// calc model coefficient F0
scalar F0=0.;
@ -170,7 +172,7 @@ void KochHillDrag::setForce
scalar F3 = 0.0673+0.212*volumefraction+0.0232/pow(voidfraction,5);
// calc model coefficient beta
scalar beta = 18*nuf*rho*voidfraction*voidfraction*volumefraction/(ds*ds)*
scalar beta = 18*nuf*rho*voidfraction*voidfraction*volumefraction/(ds/scale_*ds/scale_)*
(F0 + 0.5*F3*Rep);
// calc particle's drag
@ -180,12 +182,13 @@ void KochHillDrag::setForce
drag /= voidfraction;
}
if(verbose_ && index >100 && index <102)
if(verbose_ && index >=0 && index <2)
{
Info << "index = " << index << endl;
Info << "Us = " << Us << endl;
Info << "Ur = " << Ur << endl;
Info << "ds = " << ds << endl;
Info << "ds/scale = " << ds/scale_ << endl;
Info << "rho = " << rho << endl;
Info << "nuf = " << nuf << endl;
Info << "voidfraction = " << voidfraction << endl;

View File

@ -83,7 +83,8 @@ forceModel::forceModel
dimensionedVector("zero", dimensionSet(1,1,-2,0,0), vector(0,0,0)) // N
),
coupleForce_(true),
modelType_(sm.modelType())
modelType_(sm.modelType()),
scale_(1.)
{}

View File

@ -72,6 +72,8 @@ protected:
const word modelType_;
scalar scale_;
public:
//- Runtime type information

View File

@ -161,7 +161,7 @@ void gradPForce::setForce
else
force = -Vs*gradP;
if(verbose_ && index >0 && index <2)
if(verbose_ && index >=0 && index <2)
{
Info << "index = " << index << endl;
Info << "gradP = " << gradP << endl;

View File

@ -133,7 +133,7 @@ tmp<volVectorField> explicitCouple::expMomSource() const
// calc fNext
forAll(fNext_,cellI)
{
fNext_[cellI] = particleCloud_.forceM(0).expParticleForces()[cellI] / particleCloud_.mesh().V()[cellI];
fNext_[cellI] = arrayToField(cellI);
// limiter
for (int i=0;i<3;i++)
@ -162,6 +162,11 @@ void Foam::explicitCouple::resetMomSourceField() const
fNext_.internalField() = vector::zero;
}
inline vector Foam::explicitCouple::arrayToField(label cellI) const
{
return particleCloud_.forceM(0).expParticleForces()[cellI] / particleCloud_.mesh().V()[cellI];
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam

View File

@ -64,6 +64,8 @@ private:
vector fLimit_; // limit for for exchange field
virtual inline vector arrayToField(label) const;
public:
//- Runtime type information
@ -88,6 +90,7 @@ public:
tmp<volVectorField> expMomSource() const;
void resetMomSourceField() const;
};

View File

@ -64,6 +64,11 @@ tmp<volVectorField> momCoupleModel::expMomSource() const
return tsource;
}
void momCoupleModel::setSourceField(volVectorField & a) const
{
//do nothing;
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// Construct from components

View File

@ -115,6 +115,8 @@ public:
virtual tmp<volVectorField> expMomSource() const;
virtual void resetMomSourceField() const=0;
virtual void setSourceField(volVectorField &) const;
};

View File

@ -17,3 +17,4 @@ dummyfile
dummyfile
dummyfile
dummyfile
dummyfile

View File

@ -38,7 +38,7 @@ meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel basicIO;
IOModel basicIO; //trackIO; //
dataExchangeModel twoWayMPI;//twoWayFiles;//oneWayVTK;//
@ -90,6 +90,7 @@ KochHillDragProps
{
velFieldName "U";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
}
MeiLiftProps

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object particleTrackProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
cloudName cfdemCloud1;
sampleFrequency 1;
maxPositions 10;
// ************************************************************************* //