Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fbf9d1da77 | |||
| 227331e2d5 | |||
| 559eff1823 | |||
| fa665204ef | |||
| 66eb71e53d | |||
| dd85e9a32c | |||
| 6c17991656 | |||
| e34a598fcc | |||
| 45a7c96dbb |
@ -1,10 +1,12 @@
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
include $(CFDEM_ADD_LIBS_DIR)/$(CFDEM_ADD_LIBS_NAME)
|
||||
|
||||
PFLAGS+= -DCFDEMWMPROJECTVERSION="$(CFDEM_WM_PROJECT_VERSION)"
|
||||
|
||||
EXE_INC = \
|
||||
$(PFLAGS) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
$(PINC) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
@ -16,6 +18,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicMesh/dynamicMesh/lnInclude \
|
||||
-I$(CFDEM_LIGGGHTS_SRC_DIR)
|
||||
|
||||
EXE_LIBS = \
|
||||
-L$(CFDEM_LIB_DIR)\
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_LIBS) \
|
||||
|
||||
@ -47,7 +47,6 @@ Contributions
|
||||
#else
|
||||
#include "turbulenceModel.H"
|
||||
#endif
|
||||
#include "superquadric_flag.h"
|
||||
#include "cfdemCloudIB.H"
|
||||
#if defined(SUPERQUADRIC_ACTIVE_FLAG)
|
||||
#include "cfdemCloudIBSuperquadric.H"
|
||||
@ -108,7 +107,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
//=== dyM ===================
|
||||
interFace = mag(mesh.lookupObject<volScalarField>("voidfractionNext"));
|
||||
mesh.update(); //dyM
|
||||
particleCloud.setMeshHasUpdatedFlag(mesh.update()); //dyM
|
||||
|
||||
#if defined(version30)
|
||||
#include "readTimeControls.H"
|
||||
|
||||
@ -1,14 +1,17 @@
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
include $(CFDEM_ADD_LIBS_DIR)/$(CFDEM_ADD_LIBS_NAME)
|
||||
|
||||
PFLAGS+= -DCFDEMWMPROJECTVERSION="$(CFDEM_WM_PROJECT_VERSION)"
|
||||
|
||||
EXE_INC = \
|
||||
$(PFLAGS) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
$(PINC) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/fvOptions/lnInclude \
|
||||
-I$(CFDEM_SRC_DIR)/lagrangian/cfdemParticle/lnInclude \
|
||||
-I$(CFDEM_SRC_DIR)/lagrangian/cfdemParticle/cfdTools \
|
||||
-I$(CFDEM_LIGGGHTS_SRC_DIR)
|
||||
@ -19,6 +22,7 @@ EXE_LIBS = \
|
||||
-lincompressibleTransportModels \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools \
|
||||
-lfvOptions \
|
||||
-l$(CFDEM_LIB_NAME) \
|
||||
$(CFDEM_ADD_LIB_PATHS) \
|
||||
$(CFDEM_ADD_LIBS)
|
||||
|
||||
@ -44,13 +44,17 @@ Description
|
||||
#else
|
||||
#include "turbulenceModel.H"
|
||||
#endif
|
||||
#if defined(versionv1606plus) || defined(version40)
|
||||
#include "fvOptions.H"
|
||||
#else
|
||||
#include "fvIOoptionList.H"
|
||||
#endif
|
||||
#include "fixedFluxPressureFvPatchScalarField.H"
|
||||
#include "cfdemCloud.H"
|
||||
|
||||
#if defined(anisotropicRotation)
|
||||
#include "cfdemCloudRotation.H"
|
||||
#endif
|
||||
#include "superquadric_flag.h"
|
||||
#if defined(SUPERQUADRIC_ACTIVE_FLAG)
|
||||
#include "cfdemCloudRotationSuperquadric.H"
|
||||
#endif
|
||||
@ -72,6 +76,7 @@ int main(int argc, char *argv[])
|
||||
#include "createTimeControls.H"
|
||||
#endif
|
||||
#include "createFields.H"
|
||||
#include "createFvOptions.H"
|
||||
#include "initContinuityErrs.H"
|
||||
|
||||
// create cfdemCloud
|
||||
@ -89,8 +94,6 @@ int main(int argc, char *argv[])
|
||||
Info<< "\nStarting time loop\n" << endl;
|
||||
while (runTime.loop())
|
||||
{
|
||||
particleCloud.clockM().start(1,"Global");
|
||||
|
||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||
|
||||
#if defined(version30)
|
||||
@ -103,6 +106,7 @@ int main(int argc, char *argv[])
|
||||
#endif
|
||||
|
||||
// do particle stuff
|
||||
particleCloud.clockM().start(1,"Global");
|
||||
particleCloud.clockM().start(2,"Coupling");
|
||||
bool hasEvolved = particleCloud.evolve(voidfraction,Us,U);
|
||||
|
||||
@ -139,9 +143,11 @@ int main(int argc, char *argv[])
|
||||
+ particleCloud.divVoidfractionTau(U, voidfraction)
|
||||
==
|
||||
- fvm::Sp(Ksl/rho,U)
|
||||
+ fvOptions(U)
|
||||
);
|
||||
|
||||
UEqn.relax();
|
||||
fvOptions.constrain(UEqn);
|
||||
|
||||
#if defined(version30)
|
||||
if (piso.momentumPredictor())
|
||||
@ -153,6 +159,8 @@ int main(int argc, char *argv[])
|
||||
solve(UEqn == - fvc::grad(p) + Ksl/rho*Us);
|
||||
else
|
||||
solve(UEqn == - voidfraction*fvc::grad(p) + Ksl/rho*Us);
|
||||
|
||||
fvOptions.correct(U);
|
||||
}
|
||||
|
||||
// --- PISO loop
|
||||
@ -190,7 +198,11 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
setSnGrad<fixedFluxPressureFvPatchScalarField>
|
||||
(
|
||||
p.boundaryField(),
|
||||
#ifdef versionv1612plus
|
||||
p.boundaryFieldRef(),
|
||||
#else
|
||||
p.boundaryField(),
|
||||
#endif
|
||||
(
|
||||
phi.boundaryField()
|
||||
- (mesh.Sf().boundaryField() & U.boundaryField())
|
||||
@ -200,7 +212,11 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
setSnGrad<fixedFluxPressureFvPatchScalarField>
|
||||
(
|
||||
p.boundaryField(),
|
||||
#ifdef versionv1612plus
|
||||
p.boundaryFieldRef(),
|
||||
#else
|
||||
p.boundaryField(),
|
||||
#endif
|
||||
(
|
||||
phi.boundaryField()
|
||||
- (mesh.Sf().boundaryField() & U.boundaryField())
|
||||
@ -258,6 +274,7 @@ int main(int argc, char *argv[])
|
||||
U -= voidfraction*rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
||||
|
||||
U.correctBoundaryConditions();
|
||||
fvOptions.correct(U);
|
||||
|
||||
} // end piso loop
|
||||
}
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
include $(CFDEM_ADD_LIBS_DIR)/$(CFDEM_ADD_LIBS_NAME)
|
||||
|
||||
PFLAGS+= -DCFDEMWMPROJECTVERSION="$(CFDEM_WM_PROJECT_VERSION)"
|
||||
|
||||
EXE_INC = \
|
||||
$(PFLAGS) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
$(PINC) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
@ -12,6 +14,7 @@ EXE_INC = \
|
||||
-I$(CFDEM_SRC_DIR)/lagrangian/cfdemParticle/lnInclude \
|
||||
-I$(CFDEM_SRC_DIR)/lagrangian/cfdemParticle/cfdTools \
|
||||
-I$(CFDEM_SRC_DIR)/eulerian/scalarTransportModelsCFDEM/lnInclude \
|
||||
-I$(CFDEM_LIGGGHTS_SRC_DIR)
|
||||
|
||||
EXE_LIBS = \
|
||||
-L$(CFDEM_LIB_DIR)\
|
||||
|
||||
@ -44,7 +44,11 @@ Description
|
||||
#include "turbulenceModel.H"
|
||||
#endif
|
||||
#include "fixedFluxPressureFvPatchScalarField.H"
|
||||
#include "cfdemCloud.H"
|
||||
#ifdef MS
|
||||
#include "cfdemCloudMS.H"
|
||||
#else
|
||||
#include "cfdemCloud.H"
|
||||
#endif
|
||||
#if defined(anisotropicRotation)
|
||||
#include "cfdemCloudRotation.H"
|
||||
#endif
|
||||
@ -73,7 +77,11 @@ int main(int argc, char *argv[])
|
||||
#if defined(anisotropicRotation)
|
||||
cfdemCloudRotation particleCloud(mesh);
|
||||
#else
|
||||
cfdemCloud particleCloud(mesh);
|
||||
#ifdef MS
|
||||
cfdemCloudMS particleCloud(mesh);
|
||||
#else
|
||||
cfdemCloud particleCloud(mesh);
|
||||
#endif
|
||||
#endif
|
||||
#include "checkModelType.H"
|
||||
|
||||
@ -124,14 +132,9 @@ int main(int argc, char *argv[])
|
||||
|
||||
particleCloud.clockM().start(26,"Flow");
|
||||
|
||||
// get scalar source from DEM
|
||||
particleCloud.forceM(1).manipulateScalarField(Tsource);
|
||||
Tsource.correctBoundaryConditions();
|
||||
|
||||
//Scalar transport if desired. Use "none" (noTransport) if no scalar transport is desired
|
||||
stm().update();
|
||||
|
||||
particleCloud.clockM().start(26,"Flow");
|
||||
|
||||
if(particleCloud.solveFlow())
|
||||
{
|
||||
// Pressure-velocity PISO corrector
|
||||
@ -196,7 +199,11 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
setSnGrad<fixedFluxPressureFvPatchScalarField>
|
||||
(
|
||||
p.boundaryField(),
|
||||
#ifdef versionv1612plus
|
||||
p.boundaryFieldRef(),
|
||||
#else
|
||||
p.boundaryField(),
|
||||
#endif
|
||||
(
|
||||
phi.boundaryField()
|
||||
- (mesh.Sf().boundaryField() & U.boundaryField())
|
||||
@ -206,7 +213,11 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
setSnGrad<fixedFluxPressureFvPatchScalarField>
|
||||
(
|
||||
p.boundaryField(),
|
||||
#ifdef versionv1612plus
|
||||
p.boundaryFieldRef(),
|
||||
#else
|
||||
p.boundaryField(),
|
||||
#endif
|
||||
(
|
||||
phi.boundaryField()
|
||||
- (mesh.Sf().boundaryField() & U.boundaryField())
|
||||
|
||||
@ -1,16 +1,19 @@
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
include $(CFDEM_ADD_LIBS_DIR)/$(CFDEM_ADD_LIBS_NAME)
|
||||
|
||||
PFLAGS+= -DCFDEMWMPROJECTVERSION="$(CFDEM_WM_PROJECT_VERSION)"
|
||||
|
||||
EXE_INC = \
|
||||
$(PFLAGS) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
$(PINC) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(CFDEM_SRC_DIR)/lagrangian/cfdemParticle/lnInclude \
|
||||
-I$(CFDEM_SRC_DIR)/lagrangian/cfdemParticle/cfdTools \
|
||||
-I$(CFDEM_LIGGGHTS_SRC_DIR)
|
||||
|
||||
EXE_LIBS = \
|
||||
-L$(CFDEM_LIB_DIR)\
|
||||
|
||||
@ -121,6 +121,7 @@ int main(int argc, char *argv[])
|
||||
// get scalar source from DEM
|
||||
particleCloud.forceM(1).manipulateScalarField(Tsource);
|
||||
Tsource.correctBoundaryConditions();
|
||||
particleCloud.forceM(1).commToDEM();
|
||||
|
||||
// solve scalar transport equation
|
||||
fvScalarMatrix TEqn
|
||||
@ -198,7 +199,11 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
setSnGrad<fixedFluxPressureFvPatchScalarField>
|
||||
(
|
||||
p.boundaryField(),
|
||||
#ifdef versionv1612plus
|
||||
p.boundaryFieldRef(),
|
||||
#else
|
||||
p.boundaryField(),
|
||||
#endif
|
||||
(
|
||||
phi.boundaryField()
|
||||
- (mesh.Sf().boundaryField() & U.boundaryField())
|
||||
@ -208,7 +213,11 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
setSnGrad<fixedFluxPressureFvPatchScalarField>
|
||||
(
|
||||
p.boundaryField(),
|
||||
#ifdef versionv1612plus
|
||||
p.boundaryFieldRef(),
|
||||
#else
|
||||
p.boundaryField(),
|
||||
#endif
|
||||
(
|
||||
phi.boundaryField()
|
||||
- (mesh.Sf().boundaryField() & U.boundaryField())
|
||||
|
||||
@ -1,15 +1,18 @@
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
include $(CFDEM_ADD_LIBS_DIR)/$(CFDEM_ADD_LIBS_NAME)
|
||||
|
||||
PFLAGS+= -DCFDEMWMPROJECTVERSION="$(CFDEM_WM_PROJECT_VERSION)"
|
||||
|
||||
EXE_INC = \
|
||||
$(PFLAGS) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
$(PINC) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(CFDEM_SRC_DIR)/lagrangian/cfdemParticle/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(CFDEM_LIGGGHTS_SRC_DIR)
|
||||
|
||||
|
||||
EXE_LIBS = \
|
||||
|
||||
@ -114,8 +114,11 @@ int main(int argc, char *argv[])
|
||||
particleCloud.setPos(positions_);
|
||||
|
||||
particleCloud.voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_,particleV_);
|
||||
|
||||
voidfraction.internalField() = particleCloud.voidFractionM().voidFractionInterp();
|
||||
#if defined(versionv1612plus) || defined(version40)
|
||||
voidfraction = particleCloud.voidFractionM().voidFractionInterp();
|
||||
#else
|
||||
voidfraction.internalField() = particleCloud.voidFractionM().voidFractionInterp();
|
||||
#endif
|
||||
voidfraction.correctBoundaryConditions();
|
||||
|
||||
particleCloud.averagingM().setVectorAverage
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
"CFDEMproject WWW Site"_lws :c
|
||||
"CFDEM(R)project WWW Site"_lws :c
|
||||
|
||||
:line
|
||||
CFDEMcoupling Documentation :h2,c
|
||||
CFDEM(R)coupling Documentation :h2,c
|
||||
:line
|
||||
:c,image(Portfolio_CFDEMcoupling.png)
|
||||
:line
|
||||
@ -13,9 +13,9 @@ CFDEMcoupling Documentation :h2,c
|
||||
|
||||
1. Contents :h3
|
||||
|
||||
The CFDEMcoupling documentation is organized into the following sections. If you find any errors or omissions in this manual or have suggestions for useful information to add, please send an email to the developers so the CFDEMcoupling documentation can be improved.
|
||||
The CFDEM(R)coupling documentation is organized into the following sections. If you find any errors or omissions in this manual or have suggestions for useful information to add, please send an email to the developers so the CFDEM(R)coupling documentation can be improved.
|
||||
|
||||
1.1 "About CFDEMcoupling"_#1_1
|
||||
1.1 "About CFDEM(R)coupling"_#1_1
|
||||
1.2 "Installation"_#1_2
|
||||
1.3 "Tutorials"_#1_3
|
||||
1.4 "couplingProperties dictionary"_#1_4
|
||||
@ -24,9 +24,9 @@ The CFDEMcoupling documentation is organized into the following sections. If you
|
||||
|
||||
:line
|
||||
|
||||
1.1 About CFDEMcoupling :link(1_1),h4
|
||||
1.1 About CFDEM(R)coupling :link(1_1),h4
|
||||
|
||||
CFDEM coupling provides an open source parallel coupled CFD-DEM framework combining the strengths of "LIGGGHTS"_lig DEM code and the Open Source CFD package "OpenFOAM(R)(*)"_of. The CFDEMcoupling toolbox allows to expand standard CFD solvers of "OpenFOAM(R)(*)"_of to include a coupling to the DEM code "LIGGGHTS"_lig. 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.
|
||||
CFDEM(R)coupling provides an open source parallel coupled CFD-DEM framework combining the strengths of "LIGGGHTS(R)"_lig DEM code and the Open Source CFD package "OpenFOAM(R)(*)"_of. The CFDEM(R)coupling toolbox allows to expand standard CFD solvers of "OpenFOAM(R)(*)"_of to include a coupling to the DEM code "LIGGGHTS(R)"_lig. 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:
|
||||
|
||||
@ -41,18 +41,18 @@ The file structure:
|
||||
|
||||
{src} directory including the source files of the coupling toolbox and models :ulb,l
|
||||
{applications} directory including the solver files for coupled CFD-DEM simulations :l
|
||||
{doc} directory including the documentation of CFDEMcoupling :l
|
||||
{doc} directory including the documentation of CFDEM(R)coupling :l
|
||||
{tutorials} directory including basic tutorial cases showing the functionality :l
|
||||
:ule
|
||||
|
||||
Details on installation are given on the "CFDEMproject WWW Site"_lws .
|
||||
Details on installation are given on the "CFDEM(R)project WWW Site"_lws .
|
||||
The functionality of this CFD-DEM framework is described via "tutorial cases"_#_1_2 showing how to use different solvers and models.
|
||||
|
||||
CFDEMcoupling stands for Computational Fluid Dynamics (CFD) -Discrete Element Method (DEM) coupling.
|
||||
CFDEM(R)coupling 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).
|
||||
CFDEM(R)coupling 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
|
||||
Core development of CFDEM(R)coupling is done by Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012
|
||||
|
||||
This documentation was written by Christoph Goniva, DCS Computing GmbH, 2012
|
||||
|
||||
@ -72,7 +72,7 @@ In order to get the latest code version, please use the git repository at http:/
|
||||
|
||||
[General:]
|
||||
|
||||
Each solver of the CFDEMcoupling comes with at least one tutorial example, showing its functionality and correct usage. Provided that the installation is correct, the tutorials can be run via "Allrun.sh" shell scripts. These scripts perform all necessary steps (preprocessing, run, postprocessing, visualization).
|
||||
Each solver of the CFDEM(R)coupling comes with at least one tutorial example, showing its functionality and correct usage. Provided that the installation is correct, the tutorials can be run via "Allrun.sh" shell scripts. These scripts perform all necessary steps (preprocessing, run, postprocessing, visualization).
|
||||
|
||||
[Location:]
|
||||
|
||||
@ -90,11 +90,11 @@ Provided that the installation is correct, the tutorials can be run via "Allrun.
|
||||
|
||||
The main settings of a simulation are done via dictionaries:
|
||||
|
||||
The DEM setup of each case is defined by a "LIGGGHTS"_lig input file located in $caseDir/DEM (e.g. in.liggghts_init). For details on the "LIGGGHTS"_lig setup, please have a look at the "LIGGGHTS"_lig manual.
|
||||
The DEM setup of each case is defined by a "LIGGGHTS(R)"_lig input file located in $caseDir/DEM (e.g. in.liggghts_init). For details on the "LIGGGHTS(R)"_lig setup, please have a look at the "LIGGGHTS(R)"_lig manual.
|
||||
|
||||
Standard CFD settings are defined in $caseDir/CFD/constant (e.g. transportProperties, RASproperties, etc.) and $caseDir/CFD/system (e.g. fvSchemes, controlDict). You can find more information on that in "OpenFOAM(R)(*)"_of documentations (www.openFoam.com)(*).
|
||||
|
||||
Settings of the coupling routines are defined in $caseDir/CFD/constant/"couplingProperies"_#1_3 (e.g. force models, data exchange model, etc.) and $caseDir/CFD/constant/"liggghtsCommands"_#1_3 (allows to execute a LIGGGHTS command during a coupled simulation).
|
||||
Settings of the coupling routines are defined in $caseDir/CFD/constant/"couplingProperies"_#1_3 (e.g. force models, data exchange model, etc.) and $caseDir/CFD/constant/"liggghtsCommands"_#1_3 (allows to execute a LIGGGHTS(R) command during a coupled simulation).
|
||||
|
||||
:line
|
||||
|
||||
@ -134,7 +134,7 @@ Reasonable example settings for the "couplingProperties" dictionary are given in
|
||||
|
||||
modelType :pre
|
||||
|
||||
"modelType" refers to the formulation of the equations to be solved. Choose "A", "B" or "Bfull", according to Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: model formulations and their applicability", JFM. "A" requires the use of the force models gradPForce and viscForce, whereas "B" requires the force model "Archimedes". "Bfull" refers to model type I.
|
||||
"modelType" refers to the formulation of the equations to be solved. Choose "A", "B" or "Bfull", according to Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: model formulations and their applicability", JFM. "A" requires the use of the force models gradPForce and viscForce, whereas "B" requires the force model "Archimedes". "Bfull" refers to model type I, "A" refers to model type II and "B" refers to type III in the nomenclature used by Zhou et al.
|
||||
|
||||
couplingInterval :pre
|
||||
|
||||
@ -153,7 +153,7 @@ Example: DEMts=0.00001s, couplingInterval=10 exchange data (=couple) will happen
|
||||
|
||||
[General:]
|
||||
|
||||
In the "liggghtsCommands" dictionary liggghts commands being executed during a coupled CFD-DEM simulation are specified.
|
||||
In the "liggghtsCommands" dictionary LIGGGHTS(R) commands being executed during a coupled CFD-DEM simulation are specified.
|
||||
|
||||
[Location:] $caseDir/CFD/constant
|
||||
|
||||
@ -190,10 +190,14 @@ listing below of styles within certain commands.
|
||||
"averagingModel_dilute"_averagingModel_dilute.html,
|
||||
"cfdemSolverIB"_cfdemSolverIB.html,
|
||||
"cfdemSolverPiso"_cfdemSolverPiso.html,
|
||||
"cfdemSolverPisoSTM"_cfdemSolverPisoSTM.html,
|
||||
"cfdemSolverPisoScalar"_cfdemSolverPisoScalar.html,
|
||||
"clockModel"_clockModel.html,
|
||||
"clockModel_noClock"_clockModel_noClock.html,
|
||||
"clockModel_standardClock"_clockModel_standardClock.html,
|
||||
"couple/cfd"_fix_couple_cfd.html,
|
||||
"couple/cfd/force"_fix_couple_cfd_force.html,
|
||||
"couple/cfd/force/implicit"_fix_couple_cfd_force_implicit.html,
|
||||
"dataExchangeModel"_dataExchangeModel.html,
|
||||
"dataExchangeModel_noDataExchange"_dataExchangeModel_noDataExchange.html,
|
||||
"dataExchangeModel_oneWayVTK"_dataExchangeModel_oneWayVTK.html,
|
||||
@ -244,6 +248,7 @@ listing below of styles within certain commands.
|
||||
"regionModel"_regionModel.html,
|
||||
"regionModel_allRegion"_regionModel_allRegion.html,
|
||||
"scalarTransportModel"_scalarTransportModel.html,
|
||||
"scalarTransportModel_generalManual"_scalarTransportModel_generalManual.html,
|
||||
"smoothingModel"_smoothingModel.html,
|
||||
"smoothingModel_constDiffSmoothing"_smoothingModel_constDiffSmoothing.html,
|
||||
"smoothingModel_noSmoothing"_smoothingModel_noSmoothing.html,
|
||||
|
||||
BIN
doc/Eqs/voidfractionModel_divided_pic1.png
Executable file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
doc/Eqs/voidfractionModel_divided_pic2.png
Executable file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
doc/Eqs/voidfractionModel_divided_pic3.png
Executable file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
doc/Eqs/voidfractionModel_divided_pic4.png
Executable file
|
After Width: | Height: | Size: 15 KiB |
BIN
doc/Eqs/voidfractionModel_divided_pic5.png
Executable file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
doc/Eqs/voidfractionModel_divided_pic6.png
Executable file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
doc/_build/doctrees/CFDEMcoupling_Manual.doctree
vendored
BIN
doc/_build/doctrees/cfdemSolverPisoSTM.doctree
vendored
Normal file
BIN
doc/_build/doctrees/cfdemSolverPisoScalar.doctree
vendored
BIN
doc/_build/doctrees/clockModel_standardClock.doctree
vendored
BIN
doc/_build/doctrees/dataExchangeModel.doctree
vendored
BIN
doc/_build/doctrees/environment.pickle
vendored
BIN
doc/_build/doctrees/fix_couple_cfd.doctree
vendored
Normal file
BIN
doc/_build/doctrees/fix_couple_cfd_force.doctree
vendored
Normal file
BIN
doc/_build/doctrees/fix_couple_cfd_force_implicit.doctree
vendored
Normal file
BIN
doc/_build/doctrees/forceModel_Archimedes.doctree
vendored
BIN
doc/_build/doctrees/forceModel_DiFeliceDrag.doctree
vendored
BIN
doc/_build/doctrees/forceModel_GidaspowDrag.doctree
vendored
BIN
doc/_build/doctrees/forceModel_ShirgaonkarIB.doctree
vendored
BIN
doc/_build/doctrees/forceModel_viscForce.doctree
vendored
BIN
doc/_build/doctrees/forceSubModel.doctree
vendored
BIN
doc/_build/doctrees/forceSubModel_ImEx.doctree
vendored
BIN
doc/_build/doctrees/githubAccess_public.doctree
vendored
BIN
doc/_build/doctrees/locateModel.doctree
vendored
BIN
doc/_build/doctrees/probeModel_noProbe.doctree
vendored
BIN
doc/_build/doctrees/probeModel_particleProbe.doctree
vendored
BIN
doc/_build/doctrees/scalarTransportModel.doctree
vendored
BIN
doc/_build/doctrees/scalarTransportModel_generalManual.doctree
vendored
Normal file
82
doc/_build/html/CFDEMcoupling_Manual.html
vendored
@ -8,7 +8,7 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>CFDEMcoupling Documentation — CFDEMcoupling v3.X documentation</title>
|
||||
<title>CFDEM(R)coupling Documentation — CFDEMcoupling v3.X documentation</title>
|
||||
|
||||
|
||||
|
||||
@ -82,9 +82,9 @@
|
||||
|
||||
<!-- Local TOC -->
|
||||
<div class="local-toc"><ul>
|
||||
<li><a class="reference internal" href="#">CFDEMcoupling Documentation</a><ul>
|
||||
<li><a class="reference internal" href="#">CFDEM(R)coupling Documentation</a><ul>
|
||||
<li><a class="reference internal" href="#contents">Contents</a><ul>
|
||||
<li><a class="reference internal" href="#about-cfdemcoupling">About CFDEMcoupling</a></li>
|
||||
<li><a class="reference internal" href="#about-cfdem-r-coupling">About CFDEM(R)coupling</a></li>
|
||||
<li><a class="reference internal" href="#installation">Installation</a></li>
|
||||
<li><a class="reference internal" href="#tutorials">Tutorials</a></li>
|
||||
<li><a class="reference internal" href="#couplingproperties-dictionary">“couplingProperties” dictionary</a></li>
|
||||
@ -124,7 +124,7 @@
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="#">Docs</a> »</li>
|
||||
|
||||
<li>CFDEMcoupling Documentation</li>
|
||||
<li>CFDEM(R)coupling Documentation</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
@ -139,16 +139,16 @@
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="cfdemcoupling-documentation">
|
||||
<h1>CFDEMcoupling Documentation<a class="headerlink" href="#cfdemcoupling-documentation" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="cfdem-r-coupling-documentation">
|
||||
<h1>CFDEM(R)coupling Documentation<a class="headerlink" href="#cfdem-r-coupling-documentation" title="Permalink to this headline">¶</a></h1>
|
||||
<hr class="docutils" />
|
||||
<img alt="_images/Portfolio_CFDEMcoupling.png" class="align-center" src="_images/Portfolio_CFDEMcoupling.png" />
|
||||
<hr class="docutils" />
|
||||
<div class="section" id="contents">
|
||||
<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The CFDEMcoupling documentation is organized into the following sections. If you find any errors or omissions in this manual or have suggestions for useful information to add, please send an email to the developers so the CFDEMcoupling documentation can be improved.</p>
|
||||
<p>The CFDEM(R)coupling documentation is organized into the following sections. If you find any errors or omissions in this manual or have suggestions for useful information to add, please send an email to the developers so the CFDEM(R)coupling documentation can be improved.</p>
|
||||
<div class="line-block">
|
||||
<div class="line">1.1 <a class="reference internal" href="#id1"><em>About CFDEMcoupling</em></a></div>
|
||||
<div class="line">1.1 <a class="reference internal" href="#id1"><em>About CFDEM(R)coupling</em></a></div>
|
||||
<div class="line">1.2 <a class="reference internal" href="#id2"><em>Installation</em></a></div>
|
||||
<div class="line">1.3 <a class="reference internal" href="#id3"><em>Tutorials</em></a></div>
|
||||
<div class="line">1.4 <a class="reference internal" href="#id4"><em>couplingProperties dictionary</em></a></div>
|
||||
@ -157,9 +157,9 @@
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<hr class="docutils" />
|
||||
<div class="section" id="about-cfdemcoupling">
|
||||
<span id="id1"></span><h3>About CFDEMcoupling<a class="headerlink" href="#about-cfdemcoupling" title="Permalink to this headline">¶</a></h3>
|
||||
<p>CFDEM coupling provides an open source parallel coupled CFD-DEM framework combining the strengths of <a class="reference external" href="http://www.cfdem.com">LIGGGHTS</a> DEM code and the Open Source CFD package <a class="reference external" href="http://www.openfoam.com">OpenFOAM(R)(*)</a>. The CFDEMcoupling toolbox allows to expand standard CFD solvers of <a class="reference external" href="http://www.openfoam.com">OpenFOAM(R)(*)</a> to include a coupling to the DEM code <a class="reference external" href="http://www.cfdem.com">LIGGGHTS</a>. 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.</p>
|
||||
<div class="section" id="about-cfdem-r-coupling">
|
||||
<span id="id1"></span><h3>About CFDEM(R)coupling<a class="headerlink" href="#about-cfdem-r-coupling" title="Permalink to this headline">¶</a></h3>
|
||||
<p>CFDEM(R)coupling provides an open source parallel coupled CFD-DEM framework combining the strengths of <a class="reference external" href="http://www.cfdem.com">LIGGGHTS(R)</a> DEM code and the Open Source CFD package <a class="reference external" href="http://www.openfoam.com">OpenFOAM(R)(*)</a>. The CFDEM(R)coupling toolbox allows to expand standard CFD solvers of <a class="reference external" href="http://www.openfoam.com">OpenFOAM(R)(*)</a> to include a coupling to the DEM code <a class="reference external" href="http://www.cfdem.com">LIGGGHTS(R)</a>. 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.</p>
|
||||
<p>The coupled solvers run fully parallel on distributed-memory clusters. Features are:</p>
|
||||
<ul class="simple">
|
||||
<li>its modular approach allows users to easily implement new models</li>
|
||||
@ -172,14 +172,14 @@
|
||||
<ul class="simple">
|
||||
<li><em>src</em> directory including the source files of the coupling toolbox and models</li>
|
||||
<li><em>applications</em> directory including the solver files for coupled CFD-DEM simulations</li>
|
||||
<li><em>doc</em> directory including the documentation of CFDEMcoupling</li>
|
||||
<li><em>doc</em> directory including the documentation of CFDEM(R)coupling</li>
|
||||
<li><em>tutorials</em> directory including basic tutorial cases showing the functionality</li>
|
||||
</ul>
|
||||
<p>Details on installation are given on the <a class="reference external" href="http://www.cfdem.com">CFDEMproject WWW Site</a> .
|
||||
<p>Details on installation are given on the <a class="reference external" href="http://www.cfdem.com">CFDEM(R)project WWW Site</a> .
|
||||
The functionality of this CFD-DEM framework is described via <em class="xref std std-ref">tutorial cases</em> showing how to use different solvers and models.</p>
|
||||
<p>CFDEMcoupling stands for Computational Fluid Dynamics (CFD) -Discrete Element Method (DEM) coupling.</p>
|
||||
<p>CFDEMcoupling is an open-source code, distributed freely under the terms of the GNU Public License (GPL).</p>
|
||||
<p>Core development of CFDEMcoupling is done by Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012</p>
|
||||
<p>CFDEM(R)coupling stands for Computational Fluid Dynamics (CFD) -Discrete Element Method (DEM) coupling.</p>
|
||||
<p>CFDEM(R)coupling is an open-source code, distributed freely under the terms of the GNU Public License (GPL).</p>
|
||||
<p>Core development of CFDEM(R)coupling is done by Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012</p>
|
||||
<p>This documentation was written by Christoph Goniva, DCS Computing GmbH, 2012</p>
|
||||
<hr class="docutils" />
|
||||
<p>(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks.</p>
|
||||
@ -194,7 +194,7 @@ In order to get the latest code version, please use the git repository at <a cla
|
||||
<div class="section" id="tutorials">
|
||||
<span id="id3"></span><h3>Tutorials<a class="headerlink" href="#tutorials" title="Permalink to this headline">¶</a></h3>
|
||||
<p><strong>General:</strong></p>
|
||||
<p>Each solver of the CFDEMcoupling comes with at least one tutorial example, showing its functionality and correct usage. Provided that the installation is correct, the tutorials can be run via “Allrun.sh” shell scripts. These scripts perform all necessary steps (preprocessing, run, postprocessing, visualization).</p>
|
||||
<p>Each solver of the CFDEM(R)coupling comes with at least one tutorial example, showing its functionality and correct usage. Provided that the installation is correct, the tutorials can be run via “Allrun.sh” shell scripts. These scripts perform all necessary steps (preprocessing, run, postprocessing, visualization).</p>
|
||||
<p><strong>Location:</strong></p>
|
||||
<p>The tutorials can be found in the directory $CFDEM_PROJECT_DIR/tutorials, which can be reached by typing “cfdemTut”</p>
|
||||
<p><strong>Structure:</strong></p>
|
||||
@ -203,9 +203,9 @@ In order to get the latest code version, please use the git repository at <a cla
|
||||
<p>Provided that the installation is correct, the tutorials can be run via “Allrun.sh” shell script, executed by typing ”./Allrun.sh”. The successful run of the script might need some third party software (e.g. octave, evince, etc.).</p>
|
||||
<p><strong>Settings:</strong></p>
|
||||
<p>The main settings of a simulation are done via dictionaries:</p>
|
||||
<p>The DEM setup of each case is defined by a <a class="reference external" href="http://www.cfdem.com">LIGGGHTS</a> input file located in $caseDir/DEM (e.g. in.liggghts_init). For details on the <a class="reference external" href="http://www.cfdem.com">LIGGGHTS</a> setup, please have a look at the <a class="reference external" href="http://www.cfdem.com">LIGGGHTS</a> manual.</p>
|
||||
<p>The DEM setup of each case is defined by a <a class="reference external" href="http://www.cfdem.com">LIGGGHTS(R)</a> input file located in $caseDir/DEM (e.g. in.liggghts_init). For details on the <a class="reference external" href="http://www.cfdem.com">LIGGGHTS(R)</a> setup, please have a look at the <a class="reference external" href="http://www.cfdem.com">LIGGGHTS(R)</a> manual.</p>
|
||||
<p>Standard CFD settings are defined in $caseDir/CFD/constant (e.g. transportProperties, RASproperties, etc.) and $caseDir/CFD/system (e.g. fvSchemes, controlDict). You can find more information on that in <a class="reference external" href="http://www.openfoam.com">OpenFOAM(R)(*)</a> documentations (www.openFoam.com)(*).</p>
|
||||
<p>Settings of the coupling routines are defined in $caseDir/CFD/constant/<a class="reference internal" href="#id3"><em>couplingProperies</em></a> (e.g. force models, data exchange model, etc.) and $caseDir/CFD/constant/<a class="reference internal" href="#id3"><em>liggghtsCommands</em></a> (allows to execute a LIGGGHTS command during a coupled simulation).</p>
|
||||
<p>Settings of the coupling routines are defined in $caseDir/CFD/constant/<a class="reference internal" href="#id3"><em>couplingProperies</em></a> (e.g. force models, data exchange model, etc.) and $caseDir/CFD/constant/<a class="reference internal" href="#id3"><em>liggghtsCommands</em></a> (allows to execute a LIGGGHTS(R) command during a coupled simulation).</p>
|
||||
<hr class="docutils" />
|
||||
</div>
|
||||
<div class="section" id="couplingproperties-dictionary">
|
||||
@ -236,7 +236,7 @@ In order to get the latest code version, please use the git repository at <a cla
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="n">modelType</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>“modelType” refers to the formulation of the equations to be solved. Choose “A”, “B” or “Bfull”, according to Zhou et al. (2010): “Discrete particle simulation of particle-fluid flow: model formulations and their applicability”, JFM. “A” requires the use of the force models gradPForce and viscForce, whereas “B” requires the force model “Archimedes”. “Bfull” refers to model type I.</p>
|
||||
<p>“modelType” refers to the formulation of the equations to be solved. Choose “A”, “B” or “Bfull”, according to Zhou et al. (2010): “Discrete particle simulation of particle-fluid flow: model formulations and their applicability”, JFM. “A” requires the use of the force models gradPForce and viscForce, whereas “B” requires the force model “Archimedes”. “Bfull” refers to model type I, “A” refers to model type II and “B” refers to type III in the nomenclature used by Zhou et al.</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="n">couplingInterval</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
@ -251,7 +251,7 @@ In order to get the latest code version, please use the git repository at <a cla
|
||||
<div class="section" id="liggghtscommands-dictionary">
|
||||
<span id="id5"></span><h3>“liggghtsCommands” dictionary<a class="headerlink" href="#liggghtscommands-dictionary" title="Permalink to this headline">¶</a></h3>
|
||||
<p><strong>General:</strong></p>
|
||||
<p>In the “liggghtsCommands” dictionary liggghts commands being executed during a coupled CFD-DEM simulation are specified.</p>
|
||||
<p>In the “liggghtsCommands” dictionary LIGGGHTS(R) commands being executed during a coupled CFD-DEM simulation are specified.</p>
|
||||
<p><strong>Location:</strong> $caseDir/CFD/constant</p>
|
||||
<p><strong>Structure:</strong></p>
|
||||
<p>The dictionary is divided into two parts, first a list of “liggghtsCommandModels” is defined, then the settings for each model must be specified.</p>
|
||||
@ -265,8 +265,8 @@ In order to get the latest code version, please use the git repository at <a cla
|
||||
listing below of styles within certain commands.</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="52%" />
|
||||
<col width="48%" />
|
||||
<col width="52%" />
|
||||
</colgroup>
|
||||
<tbody valign="top">
|
||||
<tr class="row-odd"><td><a class="reference internal" href="IOModel.html"><em>IOModel</em></a></td>
|
||||
@ -284,11 +284,17 @@ listing below of styles within certain commands.</p>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="cfdemSolverIB.html"><em>cfdemSolverIB</em></a></td>
|
||||
<td><a class="reference internal" href="cfdemSolverPiso.html"><em>cfdemSolverPiso</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference internal" href="cfdemSolverPisoScalar.html"><em>cfdemSolverPisoScalar</em></a></td>
|
||||
<td><a class="reference internal" href="clockModel.html"><em>clockModel</em></a></td>
|
||||
<tr class="row-even"><td><a class="reference internal" href="cfdemSolverPisoSTM.html"><em>cfdemSolverPisoSTM</em></a></td>
|
||||
<td><a class="reference internal" href="cfdemSolverPisoScalar.html"><em>cfdemSolverPisoScalar</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="clockModel_noClock.html"><em>clockModel_noClock</em></a></td>
|
||||
<td><a class="reference internal" href="clockModel_standardClock.html"><em>clockModel_standardClock</em></a></td>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="clockModel.html"><em>clockModel</em></a></td>
|
||||
<td><a class="reference internal" href="clockModel_noClock.html"><em>clockModel_noClock</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference internal" href="clockModel_standardClock.html"><em>clockModel_standardClock</em></a></td>
|
||||
<td><a class="reference internal" href="fix_couple_cfd.html"><em>couple/cfd</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="fix_couple_cfd_force.html"><em>couple/cfd/force</em></a></td>
|
||||
<td><a class="reference internal" href="fix_couple_cfd_force_implicit.html"><em>couple/cfd/force/implicit</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference internal" href="dataExchangeModel.html"><em>dataExchangeModel</em></a></td>
|
||||
<td><a class="reference internal" href="dataExchangeModel_noDataExchange.html"><em>dataExchangeModel_noDataExchange</em></a></td>
|
||||
@ -365,23 +371,23 @@ listing below of styles within certain commands.</p>
|
||||
<tr class="row-even"><td><a class="reference internal" href="regionModel_allRegion.html"><em>regionModel_allRegion</em></a></td>
|
||||
<td><a class="reference internal" href="scalarTransportModel.html"><em>scalarTransportModel</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="smoothingModel.html"><em>smoothingModel</em></a></td>
|
||||
<td><a class="reference internal" href="smoothingModel_constDiffSmoothing.html"><em>smoothingModel_constDiffSmoothing</em></a></td>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="scalarTransportModel_generalManual.html"><em>scalarTransportModel_generalManual</em></a></td>
|
||||
<td><a class="reference internal" href="smoothingModel.html"><em>smoothingModel</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference internal" href="smoothingModel_noSmoothing.html"><em>smoothingModel_noSmoothing</em></a></td>
|
||||
<td><a class="reference internal" href="voidFractionModel.html"><em>voidfractionModel</em></a></td>
|
||||
<tr class="row-even"><td><a class="reference internal" href="smoothingModel_constDiffSmoothing.html"><em>smoothingModel_constDiffSmoothing</em></a></td>
|
||||
<td><a class="reference internal" href="smoothingModel_noSmoothing.html"><em>smoothingModel_noSmoothing</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="voidFractionModel_GaussVoidFraction.html"><em>voidfractionModel_GaussVoidFraction</em></a></td>
|
||||
<td><a class="reference internal" href="voidFractionModel_IBVoidFraction.html"><em>voidfractionModel_IBVoidFraction</em></a></td>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="voidFractionModel.html"><em>voidfractionModel</em></a></td>
|
||||
<td><a class="reference internal" href="voidFractionModel_GaussVoidFraction.html"><em>voidfractionModel_GaussVoidFraction</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference internal" href="voidFractionModel_bigParticleVoidFraction.html"><em>voidfractionModel_bigParticleVoidFraction</em></a></td>
|
||||
<td><a class="reference internal" href="voidFractionModel_centreVoidFraction.html"><em>voidfractionModel_centreVoidFraction</em></a></td>
|
||||
<tr class="row-even"><td><a class="reference internal" href="voidFractionModel_IBVoidFraction.html"><em>voidfractionModel_IBVoidFraction</em></a></td>
|
||||
<td><a class="reference internal" href="voidFractionModel_bigParticleVoidFraction.html"><em>voidfractionModel_bigParticleVoidFraction</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="voidFractionModel_dividedVoidFraction.html"><em>voidfractionModel_dividedVoidFraction</em></a></td>
|
||||
<td><a class="reference internal" href="voidFractionModel_noVoidFraction.html"><em>voidfractionModel_noVoidFractionVoidFraction</em></a></td>
|
||||
<tr class="row-odd"><td><a class="reference internal" href="voidFractionModel_centreVoidFraction.html"><em>voidfractionModel_centreVoidFraction</em></a></td>
|
||||
<td><a class="reference internal" href="voidFractionModel_dividedVoidFraction.html"><em>voidfractionModel_dividedVoidFraction</em></a></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference internal" href="voidFractionModel_trilinearVoidFraction.html"><em>voidfractionModel_trilinearVoidFraction</em></a></td>
|
||||
<td> </td>
|
||||
<tr class="row-even"><td><a class="reference internal" href="voidFractionModel_noVoidFraction.html"><em>voidfractionModel_noVoidFractionVoidFraction</em></a></td>
|
||||
<td><a class="reference internal" href="voidFractionModel_trilinearVoidFraction.html"><em>voidfractionModel_trilinearVoidFraction</em></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
BIN
doc/_build/html/_images/voidfractionModel_divided_pic2.png
vendored
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
doc/_build/html/_images/voidfractionModel_divided_pic3.png
vendored
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
doc/_build/html/_images/voidfractionModel_divided_pic4.png
vendored
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
doc/_build/html/_images/voidfractionModel_divided_pic5.png
vendored
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
doc/_build/html/_images/voidfractionModel_divided_pic6.png
vendored
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
192
doc/_build/html/_sources/CFDEMcoupling_Manual.txt
vendored
@ -1,5 +1,5 @@
|
||||
CFDEMcoupling Documentation
|
||||
***************************
|
||||
CFDEM(R)coupling Documentation
|
||||
******************************
|
||||
|
||||
|
||||
----------
|
||||
@ -31,9 +31,9 @@ CFDEMcoupling Documentation
|
||||
Contents
|
||||
========
|
||||
|
||||
The CFDEMcoupling documentation is organized into the following sections. If you find any errors or omissions in this manual or have suggestions for useful information to add, please send an email to the developers so the CFDEMcoupling documentation can be improved.
|
||||
The CFDEM(R)coupling documentation is organized into the following sections. If you find any errors or omissions in this manual or have suggestions for useful information to add, please send an email to the developers so the CFDEM(R)coupling documentation can be improved.
|
||||
|
||||
| 1.1 :ref:`About CFDEMcoupling <1_1>`
|
||||
| 1.1 :ref:`About CFDEM(R)coupling <1_1>`
|
||||
| 1.2 :ref:`Installation <1_2>`
|
||||
| 1.3 :ref:`Tutorials <1_3>`
|
||||
| 1.4 :ref:`couplingProperties dictionary <1_4>`
|
||||
@ -47,10 +47,10 @@ The CFDEMcoupling documentation is organized into the following sections. If you
|
||||
|
||||
.. _1_1:
|
||||
|
||||
About CFDEMcoupling
|
||||
-------------------
|
||||
About CFDEM(R)coupling
|
||||
----------------------
|
||||
|
||||
CFDEM coupling provides an open source parallel coupled CFD-DEM framework combining the strengths of `LIGGGHTS <lig_>`_ DEM code and the Open Source CFD package `OpenFOAM(R)(*) <of_>`_. The CFDEMcoupling toolbox allows to expand standard CFD solvers of `OpenFOAM(R)(*) <of_>`_ to include a coupling to the DEM code `LIGGGHTS <lig_>`_. 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.
|
||||
CFDEM(R)coupling provides an open source parallel coupled CFD-DEM framework combining the strengths of `LIGGGHTS(R) <lig_>`_ DEM code and the Open Source CFD package `OpenFOAM(R)(*) <of_>`_. The CFDEM(R)coupling toolbox allows to expand standard CFD solvers of `OpenFOAM(R)(*) <of_>`_ to include a coupling to the DEM code `LIGGGHTS(R) <lig_>`_. 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:
|
||||
|
||||
@ -65,18 +65,18 @@ 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
|
||||
* *doc* directory including the documentation of CFDEM(R)coupling
|
||||
* *tutorials* directory including basic tutorial cases showing the functionality
|
||||
|
||||
|
||||
Details on installation are given on the `CFDEMproject WWW Site <lws_>`_ .
|
||||
Details on installation are given on the `CFDEM(R)project WWW Site <lws_>`_ .
|
||||
The functionality of this CFD-DEM framework is described via :ref:`tutorial cases <_1_2>` showing how to use different solvers and models.
|
||||
|
||||
CFDEMcoupling stands for Computational Fluid Dynamics (CFD) -Discrete Element Method (DEM) coupling.
|
||||
CFDEM(R)coupling 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).
|
||||
CFDEM(R)coupling 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
|
||||
Core development of CFDEM(R)coupling is done by Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012
|
||||
|
||||
This documentation was written by Christoph Goniva, DCS Computing GmbH, 2012
|
||||
|
||||
@ -109,7 +109,7 @@ Tutorials
|
||||
|
||||
**General:**
|
||||
|
||||
Each solver of the CFDEMcoupling comes with at least one tutorial example, showing its functionality and correct usage. Provided that the installation is correct, the tutorials can be run via "Allrun.sh" shell scripts. These scripts perform all necessary steps (preprocessing, run, postprocessing, visualization).
|
||||
Each solver of the CFDEM(R)coupling comes with at least one tutorial example, showing its functionality and correct usage. Provided that the installation is correct, the tutorials can be run via "Allrun.sh" shell scripts. These scripts perform all necessary steps (preprocessing, run, postprocessing, visualization).
|
||||
|
||||
**Location:**
|
||||
|
||||
@ -127,11 +127,11 @@ Provided that the installation is correct, the tutorials can be run via "Allrun.
|
||||
|
||||
The main settings of a simulation are done via dictionaries:
|
||||
|
||||
The DEM setup of each case is defined by a `LIGGGHTS <lig_>`_ input file located in $caseDir/DEM (e.g. in.liggghts_init). For details on the `LIGGGHTS <lig_>`_ setup, please have a look at the `LIGGGHTS <lig_>`_ manual.
|
||||
The DEM setup of each case is defined by a `LIGGGHTS(R) <lig_>`_ input file located in $caseDir/DEM (e.g. in.liggghts_init). For details on the `LIGGGHTS(R) <lig_>`_ setup, please have a look at the `LIGGGHTS(R) <lig_>`_ manual.
|
||||
|
||||
Standard CFD settings are defined in $caseDir/CFD/constant (e.g. transportProperties, RASproperties, etc.) and $caseDir/CFD/system (e.g. fvSchemes, controlDict). You can find more information on that in `OpenFOAM(R)(*) <of_>`_ documentations (www.openFoam.com)(*).
|
||||
|
||||
Settings of the coupling routines are defined in $caseDir/CFD/constant/:ref:`couplingProperies <1_3>` (e.g. force models, data exchange model, etc.) and $caseDir/CFD/constant/:ref:`liggghtsCommands <1_3>` (allows to execute a LIGGGHTS command during a coupled simulation).
|
||||
Settings of the coupling routines are defined in $caseDir/CFD/constant/:ref:`couplingProperies <1_3>` (e.g. force models, data exchange model, etc.) and $caseDir/CFD/constant/:ref:`liggghtsCommands <1_3>` (allows to execute a LIGGGHTS(R) command during a coupled simulation).
|
||||
|
||||
|
||||
----------
|
||||
@ -178,7 +178,7 @@ Reasonable example settings for the "couplingProperties" dictionary are given in
|
||||
|
||||
modelType
|
||||
|
||||
"modelType" refers to the formulation of the equations to be solved. Choose "A", "B" or "Bfull", according to Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: model formulations and their applicability", JFM. "A" requires the use of the force models gradPForce and viscForce, whereas "B" requires the force model "Archimedes". "Bfull" refers to model type I.
|
||||
"modelType" refers to the formulation of the equations to be solved. Choose "A", "B" or "Bfull", according to Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: model formulations and their applicability", JFM. "A" requires the use of the force models gradPForce and viscForce, whereas "B" requires the force model "Archimedes". "Bfull" refers to model type I, "A" refers to model type II and "B" refers to type III in the nomenclature used by Zhou et al.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -204,7 +204,7 @@ Example: DEMts=0.00001s, couplingInterval=10 exchange data (=couple) will happen
|
||||
|
||||
**General:**
|
||||
|
||||
In the "liggghtsCommands" dictionary liggghts commands being executed during a coupled CFD-DEM simulation are specified.
|
||||
In the "liggghtsCommands" dictionary LIGGGHTS(R) commands being executed during a coupled CFD-DEM simulation are specified.
|
||||
|
||||
**Location:** $caseDir/CFD/constant
|
||||
|
||||
@ -230,83 +230,87 @@ Models/Solvers
|
||||
This section lists all CFDEMcoupling sub-models and solvers alphabetically, with a separate
|
||||
listing below of styles within certain commands.
|
||||
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`IOModel <IOModel>` | :doc:`IOModel_basicIO <IOModel_basicIO>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`IOModel_noIO <IOModel_noIO>` | :doc:`IOModel_sophIO <IOModel_sophIO>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`IOModel_trackIO <IOModel_trackIO>` | :doc:`averagingModel <averagingModel>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`averagingModel_dense <averagingModel_dense>` | :doc:`averagingModel_dilute <averagingModel_dilute>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`cfdemSolverIB <cfdemSolverIB>` | :doc:`cfdemSolverPiso <cfdemSolverPiso>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`cfdemSolverPisoScalar <cfdemSolverPisoScalar>` | :doc:`clockModel <clockModel>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`clockModel_noClock <clockModel_noClock>` | :doc:`clockModel_standardClock <clockModel_standardClock>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`dataExchangeModel <dataExchangeModel>` | :doc:`dataExchangeModel_noDataExchange <dataExchangeModel_noDataExchange>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`dataExchangeModel_oneWayVTK <dataExchangeModel_oneWayVTK>` | :doc:`dataExchangeModel_twoWayFiles <dataExchangeModel_twoWayFiles>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`dataExchangeModel_twoWayMPI <dataExchangeModel_twoWayMPI>` | :doc:`forceModel <forceModel>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_Archimedes <forceModel_Archimedes>` | :doc:`forceModel_ArchimedesIB <forceModel_ArchimedesIB>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_DiFeliceDrag <forceModel_DiFeliceDrag>` | :doc:`forceModel_GidaspowDrag <forceModel_GidaspowDrag>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_KochHillDrag <forceModel_KochHillDrag>` | :doc:`forceModel_LaEuScalarTemp <forceModel_LaEuScalarTemp>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_MeiLift <forceModel_MeiLift>` | :doc:`forceModel_SchillerNaumannDrag <forceModel_SchillerNaumannDrag>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_ShirgaonkarIB <forceModel_ShirgaonkarIB>` | :doc:`forceModel_checkCouplingInterval <forceModel_checkCouplingInterval>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_fieldStore <forceModel_fieldStore>` | :doc:`forceModel_fieldTimeAverage <forceModel_fieldTimeAverage>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_gradPForce <forceModel_gradPForce>` | :doc:`forceModel_noDrag <forceModel_noDrag>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_particleCellVolume <forceModel_particleCellVolume>` | :doc:`forceModel_particleVolume <forceModel_particleVolume>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_scalarGeneralExchange <forceModel_scalarGeneralExchange>` | :doc:`forceModel_virtualMassForce <forceModel_virtualMassForce>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_viscForce <forceModel_viscForce>` | :doc:`forceModel_volWeightedAverage <forceModel_volWeightedAverage>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`forceSubModel <forceSubModel>` | :doc:`forceSubModel_ImEx <forceSubModel_ImEx>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`liggghtsCommandModel <liggghtsCommandModel>` | :doc:`liggghtsCommandModel_execute <liggghtsCommandModel_execute>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`liggghtsCommandModel_readLiggghtsData <liggghtsCommandModel_readLiggghtsData>` | :doc:`liggghtsCommandModel_runLiggghts <liggghtsCommandModel_runLiggghts>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`liggghtsCommandModel_setDEMGravity <liggghtsCommandModel_setDEMGravity>` | :doc:`liggghtsCommandModel_writeLiggghts <liggghtsCommandModel_writeLiggghts>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`locateModel <locateModel>` | :doc:`locateModel_engineSearch <locateModel_engineSearch>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`locateModel_engineSearchIB <locateModel_engineSearchIB>` | :doc:`locateModel_standardSearch <locateModel_standardSearch>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`meshMotionModel <meshMotionModel>` | :doc:`meshMotionModel_noMeshMotion <meshMotionModel_noMeshMotion>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`momCoupleModel <momCoupleModel>` | :doc:`momCoupleModel_explicitCouple <momCoupleModel_explicitCouple>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`momCoupleModel_implicitCouple <momCoupleModel_implicitCouple>` | :doc:`momCoupleModel_noCouple <momCoupleModel_noCouple>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`probeModel <probeModel>` | :doc:`probeModel_noProbe <probeModel_noProbe>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`probeModel_particleProbe <probeModel_particleProbe>` | :doc:`regionModel <regionModel>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`regionModel_allRegion <regionModel_allRegion>` | :doc:`scalarTransportModel <scalarTransportModel>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`smoothingModel <smoothingModel>` | :doc:`smoothingModel_constDiffSmoothing <smoothingModel_constDiffSmoothing>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`smoothingModel_noSmoothing <smoothingModel_noSmoothing>` | :doc:`voidfractionModel <voidFractionModel>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`voidfractionModel_GaussVoidFraction <voidFractionModel_GaussVoidFraction>` | :doc:`voidfractionModel_IBVoidFraction <voidFractionModel_IBVoidFraction>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`voidfractionModel_bigParticleVoidFraction <voidFractionModel_bigParticleVoidFraction>` | :doc:`voidfractionModel_centreVoidFraction <voidFractionModel_centreVoidFraction>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`voidfractionModel_dividedVoidFraction <voidFractionModel_dividedVoidFraction>` | :doc:`voidfractionModel_noVoidFractionVoidFraction <voidFractionModel_noVoidFraction>` |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
| :doc:`voidfractionModel_trilinearVoidFraction <voidFractionModel_trilinearVoidFraction>` | |
|
||||
+----------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`IOModel <IOModel>` | :doc:`IOModel_basicIO <IOModel_basicIO>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`IOModel_noIO <IOModel_noIO>` | :doc:`IOModel_sophIO <IOModel_sophIO>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`IOModel_trackIO <IOModel_trackIO>` | :doc:`averagingModel <averagingModel>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`averagingModel_dense <averagingModel_dense>` | :doc:`averagingModel_dilute <averagingModel_dilute>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`cfdemSolverIB <cfdemSolverIB>` | :doc:`cfdemSolverPiso <cfdemSolverPiso>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`cfdemSolverPisoSTM <cfdemSolverPisoSTM>` | :doc:`cfdemSolverPisoScalar <cfdemSolverPisoScalar>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`clockModel <clockModel>` | :doc:`clockModel_noClock <clockModel_noClock>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`clockModel_standardClock <clockModel_standardClock>` | :doc:`couple/cfd <fix_couple_cfd>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`couple/cfd/force <fix_couple_cfd_force>` | :doc:`couple/cfd/force/implicit <fix_couple_cfd_force_implicit>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`dataExchangeModel <dataExchangeModel>` | :doc:`dataExchangeModel_noDataExchange <dataExchangeModel_noDataExchange>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`dataExchangeModel_oneWayVTK <dataExchangeModel_oneWayVTK>` | :doc:`dataExchangeModel_twoWayFiles <dataExchangeModel_twoWayFiles>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`dataExchangeModel_twoWayMPI <dataExchangeModel_twoWayMPI>` | :doc:`forceModel <forceModel>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_Archimedes <forceModel_Archimedes>` | :doc:`forceModel_ArchimedesIB <forceModel_ArchimedesIB>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_DiFeliceDrag <forceModel_DiFeliceDrag>` | :doc:`forceModel_GidaspowDrag <forceModel_GidaspowDrag>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_KochHillDrag <forceModel_KochHillDrag>` | :doc:`forceModel_LaEuScalarTemp <forceModel_LaEuScalarTemp>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_MeiLift <forceModel_MeiLift>` | :doc:`forceModel_SchillerNaumannDrag <forceModel_SchillerNaumannDrag>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_ShirgaonkarIB <forceModel_ShirgaonkarIB>` | :doc:`forceModel_checkCouplingInterval <forceModel_checkCouplingInterval>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_fieldStore <forceModel_fieldStore>` | :doc:`forceModel_fieldTimeAverage <forceModel_fieldTimeAverage>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_gradPForce <forceModel_gradPForce>` | :doc:`forceModel_noDrag <forceModel_noDrag>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_particleCellVolume <forceModel_particleCellVolume>` | :doc:`forceModel_particleVolume <forceModel_particleVolume>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_scalarGeneralExchange <forceModel_scalarGeneralExchange>` | :doc:`forceModel_virtualMassForce <forceModel_virtualMassForce>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceModel_viscForce <forceModel_viscForce>` | :doc:`forceModel_volWeightedAverage <forceModel_volWeightedAverage>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`forceSubModel <forceSubModel>` | :doc:`forceSubModel_ImEx <forceSubModel_ImEx>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`liggghtsCommandModel <liggghtsCommandModel>` | :doc:`liggghtsCommandModel_execute <liggghtsCommandModel_execute>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`liggghtsCommandModel_readLiggghtsData <liggghtsCommandModel_readLiggghtsData>` | :doc:`liggghtsCommandModel_runLiggghts <liggghtsCommandModel_runLiggghts>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`liggghtsCommandModel_setDEMGravity <liggghtsCommandModel_setDEMGravity>` | :doc:`liggghtsCommandModel_writeLiggghts <liggghtsCommandModel_writeLiggghts>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`locateModel <locateModel>` | :doc:`locateModel_engineSearch <locateModel_engineSearch>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`locateModel_engineSearchIB <locateModel_engineSearchIB>` | :doc:`locateModel_standardSearch <locateModel_standardSearch>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`meshMotionModel <meshMotionModel>` | :doc:`meshMotionModel_noMeshMotion <meshMotionModel_noMeshMotion>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`momCoupleModel <momCoupleModel>` | :doc:`momCoupleModel_explicitCouple <momCoupleModel_explicitCouple>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`momCoupleModel_implicitCouple <momCoupleModel_implicitCouple>` | :doc:`momCoupleModel_noCouple <momCoupleModel_noCouple>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`probeModel <probeModel>` | :doc:`probeModel_noProbe <probeModel_noProbe>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`probeModel_particleProbe <probeModel_particleProbe>` | :doc:`regionModel <regionModel>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`regionModel_allRegion <regionModel_allRegion>` | :doc:`scalarTransportModel <scalarTransportModel>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`scalarTransportModel_generalManual <scalarTransportModel_generalManual>` | :doc:`smoothingModel <smoothingModel>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`smoothingModel_constDiffSmoothing <smoothingModel_constDiffSmoothing>` | :doc:`smoothingModel_noSmoothing <smoothingModel_noSmoothing>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`voidfractionModel <voidFractionModel>` | :doc:`voidfractionModel_GaussVoidFraction <voidFractionModel_GaussVoidFraction>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`voidfractionModel_IBVoidFraction <voidFractionModel_IBVoidFraction>` | :doc:`voidfractionModel_bigParticleVoidFraction <voidFractionModel_bigParticleVoidFraction>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`voidfractionModel_centreVoidFraction <voidFractionModel_centreVoidFraction>` | :doc:`voidfractionModel_dividedVoidFraction <voidFractionModel_dividedVoidFraction>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
| :doc:`voidfractionModel_noVoidFractionVoidFraction <voidFractionModel_noVoidFraction>` | :doc:`voidfractionModel_trilinearVoidFraction <voidFractionModel_trilinearVoidFraction>` |
|
||||
+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
.. _liws: http://www.cfdem.com
|
||||
|
||||
28
doc/_build/html/_sources/cfdemSolverPisoSTM.txt
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
.. index:: cfdemSolverPisoSTM
|
||||
|
||||
cfdemSolverPisoSTM command
|
||||
==========================
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
"cfdemSolverPisoSTM" is a coupled CFD-DEM solver using CFDEMcoupling, an open source parallel coupled CFD-DEM framework. Based on pisoFoam(R)(*), a finite volume based solver for turbulent Navier-Stokes equations applying PISO algorithm, "cfdemSolverPisoSTM" has additional functionality for a coupling to the DEM code "LIGGGHTS" as well as a scalar transport equation. The volume averaged Navier-Stokes Equations are solved accounting for momentum exchange and volume displacement of discrete particles, whose trajectories are calculated in the DEM code LIGGGHTS. Scalar transport equations coupled to scalar properties of the particle phase, (e.g. convective heat transfer) in a fluid granular system can be modeled with "cfdemSolverPisoSTM".
|
||||
|
||||
see:
|
||||
|
||||
GONIVA, C., KLOSS, C., HAGER,A. and PIRKER, S. (2010): "An Open Source CFD-DEM Perspective", Proc. of OpenFOAM Workshop, Göteborg, June 22.-24.
|
||||
|
||||
|
||||
----------
|
||||
|
||||
|
||||
(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks.
|
||||
|
||||
|
||||
----------
|
||||
|
||||
|
||||
|
||||
.. _liws: http://www.cfdem.com
|
||||
.. _ld: Manual.html
|
||||
.. _lc: Section_commands.html#comm
|
||||
47
doc/_build/html/_sources/fix_couple_cfd.txt
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
.. index:: couple/cfd
|
||||
|
||||
couple/cfd command
|
||||
==================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID couple/cfd couple_every N mpi
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* couple/cfd = style name of this fix command
|
||||
* couple_every = obligatory keyword
|
||||
* N = number of DEM time steps between two coupling steps
|
||||
|
||||
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
fix cfd all couple/cfd couple_every 1000 mpi
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
This fix is responsible for the coupling between CFD and DEM calculation, i.e. for pushing and pulling of properties.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
None.
|
||||
|
||||
**Related Commands:**
|
||||
:doc:`fix couple/cfd/force <fix_couple_cfd_force>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
None
|
||||
|
||||
|
||||
.. _liws: http://www.cfdem.com
|
||||
.. _ld: Manual.html
|
||||
.. _lc: Section_commands.html#comm
|
||||
44
doc/_build/html/_sources/fix_couple_cfd_force.txt
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
.. index:: couple/cfd/force
|
||||
|
||||
couple/cfd/force command
|
||||
========================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fix ID group-ID couple/cfd/force
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* couple/cfd = style name of this fix command
|
||||
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The command couple/cfd/force can only be used in combination with :doc:`fix_couple_cfd <fix_couple_cfd>`. This model transfers the force that the fluid exceeds on each particle to the DEM calculation. At every coupling time step the force term, which contains contributions from all force models active in the CFD calculation, is passed on to LIGGGHTS(R). This (constant) term is then used in the particle calculations at every DEM time step until the next coupling takes place.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
None
|
||||
|
||||
**Related Commands:**
|
||||
:doc:`fix couple/cfd <fix_couple_cfd>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
None
|
||||
|
||||
|
||||
.. _liws: http://www.cfdem.com
|
||||
.. _ld: Manual.html
|
||||
.. _lc: Section_commands.html#comm
|
||||
53
doc/_build/html/_sources/fix_couple_cfd_force_implicit.txt
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
.. index:: couple/cfd/force/implicit
|
||||
|
||||
couple/cfd/force/implicit command
|
||||
=================================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
fix ID group-ID couple/cfd/force/implicit args:pre
|
||||
|
||||
* ID, group-ID are documented in :doc:`fix <fix>` command
|
||||
* couple/cfd = style name of this fix command
|
||||
* args = list of optional arguments
|
||||
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force/implicit
|
||||
|
||||
fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force/implicit transfer_type yes
|
||||
|
||||
fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force/implicit CrankNicolson 0.5 CAddRhoFluid 0.4
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The usage of the couple/cfd/force/implicit can only be used in combination with a :doc:`fix couple/cfd <fix_couple_cfd>` command. At every coupling time step the drag coefficient and the fluid velocity is transferred to LIGGGHTS(R). Depending on the varying particle velocity (and thus relative velocity between fluid and particles) the drag force on the particles is calculated at every DEM time step until new data is obtained in the next coupline time step.
|
||||
|
||||
If the Crank-Nicolson keyword is present, Crank-Nicolson integration scheme with given CN is applied.
|
||||
|
||||
When the CAddRhoFluid keyword is active, couple/cfd/force/implicit will consider added mass.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
None
|
||||
|
||||
**Related Commands:**
|
||||
:doc:`fix couple/cfd <fix_couple_cfd>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
None
|
||||
|
||||
|
||||
.. _liws: http://www.cfdem.com
|
||||
.. _ld: Manual.html
|
||||
.. _lc: Section_commands.html#comm
|
||||
@ -45,7 +45,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
This "forceModel" does not influence the particles or the simulation - it is a postprocessing tool! The total volume of the particles is calculated.
|
||||
This "forceModel" does not influence the particles or the simulation - it is a postprocessing tool! The total volume of the particles located in the CFD domain is calculated.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
@ -19,6 +19,7 @@ Defined in liggghtsCommmands dictionary.
|
||||
{
|
||||
preNo true;
|
||||
verbose; (optional)
|
||||
runFirst true; (optional, default false)
|
||||
}
|
||||
|
||||
Examples
|
||||
@ -34,7 +35,7 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD run. The "runLiggghts" command executes the command "run $nrDEMsteps", where $nrDEMsteps is automatically set according to the coupling intervals, every coupling step. Optionally a dictionary called runLiggghtsProps can be specified where the "preNo" switch can be set, which uses the command "run $nrDEMsteps pre no" for every time step except the first.
|
||||
The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD run. The "runLiggghts" command executes the command "run $nrDEMsteps", where $nrDEMsteps is automatically set according to the coupling intervals, every coupling step. Optionally a dictionary called runLiggghtsProps can be specified where the "preNo" switch can be set, which uses the command "run $nrDEMsteps pre no" for every time step except the first. If the runFirst option is chosen the run command is executed only at the first coupling step.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
@ -6,73 +6,22 @@ scalarTransportModel command
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
Defined in scalarTransportProperties dictionary. A variety of derived classes exist that implement different physics of the scalarTransportModel. Here, the most general one, i.e., 'generalManual' is discussed. If no scalar transport shall be used, use the model 'none'.
|
||||
Defined in scalarTransportProperties dictionary. A variety of derived classes exist that implement different physics of the scalarTransportModel. If no scalar transport shall be used, use the model 'none'.
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
generalManualProps
|
||||
{
|
||||
phiFieldName *phiName*;
|
||||
voidfractionFieldName *voidfractionName*;
|
||||
ScT *scalar1*;
|
||||
PrT *scalar2*;
|
||||
cpVolumetric *scalar3*;
|
||||
cpVolumetricFieldName *word1*;
|
||||
rhoMixFieldName *word2*;
|
||||
eulerianFields
|
||||
(
|
||||
*C*
|
||||
*T*
|
||||
);
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
}
|
||||
|
||||
* *phiName* = (optional) name of the surface field for the SUPERFICIAL flux, default "phi".
|
||||
* *voidfractionName* = (optional) name of the finite volume voidfraction field, default "voidfraction".
|
||||
* *scalar1* = (optional, default 0.7) turbulent Schmidt Nr, set to large value to suppress turbulent species transport
|
||||
* *scalar2* = (optional, default 0.7) turbulent Prandtl Nr, set to large value to suppress turbulent heat transport
|
||||
* *scalar3* = (optional, alternatively define word1) volumetric heat capacity as a global constant (in contrast to cpVolumetricFieldName for a field). This is the mixture density times the heat capacity **J/K/(m_voidspace)^3**, will only be used if cpVolumetricFieldName, or updateMixtureProperties = false
|
||||
* *word1* = (optional, alternatively define scalar3) volumetric heat capacity as a field
|
||||
* *word3* = mixture density field
|
||||
* *C* = concentration field name
|
||||
* *T* = temperature field name
|
||||
scalarTransportModel model;
|
||||
|
||||
* model = name of the scalarTransportModel to be applied
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
generalManualProps
|
||||
{
|
||||
phiFieldName "phi";
|
||||
ScT 0.7;
|
||||
PrT 0.7;
|
||||
cpVolumetric 1196;
|
||||
rhoMixFieldName "rhoMix";
|
||||
eulerianFields
|
||||
(
|
||||
C
|
||||
T
|
||||
);
|
||||
scalarTransportModel generalManual;
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fvOptionsC
|
||||
{
|
||||
};
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fvOptionsT
|
||||
{
|
||||
};
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
}
|
||||
Note: This examples list might not be complete - please look for other models (scalarTransportModel_XY) in this documentation.
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
@ -81,13 +30,9 @@ Solves the advection-dispersion transport equation for a dilute scalar quantity
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
none.
|
||||
|
||||
The user MUST ensure the "phi" field is SUPERFICIAL (i.e., the fluid-phase velocity times voidfraction interpolatedat the cells' faces). The code cannot know or check whether this is the case, so the user of a certain solver has to ensure this.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
none.
|
||||
**Default:** none.
|
||||
|
||||
|
||||
.. _liws: http://www.cfdem.com
|
||||
|
||||
97
doc/_build/html/_sources/scalarTransportModel_generalManual.txt
vendored
Normal file
@ -0,0 +1,97 @@
|
||||
.. index:: scalarTransportModel_generalManual
|
||||
|
||||
scalarTransportModel_generalManual command
|
||||
==========================================
|
||||
|
||||
Syntax
|
||||
""""""
|
||||
|
||||
Defined in scalarTransportProperties dictionary.
|
||||
|
||||
scalarTransportModel generalManual;
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
generalManualProps
|
||||
{
|
||||
phiFieldName *phiName*;
|
||||
voidfractionFieldName *voidfractionName*;
|
||||
ScT *scalar1*;
|
||||
PrT *scalar2*;
|
||||
cpVolumetric *scalar3*;
|
||||
cpVolumetricFieldName *word1*;
|
||||
rhoMixFieldName *word2*;
|
||||
eulerianFields
|
||||
(
|
||||
*C*
|
||||
*T*
|
||||
);
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
}
|
||||
|
||||
* *phiName* = (optional) name of the surface field for the SUPERFICIAL flux, default "phi".
|
||||
* *voidfractionName* = (optional) name of the finite volume voidfraction field, default "voidfraction".
|
||||
* *scalar1* = (optional, default 0.7) turbulent Schmidt Nr, set to large value to suppress turbulent species transport
|
||||
* *scalar2* = (optional, default 0.7) turbulent Prandtl Nr, set to large value to suppress turbulent heat transport
|
||||
* *scalar3* = (optional, alternatively define word1) volumetric heat capacity as a global constant (in contrast to cpVolumetricFieldName for a field). This is the mixture density times the heat capacity **J/K/(m_voidspace)^3**, will only be used if cpVolumetricFieldName, or updateMixtureProperties = false
|
||||
* *word1* = (optional, alternatively define scalar3) volumetric heat capacity as a field
|
||||
* *word3* = mixture density field
|
||||
* *C* = concentration field name
|
||||
* *T* = temperature field name
|
||||
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
generalManualProps
|
||||
{
|
||||
phiFieldName "phi";
|
||||
ScT 0.7;
|
||||
PrT 0.7;
|
||||
cpVolumetric 1196;
|
||||
rhoMixFieldName "rhoMix";
|
||||
eulerianFields
|
||||
(
|
||||
C
|
||||
T
|
||||
);
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fvOptionsC
|
||||
{
|
||||
};
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
fvOptionsT
|
||||
{
|
||||
};
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
}
|
||||
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
Solves the advection-dispersion transport equation for a dilute scalar quantity in the fluid phase. fvOptions can be specified to model sources, etc. in the fluid phase. Exchange models with a particle phase can be included by including appropriate forceModels in couplingProperties.
|
||||
|
||||
Restrictions
|
||||
""""""""""""
|
||||
|
||||
The user MUST ensure the "phi" field is SUPERFICIAL (i.e., the fluid-phase velocity times voidfraction interpolatedat the cells' faces). The code cannot know or check whether this is the case, so the user of a certain solver has to ensure this.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
none.
|
||||
|
||||
|
||||
.. _liws: http://www.cfdem.com
|
||||
.. _ld: Manual.html
|
||||
.. _lc: Section_commands.html#comm
|
||||
@ -45,11 +45,32 @@ Examples
|
||||
Description
|
||||
"""""""""""
|
||||
|
||||
The divided voidFraction model is supposed to be used when a particle (or its representation) is in the size range of a CFD cell. Satellite points are used to divide the particle's volume to the touched cells.
|
||||
The divided voidFraction model is supposed to be used when a particle (or its representation) is in the size range of a CFD cell. The particle has radius R and it's volume is divided in 29 non-overlapping regions of equal volume. The centroids of these volumes are then used to reproduce each volume. The first volume is a sphere with the center coinciding with the particle center. Radius of this subsphere can be found as follows:
|
||||
|
||||
.. image:: Eqs/voidfractionModel_divided_pic2.png
|
||||
:align: center
|
||||
|
||||
The rest volume is a spherical layer that must is divided in 2 layers of equal volume. Position of the border between these two spherical layers in radial direction can be easily obtained:
|
||||
|
||||
.. image:: Eqs/voidfractionModel_divided_pic3.png
|
||||
:align: center
|
||||
|
||||
Each of these spherical layers is later divided in 14 elements of equal volume. Position of the centroid point in radial direction of each volume in the first spherical layer is as follows
|
||||
|
||||
.. image:: Eqs/voidfractionModel_divided_pic4.png
|
||||
:align: center
|
||||
|
||||
Similarly, for the second spherical layer remembering that the external radius is the particle radius:
|
||||
|
||||
.. image:: Eqs/voidfractionModel_divided_pic5.png
|
||||
:align: center
|
||||
|
||||
The region of influence of a particle can be increased artificially by "porosity", which blows up the particles, but keeps their volume (for voidfraction calculation) constant.
|
||||
|
||||
The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight.
|
||||
The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using
|
||||
|
||||
.. image:: Eqs/voidfractionModel_divided_pic6.png
|
||||
:align: center
|
||||
|
||||
In the basic implementation of solvers, the void fraction is calculated based on all particles. Depending on the solver used, the void fraction calculation is also performed for a certain type of particles.
|
||||
The void fraction calculation is based on a three-step approach (reset, set and interpolate), i.e., the void fraction is time interpolated from a previous and a next void fraction field. Appropriate names for these fields have to be specified in the sub-dictionaries voidFracFieldNamesPrev and voidFracFieldNamesNext in the couplingProperties dictionary.
|
||||
|
||||
206
doc/_build/html/cfdemSolverPisoSTM.html
vendored
Normal file
@ -0,0 +1,206 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>cfdemSolverPisoSTM command — CFDEMcoupling v3.X documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="top" title="CFDEMcoupling v3.X documentation" href="index.html"/>
|
||||
|
||||
|
||||
<script src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
|
||||
|
||||
|
||||
<a href="CFDEMcoupling_Manual.html" class="icon icon-home"> CFDEMcoupling
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="version">
|
||||
v3.X
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
<!-- Local TOC -->
|
||||
<div class="local-toc"><ul>
|
||||
<li><a class="reference internal" href="#">cfdemSolverPisoSTM command</a><ul>
|
||||
<li><a class="reference internal" href="#description">Description</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="CFDEMcoupling_Manual.html">CFDEMcoupling</a>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="CFDEMcoupling_Manual.html">Docs</a> »</li>
|
||||
|
||||
<li>cfdemSolverPisoSTM command</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
<a href="http://www.cfdem.com"> Website</a>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="cfdemsolverpisostm-command">
|
||||
<span id="index-0"></span><h1>cfdemSolverPisoSTM command<a class="headerlink" href="#cfdemsolverpisostm-command" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
<p>“cfdemSolverPisoSTM” is a coupled CFD-DEM solver using CFDEMcoupling, an open source parallel coupled CFD-DEM framework. Based on pisoFoam(R)(*), a finite volume based solver for turbulent Navier-Stokes equations applying PISO algorithm, “cfdemSolverPisoSTM” has additional functionality for a coupling to the DEM code “LIGGGHTS” as well as a scalar transport equation. The volume averaged Navier-Stokes Equations are solved accounting for momentum exchange and volume displacement of discrete particles, whose trajectories are calculated in the DEM code LIGGGHTS. Scalar transport equations coupled to scalar properties of the particle phase, (e.g. convective heat transfer) in a fluid granular system can be modeled with “cfdemSolverPisoSTM”.</p>
|
||||
<p>see:</p>
|
||||
<p>GONIVA, C., KLOSS, C., HAGER,A. and PIRKER, S. (2010): “An Open Source CFD-DEM Perspective”, Proc. of OpenFOAM Workshop, Göteborg, June 22.-24.</p>
|
||||
<hr class="docutils" />
|
||||
<p>(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks.</p>
|
||||
<hr class="docutils" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2016, DCS Computing GmbH, JKU Linz.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'./',
|
||||
VERSION:'v3.X',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.StickyNav.enable();
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
231
doc/_build/html/fix_couple_cfd.html
vendored
Normal file
@ -0,0 +1,231 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>couple/cfd command — CFDEMcoupling v3.X documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="top" title="CFDEMcoupling v3.X documentation" href="index.html"/>
|
||||
|
||||
|
||||
<script src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
|
||||
|
||||
|
||||
<a href="CFDEMcoupling_Manual.html" class="icon icon-home"> CFDEMcoupling
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="version">
|
||||
v3.X
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
<!-- Local TOC -->
|
||||
<div class="local-toc"><ul>
|
||||
<li><a class="reference internal" href="#">couple/cfd command</a><ul>
|
||||
<li><a class="reference internal" href="#syntax">Syntax</a></li>
|
||||
<li><a class="reference internal" href="#examples">Examples</a></li>
|
||||
<li><a class="reference internal" href="#description">Description</a></li>
|
||||
<li><a class="reference internal" href="#restrictions">Restrictions</a></li>
|
||||
<li><a class="reference internal" href="#default">Default</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="CFDEMcoupling_Manual.html">CFDEMcoupling</a>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="CFDEMcoupling_Manual.html">Docs</a> »</li>
|
||||
|
||||
<li>couple/cfd command</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
<a href="http://www.cfdem.com"> Website</a>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="couple-cfd-command">
|
||||
<span id="index-0"></span><h1>couple/cfd command<a class="headerlink" href="#couple-cfd-command" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="syntax">
|
||||
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="highlight-python"><div class="highlight"><pre>fix ID group-ID couple/cfd couple_every N mpi
|
||||
</pre></div>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li>ID, group-ID are documented in <tt class="xref doc docutils literal"><span class="pre">fix</span></tt> command</li>
|
||||
<li>couple/cfd = style name of this fix command</li>
|
||||
<li>couple_every = obligatory keyword</li>
|
||||
<li>N = number of DEM time steps between two coupling steps</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="examples">
|
||||
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
|
||||
<p>fix cfd all couple/cfd couple_every 1000 mpi</p>
|
||||
</div>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
<p>This fix is responsible for the coupling between CFD and DEM calculation, i.e. for pushing and pulling of properties.</p>
|
||||
</div>
|
||||
<div class="section" id="restrictions">
|
||||
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
|
||||
<p>None.</p>
|
||||
<p><strong>Related Commands:</strong>
|
||||
<a class="reference internal" href="fix_couple_cfd_force.html"><em>fix couple/cfd/force</em></a></p>
|
||||
</div>
|
||||
<div class="section" id="default">
|
||||
<h2>Default<a class="headerlink" href="#default" title="Permalink to this headline">¶</a></h2>
|
||||
<p>None</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2016, DCS Computing GmbH, JKU Linz.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'./',
|
||||
VERSION:'v3.X',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.StickyNav.enable();
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
230
doc/_build/html/fix_couple_cfd_force.html
vendored
Normal file
@ -0,0 +1,230 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>couple/cfd/force command — CFDEMcoupling v3.X documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="top" title="CFDEMcoupling v3.X documentation" href="index.html"/>
|
||||
|
||||
|
||||
<script src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
|
||||
|
||||
|
||||
<a href="CFDEMcoupling_Manual.html" class="icon icon-home"> CFDEMcoupling
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="version">
|
||||
v3.X
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
<!-- Local TOC -->
|
||||
<div class="local-toc"><ul>
|
||||
<li><a class="reference internal" href="#">couple/cfd/force command</a><ul>
|
||||
<li><a class="reference internal" href="#syntax">Syntax</a></li>
|
||||
<li><a class="reference internal" href="#examples">Examples</a></li>
|
||||
<li><a class="reference internal" href="#description">Description</a></li>
|
||||
<li><a class="reference internal" href="#restrictions">Restrictions</a></li>
|
||||
<li><a class="reference internal" href="#default">Default</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="CFDEMcoupling_Manual.html">CFDEMcoupling</a>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="CFDEMcoupling_Manual.html">Docs</a> »</li>
|
||||
|
||||
<li>couple/cfd/force command</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
<a href="http://www.cfdem.com"> Website</a>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="couple-cfd-force-command">
|
||||
<span id="index-0"></span><h1>couple/cfd/force command<a class="headerlink" href="#couple-cfd-force-command" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="syntax">
|
||||
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="highlight-python"><div class="highlight"><pre>fix ID group-ID couple/cfd/force
|
||||
</pre></div>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li>ID, group-ID are documented in <tt class="xref doc docutils literal"><span class="pre">fix</span></tt> command</li>
|
||||
<li>couple/cfd = style name of this fix command</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="examples">
|
||||
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
|
||||
<p>fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force</p>
|
||||
</div>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The command couple/cfd/force can only be used in combination with <a class="reference internal" href="fix_couple_cfd.html"><em>fix_couple_cfd</em></a>. This model transfers the force that the fluid exceeds on each particle to the DEM calculation. At every coupling time step the force term, which contains contributions from all force models active in the CFD calculation, is passed on to LIGGGHTS(R). This (constant) term is then used in the particle calculations at every DEM time step until the next coupling takes place.</p>
|
||||
</div>
|
||||
<div class="section" id="restrictions">
|
||||
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
|
||||
<p>None</p>
|
||||
<p><strong>Related Commands:</strong>
|
||||
<a class="reference internal" href="fix_couple_cfd.html"><em>fix couple/cfd</em></a></p>
|
||||
</div>
|
||||
<div class="section" id="default">
|
||||
<h2>Default<a class="headerlink" href="#default" title="Permalink to this headline">¶</a></h2>
|
||||
<p>None</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2016, DCS Computing GmbH, JKU Linz.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'./',
|
||||
VERSION:'v3.X',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.StickyNav.enable();
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
235
doc/_build/html/fix_couple_cfd_force_implicit.html
vendored
Normal file
@ -0,0 +1,235 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>couple/cfd/force/implicit command — CFDEMcoupling v3.X documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="top" title="CFDEMcoupling v3.X documentation" href="index.html"/>
|
||||
|
||||
|
||||
<script src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
|
||||
|
||||
|
||||
<a href="CFDEMcoupling_Manual.html" class="icon icon-home"> CFDEMcoupling
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="version">
|
||||
v3.X
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
<!-- Local TOC -->
|
||||
<div class="local-toc"><ul>
|
||||
<li><a class="reference internal" href="#">couple/cfd/force/implicit command</a><ul>
|
||||
<li><a class="reference internal" href="#syntax">Syntax</a></li>
|
||||
<li><a class="reference internal" href="#examples">Examples</a></li>
|
||||
<li><a class="reference internal" href="#description">Description</a></li>
|
||||
<li><a class="reference internal" href="#restrictions">Restrictions</a></li>
|
||||
<li><a class="reference internal" href="#default">Default</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="CFDEMcoupling_Manual.html">CFDEMcoupling</a>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="CFDEMcoupling_Manual.html">Docs</a> »</li>
|
||||
|
||||
<li>couple/cfd/force/implicit command</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
<a href="http://www.cfdem.com"> Website</a>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="couple-cfd-force-implicit-command">
|
||||
<span id="index-0"></span><h1>couple/cfd/force/implicit command<a class="headerlink" href="#couple-cfd-force-implicit-command" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="syntax">
|
||||
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
|
||||
<p>fix ID group-ID couple/cfd/force/implicit args:pre</p>
|
||||
<ul class="simple">
|
||||
<li>ID, group-ID are documented in <tt class="xref doc docutils literal"><span class="pre">fix</span></tt> command</li>
|
||||
<li>couple/cfd = style name of this fix command</li>
|
||||
<li>args = list of optional arguments</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="examples">
|
||||
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
|
||||
<p>fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force/implicit</p>
|
||||
<p>fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force/implicit transfer_type yes</p>
|
||||
<p>fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force/implicit CrankNicolson 0.5 CAddRhoFluid 0.4</p>
|
||||
</div>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The usage of the couple/cfd/force/implicit can only be used in combination with a <a class="reference internal" href="fix_couple_cfd.html"><em>fix couple/cfd</em></a> command. At every coupling time step the drag coefficient and the fluid velocity is transferred to LIGGGHTS(R). Depending on the varying particle velocity (and thus relative velocity between fluid and particles) the drag force on the particles is calculated at every DEM time step until new data is obtained in the next coupline time step.</p>
|
||||
<p>If the Crank-Nicolson keyword is present, Crank-Nicolson integration scheme with given CN is applied.</p>
|
||||
<p>When the CAddRhoFluid keyword is active, couple/cfd/force/implicit will consider added mass.</p>
|
||||
</div>
|
||||
<div class="section" id="restrictions">
|
||||
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
|
||||
<p>None</p>
|
||||
<p><strong>Related Commands:</strong>
|
||||
<a class="reference internal" href="fix_couple_cfd.html"><em>fix couple/cfd</em></a></p>
|
||||
</div>
|
||||
<div class="section" id="default">
|
||||
<h2>Default<a class="headerlink" href="#default" title="Permalink to this headline">¶</a></h2>
|
||||
<p>None</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2016, DCS Computing GmbH, JKU Linz.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'./',
|
||||
VERSION:'v3.X',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.StickyNav.enable();
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -175,7 +175,7 @@ particleVolumeProps
|
||||
</div>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
<p>This “forceModel” does not influence the particles or the simulation - it is a postprocessing tool! The total volume of the particles is calculated.</p>
|
||||
<p>This “forceModel” does not influence the particles or the simulation - it is a postprocessing tool! The total volume of the particles located in the CFD domain is calculated.</p>
|
||||
</div>
|
||||
<div class="section" id="restrictions">
|
||||
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
|
||||
|
||||
24
doc/_build/html/genindex.html
vendored
@ -178,12 +178,16 @@
|
||||
<dt><a href="cfdemSolverPisoScalar.html#index-0">cfdemSolverPisoScalar</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="cfdemSolverPisoSTM.html#index-0">cfdemSolverPisoSTM</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="clockModel.html#index-0">clockModel</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
<td style="width: 33%" valign="top"><dl>
|
||||
|
||||
<dt><a href="clockModel_noClock.html#index-0">clockModel_noClock</a>
|
||||
</dt>
|
||||
@ -192,6 +196,18 @@
|
||||
<dt><a href="clockModel_standardClock.html#index-0">clockModel_standardClock</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="fix_couple_cfd.html#index-0">couple/cfd</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="fix_couple_cfd_force.html#index-0">couple/cfd/force</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="fix_couple_cfd_force_implicit.html#index-0">couple/cfd/force/implicit</a>
|
||||
</dt>
|
||||
|
||||
</dl></td>
|
||||
</tr></table>
|
||||
|
||||
@ -475,6 +491,10 @@
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="scalarTransportModel_generalManual.html#index-0">scalarTransportModel_generalManual</a>
|
||||
</dt>
|
||||
|
||||
|
||||
<dt><a href="smoothingModel.html#index-0">smoothingModel</a>
|
||||
</dt>
|
||||
|
||||
|
||||
@ -149,6 +149,7 @@ runLiggghtsProps
|
||||
{
|
||||
preNo true;
|
||||
verbose; (optional)
|
||||
runFirst true; (optional, default false)
|
||||
}
|
||||
</pre></div>
|
||||
</div>
|
||||
@ -164,7 +165,7 @@ runLiggghtsProps
|
||||
</div>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD run. The “runLiggghts” command executes the command “run $nrDEMsteps”, where $nrDEMsteps is automatically set according to the coupling intervals, every coupling step. Optionally a dictionary called runLiggghtsProps can be specified where the “preNo” switch can be set, which uses the command “run $nrDEMsteps pre no” for every time step except the first.</p>
|
||||
<p>The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD run. The “runLiggghts” command executes the command “run $nrDEMsteps”, where $nrDEMsteps is automatically set according to the coupling intervals, every coupling step. Optionally a dictionary called runLiggghtsProps can be specified where the “preNo” switch can be set, which uses the command “run $nrDEMsteps pre no” for every time step except the first. If the runFirst option is chosen the run command is executed only at the first coupling step.</p>
|
||||
</div>
|
||||
<div class="section" id="restrictions">
|
||||
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
|
||||
|
||||
2
doc/_build/html/objects.inv
vendored
@ -2,4 +2,4 @@
|
||||
# Project: CFDEMcoupling
|
||||
# Version: v3.X
|
||||
# The remainder of this file is compressed using zlib.
|
||||
xڍ<EFBFBD>Ok<EFBFBD>0<0C><><EFBFBD>"<22>5i<><69>n<EFBFBD>ݠ<EFBFBD>@<40><><17><16>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%<25>!e߄<>~<7E> I<><49>V<EFBFBD>/<2F>(?<19><>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
||||
xڍ<EFBFBD>=k<EFBFBD>0<10>w<EFBFBD><77><EFBFBD><EFBFBD><EFBFBD>nq/<2F>J<EFBFBD>BCh<43><68><EFBFBD>tȂ<74>d<EFBFBD>Q<EFBFBD>_<05>CBm<><6D><<3C>+N<><4E><EFBFBD><EFBFBD>~!D<><44>x&<26><>5O<35><4F>hx<05><>s%<25><u<><75><EFBFBD><EFBFBD>}<7D><0B>F<EFBFBD>V<EFBFBD>z<EFBFBD> yr2<72>t<EFBFBD>;I^<5E><>ȇ<7F>8<EFBFBD>O<EFBFBD>xi<78><69><EFBFBD>/k<>i<EFBFBD>
|
||||
66
doc/_build/html/scalarTransportModel.html
vendored
@ -87,7 +87,6 @@
|
||||
<li><a class="reference internal" href="#examples">Examples</a></li>
|
||||
<li><a class="reference internal" href="#description">Description</a></li>
|
||||
<li><a class="reference internal" href="#restrictions">Restrictions</a></li>
|
||||
<li><a class="reference internal" href="#related-commands">Related commands</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -139,67 +138,20 @@
|
||||
<span id="index-0"></span><h1>scalarTransportModel command<a class="headerlink" href="#scalartransportmodel-command" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="syntax">
|
||||
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Defined in scalarTransportProperties dictionary. A variety of derived classes exist that implement different physics of the scalarTransportModel. Here, the most general one, i.e., ‘generalManual’ is discussed. If no scalar transport shall be used, use the model ‘none’.</p>
|
||||
<pre class="literal-block">
|
||||
generalManualProps
|
||||
{
|
||||
phiFieldName <em>phiName</em>;
|
||||
voidfractionFieldName <em>voidfractionName</em>;
|
||||
ScT <em>scalar1</em>;
|
||||
PrT <em>scalar2</em>;
|
||||
cpVolumetric <em>scalar3</em>;
|
||||
cpVolumetricFieldName <em>word1</em>;
|
||||
rhoMixFieldName <em>word2</em>;
|
||||
eulerianFields
|
||||
(
|
||||
<em>C</em>
|
||||
<em>T</em>
|
||||
);
|
||||
</pre>
|
||||
<div class="highlight-python"><div class="highlight"><pre>}
|
||||
<p>Defined in scalarTransportProperties dictionary. A variety of derived classes exist that implement different physics of the scalarTransportModel. If no scalar transport shall be used, use the model ‘none’.</p>
|
||||
<div class="highlight-python"><div class="highlight"><pre>scalarTransportModel model;
|
||||
</pre></div>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li><em>phiName</em> = (optional) name of the surface field for the SUPERFICIAL flux, default “phi”.</li>
|
||||
<li><em>voidfractionName</em> = (optional) name of the finite volume voidfraction field, default “voidfraction”.</li>
|
||||
<li><em>scalar1</em> = (optional, default 0.7) turbulent Schmidt Nr, set to large value to suppress turbulent species transport</li>
|
||||
<li><em>scalar2</em> = (optional, default 0.7) turbulent Prandtl Nr, set to large value to suppress turbulent heat transport</li>
|
||||
<li><em>scalar3</em> = (optional, alternatively define word1) volumetric heat capacity as a global constant (in contrast to cpVolumetricFieldName for a field). This is the mixture density times the heat capacity <strong>J/K/(m_voidspace)^3</strong>, will only be used if cpVolumetricFieldName, or updateMixtureProperties = false</li>
|
||||
<li><em>word1</em> = (optional, alternatively define scalar3) volumetric heat capacity as a field</li>
|
||||
<li><em>word3</em> = mixture density field</li>
|
||||
<li><em>C</em> = concentration field name</li>
|
||||
<li><em>T</em> = temperature field name</li>
|
||||
<li>model = name of the scalarTransportModel to be applied</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="examples">
|
||||
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="highlight-python"><div class="highlight"><pre>generalManualProps
|
||||
{
|
||||
phiFieldName "phi";
|
||||
ScT 0.7;
|
||||
PrT 0.7;
|
||||
cpVolumetric 1196;
|
||||
rhoMixFieldName "rhoMix";
|
||||
eulerianFields
|
||||
(
|
||||
C
|
||||
T
|
||||
);
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="n">fvOptionsC</span>
|
||||
<span class="p">{</span>
|
||||
<span class="p">};</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="n">fvOptionsT</span>
|
||||
<span class="p">{</span>
|
||||
<span class="p">};</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="highlight-python"><div class="highlight"><pre>}
|
||||
<div class="highlight-python"><div class="highlight"><pre>scalarTransportModel generalManual;
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Note: This examples list might not be complete - please look for other models (scalarTransportModel_XY) in this documentation.</p>
|
||||
</div>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
@ -207,11 +159,9 @@ generalManualProps
|
||||
</div>
|
||||
<div class="section" id="restrictions">
|
||||
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The user MUST ensure the “phi” field is SUPERFICIAL (i.e., the fluid-phase velocity times voidfraction interpolatedat the cells’ faces). The code cannot know or check whether this is the case, so the user of a certain solver has to ensure this.</p>
|
||||
</div>
|
||||
<div class="section" id="related-commands">
|
||||
<h2>Related commands<a class="headerlink" href="#related-commands" title="Permalink to this headline">¶</a></h2>
|
||||
<p>none.</p>
|
||||
<blockquote>
|
||||
<div>none.</div></blockquote>
|
||||
<p><strong>Default:</strong> none.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
278
doc/_build/html/scalarTransportModel_generalManual.html
vendored
Normal file
@ -0,0 +1,278 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>scalarTransportModel_generalManual command — CFDEMcoupling v3.X documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="top" title="CFDEMcoupling v3.X documentation" href="index.html"/>
|
||||
|
||||
|
||||
<script src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav" role="document">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search">
|
||||
|
||||
|
||||
|
||||
<a href="CFDEMcoupling_Manual.html" class="icon icon-home"> CFDEMcoupling
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="version">
|
||||
v3.X
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
<!-- Local TOC -->
|
||||
<div class="local-toc"><ul>
|
||||
<li><a class="reference internal" href="#">scalarTransportModel_generalManual command</a><ul>
|
||||
<li><a class="reference internal" href="#syntax">Syntax</a></li>
|
||||
<li><a class="reference internal" href="#examples">Examples</a></li>
|
||||
<li><a class="reference internal" href="#description">Description</a></li>
|
||||
<li><a class="reference internal" href="#restrictions">Restrictions</a></li>
|
||||
<li><a class="reference internal" href="#related-commands">Related commands</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="CFDEMcoupling_Manual.html">CFDEMcoupling</a>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="CFDEMcoupling_Manual.html">Docs</a> »</li>
|
||||
|
||||
<li>scalarTransportModel_generalManual command</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
<a href="http://www.cfdem.com"> Website</a>
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="scalartransportmodel-generalmanual-command">
|
||||
<span id="index-0"></span><h1>scalarTransportModel_generalManual command<a class="headerlink" href="#scalartransportmodel-generalmanual-command" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="syntax">
|
||||
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Defined in scalarTransportProperties dictionary.</p>
|
||||
<p>scalarTransportModel generalManual;</p>
|
||||
<pre class="literal-block">
|
||||
generalManualProps
|
||||
{
|
||||
phiFieldName <em>phiName</em>;
|
||||
voidfractionFieldName <em>voidfractionName</em>;
|
||||
ScT <em>scalar1</em>;
|
||||
PrT <em>scalar2</em>;
|
||||
cpVolumetric <em>scalar3</em>;
|
||||
cpVolumetricFieldName <em>word1</em>;
|
||||
rhoMixFieldName <em>word2</em>;
|
||||
eulerianFields
|
||||
(
|
||||
<em>C</em>
|
||||
<em>T</em>
|
||||
);
|
||||
</pre>
|
||||
<div class="highlight-python"><div class="highlight"><pre>}
|
||||
</pre></div>
|
||||
</div>
|
||||
<ul class="simple">
|
||||
<li><em>phiName</em> = (optional) name of the surface field for the SUPERFICIAL flux, default “phi”.</li>
|
||||
<li><em>voidfractionName</em> = (optional) name of the finite volume voidfraction field, default “voidfraction”.</li>
|
||||
<li><em>scalar1</em> = (optional, default 0.7) turbulent Schmidt Nr, set to large value to suppress turbulent species transport</li>
|
||||
<li><em>scalar2</em> = (optional, default 0.7) turbulent Prandtl Nr, set to large value to suppress turbulent heat transport</li>
|
||||
<li><em>scalar3</em> = (optional, alternatively define word1) volumetric heat capacity as a global constant (in contrast to cpVolumetricFieldName for a field). This is the mixture density times the heat capacity <strong>J/K/(m_voidspace)^3</strong>, will only be used if cpVolumetricFieldName, or updateMixtureProperties = false</li>
|
||||
<li><em>word1</em> = (optional, alternatively define scalar3) volumetric heat capacity as a field</li>
|
||||
<li><em>word3</em> = mixture density field</li>
|
||||
<li><em>C</em> = concentration field name</li>
|
||||
<li><em>T</em> = temperature field name</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="examples">
|
||||
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="highlight-python"><div class="highlight"><pre>generalManualProps
|
||||
{
|
||||
phiFieldName "phi";
|
||||
ScT 0.7;
|
||||
PrT 0.7;
|
||||
cpVolumetric 1196;
|
||||
rhoMixFieldName "rhoMix";
|
||||
eulerianFields
|
||||
(
|
||||
C
|
||||
T
|
||||
);
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="n">fvOptionsC</span>
|
||||
<span class="p">{</span>
|
||||
<span class="p">};</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="highlight-python"><div class="highlight"><pre><span class="n">fvOptionsT</span>
|
||||
<span class="p">{</span>
|
||||
<span class="p">};</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="highlight-python"><div class="highlight"><pre>}
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Solves the advection-dispersion transport equation for a dilute scalar quantity in the fluid phase. fvOptions can be specified to model sources, etc. in the fluid phase. Exchange models with a particle phase can be included by including appropriate forceModels in couplingProperties.</p>
|
||||
</div>
|
||||
<div class="section" id="restrictions">
|
||||
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The user MUST ensure the “phi” field is SUPERFICIAL (i.e., the fluid-phase velocity times voidfraction interpolatedat the cells’ faces). The code cannot know or check whether this is the case, so the user of a certain solver has to ensure this.</p>
|
||||
</div>
|
||||
<div class="section" id="related-commands">
|
||||
<h2>Related commands<a class="headerlink" href="#related-commands" title="Permalink to this headline">¶</a></h2>
|
||||
<p>none.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2016, DCS Computing GmbH, JKU Linz.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'./',
|
||||
VERSION:'v3.X',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.StickyNav.enable();
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
2
doc/_build/html/searchindex.js
vendored
@ -175,9 +175,17 @@ dividedProps
|
||||
</div>
|
||||
<div class="section" id="description">
|
||||
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The divided voidFraction model is supposed to be used when a particle (or its representation) is in the size range of a CFD cell. Satellite points are used to divide the particle’s volume to the touched cells.</p>
|
||||
<p>The divided voidFraction model is supposed to be used when a particle (or its representation) is in the size range of a CFD cell. The particle has radius R and it’s volume is divided in 29 non-overlapping regions of equal volume. The centroids of these volumes are then used to reproduce each volume. The first volume is a sphere with the center coinciding with the particle center. Radius of this subsphere can be found as follows:</p>
|
||||
<img alt="_images/voidfractionModel_divided_pic2.png" class="align-center" src="_images/voidfractionModel_divided_pic2.png" />
|
||||
<p>The rest volume is a spherical layer that must is divided in 2 layers of equal volume. Position of the border between these two spherical layers in radial direction can be easily obtained:</p>
|
||||
<img alt="_images/voidfractionModel_divided_pic3.png" class="align-center" src="_images/voidfractionModel_divided_pic3.png" />
|
||||
<p>Each of these spherical layers is later divided in 14 elements of equal volume. Position of the centroid point in radial direction of each volume in the first spherical layer is as follows</p>
|
||||
<img alt="_images/voidfractionModel_divided_pic4.png" class="align-center" src="_images/voidfractionModel_divided_pic4.png" />
|
||||
<p>Similarly, for the second spherical layer remembering that the external radius is the particle radius:</p>
|
||||
<img alt="_images/voidfractionModel_divided_pic5.png" class="align-center" src="_images/voidfractionModel_divided_pic5.png" />
|
||||
<p>The region of influence of a particle can be increased artificially by “porosity”, which blows up the particles, but keeps their volume (for voidfraction calculation) constant.</p>
|
||||
<p>The particle volume occupied in the CFD domain can be adjusted by the parameter “weight”, using Vparticle=dsphere^3*pi/6*weight.</p>
|
||||
<p>The particle volume occupied in the CFD domain can be adjusted by the parameter “weight”, using</p>
|
||||
<img alt="_images/voidfractionModel_divided_pic6.png" class="align-center" src="_images/voidfractionModel_divided_pic6.png" />
|
||||
<p>In the basic implementation of solvers, the void fraction is calculated based on all particles. Depending on the solver used, the void fraction calculation is also performed for a certain type of particles.
|
||||
The void fraction calculation is based on a three-step approach (reset, set and interpolate), i.e., the void fraction is time interpolated from a previous and a next void fraction field. Appropriate names for these fields have to be specified in the sub-dictionaries voidFracFieldNamesPrev and voidFracFieldNamesNext in the couplingProperties dictionary.</p>
|
||||
</div>
|
||||
|
||||
21
doc/cfdemSolverPisoSTM.txt
Normal file
@ -0,0 +1,21 @@
|
||||
"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c
|
||||
|
||||
:link(lws,http://www.cfdem.com)
|
||||
:link(lc,CFDEMcoupling_Manual.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
cfdemSolverPisoSTM command :h3
|
||||
|
||||
[Description:]
|
||||
|
||||
"cfdemSolverPisoSTM" is a coupled CFD-DEM solver using CFDEMcoupling, an open source parallel coupled CFD-DEM framework. Based on pisoFoam(R)(*), a finite volume based solver for turbulent Navier-Stokes equations applying PISO algorithm, "cfdemSolverPisoSTM" has additional functionality for a coupling to the DEM code "LIGGGHTS" as well as a scalar transport equation. The volume averaged Navier-Stokes Equations are solved accounting for momentum exchange and volume displacement of discrete particles, whose trajectories are calculated in the DEM code LIGGGHTS. Scalar transport equations coupled to scalar properties of the particle phase, (e.g. convective heat transfer) in a fluid granular system can be modeled with "cfdemSolverPisoSTM".
|
||||
|
||||
see:
|
||||
|
||||
GONIVA, C., KLOSS, C., HAGER,A. and PIRKER, S. (2010): "An Open Source CFD-DEM Perspective", Proc. of OpenFOAM Workshop, Göteborg, June 22.-24.
|
||||
|
||||
:line
|
||||
(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks.
|
||||
|
||||
:line
|
||||
38
doc/fix_couple_cfd.txt
Normal file
@ -0,0 +1,38 @@
|
||||
"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c
|
||||
|
||||
:link(lws,http://www.cfdem.com)
|
||||
:link(lc,CFDEMcoupling_Manual.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
couple/cfd command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID couple/cfd couple_every N mpi :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
couple/cfd = style name of this fix command :l
|
||||
couple_every = obligatory keyword :l
|
||||
N = number of DEM time steps between two coupling steps :l
|
||||
mpi = mandatory keyword :ls
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
fix cfd all couple/cfd couple_every 1000 mpi
|
||||
|
||||
[Description:]
|
||||
|
||||
This fix is responsible for the coupling between CFD and DEM calculation, i.e. for pushing and pulling of properties.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
None.
|
||||
|
||||
[Related Commands:]
|
||||
"fix couple/cfd/force"_fix_couple_cfd_force.html
|
||||
|
||||
[Default:]
|
||||
|
||||
None
|
||||
37
doc/fix_couple_cfd_force.txt
Normal file
@ -0,0 +1,37 @@
|
||||
"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c
|
||||
|
||||
:link(lws,http://www.cfdem.com)
|
||||
:link(lc,CFDEMcoupling_Manual.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
couple/cfd/force command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID couple/cfd/force :pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
couple/cfd = style name of this fix command :l
|
||||
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force
|
||||
|
||||
[Description:]
|
||||
|
||||
The command couple/cfd/force can only be used in combination with "fix_couple_cfd"_fix_couple_cfd.html. This model transfers the force that the fluid exceeds on each particle to the DEM calculation. At every coupling time step the force term, which contains contributions from all force models active in the CFD calculation, is passed on to LIGGGHTS(R). This (constant) term is then used in the particle calculations at every DEM time step until the next coupling takes place.
|
||||
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
None
|
||||
|
||||
[Related Commands:]
|
||||
"fix couple/cfd"_fix_couple_cfd.html
|
||||
|
||||
[Default:]
|
||||
|
||||
None
|
||||
48
doc/fix_couple_cfd_force_implicit.txt
Normal file
@ -0,0 +1,48 @@
|
||||
"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c
|
||||
|
||||
:link(lws,http://www.cfdem.com)
|
||||
:link(lc,CFDEMcoupling_Manual.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
couple/cfd/force/implicit command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
fix ID group-ID couple/cfd/force/implicit args:pre
|
||||
|
||||
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
||||
couple/cfd = style name of this fix command :l
|
||||
args = list of optional arguments :l
|
||||
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force/implicit
|
||||
|
||||
fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force/implicit transfer_type yes
|
||||
|
||||
fix cfd all couple/cfd couple_every 100 mpi
|
||||
fix cfd2 all couple/cfd/force/implicit CrankNicolson 0.5 CAddRhoFluid 0.4
|
||||
|
||||
[Description:]
|
||||
|
||||
The usage of the couple/cfd/force/implicit can only be used in combination with a "fix couple/cfd"_fix_couple_cfd.html command. At every coupling time step the drag coefficient and the fluid velocity is transferred to LIGGGHTS(R). Depending on the varying particle velocity (and thus relative velocity between fluid and particles) the drag force on the particles is calculated at every DEM time step until new data is obtained in the next coupline time step.
|
||||
|
||||
If the Crank-Nicolson keyword is present, Crank-Nicolson integration scheme with given CN is applied.
|
||||
|
||||
When the CAddRhoFluid keyword is active, couple/cfd/force/implicit will consider added mass.
|
||||
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
None
|
||||
|
||||
[Related Commands:]
|
||||
"fix couple/cfd"_fix_couple_cfd.html
|
||||
|
||||
[Default:]
|
||||
|
||||
None
|
||||
@ -42,7 +42,7 @@ particleVolumeProps
|
||||
|
||||
[Description:]
|
||||
|
||||
This "forceModel" does not influence the particles or the simulation - it is a postprocessing tool! The total volume of the particles is calculated.
|
||||
This "forceModel" does not influence the particles or the simulation - it is a postprocessing tool! The total volume of the particles located in the CFD domain is calculated.
|
||||
|
||||
[Restrictions:]
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ runLiggghtsProps
|
||||
\{
|
||||
preNo true;
|
||||
verbose; (optional)
|
||||
runFirst true; (optional, default false)
|
||||
\} :pre
|
||||
|
||||
[Examples:]
|
||||
@ -31,7 +32,7 @@ liggghtsCommandModels
|
||||
|
||||
[Description:]
|
||||
|
||||
The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD run. The "runLiggghts" command executes the command "run $nrDEMsteps", where $nrDEMsteps is automatically set according to the coupling intervals, every coupling step. Optionally a dictionary called runLiggghtsProps can be specified where the "preNo" switch can be set, which uses the command "run $nrDEMsteps pre no" for every time step except the first.
|
||||
The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD run. The "runLiggghts" command executes the command "run $nrDEMsteps", where $nrDEMsteps is automatically set according to the coupling intervals, every coupling step. Optionally a dictionary called runLiggghtsProps can be specified where the "preNo" switch can be set, which uses the command "run $nrDEMsteps pre no" for every time step except the first. If the runFirst option is chosen the run command is executed only at the first coupling step.
|
||||
|
||||
[Restrictions:] Warning: the "pre no" option can cause troubles (dump data of particles changing the domain might be erroneous)!
|
||||
|
||||
|
||||
@ -9,70 +9,22 @@ scalarTransportModel command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
Defined in scalarTransportProperties dictionary. A variety of derived classes exist that implement different physics of the scalarTransportModel. Here, the most general one, i.e., 'generalManual' is discussed. If no scalar transport shall be used, use the model 'none'.
|
||||
Defined in scalarTransportProperties dictionary. A variety of derived classes exist that implement different physics of the scalarTransportModel. If no scalar transport shall be used, use the model 'none'.
|
||||
|
||||
generalManualProps
|
||||
\{
|
||||
phiFieldName {phiName};
|
||||
voidfractionFieldName {voidfractionName};
|
||||
ScT {scalar1};
|
||||
PrT {scalar2};
|
||||
cpVolumetric {scalar3};
|
||||
cpVolumetricFieldName {word1};
|
||||
rhoMixFieldName {word2};
|
||||
eulerianFields
|
||||
(
|
||||
{C}
|
||||
{T}
|
||||
); :pre
|
||||
\} :pre
|
||||
|
||||
{phiName} = (optional) name of the surface field for the SUPERFICIAL flux, default "phi". :ulb,l
|
||||
{voidfractionName} = (optional) name of the finite volume voidfraction field, default "voidfraction". :l
|
||||
{scalar1} = (optional, default 0.7) turbulent Schmidt Nr, set to large value to suppress turbulent species transport :l
|
||||
{scalar2} = (optional, default 0.7) turbulent Prandtl Nr, set to large value to suppress turbulent heat transport :l
|
||||
{scalar3} = (optional, alternatively define word1) volumetric heat capacity as a global constant (in contrast to cpVolumetricFieldName for a field). This is the mixture density times the heat capacity [J/K/(m_voidspace)^3], will only be used if cpVolumetricFieldName, or updateMixtureProperties = false :l
|
||||
{word1} = (optional, alternatively define scalar3) volumetric heat capacity as a field :l
|
||||
{word3} = mixture density field :l
|
||||
{C} = concentration field name :l
|
||||
{T} = temperature field name :l
|
||||
:ule
|
||||
scalarTransportModel model; :pre
|
||||
|
||||
model = name of the scalarTransportModel to be applied :ul
|
||||
|
||||
[Examples:]
|
||||
|
||||
generalManualProps
|
||||
\{
|
||||
phiFieldName "phi";
|
||||
ScT 0.7;
|
||||
PrT 0.7;
|
||||
cpVolumetric 1196;
|
||||
rhoMixFieldName "rhoMix";
|
||||
eulerianFields
|
||||
(
|
||||
C
|
||||
T
|
||||
); :pre
|
||||
scalarTransportModel generalManual; :pre
|
||||
|
||||
fvOptionsC
|
||||
\{
|
||||
\}; :pre
|
||||
fvOptionsT
|
||||
\{
|
||||
\}; :pre
|
||||
|
||||
\} :pre
|
||||
Note: This examples list might not be complete - please look for other models (scalarTransportModel_XY) in this documentation.
|
||||
|
||||
[Description:]
|
||||
|
||||
Solves the advection-dispersion transport equation for a dilute scalar quantity in the fluid phase. fvOptions can be specified to model sources, etc. in the fluid phase. Exchange models with a particle phase can be included by including appropriate forceModels in couplingProperties.
|
||||
|
||||
[Restrictions:] none.
|
||||
|
||||
[Restrictions:]
|
||||
The user MUST ensure the "phi" field is SUPERFICIAL (i.e., the fluid-phase velocity times voidfraction interpolatedat the cells' faces). The code cannot know or check whether this is the case, so the user of a certain solver has to ensure this.
|
||||
|
||||
|
||||
[Related commands:]
|
||||
|
||||
none.
|
||||
|
||||
[Default:] none.
|
||||
|
||||
78
doc/scalarTransportModel_generalManual.txt
Normal file
@ -0,0 +1,78 @@
|
||||
"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c
|
||||
|
||||
:link(lws,http://www.cfdem.com)
|
||||
:link(lc,CFDEMcoupling_Manual.html#comm)
|
||||
|
||||
:line
|
||||
|
||||
scalarTransportModel_generalManual command :h3
|
||||
|
||||
[Syntax:]
|
||||
|
||||
Defined in scalarTransportProperties dictionary.
|
||||
|
||||
scalarTransportModel generalManual;
|
||||
|
||||
generalManualProps
|
||||
\{
|
||||
phiFieldName {phiName};
|
||||
voidfractionFieldName {voidfractionName};
|
||||
ScT {scalar1};
|
||||
PrT {scalar2};
|
||||
cpVolumetric {scalar3};
|
||||
cpVolumetricFieldName {word1};
|
||||
rhoMixFieldName {word2};
|
||||
eulerianFields
|
||||
(
|
||||
{C}
|
||||
{T}
|
||||
); :pre
|
||||
\} :pre
|
||||
|
||||
{phiName} = (optional) name of the surface field for the SUPERFICIAL flux, default "phi". :ulb,l
|
||||
{voidfractionName} = (optional) name of the finite volume voidfraction field, default "voidfraction". :l
|
||||
{scalar1} = (optional, default 0.7) turbulent Schmidt Nr, set to large value to suppress turbulent species transport :l
|
||||
{scalar2} = (optional, default 0.7) turbulent Prandtl Nr, set to large value to suppress turbulent heat transport :l
|
||||
{scalar3} = (optional, alternatively define word1) volumetric heat capacity as a global constant (in contrast to cpVolumetricFieldName for a field). This is the mixture density times the heat capacity [J/K/(m_voidspace)^3], will only be used if cpVolumetricFieldName, or updateMixtureProperties = false :l
|
||||
{word1} = (optional, alternatively define scalar3) volumetric heat capacity as a field :l
|
||||
{word3} = mixture density field :l
|
||||
{C} = concentration field name :l
|
||||
{T} = temperature field name :l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
generalManualProps
|
||||
\{
|
||||
phiFieldName "phi";
|
||||
ScT 0.7;
|
||||
PrT 0.7;
|
||||
cpVolumetric 1196;
|
||||
rhoMixFieldName "rhoMix";
|
||||
eulerianFields
|
||||
(
|
||||
C
|
||||
T
|
||||
); :pre
|
||||
|
||||
fvOptionsC
|
||||
\{
|
||||
\}; :pre
|
||||
fvOptionsT
|
||||
\{
|
||||
\}; :pre
|
||||
|
||||
\} :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Solves the advection-dispersion transport equation for a dilute scalar quantity in the fluid phase. fvOptions can be specified to model sources, etc. in the fluid phase. Exchange models with a particle phase can be included by including appropriate forceModels in couplingProperties.
|
||||
|
||||
[Restrictions:]
|
||||
The user MUST ensure the "phi" field is SUPERFICIAL (i.e., the fluid-phase velocity times voidfraction interpolatedat the cells' faces). The code cannot know or check whether this is the case, so the user of a certain solver has to ensure this.
|
||||
|
||||
|
||||
[Related commands:]
|
||||
|
||||
none.
|
||||
|
||||
@ -42,11 +42,27 @@ dividedProps
|
||||
|
||||
[Description:]
|
||||
|
||||
The divided voidFraction model is supposed to be used when a particle (or its representation) is in the size range of a CFD cell. Satellite points are used to divide the particle's volume to the touched cells.
|
||||
The divided voidFraction model is supposed to be used when a particle (or its representation) is in the size range of a CFD cell. The particle has radius R and it's volume is divided in 29 non-overlapping regions of equal volume. The centroids of these volumes are then used to reproduce each volume. The first volume is a sphere with the center coinciding with the particle center. Radius of this subsphere can be found as follows:
|
||||
|
||||
:c,image(Eqs/voidfractionModel_divided_pic2.png)
|
||||
|
||||
The rest volume is a spherical layer that must is divided in 2 layers of equal volume. Position of the border between these two spherical layers in radial direction can be easily obtained:
|
||||
|
||||
:c,image(Eqs/voidfractionModel_divided_pic3.png)
|
||||
|
||||
Each of these spherical layers is later divided in 14 elements of equal volume. Position of the centroid point in radial direction of each volume in the first spherical layer is as follows
|
||||
|
||||
:c,image(Eqs/voidfractionModel_divided_pic4.png)
|
||||
|
||||
Similarly, for the second spherical layer remembering that the external radius is the particle radius:
|
||||
|
||||
:c,image(Eqs/voidfractionModel_divided_pic5.png)
|
||||
|
||||
The region of influence of a particle can be increased artificially by "porosity", which blows up the particles, but keeps their volume (for voidfraction calculation) constant.
|
||||
|
||||
The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight.
|
||||
The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using
|
||||
|
||||
:c,image(Eqs/voidfractionModel_divided_pic6.png).
|
||||
|
||||
In the basic implementation of solvers, the void fraction is calculated based on all particles. Depending on the solver used, the void fraction calculation is also performed for a certain type of particles.
|
||||
The void fraction calculation is based on a three-step approach (reset, set and interpolate), i.e., the void fraction is time interpolated from a previous and a next void fraction field. Appropriate names for these fields have to be specified in the sub-dictionaries voidFracFieldNamesPrev and voidFracFieldNamesNext in the couplingProperties dictionary.
|
||||
|
||||
5
src/eulerian/fvOptionsCFDEM/Make/files
Normal file
@ -0,0 +1,5 @@
|
||||
derivedSources=sources/derived
|
||||
|
||||
$(derivedSources)/meanSupVelocityForce/meanSupVelocityForce.C
|
||||
|
||||
LIB = $(CFDEM_LIB_DIR)/libfvOptionsCFDEM
|
||||
26
src/eulerian/fvOptionsCFDEM/Make/options
Normal file
@ -0,0 +1,26 @@
|
||||
sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
|
||||
sinclude $(RULES)/mplib$(WM_MPLIB)
|
||||
|
||||
GIT_VERSION := $(shell git describe --dirty --always --tags)
|
||||
PFLAGS+= -DGITVERSION=\"$(GIT_VERSION)\"
|
||||
PFLAGS+= -DDEBUGFLAG=\"$(DEBUG)\"
|
||||
PFLAGS+= -DCFDEMWMPROJECTVERSION="$(CFDEM_WM_PROJECT_VERSION)"
|
||||
|
||||
include $(CFDEM_ADD_LIBS_DIR)/$(CFDEM_ADD_LIBS_NAME)
|
||||
|
||||
EXE_INC = \
|
||||
$(PFLAGS) \
|
||||
$(PINC) \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(LIB_SRC)/fvOptions/lnInclude \
|
||||
-I$(CFDEM_OFVERSION_DIR) \
|
||||
|
||||
|
||||
LIB_LIBS = \
|
||||
$(PLIBS) \
|
||||
-lfiniteVolume \
|
||||
-lsampling \
|
||||
-lmeshTools \
|
||||
-lfvOptions
|
||||
@ -0,0 +1,249 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
CFDEMcoupling - Open Source CFD-DEM coupling
|
||||
|
||||
CFDEMcoupling is part of the CFDEMproject
|
||||
www.cfdem.com
|
||||
Christoph Goniva, christoph.goniva@cfdem.com
|
||||
Copyright (C) 2011 OpenFOAM Foundation
|
||||
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/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "meanSupVelocityForce.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
#include "DimensionedField.H"
|
||||
#include "fvMatrices.H"
|
||||
|
||||
// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace fv
|
||||
{
|
||||
defineTypeNameAndDebug(meanSupVelocityForce, 0);
|
||||
|
||||
addToRunTimeSelectionTable
|
||||
(
|
||||
option,
|
||||
meanSupVelocityForce,
|
||||
dictionary
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::fv::meanSupVelocityForce::meanSupVelocityForce
|
||||
(
|
||||
const word& sourceName,
|
||||
const word& modelType,
|
||||
const dictionary& dict,
|
||||
const fvMesh& mesh
|
||||
)
|
||||
:
|
||||
meanVelocityForce(sourceName, modelType, dict, mesh),
|
||||
voidfractionName_( coeffs_.lookup("voidfractionField") ),
|
||||
voidfraction_( mesh.lookupObject<volScalarField>(voidfractionName_) ),
|
||||
modelName_(modelType),
|
||||
twoPhase_( coeffs_.lookupOrDefault("twoPhase",false) ),
|
||||
alpha_
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"voidfractionPrev",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,//MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar("ones", dimensionSet(0,0,0,0,0), 1)
|
||||
)
|
||||
|
||||
{
|
||||
Warning << "THE FVOPTION meanSupVelocityForce has not been tested/validated!!! " << endl;
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
void Foam::fv::meanSupVelocityForce::correct(volVectorField& U)
|
||||
{
|
||||
if (twoPhase_)
|
||||
{
|
||||
word alphaName = coeffs_.lookup("alphaField");
|
||||
alpha_ = mesh_.lookupObject<volScalarField>(alphaName);
|
||||
}
|
||||
|
||||
// making sure that alpha is only set almost-only fluid regions
|
||||
forAll(alpha_,cellI)
|
||||
{
|
||||
if(alpha_[cellI]<0.9999)
|
||||
alpha_[cellI]=0;
|
||||
}
|
||||
|
||||
const scalarField& rAU = rAPtr_().internalField();
|
||||
|
||||
// Integrate flow variables over cell set
|
||||
scalar rAUave = 0.0;
|
||||
const scalarField& cv = mesh_.V();
|
||||
scalar totV = 0.0;
|
||||
forAll(cells_,i)
|
||||
{
|
||||
label cellI = cells_[i];
|
||||
scalar volCell = cv[cellI];
|
||||
totV += volCell*alpha_[cellI];
|
||||
rAUave += rAU[cellI]*volCell*alpha_[cellI];
|
||||
}
|
||||
|
||||
// Collect accross all processors
|
||||
reduce(rAUave, sumOp<scalar>());
|
||||
reduce(totV, sumOp<scalar>());
|
||||
V_=totV;
|
||||
|
||||
// Volume averages
|
||||
rAUave /= V_;
|
||||
|
||||
scalar magUbarAve = this->magUbarAve(U);
|
||||
|
||||
// Calculate the pressure gradient increment needed to adjust the average
|
||||
// flow-rate to the desired value
|
||||
dGradP_ = relaxation_*(mag(Ubar_) - magUbarAve)/rAUave;
|
||||
|
||||
// Apply correction to velocity field
|
||||
if (modelName_=="B" || modelName_=="Bfull")
|
||||
{
|
||||
forAll(cells_, i)
|
||||
{
|
||||
label cellI = cells_[i];
|
||||
U[cellI] += flowDir_*rAU[cellI]*dGradP_*alpha_[cellI];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
forAll(cells_, i)
|
||||
{
|
||||
label cellI = cells_[i];
|
||||
U[cellI] += voidfraction_[cellI]*flowDir_*rAU[cellI]*dGradP_*alpha_[cellI];
|
||||
}
|
||||
}
|
||||
|
||||
scalar gradP = gradP0_ + dGradP_;
|
||||
|
||||
Info<< "Pressure gradient source: uncorrected Ubar = " << magUbarAve
|
||||
<< ", pressure gradient = " << gradP << endl;
|
||||
|
||||
writeProps(gradP);
|
||||
|
||||
Warning << "Pressure gradient force is neglected in this model!!" << endl;
|
||||
|
||||
// The following lines would compensate the error that occurs due to the splitting
|
||||
// of the pressure gradient. However, the particleCloud_ object is currently not
|
||||
// accessible here.
|
||||
/*scalar ds(0.0);
|
||||
scalar Vs(0.0);
|
||||
label cellI=0;
|
||||
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
||||
{
|
||||
//if(mask[index][0])
|
||||
//{
|
||||
cellI = particleCloud_.cellIDs()[index][0];
|
||||
|
||||
if (cellI > -1) // particle found on this processor
|
||||
{
|
||||
//Calc the particle volume
|
||||
ds = 2*particleCloud_.radius(index);
|
||||
Vs = ds*ds*ds*M_PI/6;
|
||||
|
||||
// set force on particle
|
||||
for(int j=0;j<3;j++)
|
||||
{
|
||||
// calc particle's static pressure gradient force
|
||||
particleCloud_.DEMForces()[index][j] -= Vs*gradP*flowDir_[j];
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
void Foam::fv::meanSupVelocityForce::addSup
|
||||
(
|
||||
fvMatrix<vector>& eqn,
|
||||
const label fieldI
|
||||
)
|
||||
{
|
||||
DimensionedField<vector, volMesh> Su
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
name_ + fieldNames_[fieldI] + "Sup",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh_,
|
||||
dimensionedVector("zero", eqn.dimensions()/dimVolume, vector::zero)
|
||||
);
|
||||
|
||||
scalar gradP = gradP0_ + dGradP_;
|
||||
|
||||
if (modelName_=="B" || modelName_=="Bfull")
|
||||
{
|
||||
UIndirectList<vector>(Su, cells_) = flowDir_*gradP;
|
||||
}
|
||||
else
|
||||
{
|
||||
UIndirectList<vector>(Su, cells_) = voidfraction_*flowDir_*gradP*alpha_;
|
||||
}
|
||||
|
||||
eqn += Su;
|
||||
|
||||
}
|
||||
|
||||
Foam::scalar Foam::fv::meanSupVelocityForce::magUbarAve
|
||||
(
|
||||
const volVectorField& U
|
||||
) const
|
||||
{
|
||||
scalar magUbarAve = 0.0;
|
||||
|
||||
const scalarField& cv = mesh_.V();
|
||||
forAll(cells_, i)
|
||||
{
|
||||
label cellI = cells_[i];
|
||||
scalar volCell = cv[cellI];
|
||||
magUbarAve += (flowDir_ & U[cellI])*volCell*alpha_[cellI]*voidfraction_[cellI];
|
||||
}
|
||||
|
||||
reduce(magUbarAve, sumOp<scalar>());
|
||||
|
||||
magUbarAve /= V_;
|
||||
|
||||
return magUbarAve;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,144 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
CFDEMcoupling - Open Source CFD-DEM coupling
|
||||
|
||||
CFDEMcoupling is part of the CFDEMproject
|
||||
www.cfdem.com
|
||||
Christoph Goniva, christoph.goniva@cfdem.com
|
||||
Copyright (C) 2011 OpenFOAM Foundation
|
||||
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/>.
|
||||
|
||||
Description
|
||||
This code is based on meanSupVelocity model of OpenFOAM 3.0.x
|
||||
It is extended to account for the presence of a particle phase.
|
||||
|
||||
Calculates and applies the force necessary to maintain the specified mean
|
||||
velocity.
|
||||
|
||||
Note: Currently only handles kinematic pressure (incompressible solvers).
|
||||
|
||||
\heading Source usage
|
||||
Example usage:
|
||||
\verbatim
|
||||
meanSupVelocityForceCoeffs
|
||||
{
|
||||
selectionMode all; // Apply force to all cells
|
||||
fieldNames (U); // Name of velocity field
|
||||
Ubar (10.0 0 0); // Desired mean velocity
|
||||
relaxation 0.2; // Optional relaxation factor
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef meanSupVelocityForce_H
|
||||
#define meanSupVelocityForce_H
|
||||
|
||||
#include "meanVelocityForce.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace fv
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class meanSupVelocityForce Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class meanSupVelocityForce
|
||||
:
|
||||
public meanVelocityForce
|
||||
{
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
|
||||
|
||||
// Protected Member Functions
|
||||
|
||||
virtual scalar magUbarAve(const volVectorField& U) const;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow default bitwise copy construct
|
||||
meanSupVelocityForce(const meanSupVelocityForce&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const meanSupVelocityForce&);
|
||||
|
||||
const word voidfractionName_;
|
||||
|
||||
const volScalarField& voidfraction_;
|
||||
|
||||
const word modelName_;
|
||||
|
||||
const bool twoPhase_;
|
||||
|
||||
volScalarField alpha_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("meanSupVelocityForce");
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from explicit source name and mesh
|
||||
meanSupVelocityForce
|
||||
(
|
||||
const word& sourceName,
|
||||
const word& modelType,
|
||||
const dictionary& dict,
|
||||
const fvMesh& mesh
|
||||
);
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
// Evaluate
|
||||
|
||||
virtual void correct(volVectorField& U);
|
||||
|
||||
virtual void addSup
|
||||
(
|
||||
fvMatrix<vector>& eqn,
|
||||
const label fieldI
|
||||
);
|
||||
|
||||
// IO
|
||||
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace fv
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -3,7 +3,6 @@ scalarTransportModel/newScalarTransportModel.C
|
||||
|
||||
/*Sub-Level*/
|
||||
temperatureModel/temperatureModel.C
|
||||
solidTemperatureModel/solidTemperatureModel.C
|
||||
generalManual/generalManual.C
|
||||
noTransport/noTransport.C
|
||||
generalPhaseChange/generalPhaseChange.C
|
||||
|
||||
@ -9,14 +9,16 @@ PFLAGS+= -DCFDEMWMPROJECTVERSION="$(CFDEM_WM_PROJECT_VERSION)"
|
||||
include $(CFDEM_ADD_LIBS_DIR)/$(CFDEM_ADD_LIBS_NAME)
|
||||
|
||||
EXE_INC = \
|
||||
$(PFLAGS) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
$(PFLAGS) \
|
||||
$(PINC) \
|
||||
$(CFDEM_ADD_INCOMPTURBMOD_PATHS) \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(CFDEM_SRC_DIR)/lagrangian/cfdemParticle/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(CFDEM_LIGGGHTS_SRC_DIR)
|
||||
|
||||
LIB_LIBS = \
|
||||
-L$(CFDEM_LIB_DIR)\
|
||||
|
||||
@ -20,6 +20,7 @@ License
|
||||
|
||||
#include "error.H"
|
||||
#include "eulerianScalarField.H"
|
||||
#include "OFversion.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -199,7 +200,7 @@ void eulerianScalarField::pullCloudFields() const
|
||||
// ************************************************************
|
||||
void eulerianScalarField::update(surfaceScalarField phi, volScalarField voidfraction, volScalarField nuEff, scalar Sc, bool limitDiffusion) const
|
||||
{
|
||||
scalar oneByCpVolumetric = 1./cpVolumetric_;
|
||||
scalar oneByCpVolumetric = 1./(cpVolumetric_+SMALL);
|
||||
//Normalize source in case we have a temperature field
|
||||
if(fieldType_=="temperature")
|
||||
{
|
||||
@ -211,8 +212,14 @@ void eulerianScalarField::update(surfaceScalarField phi, volScalarField voidfrac
|
||||
else
|
||||
{
|
||||
const volScalarField& cpVolumetricField_(particleCloud_.mesh().lookupObject<volScalarField> (cpVolumetricFieldName_));
|
||||
mSource_ /= cpVolumetricField_;
|
||||
mSourceKImpl_ /= cpVolumetricField_;
|
||||
|
||||
#if defined(version40) || defined(versionv1612plus)
|
||||
mSource_ /= cpVolumetricField_+SMALL;
|
||||
mSourceKImpl_ /= cpVolumetricField_+SMALL;
|
||||
#else
|
||||
mSource_.internalField() /= cpVolumetricField_.internalField()+SMALL;
|
||||
mSourceKImpl_.internalField() /= cpVolumetricField_.internalField()+SMALL;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -121,6 +121,10 @@ void generalManual::setSources()
|
||||
for (int i=0;i<eulerianFieldList_.size();i++)
|
||||
eulerianScalarF(i).pullCloudFields();
|
||||
|
||||
//Communicate exchange terms to DEM
|
||||
for (int iModel=0; iModel<particleCloud_.nrForceModels(); iModel++)
|
||||
particleCloud_.forceM(iModel).commToDEM();
|
||||
|
||||
//Send Sources to External Code (i.e., Lagrangian arrays handled by LIGGGHTS)
|
||||
particleCloud_.giveUSERdata();
|
||||
}
|
||||
|
||||
@ -33,8 +33,8 @@ Description
|
||||
#ifndef versionInfo_H
|
||||
#define versionInfo_H
|
||||
|
||||
word CFDEMversion="cfdem-3.5.0";
|
||||
word compatibleLIGGGHTSversion="3.5.0";
|
||||
word CFDEMversion="cfdem-3.6.0";
|
||||
word compatibleLIGGGHTSversion="3.6.0";
|
||||
word OFversion="3.0.x-commit-ac3f6c67e02f0aac3777c27f9fb7558fc3536e37";
|
||||
|
||||
Info << "\nCFDEMcoupling version: " << CFDEMversion << endl;
|
||||
|
||||
@ -75,9 +75,10 @@ Foam::cfdemCloud::cfdemCloud
|
||||
IOobject::NO_WRITE
|
||||
)
|
||||
),
|
||||
allowAdjustTimeStep_(couplingProperties_.lookupOrDefault<Switch>("allowAdjustTimeStep", false)),
|
||||
solveFlow_(true),
|
||||
solveScalarTransport_(true),
|
||||
verbose_(false),
|
||||
verbose_(couplingProperties_.lookupOrDefault<Switch>("verbose", false)),
|
||||
debug_(false),
|
||||
allowCFDsubTimestep_(true),
|
||||
ignore_(false),
|
||||
@ -127,6 +128,7 @@ Foam::cfdemCloud::cfdemCloud
|
||||
dimensionedScalar("zero", dimensionSet(0,0,-1,0,0), 0) // 1/s
|
||||
),
|
||||
checkPeriodicCells_(false),
|
||||
meshHasUpdated_(false),
|
||||
turbulence_
|
||||
(
|
||||
#if defined(version24Dev)
|
||||
@ -264,6 +266,9 @@ Foam::cfdemCloud::cfdemCloud
|
||||
averagingM().applyDebugSettings(debugMode());
|
||||
//--
|
||||
|
||||
//push dummy to type-specific cg factor since types start with 1
|
||||
cgTypeSpecific_.push_back(-1);
|
||||
cgTypeSpecificDifferent=false;
|
||||
dataExchangeM().setCG();
|
||||
|
||||
Info << "If BC are important, please provide volScalarFields -imp/expParticleForces-" << endl;
|
||||
@ -283,7 +288,6 @@ Foam::cfdemCloud::cfdemCloud
|
||||
|
||||
if (couplingProperties_.found("treatVoidCellsAsExplicitForce"))
|
||||
treatVoidCellsAsExplicitForce_ = readBool(couplingProperties_.lookup("treatVoidCellsAsExplicitForce"));
|
||||
if (couplingProperties_.found("verbose")) verbose_=true;
|
||||
if (couplingProperties_.found("ignore")) ignore_=true;
|
||||
if (turbulenceModelType_=="LESProperties")
|
||||
{
|
||||
@ -320,6 +324,11 @@ Foam::cfdemCloud::cfdemCloud
|
||||
forceModel_[i]().applyDebugSettings(debugMode());
|
||||
}
|
||||
|
||||
if (nrForceModels()<SMALL)
|
||||
FatalError << "Please use at least one forceModel ! "
|
||||
<< "(e.g. noDrag) \n"
|
||||
<< abort(FatalError);
|
||||
|
||||
momCoupleModel_ = new autoPtr<momCoupleModel>[momCoupleModels_.size()];
|
||||
for (int i=0;i<momCoupleModels_.size();i++)
|
||||
{
|
||||
@ -380,6 +389,13 @@ Foam::cfdemCloud::cfdemCloud
|
||||
if(verbose_) Info << "nPatchesNonCyclic=" << nPatchesNonCyclic << ", nPatchesCyclic=" << nPatchesCyclic << endl;
|
||||
Warning << "Periodic handing is disabled because the domain is not fully periodic!\n" << endl;
|
||||
}
|
||||
|
||||
//Check if user attempts to change fluid time step
|
||||
if( mesh_.time().controlDict().lookupOrDefault<Switch>("adjustTimeStep", false) && !allowAdjustTimeStep_ )
|
||||
{
|
||||
FatalError << "cfdemCloud:: you want to adjustTimeStep in controlDict. This is not allowed in this version of CFDEM."
|
||||
<< abort(FatalError);
|
||||
}
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * //
|
||||
@ -477,6 +493,21 @@ void Foam::cfdemCloud::setNumberOfParticles(int nP)
|
||||
}
|
||||
}
|
||||
|
||||
void Foam::cfdemCloud::setNumberOfClumps(int nC)
|
||||
{
|
||||
//Info << "Foam::cfdemCloud::setNumberOfClumps(int nC) ... do nothing" << endl;
|
||||
}
|
||||
|
||||
void Foam::cfdemCloud::setPositionsCM(label n,double* pos)
|
||||
{
|
||||
//Info << "Foam::cfdemCloud::setPositionsCM(int nC) ... do nothing" << endl;
|
||||
}
|
||||
|
||||
void Foam::cfdemCloud::setCellIDsCM(label n,int* ID)
|
||||
{
|
||||
//Info << "Foam::cfdemCloud::setCellIDsCM(int nC) ... do nothing" << endl;
|
||||
}
|
||||
|
||||
void Foam::cfdemCloud::findCells()
|
||||
{
|
||||
locateM().findCell(NULL,positions_,cellIDs_,numberOfParticles());
|
||||
@ -717,6 +748,10 @@ bool Foam::cfdemCloud::evolve
|
||||
// IMPLICIT FORCE CONTRIBUTION AND SOLVER USE EXACTLY THE SAME AVERAGED
|
||||
// QUANTITIES AT THE GRID!
|
||||
Info << "\n timeStepFraction() = " << dataExchangeM().timeStepFraction() << endl;
|
||||
if( dataExchangeM().timeStepFraction() > 1.000000000000000001)
|
||||
{
|
||||
FatalError << "cfdemCloud::dataExchangeM().timeStepFraction()>1: Do not do this, since dangerous. This might be due to the fact that you used a adjustable CFD time step. Please use a fixed CFD time step." << abort(FatalError);
|
||||
}
|
||||
clockM().start(24,"interpolateEulerFields");
|
||||
|
||||
// update voidFractionField
|
||||
|
||||
@ -89,11 +89,13 @@ protected:
|
||||
|
||||
IOdictionary liggghtsCommandDict_;
|
||||
|
||||
Switch allowAdjustTimeStep_;
|
||||
|
||||
Switch solveFlow_;
|
||||
|
||||
Switch solveScalarTransport_;
|
||||
|
||||
bool verbose_;
|
||||
Switch verbose_;
|
||||
|
||||
bool debug_;
|
||||
|
||||
@ -154,6 +156,8 @@ protected:
|
||||
mutable bool isLES_;
|
||||
|
||||
mutable scalar cg_;
|
||||
|
||||
mutable std::vector<double> cgTypeSpecific_;
|
||||
|
||||
bool cgOK_;
|
||||
|
||||
@ -171,6 +175,8 @@ protected:
|
||||
|
||||
mutable Switch checkPeriodicCells_;
|
||||
|
||||
bool meshHasUpdated_;
|
||||
|
||||
#if defined(version24Dev)
|
||||
const turbulenceModel& turbulence_;
|
||||
#elif defined(version21) || defined(version16ext)
|
||||
@ -217,6 +223,12 @@ protected:
|
||||
|
||||
virtual void setNumberOfParticles(int);
|
||||
|
||||
virtual void setNumberOfClumps(int);
|
||||
|
||||
virtual void setPositionsCM(label,double*);
|
||||
|
||||
virtual void setCellIDsCM(label,int*);
|
||||
|
||||
virtual void findCells();
|
||||
|
||||
virtual void setForces();
|
||||
@ -285,8 +297,14 @@ public:
|
||||
label liggghtsCommandModelIndex(word);
|
||||
|
||||
inline void setCG(double) const;
|
||||
|
||||
inline void setCGTypeSpecific(int, double) const;
|
||||
|
||||
mutable bool cgTypeSpecificDifferent;
|
||||
|
||||
inline const scalar& cg() const;
|
||||
|
||||
inline const scalar& cg(int) const;
|
||||
|
||||
inline const bool& impDEMdrag() const;
|
||||
|
||||
@ -300,6 +318,8 @@ public:
|
||||
|
||||
inline const fvMesh& mesh() const;
|
||||
|
||||
inline bool allowAdjustTimeStep() const;
|
||||
|
||||
inline bool solveFlow() const;
|
||||
|
||||
inline bool solveScalarTransport() const;
|
||||
@ -353,7 +373,11 @@ public:
|
||||
virtual inline bool multipleTypesDMin() {return false;}
|
||||
virtual inline double ** particleDensity() const {return NULL;};
|
||||
virtual inline int ** particleTypes() const {return NULL;};
|
||||
virtual label particleType(label index) const {return -1;};
|
||||
virtual label particleType(label index) const
|
||||
{
|
||||
FatalError << "cfdemCloud::particleType(index): you are attempting to get the particle type, but this array is not transferred to CFDEM for this cloud. Use a different cloud, or avoid asking for the particle type." << abort(FatalError);
|
||||
return -1;
|
||||
};
|
||||
|
||||
//access to the particle's rotation and torque data
|
||||
virtual inline double ** DEMTorques() const {return NULL;};
|
||||
@ -531,6 +555,8 @@ public:
|
||||
void accessParticleDatFieldsUserCFDEMToExt(word fieldToAccess, double **& fieldData);
|
||||
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
|
||||
bool checkPeriodicCells() { return checkPeriodicCells_; }
|
||||
bool meshHasUpdated() { return meshHasUpdated_; }
|
||||
void setMeshHasUpdatedFlag(bool hasUpdated) { meshHasUpdated_ = hasUpdated; }
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -50,6 +50,21 @@ inline void cfdemCloud::setCG(double cg) const
|
||||
Info << "cg is set to: " << cg_ << endl;
|
||||
};
|
||||
|
||||
inline void cfdemCloud::setCGTypeSpecific(int type, double cg) const
|
||||
{
|
||||
if(int(cgTypeSpecific_.size())!=type)
|
||||
FatalError << "setCGTypeSpecific attempts to set at location "
|
||||
<< int(cgTypeSpecific_.size())
|
||||
<< ", but caller requests to set at "
|
||||
<< type
|
||||
<< ". This is fatal. "
|
||||
<< abort(FatalError);
|
||||
cgTypeSpecific_.push_back(cg);
|
||||
if(cg<cg_*0.99999 || cg>cg_*1.00001) cgTypeSpecificDifferent = true;
|
||||
|
||||
Info << "type specific cg for type " << type << " is set to: " << cg << endl;
|
||||
}
|
||||
|
||||
inline const bool& cfdemCloud::impDEMdrag() const
|
||||
{
|
||||
return impDEMdrag_;
|
||||
@ -75,6 +90,11 @@ inline const scalar& cfdemCloud::cg() const
|
||||
return cg_;
|
||||
};
|
||||
|
||||
inline const scalar& cfdemCloud::cg(int type) const
|
||||
{
|
||||
return cgTypeSpecific_[type];
|
||||
};
|
||||
|
||||
inline const bool& cfdemCloud::ignore() const
|
||||
{
|
||||
return ignore_;
|
||||
@ -216,7 +236,8 @@ inline double cfdemCloud::d32(bool recalc)
|
||||
Ntot+=2*r*r*r;
|
||||
Dtot+=r*r;
|
||||
}
|
||||
d32_=Ntot/Dtot;
|
||||
if(Ntot>SMALL) d32_ = Ntot/Dtot;
|
||||
else d32_ = 0.;
|
||||
}
|
||||
|
||||
return d32_;
|
||||
|
||||
@ -6,6 +6,10 @@
|
||||
#define version30
|
||||
#elif(CFDEMWMPROJECTVERSION == 132)
|
||||
#define versionExt32
|
||||
#elif(CFDEMWMPROJECTVERSION == 1606)
|
||||
#define versionv1606plus
|
||||
#elif(CFDEMWMPROJECTVERSION == 1612)
|
||||
#define versionv1612plus
|
||||
#endif
|
||||
|
||||
//define anisotropicRotation cloud models
|
||||
@ -21,6 +25,16 @@
|
||||
#define version30
|
||||
#endif
|
||||
|
||||
// features of v1606+ work also in v1612+
|
||||
#if defined(versionv1612plus)
|
||||
#define versionv1606plus
|
||||
#endif
|
||||
|
||||
// features of 3.0 work also in v1606+
|
||||
#if defined(versionv1606plus)
|
||||
#define version30
|
||||
#endif
|
||||
|
||||
// features of 2.4Dev work also in Dev
|
||||
#if defined(version30)
|
||||
#define version24Dev
|
||||
|
||||
@ -1,13 +1,18 @@
|
||||
# paths for additional libraries
|
||||
CFDEM_ADD_LIB_PATHS = \
|
||||
|
||||
# additional libraries to be linked to solvers
|
||||
CFDEM_ADD_LIBS = \
|
||||
# Specify additional include and library paths, as well as libraries for the compilation
|
||||
#
|
||||
# CFDEM_ADD_INC =
|
||||
# CFDEM_ADD_LIB_PATHS =
|
||||
# CFDEM_ADD_LIBS =
|
||||
|
||||
# additional static libraries to be linked to lagrangian library
|
||||
CFDEM_ADD_STATICLIBS = \
|
||||
-lmpi_cxx \
|
||||
|
||||
# If you don't want VTK comment the following line and use the appropriate LIGGGHTS Makefile
|
||||
# via setting CFDEM_LIGGGHTS_MAKEFILE_NAME that does not contain VTK.
|
||||
include $(CFDEM_ADD_LIBS_DIR)/additionalLibs_vtk
|
||||
include $(CFDEM_ADD_LIBS_DIR)/additionalLibs_superquadric
|
||||
|
||||
#################################################################
|
||||
## SETTINGS FOR 2.4.x ##
|
||||
#################################################################
|
||||
@ -18,12 +23,15 @@ CFDEM_ADD_STATICLIBS = \
|
||||
CFDEM_ADD_INCOMPTURBMOD_PATHS = \
|
||||
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
|
||||
-I$(LIB_SRC)/fvOptions/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude
|
||||
|
||||
# libs for turbulence models to use
|
||||
CFDEM_ADD_INCOMPTURBMOD_LIBS = \
|
||||
-lincompressibleRASModels \
|
||||
-lincompressibleLESModels \
|
||||
-lfvOptions \
|
||||
-lsampling
|
||||
|
||||
|
||||
#----------------------------------------------------------------
|
||||
# compressible turbulence model settings
|
||||
@ -0,0 +1,53 @@
|
||||
# Specify additional include and library paths, as well as libraries for the compilation
|
||||
#
|
||||
#CFDEM_ADD_INC = \
|
||||
#CFDEM_ADD_LIB_PATHS = \
|
||||
#CFDEM_ADD_LIBS = \
|
||||
|
||||
# additional static libraries to be linked to lagrangian library
|
||||
CFDEM_ADD_STATICLIBS = \
|
||||
-lmpi_cxx \
|
||||
|
||||
# If you don't want VTK comment the following line and use the appropriate LIGGGHTS Makefile
|
||||
# via setting CFDEM_LIGGGHTS_MAKEFILE_NAME that does not contain VTK.
|
||||
include $(CFDEM_ADD_LIBS_DIR)/additionalLibs_vtk
|
||||
include $(CFDEM_ADD_LIBS_DIR)/additionalLibs_superquadric
|
||||
|
||||
|
||||
# If you don't want ParSCale comment the following line
|
||||
#include $(CFDEM_ADD_LIBS_DIR)/additionalLibs_ParScale
|
||||
|
||||
#################################################################
|
||||
## SETTINGS FOR 3.0.x ##
|
||||
#################################################################
|
||||
#----------------------------------------------------------------
|
||||
# incompressible turbulence model settings
|
||||
#----------------------------------------------------------------
|
||||
# paths for incompressible turbulence models to use
|
||||
CFDEM_ADD_INCOMPTURBMOD_PATHS = \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/fvOptions/lnInclude \
|
||||
###-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||
|
||||
# libs for turbulence models to use
|
||||
CFDEM_ADD_INCOMPTURBMOD_LIBS = \
|
||||
-lturbulenceModels \
|
||||
-lincompressibleTurbulenceModels \
|
||||
-lfvOptions \
|
||||
|
||||
#----------------------------------------------------------------
|
||||
# compressible turbulence model settings
|
||||
#----------------------------------------------------------------
|
||||
# paths for compressible turbulence models to use
|
||||
CFDEM_ADD_COMPTURBMOD_PATHS = \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||
|
||||
# libs for turbulence models to use
|
||||
CFDEM_ADD_COMPTURBMOD_LIBS = \
|
||||
-lturbulenceModels \
|
||||
-lcompressibleTurbulenceModels \
|
||||
#################################################################
|
||||