mirror of
https://github.com/ParticulateFlow/CFDEMcoupling-PFM.git
synced 2025-12-08 06:37:44 +00:00
release on 2012-07-30_10-43-02
This commit is contained in:
82
README
82
README
@ -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.
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
@ -50,13 +50,11 @@ int main(int argc, char *argv[])
|
|||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createMesh.H"
|
#include "createMesh.H"
|
||||||
#include "createFields.H"
|
#include "createFields.H"
|
||||||
|
|
||||||
#include "initContinuityErrs.H"
|
#include "initContinuityErrs.H"
|
||||||
|
|
||||||
// create cfdemCloud
|
// create cfdemCloud
|
||||||
#include "readGravitationalAcceleration.H"
|
#include "readGravitationalAcceleration.H"
|
||||||
cfdemCloud particleCloud(mesh);
|
cfdemCloud particleCloud(mesh);
|
||||||
|
|
||||||
#include "checkModelType.H"
|
#include "checkModelType.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|||||||
@ -1,33 +1,34 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
/*---------------------------------------------------------------------------*\
|
||||||
========= |
|
CFDEMcoupling - Open Source CFD-DEM coupling
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration |
|
CFDEMcoupling is part of the CFDEMproject
|
||||||
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
|
www.cfdem.com
|
||||||
\\/ M anipulation |
|
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
|
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
|
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
|
under the terms of the GNU General Public License as published by
|
||||||
Free Software Foundation; either version 2 of the License, or (at your
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
option) any later version.
|
(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
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
for more details.
|
for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
along with CFDEMcoupling. If not, see <http://www.gnu.org/licenses/>.
|
||||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
Application
|
Application
|
||||||
cfdemPostproc
|
cfdemPostproc
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Tool for DEM->CFD (Lagrange->Euler) mapping to calculate local voidfraction
|
Tool for DEM->CFD (Lagrange->Euler) mapping to calculate local voidfraction
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "fvCFD.H"
|
#include "fvCFD.H"
|
||||||
|
|||||||
3
applications/utilities/writeUfluid/Make/files
Normal file
3
applications/utilities/writeUfluid/Make/files
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
writeUfluid.C
|
||||||
|
|
||||||
|
EXE = $(FOAM_APPBIN)/writeUfluid
|
||||||
10
applications/utilities/writeUfluid/Make/options
Normal file
10
applications/utilities/writeUfluid/Make/options
Normal 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
|
||||||
25
applications/utilities/writeUfluid/createFields.H
Normal file
25
applications/utilities/writeUfluid/createFields.H
Normal 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"));
|
||||||
|
|
||||||
|
|
||||||
25
applications/utilities/writeUfluid/particleTrackProperties
Normal file
25
applications/utilities/writeUfluid/particleTrackProperties
Normal 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;
|
||||||
|
// ************************************************************************* //
|
||||||
99
applications/utilities/writeUfluid/writeUfluid.C
Normal file
99
applications/utilities/writeUfluid/writeUfluid.C
Normal 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -189,32 +189,33 @@ listing below of styles within certain commands.
|
|||||||
</P>
|
</P>
|
||||||
<DIV ALIGN=center><TABLE BORDER=1 >
|
<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.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 = "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_dilute.html">averagingModel_dilute</A></TD><TD ><A HREF = "cfdemSolverIB.html">cfdemSolverIB</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 = "cfdemSolverPiso.html">cfdemSolverPiso</A></TD><TD ><A HREF = "cfdemSolverPisoScalar.html">cfdemSolverPisoScalar</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 = "clockModel.html">clockModel</A></TD><TD ><A HREF = "clockModel_noClock.html">clockModel_noClock</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_standardClock.html">clockModel_standardClock</A></TD><TD ><A HREF = "dataExchangeModel.html">dataExchangeModel</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_noDataExchange.html">dataExchangeModel_noDataExchange</A></TD><TD ><A HREF = "dataExchangeModel_oneWayVTK.html">dataExchangeModel_oneWayVTK</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_twoWayFiles.html">dataExchangeModel_twoWayFiles</A></TD><TD ><A HREF = "dataExchangeModel_twoWayMPI.html">dataExchangeModel_twoWayMPI</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 = "forceModel.html">forceModel</A></TD><TD ><A HREF = "forceModel_Archimedes.html">forceModel_Archimedes</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_ArchimedesIB.html">forceModel_ArchimedesIB</A></TD><TD ><A HREF = "forceModel_DiFeliceDrag.html">forceModel_DiFeliceDrag</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_GidaspowDrag.html">forceModel_GidaspowDrag</A></TD><TD ><A HREF = "forceModel_KochHillDrag.html">forceModel_KochHillDrag</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_LaEuScalarTemp.html">forceModel_LaEuScalarTemp</A></TD><TD ><A HREF = "forceModel_MeiLift.html">forceModel_MeiLift</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_SchillerNaumannDrag.html">forceModel_SchillerNaumannDrag</A></TD><TD ><A HREF = "forceModel_ShirgaonkarIB.html">forceModel_ShirgaonkarIB</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_gradPForce.html">forceModel_gradPForce</A></TD><TD ><A HREF = "forceModel_noDrag.html">forceModel_noDrag</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_virtualMassForce.html">forceModel_virtualMassForce</A></TD><TD ><A HREF = "forceModel_viscForce.html">forceModel_viscForce</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 = "liggghtsCommandModel.html">liggghtsCommandModel</A></TD><TD ><A HREF = "liggghtsCommandModel_execute.html">liggghtsCommandModel_execute</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_readLiggghtsData.html">liggghtsCommandModel_readLiggghtsData</A></TD><TD ><A HREF = "liggghtsCommandModel_runLiggghts.html">liggghtsCommandModel_runLiggghts</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_writeLiggghts.html">liggghtsCommandModel_writeLiggghts</A></TD><TD ><A HREF = "locateModel.html">locateModel</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_engineSearch.html">locateModel_engineSearch</A></TD><TD ><A HREF = "locateModel_engineSearchIB.html">locateModel_engineSearchIB</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_standardSearch.html">locateModel_standardSearch</A></TD><TD ><A HREF = "locateModel_turboEngineSearch.html">locateModel_turboEngineSearch</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 = "meshMotionModel.html">meshMotionModel</A></TD><TD ><A HREF = "meshMotionModel_noMeshMotion.html">meshMotionModel_noMeshMotion</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 = "momCoupleModel.html">momCoupleModel</A></TD><TD ><A HREF = "momCoupleModel_explicitCouple.html">momCoupleModel_explicitCouple</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_implicitCouple.html">momCoupleModel_implicitCouple</A></TD><TD ><A HREF = "momCoupleModel_noCouple.html">momCoupleModel_noCouple</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 = "regionModel.html">regionModel</A></TD><TD ><A HREF = "regionModel_allRegion.html">regionModel_allRegion</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 = "voidFractionModel.html">voidfractionModel</A></TD><TD ><A HREF = "voidFractionModel_GaussVoidFraction.html">voidfractionModel_GaussVoidFraction</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_IBVoidFraction.html">voidfractionModel_IBVoidFraction</A></TD><TD ><A HREF = "voidFractionModel_bigParticleVoidFraction.html">voidfractionModel_bigParticleVoidFraction</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_centreVoidFraction.html">voidfractionModel_centreVoidFraction</A></TD><TD ><A HREF = "voidFractionModel_dividedVoidFraction.html">voidfractionModel_dividedVoidFraction</A>
|
<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>
|
</TD></TR></TABLE></DIV>
|
||||||
|
|
||||||
</HTML>
|
</HTML>
|
||||||
|
|||||||
Binary file not shown.
@ -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"_IOModel.html,
|
||||||
"IOModel_basicIO"_IOModel_basicIO.html,
|
"IOModel_basicIO"_IOModel_basicIO.html,
|
||||||
"IOModel_noIO"_IOModel_noIO.html,
|
"IOModel_noIO"_IOModel_noIO.html,
|
||||||
|
"IOModel_trackIO"_IOModel_trackIO.html,
|
||||||
"averagingModel"_averagingModel.html,
|
"averagingModel"_averagingModel.html,
|
||||||
"averagingModel_dilute"_averagingModel_dilute.html,
|
"averagingModel_dilute"_averagingModel_dilute.html,
|
||||||
"cfdemSolverIB"_cfdemSolverIB.html,
|
"cfdemSolverIB"_cfdemSolverIB.html,
|
||||||
|
|||||||
32
doc/IOModel_trackIO.html
Normal file
32
doc/IOModel_trackIO.html
Normal 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
29
doc/IOModel_trackIO.txt
Normal 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
|
||||||
|
|
||||||
@ -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.
|
<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>!
|
Changes in $CFDEM_TUT_DIR will be lost after every <I>git stash</I>!
|
||||||
</P>
|
</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><B>Troubleshooting:</B>
|
||||||
</P>
|
</P>
|
||||||
<UL><LI>toubles with git clone?
|
<UL><LI>toubles with git clone?
|
||||||
|
|||||||
Binary file not shown.
@ -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.
|
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}!
|
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:]
|
[Troubleshooting:]
|
||||||
|
|
||||||
toubles with git clone? :ulb,l
|
toubles with git clone? :ulb,l
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
cfdemCloud = cfdemCloud
|
cfdemCloud = cfdemCloud
|
||||||
forceModels = subModels/forceModel
|
forceModels = subModels/forceModel
|
||||||
|
forceModelsMS = subModels/forceModelMS
|
||||||
IOModels = subModels/IOModel
|
IOModels = subModels/IOModel
|
||||||
voidFractionModels = subModels/voidFractionModel
|
voidFractionModels = subModels/voidFractionModel
|
||||||
locateModels = subModels/locateModel
|
locateModels = subModels/locateModel
|
||||||
@ -13,33 +14,53 @@ liggghtsCommandModels = subModels/liggghtsCommandModel
|
|||||||
|
|
||||||
$(cfdemCloud)/cfdemCloud.C
|
$(cfdemCloud)/cfdemCloud.C
|
||||||
derived/cfdemCloudIB/cfdemCloudIB.C
|
derived/cfdemCloudIB/cfdemCloudIB.C
|
||||||
|
derived/cfdemCloudMS/cfdemCloudMS.C
|
||||||
|
|
||||||
$(forceModels)/forceModel/forceModel.C
|
$(forceModels)/forceModel/forceModel.C
|
||||||
$(forceModels)/forceModel/newForceModel.C
|
$(forceModels)/forceModel/newForceModel.C
|
||||||
$(forceModels)/noDrag/noDrag.C
|
$(forceModels)/noDrag/noDrag.C
|
||||||
$(forceModels)/DiFeliceDrag/DiFeliceDrag.C
|
$(forceModels)/DiFeliceDrag/DiFeliceDrag.C
|
||||||
|
$(forceModels)/DiFeliceDragNLift/DiFeliceDragNLift.C
|
||||||
$(forceModels)/GidaspowDrag/GidaspowDrag.C
|
$(forceModels)/GidaspowDrag/GidaspowDrag.C
|
||||||
$(forceModels)/SchillerNaumannDrag/SchillerNaumannDrag.C
|
$(forceModels)/SchillerNaumannDrag/SchillerNaumannDrag.C
|
||||||
$(forceModels)/Archimedes/Archimedes.C
|
$(forceModels)/Archimedes/Archimedes.C
|
||||||
$(forceModels)/ArchimedesIB/ArchimedesIB.C
|
$(forceModels)/ArchimedesIB/ArchimedesIB.C
|
||||||
$(forceModels)/interface/interface.C
|
$(forceModels)/interface/interface.C
|
||||||
$(forceModels)/ShirgaonkarIB/ShirgaonkarIB.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)/KochHillDrag/KochHillDrag.C
|
||||||
|
$(forceModels)/LaEuScalarLiquid/LaEuScalarLiquid.C
|
||||||
$(forceModels)/LaEuScalarTemp/LaEuScalarTemp.C
|
$(forceModels)/LaEuScalarTemp/LaEuScalarTemp.C
|
||||||
|
$(forceModels)/LaEuScalarDust/LaEuScalarDust.C
|
||||||
$(forceModels)/virtualMassForce/virtualMassForce.C
|
$(forceModels)/virtualMassForce/virtualMassForce.C
|
||||||
$(forceModels)/gradPForce/gradPForce.C
|
$(forceModels)/gradPForce/gradPForce.C
|
||||||
|
$(forceModels)/gradULiftForce/gradULiftForce.C
|
||||||
$(forceModels)/viscForce/viscForce.C
|
$(forceModels)/viscForce/viscForce.C
|
||||||
$(forceModels)/MeiLift/MeiLift.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/IOModel.C
|
||||||
$(IOModels)/IOModel/newIOModel.C
|
$(IOModels)/IOModel/newIOModel.C
|
||||||
$(IOModels)/noIO/noIO.C
|
$(IOModels)/noIO/noIO.C
|
||||||
$(IOModels)/basicIO/basicIO.C
|
$(IOModels)/basicIO/basicIO.C
|
||||||
|
$(IOModels)/trackIO/trackIO.C
|
||||||
|
$(IOModels)/sophIO/sophIO.C
|
||||||
|
|
||||||
$(voidFractionModels)/voidFractionModel/voidFractionModel.C
|
$(voidFractionModels)/voidFractionModel/voidFractionModel.C
|
||||||
$(voidFractionModels)/voidFractionModel/newVoidFractionModel.C
|
$(voidFractionModels)/voidFractionModel/newVoidFractionModel.C
|
||||||
$(voidFractionModels)/centreVoidFraction/centreVoidFraction.C
|
$(voidFractionModels)/centreVoidFraction/centreVoidFraction.C
|
||||||
$(voidFractionModels)/dividedVoidFraction/dividedVoidFraction.C
|
$(voidFractionModels)/dividedVoidFraction/dividedVoidFraction.C
|
||||||
|
$(voidFractionModels)/dividedVoidFractionMS/dividedVoidFractionMS.C
|
||||||
$(voidFractionModels)/bigParticleVoidFraction/bigParticleVoidFraction.C
|
$(voidFractionModels)/bigParticleVoidFraction/bigParticleVoidFraction.C
|
||||||
$(voidFractionModels)/GaussVoidFraction/GaussVoidFraction.C
|
$(voidFractionModels)/GaussVoidFraction/GaussVoidFraction.C
|
||||||
$(voidFractionModels)/IBVoidFraction/IBVoidFraction.C
|
$(voidFractionModels)/IBVoidFraction/IBVoidFraction.C
|
||||||
@ -55,16 +76,19 @@ $(locateModels)/engineSearchIB/engineSearchIB.C
|
|||||||
$(meshMotionModels)/meshMotionModel/meshMotionModel.C
|
$(meshMotionModels)/meshMotionModel/meshMotionModel.C
|
||||||
$(meshMotionModels)/meshMotionModel/newMeshMotionModel.C
|
$(meshMotionModels)/meshMotionModel/newMeshMotionModel.C
|
||||||
$(meshMotionModels)/noMeshMotion/noMeshMotion.C
|
$(meshMotionModels)/noMeshMotion/noMeshMotion.C
|
||||||
|
$(meshMotionModels)/DEMdrivenMeshMotion/DEMdrivenMeshMotion.C
|
||||||
|
|
||||||
$(momCoupleModels)/momCoupleModel/momCoupleModel.C
|
$(momCoupleModels)/momCoupleModel/momCoupleModel.C
|
||||||
$(momCoupleModels)/momCoupleModel/newMomCoupleModel.C
|
$(momCoupleModels)/momCoupleModel/newMomCoupleModel.C
|
||||||
$(momCoupleModels)/explicitCouple/explicitCouple.C
|
$(momCoupleModels)/explicitCouple/explicitCouple.C
|
||||||
|
$(momCoupleModels)/explicitCoupleSource/explicitCoupleSource.C
|
||||||
$(momCoupleModels)/implicitCouple/implicitCouple.C
|
$(momCoupleModels)/implicitCouple/implicitCouple.C
|
||||||
$(momCoupleModels)/noCouple/noCouple.C
|
$(momCoupleModels)/noCouple/noCouple.C
|
||||||
|
|
||||||
$(regionModels)/regionModel/regionModel.C
|
$(regionModels)/regionModel/regionModel.C
|
||||||
$(regionModels)/regionModel/newRegionModel.C
|
$(regionModels)/regionModel/newRegionModel.C
|
||||||
$(regionModels)/allRegion/allRegion.C
|
$(regionModels)/allRegion/allRegion.C
|
||||||
|
$(regionModels)/differentialRegion/differentialRegion.C
|
||||||
|
|
||||||
$(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C
|
$(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C
|
||||||
$(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C
|
$(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
word CFDEMversion="cfdem-2.4.2";
|
word CFDEMversion="cfdem-2.4.3";
|
||||||
|
|
||||||
Info << "\ncfdem version: " << CFDEMversion << "\n" << endl;
|
Info << "\ncfdem version: " << CFDEMversion << "\n" << endl;
|
||||||
|
|
||||||
|
|||||||
@ -233,6 +233,8 @@ public:
|
|||||||
|
|
||||||
inline double ** expForces() const;
|
inline double ** expForces() const;
|
||||||
|
|
||||||
|
inline double ** DEMForces() const;
|
||||||
|
|
||||||
inline double ** radii() const;
|
inline double ** radii() const;
|
||||||
|
|
||||||
inline double ** voidfractions() const;
|
inline double ** voidfractions() const;
|
||||||
|
|||||||
@ -74,6 +74,11 @@ inline double ** cfdemCloud::expForces() const
|
|||||||
return expForces_;
|
return expForces_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline double ** cfdemCloud::DEMForces() const
|
||||||
|
{
|
||||||
|
return DEMForces_;
|
||||||
|
}
|
||||||
|
|
||||||
inline double ** cfdemCloud::radii() const
|
inline double ** cfdemCloud::radii() const
|
||||||
{
|
{
|
||||||
return radii_;
|
return radii_;
|
||||||
|
|||||||
@ -557,3 +557,18 @@ trackMem()
|
|||||||
done | /usr/bin/sort -n -k2 >> $fileName
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -55,6 +55,15 @@ fileName IOModel::createTimeDir(fileName path) const
|
|||||||
return timeDirPath;
|
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 * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
// Construct from components
|
// Construct from components
|
||||||
|
|||||||
@ -112,6 +112,8 @@ public:
|
|||||||
virtual void dumpDEMdata() const;
|
virtual void dumpDEMdata() const;
|
||||||
|
|
||||||
fileName createTimeDir(fileName) const;
|
fileName createTimeDir(fileName) const;
|
||||||
|
|
||||||
|
fileName createLagrangianDir(fileName) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -63,7 +63,8 @@ basicIO::basicIO
|
|||||||
IOModel(dict,sm),
|
IOModel(dict,sm),
|
||||||
//propsDict_(dict.subDict(typeName + "Props")),
|
//propsDict_(dict.subDict(typeName + "Props")),
|
||||||
dirName_("particles"),
|
dirName_("particles"),
|
||||||
path_("dev/null")
|
path_("dev/null"),
|
||||||
|
lagPath_("dev/null")
|
||||||
{
|
{
|
||||||
//if (propsDict_.found("dirName")) dirName_=word(propsDict_.lookup("dirName"));
|
//if (propsDict_.found("dirName")) dirName_=word(propsDict_.lookup("dirName"));
|
||||||
path_ = buildFilePath(dirName_);
|
path_ = buildFilePath(dirName_);
|
||||||
@ -86,13 +87,13 @@ void basicIO::dumpDEMdata() const
|
|||||||
if (time_.outputTime())
|
if (time_.outputTime())
|
||||||
{
|
{
|
||||||
// make time directory
|
// make time directory
|
||||||
fileName lagPath=createTimeDir(path_);
|
lagPath_=createTimeDir(path_);
|
||||||
lagPath=createTimeDir(fileName(lagPath/"lagrangian"));
|
lagPath_=createTimeDir(fileName(lagPath_/"lagrangian"));
|
||||||
|
|
||||||
// stream data to file
|
// stream data to file
|
||||||
streamDataToPath(lagPath, particleCloud_.positions(), particleCloud_.numberOfParticles(), "positions","vector","Cloud<passiveParticle>","0");
|
streamDataToPath(lagPath_, particleCloud_.positions(), particleCloud_.numberOfParticles(), "positions","vector","Cloud<passiveParticle>","0");
|
||||||
streamDataToPath(lagPath, particleCloud_.velocities(), particleCloud_.numberOfParticles(), "v","vector","vectorField","");
|
streamDataToPath(lagPath_, particleCloud_.velocities(), particleCloud_.numberOfParticles(), "v","vector","vectorField","");
|
||||||
streamDataToPath(lagPath, particleCloud_.radii(), particleCloud_.numberOfParticles(), "r","scalar","scalarField","");
|
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
|
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));
|
OFstream* fileStream = new OFstream(fileName(path/name));
|
||||||
*fileStream << "FoamFile\n";
|
*fileStream << "FoamFile\n";
|
||||||
*fileStream << "{version 2.0; format ascii;class "<< className << "; location 0;object "<< name <<";}\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"){
|
if (type=="scalar"){
|
||||||
*fileStream << array[index][0] << " \n";
|
*fileStream << array[index][0] << " \n";
|
||||||
}else {
|
}else {
|
||||||
for(int i=0;i<3;i++) position[i] = array[index][i];
|
for(int i=0;i<3;i++) vec[i] = array[index][i];
|
||||||
*fileStream <<"( "<< position[0] <<" "<<position[1]<<" "<<position[2]<<" ) "<< finaliser << " \n";
|
*fileStream <<"( "<< vec[0] <<" "<<vec[1]<<" "<<vec[2]<<" ) "<< finaliser << " \n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*fileStream << ")\n";
|
*fileStream << ")\n";
|
||||||
|
|||||||
@ -63,10 +63,12 @@ private:
|
|||||||
|
|
||||||
fileName path_;
|
fileName path_;
|
||||||
|
|
||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
fileName buildFilePath(word) const;
|
fileName buildFilePath(word) const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
mutable fileName lagPath_;
|
||||||
|
|
||||||
void streamDataToPath(fileName,double**,int,word,word type,word className,word finaliser) const;
|
void streamDataToPath(fileName,double**,int,word,word type,word className,word finaliser) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
146
src/lagrangian/cfdemParticle/subModels/IOModel/trackIO/trackIO.C
Normal file
146
src/lagrangian/cfdemParticle/subModels/IOModel/trackIO/trackIO.C
Normal 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
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
107
src/lagrangian/cfdemParticle/subModels/IOModel/trackIO/trackIO.H
Normal file
107
src/lagrangian/cfdemParticle/subModels/IOModel/trackIO/trackIO.H
Normal 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
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -75,6 +75,8 @@ KochHillDrag::KochHillDrag
|
|||||||
if (propsDict_.found("verbose")) verbose_=true;
|
if (propsDict_.found("verbose")) verbose_=true;
|
||||||
if (propsDict_.found("treatExplicit")) treatExplicit_=true;
|
if (propsDict_.found("treatExplicit")) treatExplicit_=true;
|
||||||
if (propsDict_.found("interpolation")) interpolation_=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)
|
if (magUr > 0)
|
||||||
{
|
{
|
||||||
// calc particle Re Nr
|
// calc particle Re Nr
|
||||||
Rep = ds*voidfraction*magUr/(nuf+SMALL);
|
Rep = ds/scale_*voidfraction*magUr/(nuf+SMALL);
|
||||||
|
|
||||||
// calc model coefficient F0
|
// calc model coefficient F0
|
||||||
scalar F0=0.;
|
scalar F0=0.;
|
||||||
@ -170,7 +172,7 @@ void KochHillDrag::setForce
|
|||||||
scalar F3 = 0.0673+0.212*volumefraction+0.0232/pow(voidfraction,5);
|
scalar F3 = 0.0673+0.212*volumefraction+0.0232/pow(voidfraction,5);
|
||||||
|
|
||||||
// calc model coefficient beta
|
// 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);
|
(F0 + 0.5*F3*Rep);
|
||||||
|
|
||||||
// calc particle's drag
|
// calc particle's drag
|
||||||
@ -180,12 +182,13 @@ void KochHillDrag::setForce
|
|||||||
drag /= voidfraction;
|
drag /= voidfraction;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(verbose_ && index >100 && index <102)
|
if(verbose_ && index >=0 && index <2)
|
||||||
{
|
{
|
||||||
Info << "index = " << index << endl;
|
Info << "index = " << index << endl;
|
||||||
Info << "Us = " << Us << endl;
|
Info << "Us = " << Us << endl;
|
||||||
Info << "Ur = " << Ur << endl;
|
Info << "Ur = " << Ur << endl;
|
||||||
Info << "ds = " << ds << endl;
|
Info << "ds = " << ds << endl;
|
||||||
|
Info << "ds/scale = " << ds/scale_ << endl;
|
||||||
Info << "rho = " << rho << endl;
|
Info << "rho = " << rho << endl;
|
||||||
Info << "nuf = " << nuf << endl;
|
Info << "nuf = " << nuf << endl;
|
||||||
Info << "voidfraction = " << voidfraction << endl;
|
Info << "voidfraction = " << voidfraction << endl;
|
||||||
|
|||||||
@ -83,7 +83,8 @@ forceModel::forceModel
|
|||||||
dimensionedVector("zero", dimensionSet(1,1,-2,0,0), vector(0,0,0)) // N
|
dimensionedVector("zero", dimensionSet(1,1,-2,0,0), vector(0,0,0)) // N
|
||||||
),
|
),
|
||||||
coupleForce_(true),
|
coupleForce_(true),
|
||||||
modelType_(sm.modelType())
|
modelType_(sm.modelType()),
|
||||||
|
scale_(1.)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -72,6 +72,8 @@ protected:
|
|||||||
|
|
||||||
const word modelType_;
|
const word modelType_;
|
||||||
|
|
||||||
|
scalar scale_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
|
|||||||
@ -161,7 +161,7 @@ void gradPForce::setForce
|
|||||||
else
|
else
|
||||||
force = -Vs*gradP;
|
force = -Vs*gradP;
|
||||||
|
|
||||||
if(verbose_ && index >0 && index <2)
|
if(verbose_ && index >=0 && index <2)
|
||||||
{
|
{
|
||||||
Info << "index = " << index << endl;
|
Info << "index = " << index << endl;
|
||||||
Info << "gradP = " << gradP << endl;
|
Info << "gradP = " << gradP << endl;
|
||||||
|
|||||||
@ -133,7 +133,7 @@ tmp<volVectorField> explicitCouple::expMomSource() const
|
|||||||
// calc fNext
|
// calc fNext
|
||||||
forAll(fNext_,cellI)
|
forAll(fNext_,cellI)
|
||||||
{
|
{
|
||||||
fNext_[cellI] = particleCloud_.forceM(0).expParticleForces()[cellI] / particleCloud_.mesh().V()[cellI];
|
fNext_[cellI] = arrayToField(cellI);
|
||||||
|
|
||||||
// limiter
|
// limiter
|
||||||
for (int i=0;i<3;i++)
|
for (int i=0;i<3;i++)
|
||||||
@ -162,6 +162,11 @@ void Foam::explicitCouple::resetMomSourceField() const
|
|||||||
fNext_.internalField() = vector::zero;
|
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
|
} // End namespace Foam
|
||||||
|
|||||||
@ -64,6 +64,8 @@ private:
|
|||||||
|
|
||||||
vector fLimit_; // limit for for exchange field
|
vector fLimit_; // limit for for exchange field
|
||||||
|
|
||||||
|
virtual inline vector arrayToField(label) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
@ -88,6 +90,7 @@ public:
|
|||||||
tmp<volVectorField> expMomSource() const;
|
tmp<volVectorField> expMomSource() const;
|
||||||
|
|
||||||
void resetMomSourceField() const;
|
void resetMomSourceField() const;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -64,6 +64,11 @@ tmp<volVectorField> momCoupleModel::expMomSource() const
|
|||||||
return tsource;
|
return tsource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void momCoupleModel::setSourceField(volVectorField & a) const
|
||||||
|
{
|
||||||
|
//do nothing;
|
||||||
|
}
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
// Construct from components
|
// Construct from components
|
||||||
|
|||||||
@ -115,6 +115,8 @@ public:
|
|||||||
virtual tmp<volVectorField> expMomSource() const;
|
virtual tmp<volVectorField> expMomSource() const;
|
||||||
|
|
||||||
virtual void resetMomSourceField() const=0;
|
virtual void resetMomSourceField() const=0;
|
||||||
|
|
||||||
|
virtual void setSourceField(volVectorField &) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -17,3 +17,4 @@ dummyfile
|
|||||||
dummyfile
|
dummyfile
|
||||||
dummyfile
|
dummyfile
|
||||||
dummyfile
|
dummyfile
|
||||||
|
dummyfile
|
||||||
|
|||||||
@ -38,7 +38,7 @@ meshMotionModel noMeshMotion;
|
|||||||
|
|
||||||
regionModel allRegion;
|
regionModel allRegion;
|
||||||
|
|
||||||
IOModel basicIO;
|
IOModel basicIO; //trackIO; //
|
||||||
|
|
||||||
dataExchangeModel twoWayMPI;//twoWayFiles;//oneWayVTK;//
|
dataExchangeModel twoWayMPI;//twoWayFiles;//oneWayVTK;//
|
||||||
|
|
||||||
@ -90,6 +90,7 @@ KochHillDragProps
|
|||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
densityFieldName "rho";
|
||||||
|
voidfractionFieldName "voidfraction";
|
||||||
}
|
}
|
||||||
|
|
||||||
MeiLiftProps
|
MeiLiftProps
|
||||||
|
|||||||
@ -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;
|
||||||
|
// ************************************************************************* //
|
||||||
Reference in New Issue
Block a user