mirror of
https://github.com/ParticulateFlow/CFDEMcoupling-PFM.git
synced 2025-12-08 06:37:44 +00:00
release on 2014-11-10_07-57-15
This commit is contained in:
81
README
Executable file
81
README
Executable file
@ -0,0 +1,81 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
CFDEMcoupling - Open Source CFD-DEM coupling
|
||||||
|
|
||||||
|
CFDEMcoupling is part of the CFDEMproject
|
||||||
|
www.cfdem.com
|
||||||
|
Christoph Goniva, christoph.goniva@cfdem.com
|
||||||
|
Copyright 2009-2012 JKU Linz
|
||||||
|
Copyright 2012- DCS Computing GmbH, Linz
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of CFDEMcoupling.
|
||||||
|
|
||||||
|
CFDEMcoupling is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 3 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
CFDEMcoupling is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with CFDEMcoupling; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Description
|
||||||
|
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
|
||||||
|
and OpenFOAM. Note: this code is not part of OpenFOAM (see DISCLAIMER).
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
CFDEM coupling provides an open source parallel coupled CFD-DEM framework
|
||||||
|
combining the strengths of LIGGGHTS DEM code and the Open Source
|
||||||
|
CFD package OpenFOAM(R)(*). The CFDEMcoupling toolbox allows to expand
|
||||||
|
standard CFD solvers of OpenFOAM(R)(*) to include a coupling to the DEM
|
||||||
|
code LIGGGHTS. In this toolbox the particle representation within the
|
||||||
|
CFD solver is organized by "cloud" classes. Key functionalities are organised
|
||||||
|
in sub-models (e.g. force models, data exchange models, etc.) which can easily
|
||||||
|
be selected and combined by dictionary settings.
|
||||||
|
|
||||||
|
The coupled solvers run fully parallel on distributed-memory clusters.
|
||||||
|
|
||||||
|
Features are:
|
||||||
|
|
||||||
|
- its modular approach allows users to easily implement new models
|
||||||
|
- its MPI parallelization enables to use it for large scale problems
|
||||||
|
- the "forum"_lws on CFD-DEM gives the possibility to exchange with other
|
||||||
|
users / developers
|
||||||
|
- the use of GIT allows to easily update to the latest version
|
||||||
|
- basic documentation is provided
|
||||||
|
|
||||||
|
The file structure:
|
||||||
|
|
||||||
|
- "src" directory including the source files of the coupling toolbox and models
|
||||||
|
- "applications" directory including the solver files for coupled CFD-DEM simulations
|
||||||
|
- "doc" directory including the documentation of CFDEMcoupling
|
||||||
|
- "tutorials" directory including basic tutorial cases showing the functionality
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Details on installation are given on the "www.cfdem.com"
|
||||||
|
|
||||||
|
The functionality of this CFD-DEM framwork is described via "tutorial cases" showing
|
||||||
|
how to use different solvers and models.
|
||||||
|
|
||||||
|
CFDEMcoupling stands for Computational Fluid Dynamics (CFD) -
|
||||||
|
Discrete Element Method (DEM) coupling.
|
||||||
|
|
||||||
|
CFDEMcoupling is an open-source code, distributed freely under the terms of the
|
||||||
|
GNU Public License (GPL).
|
||||||
|
|
||||||
|
Core development of CFDEMcoupling is done by
|
||||||
|
Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012
|
||||||
|
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
(*) "OpenFOAM(R)"_of is a registered trade mark of the ESI Group.
|
||||||
|
This offering is not affiliated, approved or endorsed by ESI Group,
|
||||||
|
the producer of the OpenFOAM® software and owner of the OpenFOAM® trade mark.
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -11,7 +11,6 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/lnInclude \
|
-I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/lnInclude \
|
||||||
-I$(LIB_SRC)/dynamicMesh/dynamicMesh/lnInclude \
|
-I$(LIB_SRC)/dynamicMesh/dynamicMesh/lnInclude \
|
||||||
-I$(LIB_SRC)/fvOptions/lnInclude
|
-I$(LIB_SRC)/fvOptions/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
-L$(CFDEM_LIB_DIR)\
|
-L$(CFDEM_LIB_DIR)\
|
||||||
-lincompressibleRASModels \
|
-lincompressibleRASModels \
|
||||||
@ -22,3 +21,4 @@ EXE_LIBS = \
|
|||||||
-ldynamicMesh \
|
-ldynamicMesh \
|
||||||
-lfvOptions \
|
-lfvOptions \
|
||||||
-l$(CFDEM_LIB_NAME)
|
-l$(CFDEM_LIB_NAME)
|
||||||
|
|
||||||
|
|||||||
@ -42,6 +42,7 @@ Description
|
|||||||
#include "implicitCouple.H"
|
#include "implicitCouple.H"
|
||||||
#include "clockModel.H"
|
#include "clockModel.H"
|
||||||
#include "smoothingModel.H"
|
#include "smoothingModel.H"
|
||||||
|
#include "forceModel.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -59,10 +60,9 @@ int main(int argc, char *argv[])
|
|||||||
#include "checkModelType.H"
|
#include "checkModelType.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
Info<< "\nStarting time loop\n" << endl;
|
||||||
while (runTime.loop())
|
while (runTime.loop())
|
||||||
{
|
{
|
||||||
Info<< "\nStarting time loop\n" << endl;
|
|
||||||
particleCloud.clockM().start(1,"Global");
|
particleCloud.clockM().start(1,"Global");
|
||||||
|
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
@ -72,7 +72,17 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
// do particle stuff
|
// do particle stuff
|
||||||
particleCloud.clockM().start(2,"Coupling");
|
particleCloud.clockM().start(2,"Coupling");
|
||||||
particleCloud.evolve(voidfraction,Us,U);
|
bool hasEvolved = particleCloud.evolve(voidfraction,Us,U);
|
||||||
|
|
||||||
|
if(hasEvolved)
|
||||||
|
{
|
||||||
|
//Smoothen implicit momCoupling force
|
||||||
|
//fSmooth.internalField() = particleCloud.forceM(0).impParticleForces() ;
|
||||||
|
//particleCloud.smoothingM().smoothen(fSmooth);
|
||||||
|
//fSmooth.correctBoundaryConditions();
|
||||||
|
//particleCloud.forceM(0).impParticleForces() = fSmooth;
|
||||||
|
particleCloud.smoothingM().smoothen(particleCloud.forceM(0).impParticleForces());
|
||||||
|
}
|
||||||
|
|
||||||
Info << "update Ksl.internalField()" << endl;
|
Info << "update Ksl.internalField()" << endl;
|
||||||
Ksl = particleCloud.momCoupleM(0).impMomSource();
|
Ksl = particleCloud.momCoupleM(0).impMomSource();
|
||||||
@ -97,15 +107,15 @@ int main(int argc, char *argv[])
|
|||||||
// Momentum predictor
|
// Momentum predictor
|
||||||
fvVectorMatrix UEqn
|
fvVectorMatrix UEqn
|
||||||
(
|
(
|
||||||
fvm::ddt(voidfraction,U) + fvm::Sp(fvc::ddt(voidfraction),U)
|
fvm::ddt(voidfraction,U) - fvm::Sp(fvc::ddt(voidfraction),U)
|
||||||
+ fvm::div(phi,U) + fvm::Sp(fvc::div(phi),U)
|
+ fvm::div(phi,U) - fvm::Sp(fvc::div(phi),U)
|
||||||
// + turbulence->divDevReff(U)
|
// + turbulence->divDevReff(U)
|
||||||
+ particleCloud.divVoidfractionTau(U, voidfraction)
|
+ particleCloud.divVoidfractionTau(U, voidfraction)
|
||||||
==
|
==
|
||||||
- fvm::Sp(Ksl/rho,U)
|
- fvm::Sp(Ksl/rho,U)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (modelType=="B")
|
if (modelType=="B" || modelType=="Bfull")
|
||||||
UEqn == - fvc::grad(p) + Ksl/rho*Us;
|
UEqn == - fvc::grad(p) + Ksl/rho*Us;
|
||||||
else
|
else
|
||||||
UEqn == - voidfraction*fvc::grad(p) + Ksl/rho*Us;
|
UEqn == - voidfraction*fvc::grad(p) + Ksl/rho*Us;
|
||||||
@ -169,7 +179,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
#include "continuityErrorPhiPU.H"
|
#include "continuityErrorPhiPU.H"
|
||||||
|
|
||||||
if (modelType=="B")
|
if (modelType=="B" || modelType=="Bfull")
|
||||||
U -= rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
U -= rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
||||||
else
|
else
|
||||||
U -= voidfraction*rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
U -= voidfraction*rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
||||||
|
|||||||
@ -89,6 +89,22 @@
|
|||||||
mesh
|
mesh
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
volVectorField fSmooth
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"fSmooth",
|
||||||
|
runTime.timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::READ_IF_PRESENT,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
mesh,
|
||||||
|
dimensionedVector("0", dimensionSet(1, 1, -2, 0, 0), vector::zero)
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
|
||||||
//===============================
|
//===============================
|
||||||
|
|
||||||
//# include "createPhi.H"
|
//# include "createPhi.H"
|
||||||
|
|||||||
@ -40,30 +40,26 @@ Description
|
|||||||
|
|
||||||
#include "cfdemCloud.H"
|
#include "cfdemCloud.H"
|
||||||
#include "implicitCouple.H"
|
#include "implicitCouple.H"
|
||||||
#include "forceModel.H"
|
|
||||||
#include "smoothingModel.H"
|
#include "smoothingModel.H"
|
||||||
|
#include "forceModel.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
|
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createMesh.H"
|
#include "createMesh.H"
|
||||||
#include "createFields.H"
|
#include "createFields.H"
|
||||||
|
|
||||||
#include "initContinuityErrs.H"
|
#include "initContinuityErrs.H"
|
||||||
|
|
||||||
// create cfdemCloud
|
// create cfdemCloud
|
||||||
#include "readGravitationalAcceleration.H"
|
#include "readGravitationalAcceleration.H"
|
||||||
cfdemCloud particleCloud(mesh);
|
cfdemCloud particleCloud(mesh);
|
||||||
|
|
||||||
#include "checkModelType.H"
|
#include "checkModelType.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
Info<< "\nStarting time loop\n" << endl;
|
Info<< "\nStarting time loop\n" << endl;
|
||||||
|
|
||||||
while (runTime.loop())
|
while (runTime.loop())
|
||||||
{
|
{
|
||||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||||
@ -73,7 +69,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
// do particle stuff
|
// do particle stuff
|
||||||
Info << "- evolve()" << endl;
|
Info << "- evolve()" << endl;
|
||||||
particleCloud.evolve(voidfraction,Us,U);
|
bool hasEvolved = particleCloud.evolve(voidfraction,Us,U);
|
||||||
|
|
||||||
Ksl.internalField() = particleCloud.momCoupleM(0).impMomSource();
|
Ksl.internalField() = particleCloud.momCoupleM(0).impMomSource();
|
||||||
particleCloud.smoothingM().smoothen(Ksl);
|
particleCloud.smoothingM().smoothen(Ksl);
|
||||||
@ -115,7 +111,7 @@ int main(int argc, char *argv[])
|
|||||||
if (momentumPredictor)
|
if (momentumPredictor)
|
||||||
{
|
{
|
||||||
//solve UEqn
|
//solve UEqn
|
||||||
if (modelType=="B")
|
if (modelType=="B" || modelType=="Bfull")
|
||||||
solve(UEqn == - fvc::grad(p) + Ksl/rho*Us);
|
solve(UEqn == - fvc::grad(p) + Ksl/rho*Us);
|
||||||
else
|
else
|
||||||
solve(UEqn == - voidfraction*fvc::grad(p) + Ksl/rho*Us);
|
solve(UEqn == - voidfraction*fvc::grad(p) + Ksl/rho*Us);
|
||||||
@ -176,7 +172,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
#include "continuityErrorPhiPU.H"
|
#include "continuityErrorPhiPU.H"
|
||||||
|
|
||||||
if (modelType=="B")
|
if (modelType=="B" || modelType=="Bfull")
|
||||||
U -= rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
U -= rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
||||||
else
|
else
|
||||||
U -= voidfraction*rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
U -= voidfraction*rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
||||||
|
|||||||
@ -71,6 +71,7 @@ int main(int argc, char *argv[])
|
|||||||
double **voidfractions_;
|
double **voidfractions_;
|
||||||
double **particleWeights_;
|
double **particleWeights_;
|
||||||
double **particleVolumes_;
|
double **particleVolumes_;
|
||||||
|
double **particleV_;
|
||||||
double **cellIDs_;
|
double **cellIDs_;
|
||||||
|
|
||||||
particleCloud.dataExchangeM().allocateArray(positions_,0.,3);
|
particleCloud.dataExchangeM().allocateArray(positions_,0.,3);
|
||||||
@ -80,6 +81,7 @@ int main(int argc, char *argv[])
|
|||||||
particleCloud.dataExchangeM().allocateArray(voidfractions_,0.,1);
|
particleCloud.dataExchangeM().allocateArray(voidfractions_,0.,1);
|
||||||
particleCloud.dataExchangeM().allocateArray(particleWeights_,0.,1);
|
particleCloud.dataExchangeM().allocateArray(particleWeights_,0.,1);
|
||||||
particleCloud.dataExchangeM().allocateArray(particleVolumes_,0.,1);
|
particleCloud.dataExchangeM().allocateArray(particleVolumes_,0.,1);
|
||||||
|
particleCloud.dataExchangeM().allocateArray(particleV_,0.,1);
|
||||||
particleCloud.get_cellIDs(cellIDs_); // get ref to cellIDs
|
particleCloud.get_cellIDs(cellIDs_); // get ref to cellIDs
|
||||||
//particleCloud.dataExchangeM().allocateArray(cellIDs_,0.,1);
|
//particleCloud.dataExchangeM().allocateArray(cellIDs_,0.,1);
|
||||||
|
|
||||||
@ -105,7 +107,7 @@ int main(int argc, char *argv[])
|
|||||||
particleCloud.locateM().findCell(NULL,positions_,cellIDs_,particleCloud.numberOfParticles());
|
particleCloud.locateM().findCell(NULL,positions_,cellIDs_,particleCloud.numberOfParticles());
|
||||||
particleCloud.setPos(positions_);
|
particleCloud.setPos(positions_);
|
||||||
|
|
||||||
particleCloud.voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_);
|
particleCloud.voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_,particleV_);
|
||||||
|
|
||||||
voidfraction.internalField() = particleCloud.voidFractionM().voidFractionInterp();
|
voidfraction.internalField() = particleCloud.voidFractionM().voidFractionInterp();
|
||||||
voidfraction.correctBoundaryConditions();
|
voidfraction.correctBoundaryConditions();
|
||||||
@ -135,6 +137,7 @@ int main(int argc, char *argv[])
|
|||||||
particleCloud.dataExchangeM().destroy(voidfractions_,1);
|
particleCloud.dataExchangeM().destroy(voidfractions_,1);
|
||||||
particleCloud.dataExchangeM().destroy(particleWeights_,1);
|
particleCloud.dataExchangeM().destroy(particleWeights_,1);
|
||||||
particleCloud.dataExchangeM().destroy(particleVolumes_,1);
|
particleCloud.dataExchangeM().destroy(particleVolumes_,1);
|
||||||
|
particleCloud.dataExchangeM().destroy(particleV_,1);
|
||||||
//particleCloud.dataExchangeM().destroy(cellIDs_); // destroyed in cloud
|
//particleCloud.dataExchangeM().destroy(cellIDs_); // destroyed in cloud
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End\n" << endl;
|
||||||
|
|||||||
@ -164,7 +164,7 @@ In order to get the latest code version, please use the git repository at http:/
|
|||||||
</P>
|
</P>
|
||||||
<PRE>modelType
|
<PRE>modelType
|
||||||
</PRE>
|
</PRE>
|
||||||
<P>"modelType" refers to the formulation of the equations to be solved. Choose "A" or "B", 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".
|
<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>
|
||||||
<PRE>couplingInterval
|
<PRE>couplingInterval
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|||||||
Binary file not shown.
@ -133,7 +133,7 @@ Reasonable example settings for the "couplingProperties" dictionary are given in
|
|||||||
|
|
||||||
modelType :pre
|
modelType :pre
|
||||||
|
|
||||||
"modelType" refers to the formulation of the equations to be solved. Choose "A" or "B", 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".
|
"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.
|
||||||
|
|
||||||
couplingInterval :pre
|
couplingInterval :pre
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
</P>
|
</P>
|
||||||
<P><B>Description:</B>
|
<P><B>Description:</B>
|
||||||
</P>
|
</P>
|
||||||
<P>The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. All force models selected are executed sequentially and the forces on the particles are superposed.
|
<P>The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. All force models selected are executed sequentially and the forces on the particles are superposed. If the fluid density field is needed, by default a field named "rho" will be used. Via the forceSubModel an alternative field can be chosen.
|
||||||
</P>
|
</P>
|
||||||
<P><B>Restrictions:</B>
|
<P><B>Restrictions:</B>
|
||||||
</P>
|
</P>
|
||||||
|
|||||||
@ -31,7 +31,7 @@ Note: This examples list might not be complete - please look for other models (f
|
|||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|
||||||
The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. All force models selected are executed sequentially and the forces on the particles are superposed.
|
The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. All force models selected are executed sequentially and the forces on the particles are superposed. If the fluid density field is needed, by default a field named "rho" will be used. Via the forceSubModel an alternative field can be chosen.
|
||||||
|
|
||||||
[Restrictions:]
|
[Restrictions:]
|
||||||
|
|
||||||
|
|||||||
@ -19,13 +19,10 @@
|
|||||||
);
|
);
|
||||||
ArchimedesProps
|
ArchimedesProps
|
||||||
{
|
{
|
||||||
densityFieldName "density";
|
|
||||||
gravityFieldName "gravity";
|
gravityFieldName "gravity";
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>density</I> = name of the finite volume density field
|
<UL><LI><I>gravity</I> = name of the finite volume gravity field
|
||||||
|
|
||||||
<LI><I>gravity</I> = name of the finite volume gravity field
|
|
||||||
|
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
@ -37,7 +34,6 @@ ArchimedesProps
|
|||||||
);
|
);
|
||||||
ArchimedesProps
|
ArchimedesProps
|
||||||
{
|
{
|
||||||
densityFieldName "rho";
|
|
||||||
gravityFieldName "g";
|
gravityFieldName "g";
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|||||||
@ -17,12 +17,10 @@ forceModels
|
|||||||
);
|
);
|
||||||
ArchimedesProps
|
ArchimedesProps
|
||||||
\{
|
\{
|
||||||
densityFieldName "density";
|
|
||||||
gravityFieldName "gravity";
|
gravityFieldName "gravity";
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{density} = name of the finite volume density field :ulb,l
|
{gravity} = name of the finite volume gravity field :ulb,l
|
||||||
{gravity} = name of the finite volume gravity field :l
|
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
@ -33,7 +31,6 @@ forceModels
|
|||||||
);
|
);
|
||||||
ArchimedesProps
|
ArchimedesProps
|
||||||
\{
|
\{
|
||||||
densityFieldName "rho";
|
|
||||||
gravityFieldName "g";
|
gravityFieldName "g";
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
|
|||||||
@ -19,14 +19,11 @@
|
|||||||
);
|
);
|
||||||
ArchimedesIBProps
|
ArchimedesIBProps
|
||||||
{
|
{
|
||||||
densityFieldName "density";
|
|
||||||
gravityFieldName "gravity";
|
gravityFieldName "gravity";
|
||||||
voidfractionFieldName "voidfraction";
|
voidfractionFieldName "voidfraction";
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>density</I> = name of the finite volume density field
|
<UL><LI><I>gravity</I> = name of the finite volume gravity field
|
||||||
|
|
||||||
<LI><I>gravity</I> = name of the finite volume gravity field
|
|
||||||
|
|
||||||
<LI><I>voidfraction</I> = name of the finite volume voidfraction field
|
<LI><I>voidfraction</I> = name of the finite volume voidfraction field
|
||||||
|
|
||||||
@ -40,7 +37,6 @@ ArchimedesIBProps
|
|||||||
);
|
);
|
||||||
ArchimedesIBProps
|
ArchimedesIBProps
|
||||||
{
|
{
|
||||||
densityFieldName "rho";
|
|
||||||
gravityFieldName "g";
|
gravityFieldName "g";
|
||||||
voidfractionFieldName "voidfractionNext";
|
voidfractionFieldName "voidfractionNext";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,13 +17,11 @@ forceModels
|
|||||||
);
|
);
|
||||||
ArchimedesIBProps
|
ArchimedesIBProps
|
||||||
\{
|
\{
|
||||||
densityFieldName "density";
|
|
||||||
gravityFieldName "gravity";
|
gravityFieldName "gravity";
|
||||||
voidfractionFieldName "voidfraction";
|
voidfractionFieldName "voidfraction";
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{density} = name of the finite volume density field :ulb,l
|
{gravity} = name of the finite volume gravity field :ulb,l
|
||||||
{gravity} = name of the finite volume gravity field :l
|
|
||||||
{voidfraction} = name of the finite volume voidfraction field :l
|
{voidfraction} = name of the finite volume voidfraction field :l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
@ -35,7 +33,6 @@ forceModels
|
|||||||
);
|
);
|
||||||
ArchimedesIBProps
|
ArchimedesIBProps
|
||||||
\{
|
\{
|
||||||
densityFieldName "rho";
|
|
||||||
gravityFieldName "g";
|
gravityFieldName "g";
|
||||||
voidfractionFieldName "voidfractionNext";
|
voidfractionFieldName "voidfractionNext";
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|||||||
@ -20,15 +20,12 @@
|
|||||||
DiFeliceDragProps
|
DiFeliceDragProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
interpolation switch1;
|
||||||
interpolation;
|
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
||||||
|
|
||||||
<LI><I>density</I> = name of the finite volume gravity field
|
<LI><I>switch1</I> = flag to use interpolated voidfraction and velocity values (normally off)
|
||||||
|
|
||||||
<LI><I>interpolation</I> = flag to use interpolated voidfraction and velocity values (normally off)
|
|
||||||
|
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
@ -41,8 +38,7 @@ DiFeliceDragProps
|
|||||||
DiFeliceDragProps
|
DiFeliceDragProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
interpolation true;
|
||||||
interpolation;
|
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
<P><B>Description:</B>
|
<P><B>Description:</B>
|
||||||
|
|||||||
@ -18,13 +18,11 @@ forceModels
|
|||||||
DiFeliceDragProps
|
DiFeliceDragProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
interpolation switch1;
|
||||||
interpolation;
|
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||||
{density} = name of the finite volume gravity field :l
|
{switch1} = flag to use interpolated voidfraction and velocity values (normally off) :l
|
||||||
{interpolation} = flag to use interpolated voidfraction and velocity values (normally off) :l
|
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
@ -36,8 +34,7 @@ forceModels
|
|||||||
DiFeliceDragProps
|
DiFeliceDragProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
interpolation true;
|
||||||
interpolation;
|
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|||||||
@ -20,27 +20,24 @@
|
|||||||
GidaspowDragProps
|
GidaspowDragProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
voidfractionFieldName "voidfraction";
|
voidfractionFieldName "voidfraction";
|
||||||
granVelFieldName "Us";
|
granVelFieldName "Us";
|
||||||
phi "scalar";
|
phi "scalar";
|
||||||
interpolation;
|
interpolation switch1;
|
||||||
implDEM;
|
implForceDEM switch2;
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
||||||
|
|
||||||
<LI><I>density</I> = name of the finite volume gravity field
|
|
||||||
|
|
||||||
<LI><I>voidfraction</I> = name of the finite volume voidfraction field
|
<LI><I>voidfraction</I> = name of the finite volume voidfraction field
|
||||||
|
|
||||||
<LI><I>Us</I> = name of the finite volume cell averaged particle velocity field
|
<LI><I>Us</I> = name of the finite volume cell averaged particle velocity field
|
||||||
|
|
||||||
<LI><I>phi</I> = drag correction factor (in doubt 1)
|
<LI><I>phi</I> = drag correction factor (in doubt 1)
|
||||||
|
|
||||||
<LI><I>interpolation</I> = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values
|
<LI><I>switch1</I> = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values
|
||||||
|
|
||||||
<I>implDEM</I> = (optional, normally off) flag to use implicit formulation of drag on DEM side:l
|
<I>switch2</I> = (optional, normally off) flag to use implicit formulation of drag on DEM side:l
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
<P><B>Examples:</B>
|
<P><B>Examples:</B>
|
||||||
@ -52,7 +49,6 @@ GidaspowDragProps
|
|||||||
GidaspowDragProps
|
GidaspowDragProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
voidfractionFieldName "voidfraction";
|
voidfractionFieldName "voidfraction";
|
||||||
granVelFieldName "Us";
|
granVelFieldName "Us";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,21 +18,19 @@ forceModels
|
|||||||
GidaspowDragProps
|
GidaspowDragProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
voidfractionFieldName "voidfraction";
|
voidfractionFieldName "voidfraction";
|
||||||
granVelFieldName "Us";
|
granVelFieldName "Us";
|
||||||
phi "scalar";
|
phi "scalar";
|
||||||
interpolation;
|
interpolation switch1;
|
||||||
implDEM;
|
implForceDEM switch2;
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||||
{density} = name of the finite volume gravity field :l
|
|
||||||
{voidfraction} = name of the finite volume voidfraction field :l
|
{voidfraction} = name of the finite volume voidfraction field :l
|
||||||
{Us} = name of the finite volume cell averaged particle velocity field :l
|
{Us} = name of the finite volume cell averaged particle velocity field :l
|
||||||
{phi} = drag correction factor (in doubt 1) :l
|
{phi} = drag correction factor (in doubt 1) :l
|
||||||
{interpolation} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l
|
{switch1} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l
|
||||||
{implDEM} = (optional, normally off) flag to use implicit formulation of drag on DEM side:l
|
{switch2} = (optional, normally off) flag to use implicit formulation of drag on DEM side:l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
@ -44,7 +42,6 @@ forceModels
|
|||||||
GidaspowDragProps
|
GidaspowDragProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
voidfractionFieldName "voidfraction";
|
voidfractionFieldName "voidfraction";
|
||||||
granVelFieldName "Us";
|
granVelFieldName "Us";
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|||||||
@ -20,21 +20,18 @@
|
|||||||
KochHillDragProps
|
KochHillDragProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
voidfractionFieldName "voidfraction";
|
voidfractionFieldName "voidfraction";
|
||||||
interpolation;
|
interpolation "bool1";
|
||||||
implDEM;
|
implForceDEM "bool2";
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
||||||
|
|
||||||
<LI><I>density</I> = name of the finite volume gravity field
|
|
||||||
|
|
||||||
<LI><I>voidfraction</I> = name of the finite volume voidfraction field
|
<LI><I>voidfraction</I> = name of the finite volume voidfraction field
|
||||||
|
|
||||||
<LI><I>interpolation</I> = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values
|
<LI><I>bool1</I> = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values
|
||||||
|
|
||||||
<I>implDEM</I> = (optional, normally off) flag to use implicit formulation of drag on DEM side:l
|
<I>bool2</I> = (optional, normally off) flag to use implicit formulation of drag on DEM side:l
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
<P><B>Examples:</B>
|
<P><B>Examples:</B>
|
||||||
@ -46,7 +43,6 @@ KochHillDragProps
|
|||||||
KochHillDragProps
|
KochHillDragProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
voidfractionFieldName "voidfraction";
|
voidfractionFieldName "voidfraction";
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|||||||
@ -18,17 +18,15 @@ forceModels
|
|||||||
KochHillDragProps
|
KochHillDragProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
voidfractionFieldName "voidfraction";
|
voidfractionFieldName "voidfraction";
|
||||||
interpolation;
|
interpolation "bool1";
|
||||||
implDEM;
|
implForceDEM "bool2";
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||||
{density} = name of the finite volume gravity field :l
|
|
||||||
{voidfraction} = name of the finite volume voidfraction field :l
|
{voidfraction} = name of the finite volume voidfraction field :l
|
||||||
{interpolation} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l
|
{bool1} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l
|
||||||
{implDEM} = (optional, normally off) flag to use implicit formulation of drag on DEM side:l
|
{bool2} = (optional, normally off) flag to use implicit formulation of drag on DEM side:l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
@ -40,7 +38,6 @@ forceModels
|
|||||||
KochHillDragProps
|
KochHillDragProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
voidfractionFieldName "voidfraction";
|
voidfractionFieldName "voidfraction";
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
|
|||||||
@ -27,9 +27,8 @@ LaEuScalarTempProps
|
|||||||
partHeatFluxName "convectiveHeatFlux";
|
partHeatFluxName "convectiveHeatFlux";
|
||||||
lambda value;
|
lambda value;
|
||||||
Cp value1;
|
Cp value1;
|
||||||
densityFieldName "density";
|
interpolation "switch1";
|
||||||
interpolation;
|
verbose "switch2";
|
||||||
verbose;
|
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
||||||
@ -48,11 +47,9 @@ LaEuScalarTempProps
|
|||||||
|
|
||||||
<LI><I>value1</I> = fluid specific heat capacity [W*s/(kg*K)]
|
<LI><I>value1</I> = fluid specific heat capacity [W*s/(kg*K)]
|
||||||
|
|
||||||
<LI><I>density</I> = name of the finite volume fluid density field
|
<LI><I>switch1</I> = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values
|
||||||
|
|
||||||
<LI><I>interpolation</I> = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values
|
<LI><I>switch2</I> = (normally off) for verbose run
|
||||||
|
|
||||||
<LI><I>verbose</I> = (normally off) for verbose run
|
|
||||||
|
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
@ -72,7 +69,6 @@ LaEuScalarTempProps
|
|||||||
partHeatFluxName "convectiveHeatFlux";
|
partHeatFluxName "convectiveHeatFlux";
|
||||||
lambda 0.0256;
|
lambda 0.0256;
|
||||||
Cp 1007;
|
Cp 1007;
|
||||||
densityFieldName "rho";
|
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
<P><B>Description:</B>
|
<P><B>Description:</B>
|
||||||
|
|||||||
@ -25,9 +25,8 @@ LaEuScalarTempProps
|
|||||||
partHeatFluxName "convectiveHeatFlux";
|
partHeatFluxName "convectiveHeatFlux";
|
||||||
lambda value;
|
lambda value;
|
||||||
Cp value1;
|
Cp value1;
|
||||||
densityFieldName "density";
|
interpolation "switch1";
|
||||||
interpolation;
|
verbose "switch2";
|
||||||
verbose;
|
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||||
@ -38,9 +37,8 @@ LaEuScalarTempProps
|
|||||||
{convectiveHeatFlux} = name of the DEM data representing the particle-fluid convective heat flux :l
|
{convectiveHeatFlux} = name of the DEM data representing the particle-fluid convective heat flux :l
|
||||||
{value} = fluid thermal conductivity \[W/(m*K)\] :l
|
{value} = fluid thermal conductivity \[W/(m*K)\] :l
|
||||||
{value1} = fluid specific heat capacity \[W*s/(kg*K)\] :l
|
{value1} = fluid specific heat capacity \[W*s/(kg*K)\] :l
|
||||||
{density} = name of the finite volume fluid density field :l
|
{switch1} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l
|
||||||
{interpolation} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l
|
{switch2} = (normally off) for verbose run :l
|
||||||
{verbose} = (normally off) for verbose run :l
|
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
@ -59,7 +57,6 @@ LaEuScalarTempProps
|
|||||||
partHeatFluxName "convectiveHeatFlux";
|
partHeatFluxName "convectiveHeatFlux";
|
||||||
lambda 0.0256;
|
lambda 0.0256;
|
||||||
Cp 1007;
|
Cp 1007;
|
||||||
densityFieldName "rho";
|
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|||||||
@ -20,21 +20,18 @@
|
|||||||
MeiLiftProps
|
MeiLiftProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
useSecondOrderTerms;
|
useSecondOrderTerms;
|
||||||
interpolation;
|
interpolation "switch1";
|
||||||
verbose;
|
verbose "switch2";
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
||||||
|
|
||||||
<LI><I>density</I> = name of the finite volume fluid density field
|
|
||||||
|
|
||||||
<LI><I>useSecondOrderTerms</I> = switch to activate second order terms in the lift force model
|
<LI><I>useSecondOrderTerms</I> = switch to activate second order terms in the lift force model
|
||||||
|
|
||||||
<LI><I>interpolation</I> = switch to activate tri-linear interpolation of the flow quantities at the particle position
|
<LI><I>switch1</I> = switch to activate tri-linear interpolation of the flow quantities at the particle position
|
||||||
|
|
||||||
<LI><I>verbose</I> = switch to activate the report of per-particle quantities to the screen
|
<LI><I>switch2</I> = switch to activate the report of per-particle quantities to the screen
|
||||||
|
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
@ -47,10 +44,9 @@ MeiLiftProps
|
|||||||
MeiLiftProps
|
MeiLiftProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
useSecondOrderTerms;
|
useSecondOrderTerms;
|
||||||
interpolation;
|
interpolation true;
|
||||||
verbose;
|
verbose true;
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
<P><B>Description:</B>
|
<P><B>Description:</B>
|
||||||
|
|||||||
@ -18,17 +18,15 @@ forceModels
|
|||||||
MeiLiftProps
|
MeiLiftProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
useSecondOrderTerms;
|
useSecondOrderTerms;
|
||||||
interpolation;
|
interpolation "switch1";
|
||||||
verbose;
|
verbose "switch2";
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||||
{density} = name of the finite volume fluid density field :l
|
|
||||||
{useSecondOrderTerms} = switch to activate second order terms in the lift force model :l
|
{useSecondOrderTerms} = switch to activate second order terms in the lift force model :l
|
||||||
{interpolation} = switch to activate tri-linear interpolation of the flow quantities at the particle position :l
|
{switch1} = switch to activate tri-linear interpolation of the flow quantities at the particle position :l
|
||||||
{verbose} = switch to activate the report of per-particle quantities to the screen :l
|
{switch2} = switch to activate the report of per-particle quantities to the screen :l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
@ -40,10 +38,9 @@ forceModels
|
|||||||
MeiLiftProps
|
MeiLiftProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
useSecondOrderTerms;
|
useSecondOrderTerms;
|
||||||
interpolation;
|
interpolation true;
|
||||||
verbose;
|
verbose true;
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|||||||
@ -20,13 +20,10 @@
|
|||||||
SchillerNaumannDragProps
|
SchillerNaumannDragProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
||||||
|
|
||||||
<LI><I>density</I> = name of the finite volume gravity field
|
|
||||||
|
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
<P><B>Examples:</B>
|
<P><B>Examples:</B>
|
||||||
@ -38,7 +35,6 @@ SchillerNaumannDragProps
|
|||||||
SchillerNaumannDragProps
|
SchillerNaumannDragProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
<P><B>Description:</B>
|
<P><B>Description:</B>
|
||||||
|
|||||||
@ -18,11 +18,9 @@ forceModels
|
|||||||
SchillerNaumannDragProps
|
SchillerNaumannDragProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||||
{density} = name of the finite volume gravity field :l
|
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
@ -34,7 +32,6 @@ forceModels
|
|||||||
SchillerNaumannDragProps
|
SchillerNaumannDragProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|||||||
@ -20,14 +20,11 @@
|
|||||||
ShirgaonkarIBProps
|
ShirgaonkarIBProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
pressureFieldName "pressure";
|
pressureFieldName "pressure";
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
||||||
|
|
||||||
<LI><I>density</I> = name of the finite volume density field
|
|
||||||
|
|
||||||
<LI><I>pressure</I> = name of the finite volume pressure field
|
<LI><I>pressure</I> = name of the finite volume pressure field
|
||||||
|
|
||||||
|
|
||||||
@ -41,7 +38,6 @@ ShirgaonkarIBProps
|
|||||||
ShirgaonkarIBProps
|
ShirgaonkarIBProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
pressureFieldName "p";
|
pressureFieldName "p";
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|||||||
@ -18,12 +18,10 @@ forceModels
|
|||||||
ShirgaonkarIBProps
|
ShirgaonkarIBProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
pressureFieldName "pressure";
|
pressureFieldName "pressure";
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||||
{density} = name of the finite volume density field :l
|
|
||||||
{pressure} = name of the finite volume pressure field :l
|
{pressure} = name of the finite volume pressure field :l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
@ -36,7 +34,6 @@ forceModels
|
|||||||
ShirgaonkarIBProps
|
ShirgaonkarIBProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
pressureFieldName "p";
|
pressureFieldName "p";
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
|
|||||||
@ -20,18 +20,15 @@
|
|||||||
gradPForceProps
|
gradPForceProps
|
||||||
{
|
{
|
||||||
pFieldName "pressure";
|
pFieldName "pressure";
|
||||||
densityFieldName "density";
|
|
||||||
velocityFieldName "U";
|
velocityFieldName "U";
|
||||||
interpolation;
|
interpolation switch1;
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>pressure</I> = name of the finite volume fluid pressure field
|
<UL><LI><I>pressure</I> = name of the finite volume fluid pressure field
|
||||||
|
|
||||||
<LI><I>density</I> = name of the finite volume gravity field
|
|
||||||
|
|
||||||
<LI><I>U</I> = name of the finite volume fluid velocity field
|
<LI><I>U</I> = name of the finite volume fluid velocity field
|
||||||
|
|
||||||
<LI><I>interpolation</I> = flag to use interpolated pressure values (normally off)
|
<LI><I>switch1</I> = flag to use interpolated pressure values (normally off)
|
||||||
|
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
@ -44,9 +41,8 @@ gradPForceProps
|
|||||||
gradPForceProps
|
gradPForceProps
|
||||||
{
|
{
|
||||||
pFieldName "p";
|
pFieldName "p";
|
||||||
densityFieldName "rho";
|
|
||||||
velocityFieldName "U";
|
velocityFieldName "U";
|
||||||
interpolation;
|
interpolation true;
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
<P><B>Description:</B>
|
<P><B>Description:</B>
|
||||||
|
|||||||
@ -18,15 +18,13 @@ forceModels
|
|||||||
gradPForceProps
|
gradPForceProps
|
||||||
\{
|
\{
|
||||||
pFieldName "pressure";
|
pFieldName "pressure";
|
||||||
densityFieldName "density";
|
|
||||||
velocityFieldName "U";
|
velocityFieldName "U";
|
||||||
interpolation;
|
interpolation switch1;
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{pressure} = name of the finite volume fluid pressure field :ulb,l
|
{pressure} = name of the finite volume fluid pressure field :ulb,l
|
||||||
{density} = name of the finite volume gravity field :l
|
|
||||||
{U} = name of the finite volume fluid velocity field :l
|
{U} = name of the finite volume fluid velocity field :l
|
||||||
{interpolation} = flag to use interpolated pressure values (normally off) :l
|
{switch1} = flag to use interpolated pressure values (normally off) :l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
@ -38,9 +36,8 @@ forceModels
|
|||||||
gradPForceProps
|
gradPForceProps
|
||||||
\{
|
\{
|
||||||
pFieldName "p";
|
pFieldName "p";
|
||||||
densityFieldName "rho";
|
|
||||||
velocityFieldName "U";
|
velocityFieldName "U";
|
||||||
interpolation;
|
interpolation true;
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|||||||
@ -20,13 +20,10 @@
|
|||||||
virtualMassForceProps
|
virtualMassForceProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
||||||
|
|
||||||
<LI><I>density</I> = name of the finite volume fluid density field
|
|
||||||
|
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
<P><B>Examples:</B>
|
<P><B>Examples:</B>
|
||||||
@ -38,7 +35,6 @@ virtualMassForceProps
|
|||||||
virtualMassForceProps
|
virtualMassForceProps
|
||||||
{
|
{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
<P><B>Description:</B>
|
<P><B>Description:</B>
|
||||||
|
|||||||
@ -18,11 +18,9 @@ forceModels
|
|||||||
virtualMassForceProps
|
virtualMassForceProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||||
{density} = name of the finite volume fluid density field :l
|
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
@ -34,7 +32,6 @@ forceModels
|
|||||||
virtualMassForceProps
|
virtualMassForceProps
|
||||||
\{
|
\{
|
||||||
velFieldName "U";
|
velFieldName "U";
|
||||||
densityFieldName "rho";
|
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|||||||
@ -20,15 +20,12 @@
|
|||||||
viscForceProps
|
viscForceProps
|
||||||
{
|
{
|
||||||
velocityFieldName "U";
|
velocityFieldName "U";
|
||||||
densityFieldName "density";
|
interpolation "switch";
|
||||||
interpolation;
|
|
||||||
};
|
};
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
<UL><LI><I>U</I> = name of the finite volume fluid velocity field
|
||||||
|
|
||||||
<LI><I>density</I> = name of the finite volume gravity field
|
<LI><I>switch</I> = flag to use interpolated stress values (normally off)
|
||||||
|
|
||||||
<LI><I>interpolation</I> = flag to use interpolated stress values (normally off)
|
|
||||||
|
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
@ -41,7 +38,6 @@ viscForceProps
|
|||||||
viscForceProps
|
viscForceProps
|
||||||
{
|
{
|
||||||
velocityFieldName "U";
|
velocityFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
<P><B>Description:</B>
|
<P><B>Description:</B>
|
||||||
|
|||||||
@ -18,13 +18,11 @@ forceModels
|
|||||||
viscForceProps
|
viscForceProps
|
||||||
\{
|
\{
|
||||||
velocityFieldName "U";
|
velocityFieldName "U";
|
||||||
densityFieldName "density";
|
interpolation "switch";
|
||||||
interpolation;
|
|
||||||
\}; :pre
|
\}; :pre
|
||||||
|
|
||||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||||
{density} = name of the finite volume gravity field :l
|
{switch} = flag to use interpolated stress values (normally off) :l
|
||||||
{interpolation} = flag to use interpolated stress values (normally off) :l
|
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
@ -36,7 +34,6 @@ forceModels
|
|||||||
viscForceProps
|
viscForceProps
|
||||||
\{
|
\{
|
||||||
velocityFieldName "U";
|
velocityFieldName "U";
|
||||||
densityFieldName "density";
|
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
|||||||
Binary file not shown.
@ -26,13 +26,12 @@ writeLiggghtsProps
|
|||||||
verbose;
|
verbose;
|
||||||
}
|
}
|
||||||
</PRE>
|
</PRE>
|
||||||
<UL><LI><I>switch1</I> = switch (choose on/off) to select if only last step is stored or every write step.
|
<UL><LI><I>switch1</I> = switch (choose on/off) to select if only last step is stored or every write step (default on).
|
||||||
|
|
||||||
<LI><I>name</I> = name of the restart file to be written in /$caseDir/DEM/ default default "liggghts.restartCFDEM"
|
<LI><I>name</I> = name of the restart file to be written in /$caseDir/DEM/ default (default "liggghts.restartCFDEM")
|
||||||
|
|
||||||
<LI><I>switch2</I> = switch (choose on/off) to select if only one restart file $name or many files $name_$timeStamp are written
|
<LI><I>switch2</I> = switch (choose on/off) to select if only one restart file $name or many files $name_$timeStamp are written (default off):l
|
||||||
|
<I>verbose</I> = (default off) for verbose run
|
||||||
<LI><I>verbose</I> = (normally off) for verbose run
|
|
||||||
|
|
||||||
|
|
||||||
</UL>
|
</UL>
|
||||||
|
|||||||
@ -24,10 +24,10 @@ writeLiggghtsProps
|
|||||||
verbose;
|
verbose;
|
||||||
\} :pre
|
\} :pre
|
||||||
|
|
||||||
{switch1} = switch (choose on/off) to select if only last step is stored or every write step. :ulb,l
|
{switch1} = switch (choose on/off) to select if only last step is stored or every write step (default on). :ulb,l
|
||||||
{name} = name of the restart file to be written in /$caseDir/DEM/ default default "liggghts.restartCFDEM" :l
|
{name} = name of the restart file to be written in /$caseDir/DEM/ default (default "liggghts.restartCFDEM") :l
|
||||||
{switch2} = switch (choose on/off) to select if only one restart file $name or many files $name_$timeStamp are written :l
|
{switch2} = switch (choose on/off) to select if only one restart file $name or many files $name_$timeStamp are written (default off):l
|
||||||
{verbose} = (normally off) for verbose run :l
|
{verbose} = (default off) for verbose run :l
|
||||||
:ule
|
:ule
|
||||||
|
|
||||||
[Examples:]
|
[Examples:]
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
cfdemCloud = cfdemCloud
|
cfdemCloud = cfdemCloud
|
||||||
forceModels = subModels/forceModel
|
forceModels = subModels/forceModel
|
||||||
|
forceSubModels = subModels/forceModel/forceSubModels
|
||||||
forceModelsMS = subModels/forceModelMS
|
forceModelsMS = subModels/forceModelMS
|
||||||
IOModels = subModels/IOModel
|
IOModels = subModels/IOModel
|
||||||
voidFractionModels = subModels/voidFractionModel
|
voidFractionModels = subModels/voidFractionModel
|
||||||
|
voidFractionModelsMS = subModels/voidFractionModelMS
|
||||||
locateModels = subModels/locateModel
|
locateModels = subModels/locateModel
|
||||||
meshMotionModels = subModels/meshMotionModel
|
meshMotionModels = subModels/meshMotionModel
|
||||||
momCoupleModels = subModels/momCoupleModel
|
momCoupleModels = subModels/momCoupleModel
|
||||||
regionModels = subModels/regionModel
|
|
||||||
dataExchangeModels = subModels/dataExchangeModel
|
dataExchangeModels = subModels/dataExchangeModel
|
||||||
averagingModels = subModels/averagingModel
|
averagingModels = subModels/averagingModel
|
||||||
clockModels = subModels/clockModel
|
clockModels = subModels/clockModel
|
||||||
@ -15,44 +16,79 @@ smoothingModels = subModels/smoothingModel
|
|||||||
probeModels = subModels/probeModel
|
probeModels = subModels/probeModel
|
||||||
|
|
||||||
$(cfdemCloud)/cfdemCloud.C
|
$(cfdemCloud)/cfdemCloud.C
|
||||||
|
derived/cfdemCloudBiDisperse/cfdemCloudBiDisperse.C
|
||||||
|
derived/cfdemCloudBiDisperseRotation/cfdemCloudBiDisperseRotation.C
|
||||||
derived/cfdemCloudIB/cfdemCloudIB.C
|
derived/cfdemCloudIB/cfdemCloudIB.C
|
||||||
derived/cfdemCloudMS/cfdemCloudMS.C
|
derived/cfdemCloudMS/cfdemCloudMS.C
|
||||||
|
derived/cfdemCloudSRF/cfdemCloudSRF.C
|
||||||
|
|
||||||
$(forceModels)/forceModel/forceModel.C
|
$(forceModels)/forceModel/forceModel.C
|
||||||
$(forceModels)/forceModel/newForceModel.C
|
$(forceModels)/forceModel/newForceModel.C
|
||||||
$(forceModels)/noDrag/noDrag.C
|
$(forceModels)/noDrag/noDrag.C
|
||||||
$(forceModels)/checkCouplingInterval/checkCouplingInterval.C
|
$(forceModels)/checkCouplingInterval/checkCouplingInterval.C
|
||||||
|
$(forceModels)/DEMbasedDrag/DEMbasedDrag.C
|
||||||
$(forceModels)/DiFeliceDrag/DiFeliceDrag.C
|
$(forceModels)/DiFeliceDrag/DiFeliceDrag.C
|
||||||
|
$(forceModels)/DiFeliceDragNLift/DiFeliceDragNLift.C
|
||||||
$(forceModels)/GidaspowDrag/GidaspowDrag.C
|
$(forceModels)/GidaspowDrag/GidaspowDrag.C
|
||||||
|
$(forceModels)/RongDrag/RongDrag.C
|
||||||
$(forceModels)/SchillerNaumannDrag/SchillerNaumannDrag.C
|
$(forceModels)/SchillerNaumannDrag/SchillerNaumannDrag.C
|
||||||
$(forceModels)/Archimedes/Archimedes.C
|
$(forceModels)/Archimedes/Archimedes.C
|
||||||
$(forceModels)/ArchimedesIB/ArchimedesIB.C
|
$(forceModels)/ArchimedesIB/ArchimedesIB.C
|
||||||
$(forceModels)/interface/interface.C
|
$(forceModels)/interface/interface.C
|
||||||
$(forceModels)/ShirgaonkarIB/ShirgaonkarIB.C
|
$(forceModels)/ShirgaonkarIB/ShirgaonkarIB.C
|
||||||
|
$(forceModels)/interfaceParticleProbe/interfaceParticleProbe.C
|
||||||
|
$(forceModels)/fieldStore/fieldStore.C
|
||||||
|
$(forceModels)/fieldTimeAverage/fieldTimeAverage.C
|
||||||
|
$(forceModels)/fieldBound/fieldBound.C
|
||||||
|
$(forceModels)/volWeightedAverage/volWeightedAverage.C
|
||||||
|
$(forceModels)/totalMomentumExchange/totalMomentumExchange.C
|
||||||
|
$(forceModels)/UStore/UStore.C
|
||||||
$(forceModels)/KochHillDrag/KochHillDrag.C
|
$(forceModels)/KochHillDrag/KochHillDrag.C
|
||||||
$(forceModels)/KochHillRWDrag/KochHillRWDrag.C
|
$(forceModels)/KochHillRWDrag/KochHillRWDrag.C
|
||||||
|
$(forceModels)/BeetstraDrag/multiphaseFlowBasic/multiphaseFlowBasic.C
|
||||||
|
$(forceModels)/BeetstraDrag/BeetstraDrag.C
|
||||||
|
$(forceModels)/OzelSundaresanDrag/OzelSundaresanDrag.C
|
||||||
|
$(forceModels)/LaEuScalarLiquid/LaEuScalarLiquid.C
|
||||||
$(forceModels)/LaEuScalarTemp/LaEuScalarTemp.C
|
$(forceModels)/LaEuScalarTemp/LaEuScalarTemp.C
|
||||||
|
$(forceModels)/LaEuScalarDust/LaEuScalarDust.C
|
||||||
$(forceModels)/virtualMassForce/virtualMassForce.C
|
$(forceModels)/virtualMassForce/virtualMassForce.C
|
||||||
$(forceModels)/gradPForce/gradPForce.C
|
$(forceModels)/gradPForce/gradPForce.C
|
||||||
|
$(forceModels)/gradULiftForce/gradULiftForce.C
|
||||||
|
$(forceModels)/HollowayDrag/HollowayDrag.C
|
||||||
$(forceModels)/viscForce/viscForce.C
|
$(forceModels)/viscForce/viscForce.C
|
||||||
$(forceModels)/MeiLift/MeiLift.C
|
$(forceModels)/MeiLift/MeiLift.C
|
||||||
|
$(forceModels)/melting/melting.C
|
||||||
|
/*$(forceModels)/KochHillDragNLift/KochHillDragNLift.C*/
|
||||||
|
$(forceModels)/stokesSpheroidDrag/stokesSpheroidDrag.C
|
||||||
|
$(forceModels)/solidsPressureForce/solidsPressureForce.C
|
||||||
|
$(forceModels)/periodicPressure/periodicPressure.C
|
||||||
|
$(forceModels)/periodicPressureControl/periodicPressureControl.C
|
||||||
|
$(forceModels)/averageSlipVel/averageSlipVel.C
|
||||||
$(forceModels)/particleCellVolume/particleCellVolume.C
|
$(forceModels)/particleCellVolume/particleCellVolume.C
|
||||||
$(forceModels)/fieldTimeAverage/fieldTimeAverage.C
|
|
||||||
$(forceModels)/volWeightedAverage/volWeightedAverage.C
|
$(forceSubModels)/forceSubModel/newForceSubModel.C
|
||||||
|
$(forceSubModels)/forceSubModel/forceSubModel.C
|
||||||
|
$(forceSubModels)/ImEx/ImEx.C
|
||||||
|
$(forceSubModels)/ImExCorr/ImExCorr.C
|
||||||
|
|
||||||
$(forceModelsMS)/forceModelMS/forceModelMS.C
|
$(forceModelsMS)/forceModelMS/forceModelMS.C
|
||||||
$(forceModelsMS)/forceModelMS/newForceModelMS.C
|
$(forceModelsMS)/forceModelMS/newForceModelMS.C
|
||||||
$(forceModelsMS)/DiFeliceDragMS/DiFeliceDragMS.C
|
$(forceModelsMS)/DiFeliceDragMS/DiFeliceDragMS.C
|
||||||
|
$(forceModelsMS)/GidaspowDragMS/GidaspowDragMS.C
|
||||||
|
$(forceModelsMS)/noDragMS/noDragMS.C
|
||||||
|
|
||||||
$(probeModels)/probeModel/probeModel.C
|
$(probeModels)/probeModel/probeModel.C
|
||||||
$(probeModels)/probeModel/newProbeModel.C
|
$(probeModels)/probeModel/newProbeModel.C
|
||||||
$(probeModels)/noProbe/noProbe.C
|
$(probeModels)/noProbe/noProbe.C
|
||||||
$(probeModels)/particleProbe/particleProbe.C
|
$(probeModels)/particleProbe/particleProbe.C
|
||||||
|
/*$(probeModels)/interfaceParticleProbe/interfaceParticleProbe.C*/
|
||||||
|
|
||||||
$(IOModels)/IOModel/IOModel.C
|
$(IOModels)/IOModel/IOModel.C
|
||||||
$(IOModels)/IOModel/newIOModel.C
|
$(IOModels)/IOModel/newIOModel.C
|
||||||
$(IOModels)/noIO/noIO.C
|
$(IOModels)/noIO/noIO.C
|
||||||
$(IOModels)/basicIO/basicIO.C
|
$(IOModels)/basicIO/basicIO.C
|
||||||
|
$(IOModels)/tempIO/tempIO.C
|
||||||
|
$(IOModels)/colorIO/colorIO.C
|
||||||
$(IOModels)/trackIO/trackIO.C
|
$(IOModels)/trackIO/trackIO.C
|
||||||
$(IOModels)/sophIO/sophIO.C
|
$(IOModels)/sophIO/sophIO.C
|
||||||
|
|
||||||
@ -60,46 +96,54 @@ $(voidFractionModels)/voidFractionModel/voidFractionModel.C
|
|||||||
$(voidFractionModels)/voidFractionModel/newVoidFractionModel.C
|
$(voidFractionModels)/voidFractionModel/newVoidFractionModel.C
|
||||||
$(voidFractionModels)/centreVoidFraction/centreVoidFraction.C
|
$(voidFractionModels)/centreVoidFraction/centreVoidFraction.C
|
||||||
$(voidFractionModels)/dividedVoidFraction/dividedVoidFraction.C
|
$(voidFractionModels)/dividedVoidFraction/dividedVoidFraction.C
|
||||||
|
$(voidFractionModels)/dividedVoidFractionBiDi/dividedVoidFractionBiDi.C
|
||||||
$(voidFractionModels)/dividedVoidFractionMS/dividedVoidFractionMS.C
|
$(voidFractionModels)/dividedVoidFractionMS/dividedVoidFractionMS.C
|
||||||
$(voidFractionModels)/bigParticleVoidFraction/bigParticleVoidFraction.C
|
$(voidFractionModels)/bigParticleVoidFraction/bigParticleVoidFraction.C
|
||||||
$(voidFractionModels)/GaussVoidFraction/GaussVoidFraction.C
|
$(voidFractionModels)/GaussVoidFraction/GaussVoidFraction.C
|
||||||
$(voidFractionModels)/IBVoidFraction/IBVoidFraction.C
|
$(voidFractionModels)/IBVoidFraction/IBVoidFraction.C
|
||||||
|
$(voidFractionModels)/weightedNeigbhorsVoidFraction/weightedNeigbhorsVoidFraction.C
|
||||||
|
|
||||||
|
$(voidFractionModelsMS)/voidFractionModelMS/voidFractionModelMS.C
|
||||||
|
$(voidFractionModelsMS)/voidFractionModelMS/newVoidFractionModelMS.C
|
||||||
|
|
||||||
$(locateModels)/locateModel/locateModel.C
|
$(locateModels)/locateModel/locateModel.C
|
||||||
$(locateModels)/locateModel/newLocateModel.C
|
$(locateModels)/locateModel/newLocateModel.C
|
||||||
$(locateModels)/standardSearch/standardSearch.C
|
$(locateModels)/standardSearch/standardSearch.C
|
||||||
$(locateModels)/engineSearch/engineSearch.C
|
$(locateModels)/engineSearch/engineSearch.C
|
||||||
$(locateModels)/turboEngineSearch/turboEngineSearch.C
|
|
||||||
$(locateModels)/engineSearchMany2Many/engineSearchMany2Many.C
|
$(locateModels)/engineSearchMany2Many/engineSearchMany2Many.C
|
||||||
|
$(locateModels)/turboEngineSearch/turboEngineSearch.C
|
||||||
|
$(locateModels)/turboEngineSearchM2M/turboEngineSearchM2M.C
|
||||||
$(locateModels)/engineSearchIB/engineSearchIB.C
|
$(locateModels)/engineSearchIB/engineSearchIB.C
|
||||||
|
$(locateModels)/hyperEngineSearch/hyperEngineSearch.C
|
||||||
|
$(locateModels)/ijkSearch/ijkSearch.C
|
||||||
|
|
||||||
$(meshMotionModels)/meshMotionModel/meshMotionModel.C
|
$(meshMotionModels)/meshMotionModel/meshMotionModel.C
|
||||||
$(meshMotionModels)/meshMotionModel/newMeshMotionModel.C
|
$(meshMotionModels)/meshMotionModel/newMeshMotionModel.C
|
||||||
$(meshMotionModels)/noMeshMotion/noMeshMotion.C
|
$(meshMotionModels)/noMeshMotion/noMeshMotion.C
|
||||||
|
$(meshMotionModels)/DEMdrivenMeshMotion/DEMdrivenMeshMotion.C
|
||||||
|
$(meshMotionModels)/IBMeshMotion/IBMeshMotion.C
|
||||||
|
|
||||||
$(momCoupleModels)/momCoupleModel/momCoupleModel.C
|
$(momCoupleModels)/momCoupleModel/momCoupleModel.C
|
||||||
$(momCoupleModels)/momCoupleModel/newMomCoupleModel.C
|
$(momCoupleModels)/momCoupleModel/newMomCoupleModel.C
|
||||||
$(momCoupleModels)/explicitCouple/explicitCouple.C
|
$(momCoupleModels)/explicitCouple/explicitCouple.C
|
||||||
|
$(momCoupleModels)/explicitCoupleSource/explicitCoupleSource.C
|
||||||
$(momCoupleModels)/implicitCouple/implicitCouple.C
|
$(momCoupleModels)/implicitCouple/implicitCouple.C
|
||||||
$(momCoupleModels)/noCouple/noCouple.C
|
$(momCoupleModels)/noCouple/noCouple.C
|
||||||
|
|
||||||
$(regionModels)/regionModel/regionModel.C
|
|
||||||
$(regionModels)/regionModel/newRegionModel.C
|
|
||||||
$(regionModels)/allRegion/allRegion.C
|
|
||||||
|
|
||||||
$(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C
|
$(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C
|
||||||
$(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C
|
$(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C
|
||||||
$(dataExchangeModels)/oneWayVTK/oneWayVTK.C
|
$(dataExchangeModels)/oneWayVTK/oneWayVTK.C
|
||||||
$(dataExchangeModels)/twoWayFiles/twoWayFiles.C
|
$(dataExchangeModels)/twoWayFiles/twoWayFiles.C
|
||||||
$(dataExchangeModels)/noDataExchange/noDataExchange.C
|
$(dataExchangeModels)/noDataExchange/noDataExchange.C
|
||||||
$(dataExchangeModels)/twoWayMPI/twoWayMPI.C
|
$(dataExchangeModels)/twoWayMPI/twoWayMPI.C
|
||||||
|
$(dataExchangeModels)/twoWayM2M/twoWayM2M.C
|
||||||
$(dataExchangeModels)/twoWayMany2Many/twoWayMany2Many.C
|
$(dataExchangeModels)/twoWayMany2Many/twoWayMany2Many.C
|
||||||
|
|
||||||
$(averagingModels)/averagingModel/averagingModel.C
|
$(averagingModels)/averagingModel/averagingModel.C
|
||||||
$(averagingModels)/averagingModel/newAveragingModel.C
|
$(averagingModels)/averagingModel/newAveragingModel.C
|
||||||
$(averagingModels)/dilute/dilute.C
|
$(averagingModels)/dilute/dilute.C
|
||||||
$(averagingModels)/dense/dense.C
|
$(averagingModels)/dense/dense.C
|
||||||
|
$(averagingModels)/denseBiDi/denseBiDi.C
|
||||||
|
|
||||||
$(clockModels)/clockModel/clockModel.C
|
$(clockModels)/clockModel/clockModel.C
|
||||||
$(clockModels)/clockModel/newClockModel.C
|
$(clockModels)/clockModel/newClockModel.C
|
||||||
@ -108,8 +152,10 @@ $(clockModels)/noClock/noClock.C
|
|||||||
|
|
||||||
$(liggghtsCommandModels)/liggghtsCommandModel/liggghtsCommandModel.C
|
$(liggghtsCommandModels)/liggghtsCommandModel/liggghtsCommandModel.C
|
||||||
$(liggghtsCommandModels)/liggghtsCommandModel/newLiggghtsCommandModel.C
|
$(liggghtsCommandModels)/liggghtsCommandModel/newLiggghtsCommandModel.C
|
||||||
|
$(liggghtsCommandModels)/colorParticles/colorParticles.C
|
||||||
$(liggghtsCommandModels)/execute/execute.C
|
$(liggghtsCommandModels)/execute/execute.C
|
||||||
$(liggghtsCommandModels)/runLiggghts/runLiggghts.C
|
$(liggghtsCommandModels)/runLiggghts/runLiggghts.C
|
||||||
|
$(liggghtsCommandModels)/setDEMGravity/setDEMGravity.C
|
||||||
$(liggghtsCommandModels)/writeLiggghts/writeLiggghts.C
|
$(liggghtsCommandModels)/writeLiggghts/writeLiggghts.C
|
||||||
$(liggghtsCommandModels)/readLiggghtsData/readLiggghtsData.C
|
$(liggghtsCommandModels)/readLiggghtsData/readLiggghtsData.C
|
||||||
|
|
||||||
@ -117,5 +163,6 @@ $(smoothingModels)/smoothingModel/smoothingModel.C
|
|||||||
$(smoothingModels)/smoothingModel/newSmoothingModel.C
|
$(smoothingModels)/smoothingModel/newSmoothingModel.C
|
||||||
$(smoothingModels)/noSmoothing/noSmoothing.C
|
$(smoothingModels)/noSmoothing/noSmoothing.C
|
||||||
$(smoothingModels)/constDiffSmoothing/constDiffSmoothing.C
|
$(smoothingModels)/constDiffSmoothing/constDiffSmoothing.C
|
||||||
|
$(smoothingModels)/localPSizeDiffSmoothing/localPSizeDiffSmoothing.C
|
||||||
|
|
||||||
LIB = $(CFDEM_LIB_DIR)/lib$(CFDEM_LIB_NAME)
|
LIB = $(CFDEM_LIB_DIR)/lib$(CFDEM_LIB_NAME)
|
||||||
|
|||||||
@ -10,15 +10,17 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/transportModels \
|
-I$(LIB_SRC)/transportModels \
|
||||||
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
|
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||||
|
-I$(LIB_SRC)/triSurface/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||||
-I$(LIB_SRC)/OpenFOAM/containers/HashTables/labelHashSet \
|
-I$(LIB_SRC)/OpenFOAM/containers/HashTables/labelHashSet \
|
||||||
-I$(CFDEM_LIGGGHTS_SRC_DIR) \
|
-I$(CFDEM_LIGGGHTS_SRC_DIR) \
|
||||||
-I$(CFDEM_M2MLIB_PATH) \
|
-I$(CFDEM_M2MLIB_PATH) \
|
||||||
|
-I$(CFDEM_Many2ManyLIB_PATH) \
|
||||||
-I$(CFDEM_SRC_DIR)/cfdTools \
|
-I$(CFDEM_SRC_DIR)/cfdTools \
|
||||||
|
|
||||||
LIB_LIBS = \
|
LIB_LIBS = \
|
||||||
$(PLIBS) \
|
$(PLIBS) \
|
||||||
-L$(CFDEM_LIB_DIR) \
|
-L$(FOAM_USER_LIBBIN) \
|
||||||
-lfiniteVolume \
|
-lfiniteVolume \
|
||||||
-lincompressibleRASModels \
|
-lincompressibleRASModels \
|
||||||
-lincompressibleLESModels \
|
-lincompressibleLESModels \
|
||||||
@ -27,5 +29,11 @@ LIB_LIBS = \
|
|||||||
-lmpi_cxx \
|
-lmpi_cxx \
|
||||||
-L$(CFDEM_LIGGGHTS_SRC_DIR) \
|
-L$(CFDEM_LIGGGHTS_SRC_DIR) \
|
||||||
-Wl,--whole-archive -l$(CFDEM_LIGGGHTS_LIB_NAME) -Wl,--no-whole-archive \
|
-Wl,--whole-archive -l$(CFDEM_LIGGGHTS_LIB_NAME) -Wl,--no-whole-archive \
|
||||||
|
-L$(CFDEM_M2MLIB_PATH) \
|
||||||
|
-lcouple \
|
||||||
-L$(CFDEM_Many2ManyLIB_PATH) \
|
-L$(CFDEM_Many2ManyLIB_PATH) \
|
||||||
-lcoupleMany2Many
|
-lcoupleMany2Many \
|
||||||
|
|
||||||
|
/* add -I$(CFDEM_POEMSLIB_PATH) \ to EXE_INC */
|
||||||
|
/* -L$(CFDEM_POEMSLIB_PATH) \ */
|
||||||
|
/* -lpoems */
|
||||||
|
|||||||
@ -4,8 +4,7 @@
|
|||||||
word modelType = particleCloud.modelType();
|
word modelType = particleCloud.modelType();
|
||||||
|
|
||||||
//Warning << "model type not being checked" << endl;
|
//Warning << "model type not being checked" << endl;
|
||||||
|
if (modelType=="Bfull"){
|
||||||
if (modelType=="B"){
|
|
||||||
Info << "solving volume averaged Navier Stokes equations of type B\n"<< endl;
|
Info << "solving volume averaged Navier Stokes equations of type B\n"<< endl;
|
||||||
|
|
||||||
// check if Archimedes is used
|
// check if Archimedes is used
|
||||||
@ -18,6 +17,41 @@
|
|||||||
if(!found)
|
if(!found)
|
||||||
FatalError <<"Archimedes model not found!\n" << abort(FatalError);
|
FatalError <<"Archimedes model not found!\n" << abort(FatalError);
|
||||||
|
|
||||||
|
// check if gradPForce is used
|
||||||
|
found=false;
|
||||||
|
forAll(particleCloud.forceModels(),i)
|
||||||
|
{
|
||||||
|
if(particleCloud.forceModels()[i]=="gradPForce")
|
||||||
|
found=true;
|
||||||
|
}
|
||||||
|
if(!found)
|
||||||
|
FatalError <<"gradPForce model not found!\n" << abort(FatalError);
|
||||||
|
|
||||||
|
// check if viscForce is used
|
||||||
|
found=false;
|
||||||
|
forAll(particleCloud.forceModels(),i)
|
||||||
|
{
|
||||||
|
if(particleCloud.forceModels()[i]=="viscForce")
|
||||||
|
found=true;
|
||||||
|
}
|
||||||
|
if(!found)
|
||||||
|
FatalError <<"viscForce model not found!\n" << abort(FatalError);
|
||||||
|
|
||||||
|
}else if(modelType=="B"){
|
||||||
|
Info << "solving volume averaged Navier Stokes equations of type B\n"<< endl;
|
||||||
|
|
||||||
|
// check if Archimedes is used
|
||||||
|
bool found=false;
|
||||||
|
forAll(particleCloud.forceModels(),i)
|
||||||
|
{
|
||||||
|
if(particleCloud.forceModels()[i]=="Archimedes")
|
||||||
|
found=true;
|
||||||
|
}
|
||||||
|
if(!found)
|
||||||
|
FatalError <<"Archimedes model not found!\n" << abort(FatalError);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// check if gradP and viscForce are used
|
// check if gradP and viscForce are used
|
||||||
found=false;
|
found=false;
|
||||||
forAll(particleCloud.forceModels(),i)
|
forAll(particleCloud.forceModels(),i)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
word CFDEMversion="cfdem-2.7.2";
|
word CFDEMversion="cfdem-2.7.9";
|
||||||
word compatibleLIGGGHTSversion="3.0.2";
|
word compatibleLIGGGHTSversion="3.0.3";
|
||||||
word OFversion="2.3.x-commit-4d6f4a3115ff76ec4154c580eb041bc95ba4ec09";
|
word OFversion="2.3.x-commit-4d6f4a3115ff76ec4154c580eb041bc95ba4ec09";
|
||||||
|
|
||||||
Info << "\nCFDEMcoupling version: " << CFDEMversion << "\n" << endl;
|
Info << "\nCFDEMcoupling version: " << CFDEMversion << "\n" << endl;
|
||||||
|
|||||||
@ -80,6 +80,7 @@ Foam::cfdemCloud::cfdemCloud
|
|||||||
positions_(NULL),
|
positions_(NULL),
|
||||||
velocities_(NULL),
|
velocities_(NULL),
|
||||||
fluidVel_(NULL),
|
fluidVel_(NULL),
|
||||||
|
fAcc_(NULL),
|
||||||
impForces_(NULL),
|
impForces_(NULL),
|
||||||
expForces_(NULL),
|
expForces_(NULL),
|
||||||
DEMForces_(NULL),
|
DEMForces_(NULL),
|
||||||
@ -89,6 +90,7 @@ Foam::cfdemCloud::cfdemCloud
|
|||||||
cellIDs_(NULL),
|
cellIDs_(NULL),
|
||||||
particleWeights_(NULL),
|
particleWeights_(NULL),
|
||||||
particleVolumes_(NULL),
|
particleVolumes_(NULL),
|
||||||
|
particleV_(NULL),
|
||||||
numberOfParticles_(0),
|
numberOfParticles_(0),
|
||||||
numberOfParticlesChanged_(false),
|
numberOfParticlesChanged_(false),
|
||||||
arraysReallocated_(false),
|
arraysReallocated_(false),
|
||||||
@ -99,6 +101,7 @@ Foam::cfdemCloud::cfdemCloud
|
|||||||
cg_(1.),
|
cg_(1.),
|
||||||
cgOK_(true),
|
cgOK_(true),
|
||||||
impDEMdrag_(false),
|
impDEMdrag_(false),
|
||||||
|
impDEMdragAcc_(false),
|
||||||
imExSplitFactor_(1.0),
|
imExSplitFactor_(1.0),
|
||||||
treatVoidCellsAsExplicitForce_(false),
|
treatVoidCellsAsExplicitForce_(false),
|
||||||
useDDTvoidfraction_(false),
|
useDDTvoidfraction_(false),
|
||||||
@ -279,6 +282,7 @@ Foam::cfdemCloud::~cfdemCloud()
|
|||||||
dataExchangeM().destroy(positions_,3);
|
dataExchangeM().destroy(positions_,3);
|
||||||
dataExchangeM().destroy(velocities_,3);
|
dataExchangeM().destroy(velocities_,3);
|
||||||
dataExchangeM().destroy(fluidVel_,3);
|
dataExchangeM().destroy(fluidVel_,3);
|
||||||
|
dataExchangeM().destroy(fAcc_,3);
|
||||||
dataExchangeM().destroy(impForces_,3);
|
dataExchangeM().destroy(impForces_,3);
|
||||||
dataExchangeM().destroy(expForces_,3);
|
dataExchangeM().destroy(expForces_,3);
|
||||||
dataExchangeM().destroy(DEMForces_,3);
|
dataExchangeM().destroy(DEMForces_,3);
|
||||||
@ -288,6 +292,7 @@ Foam::cfdemCloud::~cfdemCloud()
|
|||||||
dataExchangeM().destroy(cellIDs_,1);
|
dataExchangeM().destroy(cellIDs_,1);
|
||||||
dataExchangeM().destroy(particleWeights_,1);
|
dataExchangeM().destroy(particleWeights_,1);
|
||||||
dataExchangeM().destroy(particleVolumes_,1);
|
dataExchangeM().destroy(particleVolumes_,1);
|
||||||
|
dataExchangeM().destroy(particleV_,1);
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * private Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * private Member Functions * * * * * * * * * * * * * //
|
||||||
void Foam::cfdemCloud::getDEMdata()
|
void Foam::cfdemCloud::getDEMdata()
|
||||||
@ -295,6 +300,9 @@ void Foam::cfdemCloud::getDEMdata()
|
|||||||
dataExchangeM().getData("radius","scalar-atom",radii_);
|
dataExchangeM().getData("radius","scalar-atom",radii_);
|
||||||
dataExchangeM().getData("x","vector-atom",positions_);
|
dataExchangeM().getData("x","vector-atom",positions_);
|
||||||
dataExchangeM().getData("v","vector-atom",velocities_);
|
dataExchangeM().getData("v","vector-atom",velocities_);
|
||||||
|
|
||||||
|
if(impDEMdragAcc_)
|
||||||
|
dataExchangeM().getData("dragAcc","vector-atom",fAcc_); // array is used twice - might be necessary to clean it first
|
||||||
}
|
}
|
||||||
|
|
||||||
void Foam::cfdemCloud::giveDEMdata()
|
void Foam::cfdemCloud::giveDEMdata()
|
||||||
@ -305,6 +313,7 @@ void Foam::cfdemCloud::giveDEMdata()
|
|||||||
|
|
||||||
if(impDEMdrag_)
|
if(impDEMdrag_)
|
||||||
{
|
{
|
||||||
|
if(verbose_) Info << "sending Ksl and uf" << endl;
|
||||||
dataExchangeM().giveData("Ksl","scalar-atom",Cds_);
|
dataExchangeM().giveData("Ksl","scalar-atom",Cds_);
|
||||||
dataExchangeM().giveData("uf","vector-atom",fluidVel_);
|
dataExchangeM().giveData("uf","vector-atom",fluidVel_);
|
||||||
}
|
}
|
||||||
@ -499,7 +508,7 @@ bool Foam::cfdemCloud::evolve
|
|||||||
// set void fraction field
|
// set void fraction field
|
||||||
clockM().start(19,"setvoidFraction");
|
clockM().start(19,"setvoidFraction");
|
||||||
if(verbose_) Info << "- setvoidFraction()" << endl;
|
if(verbose_) Info << "- setvoidFraction()" << endl;
|
||||||
voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_);
|
voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_,particleV_);
|
||||||
if(verbose_) Info << "setvoidFraction done." << endl;
|
if(verbose_) Info << "setvoidFraction done." << endl;
|
||||||
clockM().stop("setvoidFraction");
|
clockM().stop("setvoidFraction");
|
||||||
|
|
||||||
@ -507,7 +516,6 @@ bool Foam::cfdemCloud::evolve
|
|||||||
clockM().start(20,"setVectorAverage");
|
clockM().start(20,"setVectorAverage");
|
||||||
setVectorAverages();
|
setVectorAverages();
|
||||||
|
|
||||||
|
|
||||||
//Smoothen "next" fields
|
//Smoothen "next" fields
|
||||||
smoothingM().dSmoothing();
|
smoothingM().dSmoothing();
|
||||||
smoothingM().smoothen(voidFractionM().voidFractionNext());
|
smoothingM().smoothen(voidFractionM().voidFractionNext());
|
||||||
@ -592,6 +600,7 @@ bool Foam::cfdemCloud::reAllocArrays() const
|
|||||||
dataExchangeM().allocateArray(positions_,0.,3);
|
dataExchangeM().allocateArray(positions_,0.,3);
|
||||||
dataExchangeM().allocateArray(velocities_,0.,3);
|
dataExchangeM().allocateArray(velocities_,0.,3);
|
||||||
dataExchangeM().allocateArray(fluidVel_,0.,3);
|
dataExchangeM().allocateArray(fluidVel_,0.,3);
|
||||||
|
dataExchangeM().allocateArray(fAcc_,0.,3);
|
||||||
dataExchangeM().allocateArray(impForces_,0.,3);
|
dataExchangeM().allocateArray(impForces_,0.,3);
|
||||||
dataExchangeM().allocateArray(expForces_,0.,3);
|
dataExchangeM().allocateArray(expForces_,0.,3);
|
||||||
dataExchangeM().allocateArray(DEMForces_,0.,3);
|
dataExchangeM().allocateArray(DEMForces_,0.,3);
|
||||||
@ -601,6 +610,7 @@ bool Foam::cfdemCloud::reAllocArrays() const
|
|||||||
dataExchangeM().allocateArray(cellIDs_,-1.,voidFractionM().maxCellsPerParticle());
|
dataExchangeM().allocateArray(cellIDs_,-1.,voidFractionM().maxCellsPerParticle());
|
||||||
dataExchangeM().allocateArray(particleWeights_,0.,voidFractionM().maxCellsPerParticle());
|
dataExchangeM().allocateArray(particleWeights_,0.,voidFractionM().maxCellsPerParticle());
|
||||||
dataExchangeM().allocateArray(particleVolumes_,0.,voidFractionM().maxCellsPerParticle());
|
dataExchangeM().allocateArray(particleVolumes_,0.,voidFractionM().maxCellsPerParticle());
|
||||||
|
dataExchangeM().allocateArray(particleV_,0.,1);
|
||||||
arraysReallocated_ = true;
|
arraysReallocated_ = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -612,7 +622,7 @@ tmp<fvVectorMatrix> cfdemCloud::divVoidfractionTau(volVectorField& U,volScalarFi
|
|||||||
return
|
return
|
||||||
(
|
(
|
||||||
- fvm::laplacian(voidfractionNuEff(voidfraction), U)
|
- fvm::laplacian(voidfractionNuEff(voidfraction), U)
|
||||||
- fvc::div(voidfractionNuEff(voidfraction)*dev(fvc::grad(U)().T()))
|
- fvc::div(voidfractionNuEff(voidfraction)*dev2(fvc::grad(U)().T()))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -645,7 +655,7 @@ void cfdemCloud::calcDdtVoidfraction(volScalarField& voidfraction) const
|
|||||||
|
|
||||||
tmp<volScalarField> cfdemCloud::voidfractionNuEff(volScalarField& voidfraction) const
|
tmp<volScalarField> cfdemCloud::voidfractionNuEff(volScalarField& voidfraction) const
|
||||||
{
|
{
|
||||||
if (modelType_=="B")
|
if (modelType_=="B" || modelType_=="Bfull")
|
||||||
{
|
{
|
||||||
return tmp<volScalarField>
|
return tmp<volScalarField>
|
||||||
(
|
(
|
||||||
|
|||||||
@ -102,6 +102,8 @@ protected:
|
|||||||
|
|
||||||
mutable double **fluidVel_;
|
mutable double **fluidVel_;
|
||||||
|
|
||||||
|
mutable double **fAcc_;
|
||||||
|
|
||||||
mutable double **impForces_;
|
mutable double **impForces_;
|
||||||
|
|
||||||
mutable double **expForces_;
|
mutable double **expForces_;
|
||||||
@ -120,6 +122,8 @@ protected:
|
|||||||
|
|
||||||
mutable double **particleVolumes_;
|
mutable double **particleVolumes_;
|
||||||
|
|
||||||
|
mutable double **particleV_;
|
||||||
|
|
||||||
int numberOfParticles_;
|
int numberOfParticles_;
|
||||||
|
|
||||||
bool numberOfParticlesChanged_;
|
bool numberOfParticlesChanged_;
|
||||||
@ -140,6 +144,8 @@ protected:
|
|||||||
|
|
||||||
bool impDEMdrag_;
|
bool impDEMdrag_;
|
||||||
|
|
||||||
|
bool impDEMdragAcc_;
|
||||||
|
|
||||||
mutable scalar imExSplitFactor_;
|
mutable scalar imExSplitFactor_;
|
||||||
|
|
||||||
mutable bool treatVoidCellsAsExplicitForce_; //will treat the coupling force in cells with no Us data explicitly
|
mutable bool treatVoidCellsAsExplicitForce_; //will treat the coupling force in cells with no Us data explicitly
|
||||||
@ -246,6 +252,8 @@ public:
|
|||||||
|
|
||||||
inline const bool& impDEMdrag() const;
|
inline const bool& impDEMdrag() const;
|
||||||
|
|
||||||
|
inline const bool& impDEMdragAcc() const;
|
||||||
|
|
||||||
inline const scalar& imExSplitFactor() const;
|
inline const scalar& imExSplitFactor() const;
|
||||||
|
|
||||||
inline const bool& treatVoidCellsAsExplicitForce() const;
|
inline const bool& treatVoidCellsAsExplicitForce() const;
|
||||||
@ -266,6 +274,8 @@ public:
|
|||||||
|
|
||||||
inline double ** fluidVels() const;
|
inline double ** fluidVels() const;
|
||||||
|
|
||||||
|
inline double ** fAccs() const;
|
||||||
|
|
||||||
inline double ** impForces() const;
|
inline double ** impForces() const;
|
||||||
|
|
||||||
inline double ** expForces() const;
|
inline double ** expForces() const;
|
||||||
|
|||||||
@ -55,6 +55,11 @@ inline const bool& cfdemCloud::impDEMdrag() const
|
|||||||
return impDEMdrag_;
|
return impDEMdrag_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline const bool& cfdemCloud::impDEMdragAcc() const
|
||||||
|
{
|
||||||
|
return impDEMdragAcc_;
|
||||||
|
};
|
||||||
|
|
||||||
inline const scalar& cfdemCloud::imExSplitFactor() const
|
inline const scalar& cfdemCloud::imExSplitFactor() const
|
||||||
{
|
{
|
||||||
return imExSplitFactor_;
|
return imExSplitFactor_;
|
||||||
@ -110,6 +115,11 @@ inline double ** cfdemCloud::fluidVels() const
|
|||||||
return fluidVel_;
|
return fluidVel_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline double ** cfdemCloud::fAccs() const
|
||||||
|
{
|
||||||
|
return fAcc_;
|
||||||
|
}
|
||||||
|
|
||||||
inline double ** cfdemCloud::impForces() const
|
inline double ** cfdemCloud::impForces() const
|
||||||
{
|
{
|
||||||
return impForces_;
|
return impForces_;
|
||||||
@ -174,7 +184,7 @@ inline label Foam::cfdemCloud::body(int index)
|
|||||||
|
|
||||||
inline double cfdemCloud::particleVolume(int index)
|
inline double cfdemCloud::particleVolume(int index)
|
||||||
{
|
{
|
||||||
return particleVolumes_[index][0];
|
return particleV_[index][0];
|
||||||
}
|
}
|
||||||
|
|
||||||
inline scalar cfdemCloud::radius(int index)
|
inline scalar cfdemCloud::radius(int index)
|
||||||
|
|||||||
@ -121,7 +121,7 @@ bool Foam::cfdemCloudIB::evolve()
|
|||||||
|
|
||||||
// set void fraction field
|
// set void fraction field
|
||||||
if(verbose_) Info << "- setvoidFraction()" << endl;
|
if(verbose_) Info << "- setvoidFraction()" << endl;
|
||||||
voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_);
|
voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_,particleV_);
|
||||||
if(verbose_) Info << "setvoidFraction done." << endl;
|
if(verbose_) Info << "setvoidFraction done." << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,6 +190,7 @@ void Foam::cfdemCloudIB::calcVelocityCorrection
|
|||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
U.correctBoundaryConditions();
|
||||||
|
|
||||||
// make field divergence free - set reference value in case it is needed
|
// make field divergence free - set reference value in case it is needed
|
||||||
fvScalarMatrix phiIBEqn
|
fvScalarMatrix phiIBEqn
|
||||||
|
|||||||
@ -56,8 +56,8 @@ cfdemCloudMS::cfdemCloudMS
|
|||||||
cellIDsCM_(NULL),
|
cellIDsCM_(NULL),
|
||||||
bodies_(NULL),
|
bodies_(NULL),
|
||||||
nrigids_(NULL),
|
nrigids_(NULL),
|
||||||
nClumpTypes_(1),
|
|
||||||
clumpType_(NULL),
|
clumpType_(NULL),
|
||||||
|
nClumpTypes_(1),
|
||||||
clumpVol_(NULL),
|
clumpVol_(NULL),
|
||||||
clumpDH_(NULL),
|
clumpDH_(NULL),
|
||||||
clumpWeights_(NULL),
|
clumpWeights_(NULL),
|
||||||
@ -73,6 +73,8 @@ cfdemCloudMS::cfdemCloudMS
|
|||||||
DEMForcesCM_(NULL),
|
DEMForcesCM_(NULL),
|
||||||
numberOfClumps_(-1),
|
numberOfClumps_(-1),
|
||||||
numberOfClumpsChanged_(false),
|
numberOfClumpsChanged_(false),
|
||||||
|
manDHdev_(false),
|
||||||
|
dHbyV_(scalarList(0)),
|
||||||
useforcePerClump_(false),
|
useforcePerClump_(false),
|
||||||
forceModels_(couplingProperties_.lookup("forceModelsMS"))
|
forceModels_(couplingProperties_.lookup("forceModelsMS"))
|
||||||
{
|
{
|
||||||
@ -86,6 +88,7 @@ cfdemCloudMS::cfdemCloudMS
|
|||||||
forceModels_[i]
|
forceModels_[i]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -133,8 +136,16 @@ void cfdemCloudMS::getDEMdata()
|
|||||||
//- save clump volume and mass
|
//- save clump volume and mass
|
||||||
double **typeDH(NULL);
|
double **typeDH(NULL);
|
||||||
dataExchangeM().allocateArray(typeDH,-1,1,nClumpTypes()+1);
|
dataExchangeM().allocateArray(typeDH,-1,1,nClumpTypes()+1);
|
||||||
|
if(manDHdev_) // use manually defined dH
|
||||||
|
{
|
||||||
|
for(int k = 1;k <= nClumpTypes(); k++)
|
||||||
|
typeDH[k][0]=dHbyV_[k-1]*typeVol_[k];
|
||||||
|
}
|
||||||
|
else // calc dH from volAeqivalent shpere
|
||||||
|
{
|
||||||
for(int k = 1;k <= nClumpTypes(); k++)
|
for(int k = 1;k <= nClumpTypes(); k++)
|
||||||
typeDH[k][0]=pow(typeVol_[k]*1.9099,1./3.); // 6/pi=1.9099 // calc a hydraulic diameter as d of vol equal sphere
|
typeDH[k][0]=pow(typeVol_[k]*1.9099,1./3.); // 6/pi=1.9099 // calc a hydraulic diameter as d of vol equal sphere
|
||||||
|
}
|
||||||
|
|
||||||
int ct(0);
|
int ct(0);
|
||||||
for(int ind = 0;ind < numberOfClumps(); ind++)
|
for(int ind = 0;ind < numberOfClumps(); ind++)
|
||||||
@ -193,7 +204,7 @@ bool cfdemCloudMS::reAllocArrays() const
|
|||||||
dataExchangeM().allocateArray(cellIDsCM_,-1,1,"nbodies");
|
dataExchangeM().allocateArray(cellIDsCM_,-1,1,"nbodies");
|
||||||
dataExchangeM().allocateArray(bodies_,0,1);
|
dataExchangeM().allocateArray(bodies_,0,1);
|
||||||
dataExchangeM().allocateArray(nrigids_,0,1,"nbodies");
|
dataExchangeM().allocateArray(nrigids_,0,1,"nbodies");
|
||||||
dataExchangeM().allocateArray(clumpType_,0,3,"nbodies");
|
dataExchangeM().allocateArray(clumpType_,0,1,"nbodies");
|
||||||
dataExchangeM().allocateArray(clumpVol_,0,1,"nbodies");
|
dataExchangeM().allocateArray(clumpVol_,0,1,"nbodies");
|
||||||
dataExchangeM().allocateArray(clumpDH_,1.,1,"nbodies");
|
dataExchangeM().allocateArray(clumpDH_,1.,1,"nbodies");
|
||||||
dataExchangeM().allocateArray(clumpWeights_,1,1,"nbodies");
|
dataExchangeM().allocateArray(clumpWeights_,1,1,"nbodies");
|
||||||
@ -215,7 +226,6 @@ bool cfdemCloudMS::reAllocArrays() const
|
|||||||
void Foam::cfdemCloudMS::setNumberOfParticles(int nP)
|
void Foam::cfdemCloudMS::setNumberOfParticles(int nP)
|
||||||
{
|
{
|
||||||
cfdemCloud::setNumberOfParticles(nP);
|
cfdemCloud::setNumberOfParticles(nP);
|
||||||
|
|
||||||
int nC = dataExchangeM().getNumberOfClumps();
|
int nC = dataExchangeM().getNumberOfClumps();
|
||||||
|
|
||||||
if(nC != numberOfClumps())
|
if(nC != numberOfClumps())
|
||||||
@ -223,6 +233,9 @@ void Foam::cfdemCloudMS::setNumberOfParticles(int nP)
|
|||||||
numberOfClumpsChanged_ = true;
|
numberOfClumpsChanged_ = true;
|
||||||
numberOfClumps_ = nC;
|
numberOfClumps_ = nC;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// in case last particle has left an ma-_tag_ms is not up to date
|
||||||
|
numberOfClumps_ = min(numberOfParticles(),numberOfClumps_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Foam::cfdemCloudMS::findCells()
|
void Foam::cfdemCloudMS::findCells()
|
||||||
|
|||||||
@ -59,7 +59,6 @@ class cfdemCloudMS
|
|||||||
public cfdemCloud
|
public cfdemCloud
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
mutable double **positionsCM_;
|
mutable double **positionsCM_;
|
||||||
mutable double **velocitiesCM_;
|
mutable double **velocitiesCM_;
|
||||||
mutable double **cellIDsCM_;
|
mutable double **cellIDsCM_;
|
||||||
@ -86,9 +85,10 @@ private:
|
|||||||
|
|
||||||
int numberOfClumps_;
|
int numberOfClumps_;
|
||||||
bool numberOfClumpsChanged_;
|
bool numberOfClumpsChanged_;
|
||||||
|
Switch manDHdev_;
|
||||||
|
scalarList dHbyV_;
|
||||||
|
|
||||||
bool useforcePerClump_;
|
bool useforcePerClump_;
|
||||||
|
|
||||||
const wordList forceModels_;
|
const wordList forceModels_;
|
||||||
autoPtr<class forceModelMS>* forceModel_;
|
autoPtr<class forceModelMS>* forceModel_;
|
||||||
|
|
||||||
@ -154,6 +154,12 @@ public:
|
|||||||
|
|
||||||
inline bool numberOfClumpsChanged() const;
|
inline bool numberOfClumpsChanged() const;
|
||||||
|
|
||||||
|
inline void setManDHdev(Switch);
|
||||||
|
|
||||||
|
inline void setDHbyV(scalarList);
|
||||||
|
|
||||||
|
inline scalarList& dHbyV();
|
||||||
|
|
||||||
inline bool useforcePerClump() const;
|
inline bool useforcePerClump() const;
|
||||||
|
|
||||||
const forceModel& forceM(int);
|
const forceModel& forceM(int);
|
||||||
|
|||||||
@ -138,6 +138,21 @@ inline bool cfdemCloudMS::numberOfClumpsChanged() const
|
|||||||
return numberOfClumpsChanged_;
|
return numberOfClumpsChanged_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline void cfdemCloudMS::setManDHdev(Switch v)
|
||||||
|
{
|
||||||
|
manDHdev_ = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void cfdemCloudMS::setDHbyV(scalarList v)
|
||||||
|
{
|
||||||
|
dHbyV_ = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline scalarList& cfdemCloudMS::dHbyV()
|
||||||
|
{
|
||||||
|
return dHbyV_;
|
||||||
|
}
|
||||||
|
|
||||||
inline bool cfdemCloudMS::useforcePerClump() const
|
inline bool cfdemCloudMS::useforcePerClump() const
|
||||||
{
|
{
|
||||||
return useforcePerClump_;
|
return useforcePerClump_;
|
||||||
|
|||||||
@ -37,12 +37,22 @@
|
|||||||
#- export environment variables (adapt to your paths)
|
#- export environment variables (adapt to your paths)
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#check if default lammps lib path should be used
|
||||||
|
if [[ $CFDEM_LAMMPS_LIB_DIR == "" ]]; then
|
||||||
|
export CFDEM_LAMMPS_LIB_DIR=$CFDEM_LIGGGHTS_SRC_DIR/../lib/
|
||||||
|
else
|
||||||
|
echo "using already defined CFDEM_LAMMPS_LIB_DIR=$CFDEM_LAMMPS_LIB_DIR ."
|
||||||
|
fi
|
||||||
|
|
||||||
#- LIGGGHTS lib name
|
#- LIGGGHTS lib name
|
||||||
export CFDEM_LIGGGHTS_LIB_NAME=lmp_$CFDEM_LIGGGHTS_MAKEFILE_NAME
|
export CFDEM_LIGGGHTS_LIB_NAME=lmp_$CFDEM_LIGGGHTS_MAKEFILE_NAME
|
||||||
|
|
||||||
#- CFDEM lib name
|
#- CFDEM lib name
|
||||||
export CFDEM_LIB_NAME=lagrangianCFDEM-$CFDEM_VERSION-$WM_PROJECT_VERSION
|
export CFDEM_LIB_NAME=lagrangianCFDEM-$CFDEM_VERSION-$WM_PROJECT_VERSION
|
||||||
|
|
||||||
|
#-----------------------------------------------------
|
||||||
|
# additional libraries
|
||||||
|
|
||||||
#- LMP Many2Many lib path and makefile
|
#- LMP Many2Many lib path and makefile
|
||||||
export CFDEM_Many2ManyLIB_PATH=$CFDEM_SRC_DIR/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMany2Many/library
|
export CFDEM_Many2ManyLIB_PATH=$CFDEM_SRC_DIR/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMany2Many/library
|
||||||
export CFDEM_Many2ManyLIB_MAKEFILENAME=$CFDEM_LIGGGHTS_MAKEFILE_NAME
|
export CFDEM_Many2ManyLIB_MAKEFILENAME=$CFDEM_LIGGGHTS_MAKEFILE_NAME
|
||||||
@ -52,9 +62,14 @@ export CFDEM_M2MLIB_PATH=$CFDEM_SRC_DIR/lagrangian/cfdemParticle/subModels/dataE
|
|||||||
export CFDEM_M2MLIB_MAKEFILENAME=$CFDEM_LIGGGHTS_MAKEFILE_NAME
|
export CFDEM_M2MLIB_MAKEFILENAME=$CFDEM_LIGGGHTS_MAKEFILE_NAME
|
||||||
|
|
||||||
#- LMP POEMS lib path and makefile
|
#- LMP POEMS lib path and makefile
|
||||||
export CFDEM_POEMSLIB_PATH=$CFDEM_LIGGGHTS_SRC_DIR/../lib/poems
|
export CFDEM_POEMSLIB_PATH=$CFDEM_LAMMPS_LIB_DIR/poems
|
||||||
export CFDEM_POEMSLIB_MAKEFILENAME=g++
|
export CFDEM_POEMSLIB_MAKEFILENAME=g++
|
||||||
|
|
||||||
|
#- LMP ASPHERE lib path and makefile
|
||||||
|
export CFDEM_ASPHERELIB_PATH=$CFDEM_LAMMPS_LIB_DIR/poems
|
||||||
|
export CFDEM_ASPHERELIB_MAKEFILENAME=g++
|
||||||
|
#-----------------------------------------------------
|
||||||
|
|
||||||
#- path to test harness
|
#- path to test harness
|
||||||
export CFDEM_TEST_HARNESS_PATH=$CFDEM_PROJECT_USER_DIR/log/logFilesCFDEM-$CFDEM_VERSION-$WM_PROJECT_VERSION
|
export CFDEM_TEST_HARNESS_PATH=$CFDEM_PROJECT_USER_DIR/log/logFilesCFDEM-$CFDEM_VERSION-$WM_PROJECT_VERSION
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,8 @@ mkdir -p $logDir
|
|||||||
COUNT=0
|
COUNT=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
logpath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")/$logDir"
|
||||||
|
|
||||||
while [ $COUNT -lt $NLINES ]
|
while [ $COUNT -lt $NLINES ]
|
||||||
do
|
do
|
||||||
let COUNT++
|
let COUNT++
|
||||||
@ -57,7 +59,7 @@ mkdir -p $logDir
|
|||||||
|
|
||||||
#--------------------------------------------------------------------------------#
|
#--------------------------------------------------------------------------------#
|
||||||
#- define variables
|
#- define variables
|
||||||
logpath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")/$logDir"
|
#logpath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")/$logDir"
|
||||||
logfileName="log_compile$LINE""lib"
|
logfileName="log_compile$LINE""lib"
|
||||||
headerText="$logfileName""-$NOW"
|
headerText="$logfileName""-$NOW"
|
||||||
libVarMakefileName="CFDEM_$LINE""LIB_MAKEFILENAME"
|
libVarMakefileName="CFDEM_$LINE""LIB_MAKEFILENAME"
|
||||||
|
|||||||
@ -195,7 +195,13 @@ compileLMPlib()
|
|||||||
rm $logpath/$logfileName
|
rm $logpath/$logfileName
|
||||||
|
|
||||||
#- change path
|
#- change path
|
||||||
|
if [ -d "$libraryPath" ]; then
|
||||||
cd $libraryPath
|
cd $libraryPath
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "lib path $libraryPath does not exist - check settings in .../etc/bashrc."
|
||||||
|
read
|
||||||
|
fi
|
||||||
|
|
||||||
#- header
|
#- header
|
||||||
echo 2>&1 | tee -a $logpath/$logfileName
|
echo 2>&1 | tee -a $logpath/$logfileName
|
||||||
@ -556,6 +562,7 @@ parCFDDEMrun()
|
|||||||
machineFileName="$7"
|
machineFileName="$7"
|
||||||
debugMode="$8"
|
debugMode="$8"
|
||||||
reconstuctCase="$9"
|
reconstuctCase="$9"
|
||||||
|
cleanCase="$10"
|
||||||
#--------------------------------------------------------------------------------#
|
#--------------------------------------------------------------------------------#
|
||||||
|
|
||||||
if [ $debugMode == "on" ]; then
|
if [ $debugMode == "on" ]; then
|
||||||
|
|||||||
@ -1,2 +1,11 @@
|
|||||||
lagrangian/cfdemParticle/dir
|
lagrangian/cfdemParticle/dir
|
||||||
|
|
||||||
|
#====================================================='
|
||||||
|
#- RADL
|
||||||
|
fvOptions/dir
|
||||||
|
cylPorousMedia/dir
|
||||||
|
|
||||||
|
#====================================================='
|
||||||
|
#- other
|
||||||
finiteVolume/dir
|
finiteVolume/dir
|
||||||
|
transportModels/incompressible/dir
|
||||||
|
|||||||
@ -1,4 +1,19 @@
|
|||||||
cfdemSolverPisoMS/dir
|
cfdemIB/dir
|
||||||
|
cfdemIBMesh/dir
|
||||||
|
myPimpleDyMFoam/dir
|
||||||
|
nonNewtonianVoidfractionIcoFoam/dir
|
||||||
cfdemSolverPiso/dir
|
cfdemSolverPiso/dir
|
||||||
cfdemSolverIB/dir
|
cfdemSolverIB/dir
|
||||||
cfdemSolverPisoScalar/dir
|
cfdemSolverPisoScalar/dir
|
||||||
|
cfdemSolverPisoMS/dir
|
||||||
|
cfdemSolverPisoIBm/dir
|
||||||
|
cfdemSolverPimpleImEx/dir
|
||||||
|
cfdemSolverIBInterLubrication/dir
|
||||||
|
cfdemSolverIBScalar/dir
|
||||||
|
cfdemSolverInterDyM/dir
|
||||||
|
cfdemSolverInterDyMPC/dir
|
||||||
|
cfdemSolverBubble/dir
|
||||||
|
cfdemSolverPimpleDyM_22x/dir
|
||||||
|
cfdemSolverPimpleDyMMS_22x/dir
|
||||||
|
cfdemSolverPimpleDyMScalar_22x/dir
|
||||||
|
SRFcfdemSolverPiso/dir
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
#===================================================================#
|
#===================================================================#
|
||||||
# This file specifies the example cases being executed by
|
# This file specifies the example cases being executed by
|
||||||
# .../etc/testTutorial.sh , which can be run with the alias
|
# .../etc/testTutorial.sh , which can be run with the alias
|
||||||
@ -7,15 +6,63 @@
|
|||||||
#===================================================================#
|
#===================================================================#
|
||||||
|
|
||||||
cfdemSolverPiso/settlingTestMPI/dir
|
cfdemSolverPiso/settlingTestMPI/dir
|
||||||
|
|
||||||
cfdemSolverPiso/ErgunTestMPI/dir
|
cfdemSolverPiso/ErgunTestMPI/dir
|
||||||
|
|
||||||
cfdemSolverPiso/ErgunTestMPI_cgs/dir
|
cfdemSolverPiso/ErgunTestMPI_cgs/dir
|
||||||
|
|
||||||
cfdemSolverPiso/ErgunTestMPI_restart/dir
|
cfdemSolverPiso/ErgunTestMPI_restart/dir
|
||||||
|
|
||||||
cfdemSolverIB/twoSpheresGlowinskiMPI/dir
|
cfdemSolverIB/twoSpheresGlowinskiMPI/dir
|
||||||
|
|
||||||
cfdemSolverPisoScalar/packedBedTemp/dir
|
cfdemSolverPisoScalar/packedBedTemp/dir
|
||||||
|
|
||||||
cfdemSolverPiso/ErgunTestCG/dir
|
#===================================================================#
|
||||||
|
# RADL
|
||||||
|
#cfdemSolverPimpleImEx/settlingTestMPI/dir
|
||||||
|
#cfdemSolverPimpleImEx/ErgunTestMPI/dir
|
||||||
|
#cfdemSolverPimpleImEx/crossFlow/dir
|
||||||
|
#cfdemSolverIB/periodicCase/dir
|
||||||
|
#cfdemSolverIB/cfdemIBPeriodicCubicalBox_fullyPeriodic/dir
|
||||||
|
#cfdemSolverIBInterLubrication/twoCoatedParticlesRelMotion_smallTest/dir
|
||||||
|
#cfdemSolverIBScalar/cfdemIBPeriodicCubicalBoxScalar/dir
|
||||||
|
|
||||||
|
#===================================================================#
|
||||||
|
# BLAIS
|
||||||
|
#SRFCfdemSolverPiso/SRFCouette/dir
|
||||||
|
#cfdemSolverPiso/couette/dir
|
||||||
|
#cfdemSolverPiso/plateViscometer/dir
|
||||||
|
#cfdemIBMesh/couette/dir
|
||||||
|
#cfdemSolverPisoIBm/couette/dir
|
||||||
|
|
||||||
|
#===================================================================#
|
||||||
|
# NesteJacobs
|
||||||
|
cfdemSolverBubble/ErgunTestMPI_pureLiquid/dir
|
||||||
|
cfdemSolverBubble/ErgunTestM2M_restart/dir
|
||||||
|
Projects/Neste/cfdemSolverBubble/3pFBreactor/dir
|
||||||
|
cfdemSolverInterDyM/sugarNcoffee/dir
|
||||||
|
Projects/Neste/cfdemSolverInterDyM/3pFBreactor/dir
|
||||||
|
|
||||||
|
#===================================================================#
|
||||||
|
# not in release:
|
||||||
|
|
||||||
|
#cfdemSolverPiso/settlingTestBigParticleMPI/dir
|
||||||
|
#cfdemSolverPiso/ErgunTestCG/dir
|
||||||
|
cfdemSolverPiso/ErgunTestM2M/dir
|
||||||
|
cfdemSolverPiso/ErgunTestMPI_water/dir
|
||||||
|
#cfdemSolverPiso/HopperEmptying/dir
|
||||||
|
|
||||||
|
cfdemSolverPimpleDyM/ErgunTestMPI/dir
|
||||||
|
|
||||||
|
#cfdemSolverPisoMS/settlingTestMPI/dir
|
||||||
|
#cfdemSolverPisoMS/ErgunTestMPI/dir
|
||||||
|
|
||||||
|
#cfdemSolverInterDyM/twoPhaseSettlingTest/dir
|
||||||
|
#cfdemSolverInterDyM/ErgunTestMPI/dir
|
||||||
|
#cfdemSolverInterDyM/granularPiston/dir
|
||||||
|
#cfdemSolverInterDyM/sugarNcoffee/dir
|
||||||
|
|
||||||
|
#cfdemSolverBubble/ErgunTestMPI_pureLiquid/dir
|
||||||
|
|
||||||
|
#- these examples are already designed for 2.3.x
|
||||||
|
#cfdemSolverInterDyMPC/sugarNcoffee/dir
|
||||||
|
#cfdemSolverInterDyMPC/granularPiston/dir
|
||||||
|
#cfdemSolverInterDyMPC/meltingPot/dir
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -50,6 +50,15 @@ int IOModel::dumpDEMdata() const
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IOModel::dumpNow() const
|
||||||
|
{
|
||||||
|
//bool dmp(false);
|
||||||
|
//if (time_.value()+SMALL > time_.endTime().value()-time_.deltaT().value() || time_.outputTime())
|
||||||
|
// dmp=true;
|
||||||
|
|
||||||
|
return time_.outputTime();
|
||||||
|
}
|
||||||
|
|
||||||
fileName IOModel::createTimeDir(fileName path) const
|
fileName IOModel::createTimeDir(fileName path) const
|
||||||
{
|
{
|
||||||
fileName timeDirPath(path/time_.timeName());
|
fileName timeDirPath(path/time_.timeName());
|
||||||
|
|||||||
@ -113,6 +113,8 @@ public:
|
|||||||
|
|
||||||
virtual int dumpDEMdata() const;
|
virtual int dumpDEMdata() const;
|
||||||
|
|
||||||
|
bool dumpNow() const;
|
||||||
|
|
||||||
fileName createTimeDir(fileName) const;
|
fileName createTimeDir(fileName) const;
|
||||||
|
|
||||||
fileName createLagrangianDir(fileName) const;
|
fileName createLagrangianDir(fileName) const;
|
||||||
|
|||||||
@ -84,7 +84,7 @@ basicIO::~basicIO()
|
|||||||
|
|
||||||
int basicIO::dumpDEMdata() const
|
int basicIO::dumpDEMdata() const
|
||||||
{
|
{
|
||||||
if (time_.outputTime())
|
if (dumpNow())
|
||||||
{
|
{
|
||||||
// make time directory
|
// make time directory
|
||||||
if (parOutput_) lagPath_=buildFilePath(dirName_);
|
if (parOutput_) lagPath_=buildFilePath(dirName_);
|
||||||
|
|||||||
@ -79,7 +79,7 @@ int sophIO::dumpDEMdata() const
|
|||||||
{
|
{
|
||||||
int npProcs(-1);
|
int npProcs(-1);
|
||||||
|
|
||||||
if (time_.outputTime())
|
if (dumpNow())
|
||||||
{
|
{
|
||||||
npProcs=basicIO::dumpDEMdata();
|
npProcs=basicIO::dumpDEMdata();
|
||||||
|
|
||||||
|
|||||||
@ -77,7 +77,7 @@ int trackIO::dumpDEMdata() const
|
|||||||
{
|
{
|
||||||
int npProcs(-1);
|
int npProcs(-1);
|
||||||
|
|
||||||
if (time_.outputTime())
|
if (dumpNow())
|
||||||
{
|
{
|
||||||
npProcs = sophIO::dumpDEMdata();
|
npProcs = sophIO::dumpDEMdata();
|
||||||
|
|
||||||
|
|||||||
@ -1,127 +1,31 @@
|
|||||||
error.o: error.cpp /usr/lib/openmpi/include/mpi.h \
|
error.o: error.cpp \
|
||||||
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi.h \
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h \
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||||
/usr/include/c++/4.6/map /usr/include/c++/4.6/bits/stl_tree.h \
|
/usr/include/stdlib.h /usr/include/features.h \
|
||||||
/usr/include/c++/4.6/bits/stl_algobase.h \
|
/usr/include/x86_64-linux-gnu/bits/predefs.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h \
|
|
||||||
/usr/include/features.h /usr/include/x86_64-linux-gnu/bits/predefs.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
|
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
|
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
|
||||||
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
|
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
|
||||||
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
|
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/cpu_defines.h \
|
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
|
||||||
/usr/include/c++/4.6/bits/functexcept.h \
|
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
|
||||||
/usr/include/c++/4.6/bits/exception_defines.h \
|
|
||||||
/usr/include/c++/4.6/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/numeric_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_pair.h /usr/include/c++/4.6/bits/move.h \
|
|
||||||
/usr/include/c++/4.6/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.6/debug/debug.h /usr/include/c++/4.6/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.6/ext/new_allocator.h /usr/include/c++/4.6/new \
|
|
||||||
/usr/include/c++/4.6/exception /usr/include/c++/4.6/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.6/backward/binders.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.6/initializer_list \
|
|
||||||
/usr/include/c++/4.6/bits/stl_multimap.h \
|
|
||||||
/usr/include/c++/4.6/bits/range_access.h /usr/include/c++/4.6/utility \
|
|
||||||
/usr/include/c++/4.6/bits/stl_relops.h \
|
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h /usr/include/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/types.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
|
|
||||||
/usr/include/_G_config.h /usr/include/wchar.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
|
|
||||||
/usr/include/c++/4.6/iostream /usr/include/c++/4.6/ostream \
|
|
||||||
/usr/include/c++/4.6/ios /usr/include/c++/4.6/iosfwd \
|
|
||||||
/usr/include/c++/4.6/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.6/bits/postypes.h /usr/include/c++/4.6/cwchar \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar.h /usr/include/xlocale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar2.h \
|
|
||||||
/usr/include/c++/4.6/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.6/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/4.6/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/endian.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/endian.h \
|
/usr/include/x86_64-linux-gnu/bits/endian.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
|
/usr/include/x86_64-linux-gnu/bits/byteswap.h /usr/include/xlocale.h \
|
||||||
/usr/include/c++/4.6/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.6/ext/atomicity.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sched.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/timex.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/unistd.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/environments.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/unistd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.h /usr/include/c++/4.6/string \
|
|
||||||
/usr/include/c++/4.6/bits/ostream_insert.h \
|
|
||||||
/usr/include/c++/4.6/bits/cxxabi_forced.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.tcc \
|
|
||||||
/usr/include/c++/4.6/streambuf /usr/include/c++/4.6/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.h /usr/include/c++/4.6/cwctype \
|
|
||||||
/usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.6/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/ostream.tcc /usr/include/c++/4.6/istream \
|
|
||||||
/usr/include/c++/4.6/bits/istream.tcc \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/constants.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/exception.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h \
|
|
||||||
/usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file_inln.h \
|
|
||||||
/usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/sys/types.h \
|
/usr/include/x86_64-linux-gnu/sys/types.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/types.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/time.h \
|
||||||
/usr/include/x86_64-linux-gnu/sys/select.h \
|
/usr/include/x86_64-linux-gnu/sys/select.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/select.h \
|
/usr/include/x86_64-linux-gnu/bits/select.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/sigset.h \
|
/usr/include/x86_64-linux-gnu/bits/sigset.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/time.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/select2.h \
|
/usr/include/x86_64-linux-gnu/bits/select2.h \
|
||||||
/usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \
|
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdlib.h error.h
|
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
|
||||||
|
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
|
||||||
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio2.h error.h
|
||||||
|
|||||||
@ -27,101 +27,6 @@ irregular.o: irregular.cpp /usr/include/stdio.h /usr/include/features.h \
|
|||||||
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
|
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
|
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/string3.h irregular.h \
|
/usr/include/x86_64-linux-gnu/bits/string3.h irregular.h \
|
||||||
/usr/lib/openmpi/include/mpi.h \
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi.h \
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h \
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||||
/usr/include/c++/4.6/map /usr/include/c++/4.6/bits/stl_tree.h \
|
memory.h error.h
|
||||||
/usr/include/c++/4.6/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/cpu_defines.h \
|
|
||||||
/usr/include/c++/4.6/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.6/bits/exception_defines.h \
|
|
||||||
/usr/include/c++/4.6/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/numeric_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_pair.h /usr/include/c++/4.6/bits/move.h \
|
|
||||||
/usr/include/c++/4.6/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.6/debug/debug.h /usr/include/c++/4.6/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.6/ext/new_allocator.h /usr/include/c++/4.6/new \
|
|
||||||
/usr/include/c++/4.6/exception /usr/include/c++/4.6/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.6/backward/binders.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.6/initializer_list \
|
|
||||||
/usr/include/c++/4.6/bits/stl_multimap.h \
|
|
||||||
/usr/include/c++/4.6/bits/range_access.h /usr/include/c++/4.6/utility \
|
|
||||||
/usr/include/c++/4.6/bits/stl_relops.h /usr/include/c++/4.6/iostream \
|
|
||||||
/usr/include/c++/4.6/ostream /usr/include/c++/4.6/ios \
|
|
||||||
/usr/include/c++/4.6/iosfwd /usr/include/c++/4.6/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.6/bits/postypes.h /usr/include/c++/4.6/cwchar \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar2.h \
|
|
||||||
/usr/include/c++/4.6/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.6/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/4.6/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/c++/4.6/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.6/ext/atomicity.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/sched.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sched.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/timex.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/unistd.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/environments.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/unistd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.h /usr/include/c++/4.6/string \
|
|
||||||
/usr/include/c++/4.6/bits/ostream_insert.h \
|
|
||||||
/usr/include/c++/4.6/bits/cxxabi_forced.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.tcc \
|
|
||||||
/usr/include/c++/4.6/streambuf /usr/include/c++/4.6/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.h /usr/include/c++/4.6/cwctype \
|
|
||||||
/usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.6/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/ostream.tcc /usr/include/c++/4.6/istream \
|
|
||||||
/usr/include/c++/4.6/bits/istream.tcc \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/constants.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/exception.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file_inln.h memory.h \
|
|
||||||
error.h
|
|
||||||
|
|||||||
@ -21,108 +21,12 @@ lammps_data_write.o: lammps_data_write.cpp /usr/include/stdlib.h \
|
|||||||
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
|
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
|
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/string.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/string3.h lammps_data_write.h \
|
/usr/include/x86_64-linux-gnu/bits/string3.h lammps_data_write.h \
|
||||||
send2one.h /usr/lib/openmpi/include/mpi.h \
|
send2one.h \
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h \
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi.h \
|
||||||
/usr/include/c++/4.6/map /usr/include/c++/4.6/bits/stl_tree.h \
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||||
/usr/include/c++/4.6/bits/stl_algobase.h \
|
/usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \
|
/usr/include/wchar.h /usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/cpu_defines.h \
|
|
||||||
/usr/include/c++/4.6/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.6/bits/exception_defines.h \
|
|
||||||
/usr/include/c++/4.6/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/numeric_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_pair.h /usr/include/c++/4.6/bits/move.h \
|
|
||||||
/usr/include/c++/4.6/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.6/debug/debug.h /usr/include/c++/4.6/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.6/ext/new_allocator.h /usr/include/c++/4.6/new \
|
|
||||||
/usr/include/c++/4.6/exception /usr/include/c++/4.6/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.6/backward/binders.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.6/initializer_list \
|
|
||||||
/usr/include/c++/4.6/bits/stl_multimap.h \
|
|
||||||
/usr/include/c++/4.6/bits/range_access.h /usr/include/c++/4.6/utility \
|
|
||||||
/usr/include/c++/4.6/bits/stl_relops.h \
|
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h /usr/include/stdio.h \
|
|
||||||
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
|
/usr/include/x86_64-linux-gnu/bits/stdio2.h memory.h error.h
|
||||||
/usr/include/c++/4.6/iostream /usr/include/c++/4.6/ostream \
|
|
||||||
/usr/include/c++/4.6/ios /usr/include/c++/4.6/iosfwd \
|
|
||||||
/usr/include/c++/4.6/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.6/bits/postypes.h /usr/include/c++/4.6/cwchar \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar2.h \
|
|
||||||
/usr/include/c++/4.6/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.6/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/4.6/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/c++/4.6/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.6/ext/atomicity.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/sched.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sched.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/timex.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/unistd.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/environments.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/unistd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.h /usr/include/c++/4.6/string \
|
|
||||||
/usr/include/c++/4.6/bits/ostream_insert.h \
|
|
||||||
/usr/include/c++/4.6/bits/cxxabi_forced.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.tcc \
|
|
||||||
/usr/include/c++/4.6/streambuf /usr/include/c++/4.6/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.h /usr/include/c++/4.6/cwctype \
|
|
||||||
/usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.6/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/ostream.tcc /usr/include/c++/4.6/istream \
|
|
||||||
/usr/include/c++/4.6/bits/istream.tcc \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/constants.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/exception.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file_inln.h memory.h \
|
|
||||||
error.h
|
|
||||||
|
|||||||
Binary file not shown.
@ -1,15 +1,26 @@
|
|||||||
many2many.o: many2many.cpp /usr/lib/openmpi/include/mpi.h \
|
many2many.o: many2many.cpp \
|
||||||
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi.h \
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h \
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||||
/usr/include/c++/4.6/map /usr/include/c++/4.6/bits/stl_tree.h \
|
/usr/include/stdio.h /usr/include/features.h \
|
||||||
/usr/include/c++/4.6/bits/stl_algobase.h \
|
/usr/include/x86_64-linux-gnu/bits/predefs.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h \
|
|
||||||
/usr/include/features.h /usr/include/x86_64-linux-gnu/bits/predefs.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
|
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
|
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
|
||||||
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
|
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
|
||||||
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
|
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/types.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
|
||||||
|
/usr/include/_G_config.h /usr/include/wchar.h \
|
||||||
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio2.h many2many.h irregular.h \
|
||||||
|
memory.h error.h /usr/include/c++/4.6/map \
|
||||||
|
/usr/include/c++/4.6/bits/stl_tree.h \
|
||||||
|
/usr/include/c++/4.6/bits/stl_algobase.h \
|
||||||
|
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \
|
||||||
|
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/cpu_defines.h \
|
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/cpu_defines.h \
|
||||||
/usr/include/c++/4.6/bits/functexcept.h \
|
/usr/include/c++/4.6/bits/functexcept.h \
|
||||||
/usr/include/c++/4.6/bits/exception_defines.h \
|
/usr/include/c++/4.6/bits/exception_defines.h \
|
||||||
@ -29,91 +40,4 @@ many2many.o: many2many.cpp /usr/lib/openmpi/include/mpi.h \
|
|||||||
/usr/include/c++/4.6/bits/stl_map.h \
|
/usr/include/c++/4.6/bits/stl_map.h \
|
||||||
/usr/include/c++/4.6/initializer_list \
|
/usr/include/c++/4.6/initializer_list \
|
||||||
/usr/include/c++/4.6/bits/stl_multimap.h \
|
/usr/include/c++/4.6/bits/stl_multimap.h \
|
||||||
/usr/include/c++/4.6/bits/range_access.h /usr/include/c++/4.6/utility \
|
/usr/include/c++/4.6/bits/range_access.h
|
||||||
/usr/include/c++/4.6/bits/stl_relops.h \
|
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h /usr/include/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/types.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
|
|
||||||
/usr/include/_G_config.h /usr/include/wchar.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
|
|
||||||
/usr/include/c++/4.6/iostream /usr/include/c++/4.6/ostream \
|
|
||||||
/usr/include/c++/4.6/ios /usr/include/c++/4.6/iosfwd \
|
|
||||||
/usr/include/c++/4.6/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.6/bits/postypes.h /usr/include/c++/4.6/cwchar \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar.h /usr/include/xlocale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar2.h \
|
|
||||||
/usr/include/c++/4.6/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.6/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/4.6/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/endian.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/endian.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
|
|
||||||
/usr/include/c++/4.6/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.6/ext/atomicity.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sched.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/timex.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/unistd.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/environments.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/unistd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.h /usr/include/c++/4.6/string \
|
|
||||||
/usr/include/c++/4.6/bits/ostream_insert.h \
|
|
||||||
/usr/include/c++/4.6/bits/cxxabi_forced.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.tcc \
|
|
||||||
/usr/include/c++/4.6/streambuf /usr/include/c++/4.6/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.h /usr/include/c++/4.6/cwctype \
|
|
||||||
/usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.6/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/ostream.tcc /usr/include/c++/4.6/istream \
|
|
||||||
/usr/include/c++/4.6/bits/istream.tcc \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/constants.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/exception.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h \
|
|
||||||
/usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file_inln.h many2many.h \
|
|
||||||
irregular.h memory.h error.h
|
|
||||||
|
|||||||
@ -1,127 +1,31 @@
|
|||||||
many2one.o: many2one.cpp /usr/lib/openmpi/include/mpi.h \
|
many2one.o: many2one.cpp \
|
||||||
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi.h \
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h \
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||||
/usr/include/c++/4.6/map /usr/include/c++/4.6/bits/stl_tree.h \
|
/usr/include/stdio.h /usr/include/features.h \
|
||||||
/usr/include/c++/4.6/bits/stl_algobase.h \
|
/usr/include/x86_64-linux-gnu/bits/predefs.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h \
|
|
||||||
/usr/include/features.h /usr/include/x86_64-linux-gnu/bits/predefs.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
|
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
|
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
|
||||||
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
|
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
|
||||||
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
|
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/cpu_defines.h \
|
|
||||||
/usr/include/c++/4.6/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.6/bits/exception_defines.h \
|
|
||||||
/usr/include/c++/4.6/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/numeric_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_pair.h /usr/include/c++/4.6/bits/move.h \
|
|
||||||
/usr/include/c++/4.6/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.6/debug/debug.h /usr/include/c++/4.6/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.6/ext/new_allocator.h /usr/include/c++/4.6/new \
|
|
||||||
/usr/include/c++/4.6/exception /usr/include/c++/4.6/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.6/backward/binders.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.6/initializer_list \
|
|
||||||
/usr/include/c++/4.6/bits/stl_multimap.h \
|
|
||||||
/usr/include/c++/4.6/bits/range_access.h /usr/include/c++/4.6/utility \
|
|
||||||
/usr/include/c++/4.6/bits/stl_relops.h \
|
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h /usr/include/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/types.h \
|
/usr/include/x86_64-linux-gnu/bits/types.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
|
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
|
||||||
/usr/include/_G_config.h /usr/include/wchar.h \
|
/usr/include/_G_config.h /usr/include/wchar.h \
|
||||||
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
|
/usr/include/x86_64-linux-gnu/bits/stdio2.h /usr/include/stdlib.h \
|
||||||
/usr/include/c++/4.6/iostream /usr/include/c++/4.6/ostream \
|
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
|
||||||
/usr/include/c++/4.6/ios /usr/include/c++/4.6/iosfwd \
|
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
|
||||||
/usr/include/c++/4.6/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.6/bits/postypes.h /usr/include/c++/4.6/cwchar \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar.h /usr/include/xlocale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar2.h \
|
|
||||||
/usr/include/c++/4.6/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.6/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/4.6/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/endian.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/endian.h \
|
/usr/include/x86_64-linux-gnu/bits/endian.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
|
/usr/include/x86_64-linux-gnu/bits/byteswap.h /usr/include/xlocale.h \
|
||||||
/usr/include/c++/4.6/bits/ios_base.h \
|
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \
|
||||||
/usr/include/c++/4.6/ext/atomicity.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sched.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/timex.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/unistd.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/environments.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/unistd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.h /usr/include/c++/4.6/string \
|
|
||||||
/usr/include/c++/4.6/bits/ostream_insert.h \
|
|
||||||
/usr/include/c++/4.6/bits/cxxabi_forced.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.tcc \
|
|
||||||
/usr/include/c++/4.6/streambuf /usr/include/c++/4.6/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.h /usr/include/c++/4.6/cwctype \
|
|
||||||
/usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.6/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/ostream.tcc /usr/include/c++/4.6/istream \
|
|
||||||
/usr/include/c++/4.6/bits/istream.tcc \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/constants.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/exception.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h \
|
|
||||||
/usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file_inln.h \
|
|
||||||
/usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/sys/types.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/sys/select.h \
|
/usr/include/x86_64-linux-gnu/sys/select.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/select.h \
|
/usr/include/x86_64-linux-gnu/bits/select.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/sigset.h \
|
/usr/include/x86_64-linux-gnu/bits/sigset.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/time.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/select2.h \
|
/usr/include/x86_64-linux-gnu/bits/select2.h \
|
||||||
/usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \
|
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdlib.h many2one.h memory.h
|
/usr/include/x86_64-linux-gnu/bits/stdlib.h many2one.h memory.h
|
||||||
|
|||||||
@ -1,127 +1,31 @@
|
|||||||
memory.o: memory.cpp /usr/lib/openmpi/include/mpi.h \
|
memory.o: memory.cpp \
|
||||||
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi.h \
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h \
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||||
/usr/include/c++/4.6/map /usr/include/c++/4.6/bits/stl_tree.h \
|
/usr/include/stdlib.h /usr/include/features.h \
|
||||||
/usr/include/c++/4.6/bits/stl_algobase.h \
|
/usr/include/x86_64-linux-gnu/bits/predefs.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h \
|
|
||||||
/usr/include/features.h /usr/include/x86_64-linux-gnu/bits/predefs.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
|
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
|
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
|
||||||
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
|
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
|
||||||
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
|
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/cpu_defines.h \
|
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
|
||||||
/usr/include/c++/4.6/bits/functexcept.h \
|
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
|
||||||
/usr/include/c++/4.6/bits/exception_defines.h \
|
|
||||||
/usr/include/c++/4.6/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/numeric_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_pair.h /usr/include/c++/4.6/bits/move.h \
|
|
||||||
/usr/include/c++/4.6/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.6/debug/debug.h /usr/include/c++/4.6/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.6/ext/new_allocator.h /usr/include/c++/4.6/new \
|
|
||||||
/usr/include/c++/4.6/exception /usr/include/c++/4.6/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.6/backward/binders.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.6/initializer_list \
|
|
||||||
/usr/include/c++/4.6/bits/stl_multimap.h \
|
|
||||||
/usr/include/c++/4.6/bits/range_access.h /usr/include/c++/4.6/utility \
|
|
||||||
/usr/include/c++/4.6/bits/stl_relops.h \
|
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h /usr/include/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/types.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
|
|
||||||
/usr/include/_G_config.h /usr/include/wchar.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
|
|
||||||
/usr/include/c++/4.6/iostream /usr/include/c++/4.6/ostream \
|
|
||||||
/usr/include/c++/4.6/ios /usr/include/c++/4.6/iosfwd \
|
|
||||||
/usr/include/c++/4.6/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.6/bits/postypes.h /usr/include/c++/4.6/cwchar \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar.h /usr/include/xlocale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar2.h \
|
|
||||||
/usr/include/c++/4.6/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.6/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/4.6/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/endian.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/endian.h \
|
/usr/include/x86_64-linux-gnu/bits/endian.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
|
/usr/include/x86_64-linux-gnu/bits/byteswap.h /usr/include/xlocale.h \
|
||||||
/usr/include/c++/4.6/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.6/ext/atomicity.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sched.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/timex.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/unistd.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/environments.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/unistd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.h /usr/include/c++/4.6/string \
|
|
||||||
/usr/include/c++/4.6/bits/ostream_insert.h \
|
|
||||||
/usr/include/c++/4.6/bits/cxxabi_forced.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.tcc \
|
|
||||||
/usr/include/c++/4.6/streambuf /usr/include/c++/4.6/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.h /usr/include/c++/4.6/cwctype \
|
|
||||||
/usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.6/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/ostream.tcc /usr/include/c++/4.6/istream \
|
|
||||||
/usr/include/c++/4.6/bits/istream.tcc \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/constants.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/exception.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h \
|
|
||||||
/usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file_inln.h \
|
|
||||||
/usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/sys/types.h \
|
/usr/include/x86_64-linux-gnu/sys/types.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/types.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/time.h \
|
||||||
/usr/include/x86_64-linux-gnu/sys/select.h \
|
/usr/include/x86_64-linux-gnu/sys/select.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/select.h \
|
/usr/include/x86_64-linux-gnu/bits/select.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/sigset.h \
|
/usr/include/x86_64-linux-gnu/bits/sigset.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/time.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/select2.h \
|
/usr/include/x86_64-linux-gnu/bits/select2.h \
|
||||||
/usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \
|
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdlib.h memory.h error.h
|
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
|
||||||
|
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
|
||||||
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio2.h memory.h error.h
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
one2many.o: one2many.cpp /usr/lib/openmpi/include/mpi.h \
|
one2many.o: one2many.cpp \
|
||||||
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi.h \
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h \
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||||
/usr/include/c++/4.6/map /usr/include/c++/4.6/bits/stl_tree.h \
|
one2many.h /usr/include/c++/4.6/map /usr/include/c++/4.6/bits/stl_tree.h \
|
||||||
/usr/include/c++/4.6/bits/stl_algobase.h \
|
/usr/include/c++/4.6/bits/stl_algobase.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \
|
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h \
|
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h \
|
||||||
@ -29,91 +30,4 @@ one2many.o: one2many.cpp /usr/lib/openmpi/include/mpi.h \
|
|||||||
/usr/include/c++/4.6/bits/stl_map.h \
|
/usr/include/c++/4.6/bits/stl_map.h \
|
||||||
/usr/include/c++/4.6/initializer_list \
|
/usr/include/c++/4.6/initializer_list \
|
||||||
/usr/include/c++/4.6/bits/stl_multimap.h \
|
/usr/include/c++/4.6/bits/stl_multimap.h \
|
||||||
/usr/include/c++/4.6/bits/range_access.h /usr/include/c++/4.6/utility \
|
/usr/include/c++/4.6/bits/range_access.h memory.h
|
||||||
/usr/include/c++/4.6/bits/stl_relops.h \
|
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h /usr/include/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/types.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
|
|
||||||
/usr/include/_G_config.h /usr/include/wchar.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
|
|
||||||
/usr/include/c++/4.6/iostream /usr/include/c++/4.6/ostream \
|
|
||||||
/usr/include/c++/4.6/ios /usr/include/c++/4.6/iosfwd \
|
|
||||||
/usr/include/c++/4.6/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.6/bits/postypes.h /usr/include/c++/4.6/cwchar \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar.h /usr/include/xlocale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar2.h \
|
|
||||||
/usr/include/c++/4.6/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.6/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/4.6/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/endian.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/endian.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
|
|
||||||
/usr/include/c++/4.6/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.6/ext/atomicity.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sched.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/timex.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/unistd.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/environments.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/unistd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.h /usr/include/c++/4.6/string \
|
|
||||||
/usr/include/c++/4.6/bits/ostream_insert.h \
|
|
||||||
/usr/include/c++/4.6/bits/cxxabi_forced.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.tcc \
|
|
||||||
/usr/include/c++/4.6/streambuf /usr/include/c++/4.6/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.h /usr/include/c++/4.6/cwctype \
|
|
||||||
/usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.6/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/ostream.tcc /usr/include/c++/4.6/istream \
|
|
||||||
/usr/include/c++/4.6/bits/istream.tcc \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/constants.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/exception.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h \
|
|
||||||
/usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file_inln.h one2many.h \
|
|
||||||
memory.h
|
|
||||||
|
|||||||
@ -1,127 +1,31 @@
|
|||||||
send2one.o: send2one.cpp /usr/lib/openmpi/include/mpi.h \
|
send2one.o: send2one.cpp \
|
||||||
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi.h \
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stddef.h \
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h \
|
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||||
/usr/include/c++/4.6/map /usr/include/c++/4.6/bits/stl_tree.h \
|
/usr/include/stdlib.h /usr/include/features.h \
|
||||||
/usr/include/c++/4.6/bits/stl_algobase.h \
|
/usr/include/x86_64-linux-gnu/bits/predefs.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/os_defines.h \
|
|
||||||
/usr/include/features.h /usr/include/x86_64-linux-gnu/bits/predefs.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
|
/usr/include/x86_64-linux-gnu/sys/cdefs.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
|
/usr/include/x86_64-linux-gnu/bits/wordsize.h \
|
||||||
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
|
/usr/include/x86_64-linux-gnu/gnu/stubs.h \
|
||||||
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
|
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h \
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/cpu_defines.h \
|
/usr/include/x86_64-linux-gnu/bits/waitflags.h \
|
||||||
/usr/include/c++/4.6/bits/functexcept.h \
|
/usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
|
||||||
/usr/include/c++/4.6/bits/exception_defines.h \
|
|
||||||
/usr/include/c++/4.6/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/type_traits.h \
|
|
||||||
/usr/include/c++/4.6/ext/numeric_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_pair.h /usr/include/c++/4.6/bits/move.h \
|
|
||||||
/usr/include/c++/4.6/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.6/debug/debug.h /usr/include/c++/4.6/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.6/ext/new_allocator.h /usr/include/c++/4.6/new \
|
|
||||||
/usr/include/c++/4.6/exception /usr/include/c++/4.6/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.6/backward/binders.h \
|
|
||||||
/usr/include/c++/4.6/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.6/initializer_list \
|
|
||||||
/usr/include/c++/4.6/bits/stl_multimap.h \
|
|
||||||
/usr/include/c++/4.6/bits/range_access.h /usr/include/c++/4.6/utility \
|
|
||||||
/usr/include/c++/4.6/bits/stl_relops.h \
|
|
||||||
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h /usr/include/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/types.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \
|
|
||||||
/usr/include/_G_config.h /usr/include/wchar.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdio2.h \
|
|
||||||
/usr/include/c++/4.6/iostream /usr/include/c++/4.6/ostream \
|
|
||||||
/usr/include/c++/4.6/ios /usr/include/c++/4.6/iosfwd \
|
|
||||||
/usr/include/c++/4.6/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.6/bits/postypes.h /usr/include/c++/4.6/cwchar \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar.h /usr/include/xlocale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/wchar2.h \
|
|
||||||
/usr/include/c++/4.6/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.6/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.6/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/locale.h /usr/include/c++/4.6/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/endian.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/endian.h \
|
/usr/include/x86_64-linux-gnu/bits/endian.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/byteswap.h \
|
/usr/include/x86_64-linux-gnu/bits/byteswap.h /usr/include/xlocale.h \
|
||||||
/usr/include/c++/4.6/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.6/ext/atomicity.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/sched.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/time.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/timex.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/setjmp.h /usr/include/unistd.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/posix_opt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/environments.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/confname.h /usr/include/getopt.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/unistd.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.h /usr/include/c++/4.6/string \
|
|
||||||
/usr/include/c++/4.6/bits/ostream_insert.h \
|
|
||||||
/usr/include/c++/4.6/bits/cxxabi_forced.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.6/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/locale_classes.tcc \
|
|
||||||
/usr/include/c++/4.6/streambuf /usr/include/c++/4.6/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.h /usr/include/c++/4.6/cwctype \
|
|
||||||
/usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.6/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.6/x86_64-linux-gnu/./bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.6/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.6/bits/ostream.tcc /usr/include/c++/4.6/istream \
|
|
||||||
/usr/include/c++/4.6/bits/istream.tcc \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/constants.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/exception.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/datatype_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h \
|
|
||||||
/usr/include/string.h /usr/include/x86_64-linux-gnu/bits/string3.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/request_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intracomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/topology_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/intercomm_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/group_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/op_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/errhandler_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/status_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/info_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/win_inln.h \
|
|
||||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file_inln.h \
|
|
||||||
/usr/include/stdlib.h /usr/include/x86_64-linux-gnu/bits/waitflags.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/bits/waitstatus.h \
|
|
||||||
/usr/include/x86_64-linux-gnu/sys/types.h \
|
/usr/include/x86_64-linux-gnu/sys/types.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/types.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/time.h \
|
||||||
/usr/include/x86_64-linux-gnu/sys/select.h \
|
/usr/include/x86_64-linux-gnu/sys/select.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/select.h \
|
/usr/include/x86_64-linux-gnu/bits/select.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/sigset.h \
|
/usr/include/x86_64-linux-gnu/bits/sigset.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/time.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/select2.h \
|
/usr/include/x86_64-linux-gnu/bits/select2.h \
|
||||||
/usr/include/x86_64-linux-gnu/sys/sysmacros.h /usr/include/alloca.h \
|
/usr/include/x86_64-linux-gnu/sys/sysmacros.h \
|
||||||
/usr/include/x86_64-linux-gnu/bits/stdlib.h send2one.h memory.h error.h
|
/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/stdio.h \
|
||||||
|
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
|
||||||
|
/usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdarg.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio.h \
|
||||||
|
/usr/include/x86_64-linux-gnu/bits/stdio2.h send2one.h memory.h error.h
|
||||||
|
|||||||
@ -69,6 +69,12 @@ twoWayMany2Many::twoWayMany2Many
|
|||||||
neighbourProcs_(pData_[Pstream::myProcNo()]),
|
neighbourProcs_(pData_[Pstream::myProcNo()]),
|
||||||
neighbourProcIndices_(Pstream::nProcs(), -1)
|
neighbourProcIndices_(Pstream::nProcs(), -1)
|
||||||
{
|
{
|
||||||
|
allowDiagComm_=true;
|
||||||
|
if (propsDict_.found("allowDiagComm"))
|
||||||
|
allowDiagComm_=Switch(propsDict_.lookup("allowDiagComm"));
|
||||||
|
if(!allowDiagComm_)
|
||||||
|
Warning << "Make sure you decompose only in one direction as allowDiagComm flag is false!" << endl;
|
||||||
|
|
||||||
forAll(neighbourProcs_, i) neighbourProcIndices_[neighbourProcs_[i]] = i;
|
forAll(neighbourProcs_, i) neighbourProcIndices_[neighbourProcs_[i]] = i;
|
||||||
|
|
||||||
Info<<"Starting up LIGGGHTS for first time execution"<<endl;
|
Info<<"Starting up LIGGGHTS for first time execution"<<endl;
|
||||||
@ -82,39 +88,28 @@ twoWayMany2Many::twoWayMany2Many
|
|||||||
MPI_Comm_split(MPI_COMM_WORLD,liggghts,0,&comm_liggghts);
|
MPI_Comm_split(MPI_COMM_WORLD,liggghts,0,&comm_liggghts);
|
||||||
|
|
||||||
// open LIGGGHTS input script
|
// open LIGGGHTS input script
|
||||||
FILE *fp=NULL;
|
char *liggghtsPathChar = new char[256];
|
||||||
|
int n = 0;
|
||||||
if (me == 0)
|
if (me == 0)
|
||||||
{
|
{
|
||||||
// read path from dictionary
|
// read path from dictionary
|
||||||
const fileName liggghtsPath(propsDict_.lookup("liggghtsPath"));
|
const fileName liggghtsPath(propsDict_.lookup("liggghtsPath"));
|
||||||
char * liggghtsPathChar = (char*)liggghtsPath.c_str();
|
strcpy(liggghtsPathChar, liggghtsPath.c_str());
|
||||||
|
n = strlen(liggghtsPathChar) + 1;
|
||||||
|
|
||||||
Info<<"Executing input script '"<< liggghtsPath.c_str() <<"'"<<endl;
|
Info<<"Executing input script '"<< liggghtsPath.c_str() <<"'"<<endl;
|
||||||
|
|
||||||
fp = fopen(liggghtsPathChar,"r");
|
|
||||||
|
|
||||||
if (fp == NULL) {
|
|
||||||
printf("ERROR: Could not open LIGGGHTS input script\n");
|
|
||||||
MPI_Abort(MPI_COMM_WORLD,1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (liggghts == 1) lmp = new LAMMPS_NS::LAMMPS(0,NULL,comm_liggghts);
|
if (liggghts == 1) lmp = new LAMMPS_NS::LAMMPS(0,NULL,comm_liggghts);
|
||||||
|
|
||||||
int n;
|
|
||||||
char line[1024];
|
|
||||||
while (1) {
|
|
||||||
if (me == 0) {
|
|
||||||
if (fgets(line,1024,fp) == NULL) n = 0;
|
|
||||||
else n = strlen(line) + 1;
|
|
||||||
if (n == 0) fclose(fp);
|
|
||||||
}
|
|
||||||
MPI_Bcast(&n,1,MPI_INT,0,MPI_COMM_WORLD);
|
MPI_Bcast(&n,1,MPI_INT,0,MPI_COMM_WORLD);
|
||||||
if (n == 0) break;
|
if (n > 0) {
|
||||||
MPI_Bcast(line,n,MPI_CHAR,0,MPI_COMM_WORLD);
|
MPI_Bcast(liggghtsPathChar,n,MPI_CHAR,0,MPI_COMM_WORLD);
|
||||||
if (liggghts == 1) lmp->input->one(line);
|
if (liggghts == 1) lmp->input->file(liggghtsPathChar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete [] liggghtsPathChar;
|
||||||
|
|
||||||
// get DEM time step size
|
// get DEM time step size
|
||||||
DEMts_ = lmp->update->dt;
|
DEMts_ = lmp->update->dt;
|
||||||
checkTSsize();
|
checkTSsize();
|
||||||
@ -189,14 +184,46 @@ void twoWayMany2Many::getData
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
char* charName = wordToChar(name);
|
char* charName = wordToChar(name);
|
||||||
if ( type == "vector-atom" && name != "x")
|
if(name != "x")
|
||||||
|
{
|
||||||
|
if ( type == "vector-atom")
|
||||||
{
|
{
|
||||||
double **tmp_ = (double **) lammps_extract_atom(lmp,charName);
|
double **tmp_ = (double **) lammps_extract_atom(lmp,charName);
|
||||||
|
if(!tmp_)
|
||||||
|
{
|
||||||
|
LAMMPS_NS::Fix *fix = NULL;
|
||||||
|
fix = lmp->modify->find_fix_property(charName,"property/atom","vector",0,0,"cfd coupling",false);
|
||||||
|
if(fix)
|
||||||
|
tmp_ = (double **) static_cast<LAMMPS_NS::FixPropertyAtom*>(fix)->array_atom;
|
||||||
|
else
|
||||||
|
Warning << "coupling fix not found!"<<endl;
|
||||||
|
|
||||||
|
if(!tmp_)
|
||||||
|
FatalError << "find_fix_property " << charName << " array_atom not found." << abort(FatalError);
|
||||||
|
}
|
||||||
|
|
||||||
lmp2foam_vec_->exchange(tmp_ ? tmp_[0] : NULL, field[0]);
|
lmp2foam_vec_->exchange(tmp_ ? tmp_[0] : NULL, field[0]);
|
||||||
}else if (name != "x")
|
}else if ( type == "scalar-atom")
|
||||||
{
|
{
|
||||||
double *tmp_ = (double *) lammps_extract_atom(lmp,charName);
|
double *tmp_ = (double *) lammps_extract_atom(lmp,charName);
|
||||||
|
if(!tmp_)
|
||||||
|
{
|
||||||
|
LAMMPS_NS::Fix *fix = NULL;
|
||||||
|
fix = lmp->modify->find_fix_property(charName,"property/atom","scalar",0,0,"cfd coupling",true);
|
||||||
|
if(fix)
|
||||||
|
tmp_ = (double *) static_cast<LAMMPS_NS::FixPropertyAtom*>(fix)->vector_atom;
|
||||||
|
else
|
||||||
|
FatalError << "coupling fix not found!"<< abort(FatalError);
|
||||||
|
|
||||||
|
if(!tmp_)
|
||||||
|
FatalError << "find_fix_property " << charName << " array_atom not found." << abort(FatalError);
|
||||||
|
}
|
||||||
|
|
||||||
lmp2foam_->exchange(tmp_, field[0]);
|
lmp2foam_->exchange(tmp_, field[0]);
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
FatalError << "requesting type " << type << " and name " << name << abort(FatalError);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,24 +259,26 @@ void twoWayMany2Many::giveData
|
|||||||
else
|
else
|
||||||
Warning << "coupling fix not found!"<<endl;
|
Warning << "coupling fix not found!"<<endl;
|
||||||
|
|
||||||
|
if(!tmp_)
|
||||||
|
FatalError << "find_fix_property " << charName << " array_atom not found." << abort(FatalError);
|
||||||
|
|
||||||
foam2lmp_vec_->exchange(field[0],tmp_ ? tmp_[0] : NULL);
|
foam2lmp_vec_->exchange(field[0],tmp_ ? tmp_[0] : NULL);
|
||||||
}else if( type == "scalar-atom" )
|
}else if( type == "scalar-atom" )
|
||||||
{
|
{
|
||||||
Warning << "LIGGGHTS not ready for use of impleDEM and Many2Many" << endl;
|
|
||||||
double *tmp_=NULL;
|
double *tmp_=NULL;
|
||||||
LAMMPS_NS::Fix *fix = NULL;
|
LAMMPS_NS::Fix *fix = NULL;
|
||||||
fix = lmp->modify->find_fix_property(charName,"property/atom","scalar",0,0,"cfd coupling",false);
|
fix = lmp->modify->find_fix_property(charName,"property/atom","scalar",0,0,"cfd coupling",true);
|
||||||
if(fix)
|
if(fix)
|
||||||
tmp_ = (double *) static_cast<LAMMPS_NS::FixPropertyAtom*>(fix)->array_atom;
|
tmp_ = (double *) static_cast<LAMMPS_NS::FixPropertyAtom*>(fix)->vector_atom;
|
||||||
else
|
else
|
||||||
FatalError << "coupling fix not found!"<< abort(FatalError);
|
FatalError << "coupling fix not found!"<< abort(FatalError);
|
||||||
|
|
||||||
if(!tmp_)
|
if(!tmp_)
|
||||||
allocateArray(tmp_,0,nlocal_lammps_);
|
FatalError << "find_fix_property " << charName << " array_atom not found." << abort(FatalError);
|
||||||
|
|
||||||
foam2lmp_->exchange(field[0],tmp_ ? tmp_ : NULL);
|
foam2lmp_->exchange(field[0],tmp_ ? tmp_ : NULL); // for double *
|
||||||
}else{
|
}else{
|
||||||
FatalError << "twoWayMany2Many::giveData requested type not implemented! \n"<< abort(FatalError);
|
FatalError << "twoWayMany2Many::giveData requested type "<< type <<" not implemented! \n"<< abort(FatalError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -355,6 +384,7 @@ void inline Foam::twoWayMany2Many::destroy(int* array) const
|
|||||||
bool Foam::twoWayMany2Many::couple() const
|
bool Foam::twoWayMany2Many::couple() const
|
||||||
{
|
{
|
||||||
bool coupleNow = false;
|
bool coupleNow = false;
|
||||||
|
label commandLines(0);
|
||||||
if (doCoupleNow())
|
if (doCoupleNow())
|
||||||
{
|
{
|
||||||
couplingStep_++;
|
couplingStep_++;
|
||||||
@ -371,11 +401,15 @@ bool Foam::twoWayMany2Many::couple() const
|
|||||||
|
|
||||||
if(particleCloud_.liggghtsCommand()[i]().runCommand(couplingStep()))
|
if(particleCloud_.liggghtsCommand()[i]().runCommand(couplingStep()))
|
||||||
{
|
{
|
||||||
const char* command = particleCloud_.liggghtsCommand()[i]().command(0);
|
commandLines=particleCloud_.liggghtsCommand()[i]().commandLines();
|
||||||
|
for(int j=0;j<commandLines;j++)
|
||||||
|
{
|
||||||
|
const char* command = particleCloud_.liggghtsCommand()[i]().command(j);
|
||||||
Info << "Executing command: '"<< command <<"'"<< endl;
|
Info << "Executing command: '"<< command <<"'"<< endl;
|
||||||
lmp->input->one(command);
|
lmp->input->one(command);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
particleCloud_.clockM().stop("LIGGGHTS");
|
particleCloud_.clockM().stop("LIGGGHTS");
|
||||||
Info<<"LIGGGHTS finished"<<endl;
|
Info<<"LIGGGHTS finished"<<endl;
|
||||||
}
|
}
|
||||||
@ -595,18 +629,29 @@ void Foam::twoWayMany2Many::locateParticle(int* id_lammpsSync, bool id_lammps_al
|
|||||||
{
|
{
|
||||||
label patchI = pbm_.whichPatch(nearestFace);
|
label patchI = pbm_.whichPatch(nearestFace);
|
||||||
|
|
||||||
|
label n(-1);
|
||||||
if (procPatchIndices_[patchI] != -1)
|
if (procPatchIndices_[patchI] != -1)
|
||||||
{
|
{
|
||||||
label n = neighbourProcIndices_
|
n = neighbourProcIndices_
|
||||||
[
|
[
|
||||||
refCast<const processorPolyPatch>
|
refCast<const processorPolyPatch>
|
||||||
(
|
(
|
||||||
pbm_[patchI]
|
pbm_[patchI]
|
||||||
).neighbProcNo()
|
).neighbProcNo()
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if(n==Pstream::myProcNo())
|
||||||
|
{
|
||||||
|
//Pout << couplingStep_ << "st communicating particle " << id_lammps_[i]
|
||||||
|
// << "communication fails as particle travels diagonal or jumps over proc" << endl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
particleTransferID[n].append(id_lammps_[i]);
|
particleTransferID[n].append(id_lammps_[i]);
|
||||||
particleTransferPos[n].append(pos);
|
particleTransferPos[n].append(pos);
|
||||||
commPart=true;
|
commPart=true;
|
||||||
|
//Pout << couplingStep_ << "st communicating particle " << id_lammps_[i] << ", to proc# " << n << endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!commPart)
|
if (!commPart)
|
||||||
@ -703,7 +748,7 @@ void Foam::twoWayMany2Many::locateParticle(int* id_lammpsSync, bool id_lammps_al
|
|||||||
particleCloud_.clockM().start(9,"locate_Stage3");
|
particleCloud_.clockM().start(9,"locate_Stage3");
|
||||||
|
|
||||||
int nlocal_foam_lostAll(-1);
|
int nlocal_foam_lostAll(-1);
|
||||||
if (firstRun_)
|
if (firstRun_ || allowDiagComm_)
|
||||||
{
|
{
|
||||||
particleCloud_.clockM().start(10,"locate_Stage3_1");
|
particleCloud_.clockM().start(10,"locate_Stage3_1");
|
||||||
MPI_Allreduce(&nlocal_foam_lost_, &nlocal_foam_lostAll, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
|
MPI_Allreduce(&nlocal_foam_lost_, &nlocal_foam_lostAll, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
|
||||||
|
|||||||
@ -90,6 +90,7 @@ private:
|
|||||||
|
|
||||||
// new vars
|
// new vars
|
||||||
mutable bool firstRun_;
|
mutable bool firstRun_;
|
||||||
|
Switch allowDiagComm_;
|
||||||
mutable bool particleLost_;
|
mutable bool particleLost_;
|
||||||
mutable double Npart_;
|
mutable double Npart_;
|
||||||
mutable Many2Many * lmp2foam_;
|
mutable Many2Many * lmp2foam_;
|
||||||
|
|||||||
@ -63,8 +63,6 @@ Archimedes::Archimedes
|
|||||||
forceModel(dict,sm),
|
forceModel(dict,sm),
|
||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
twoDimensional_(false),
|
twoDimensional_(false),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
gravityFieldName_(propsDict_.lookup("gravityFieldName")),
|
gravityFieldName_(propsDict_.lookup("gravityFieldName")),
|
||||||
#if defined(version21) || defined(version16ext)
|
#if defined(version21) || defined(version16ext)
|
||||||
g_(sm.mesh().lookupObject<uniformDimensionedVectorField> (gravityFieldName_))
|
g_(sm.mesh().lookupObject<uniformDimensionedVectorField> (gravityFieldName_))
|
||||||
@ -91,18 +89,20 @@ Archimedes::Archimedes
|
|||||||
|
|
||||||
// define switches which can be read from dict
|
// define switches which can be read from dict
|
||||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||||
forceSubM(0).setSwitchesList(1,true); // activate treatDEM switch
|
forceSubM(0).setSwitchesList(1,true); // activate treatForceDEM switch
|
||||||
|
|
||||||
// read those switches defined above, if provided in dict
|
|
||||||
forceSubM(0).readSwitches();
|
forceSubM(0).readSwitches();
|
||||||
|
|
||||||
if (modelType_=="A"){
|
if (modelType_=="A" || modelType_=="Bfull"){
|
||||||
forceSubM(0).setSwitches(1,true); // treatDEM = true
|
if(!forceSubM(0).switches()[1]) // treatDEM != true
|
||||||
Info << "accounting for Archimedes only on DEM side!" << endl;
|
{
|
||||||
|
Warning << "Usually model type A and Bfull need Archimedes only on DEM side only (treatForceDEM=true)! are you sure about your settings?" << endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (modelType_=="B"){
|
if (modelType_=="B"){
|
||||||
forceSubM(0).setSwitches(1,false); // treatDEM = false
|
if(forceSubM(0).switches()[1]) // treatDEM = true
|
||||||
Info << "accounting for Archimedes on DEM and CFD side!" << endl;
|
{
|
||||||
|
Warning << "Usually model type B needs Archimedes only on CFD and DEM side (treatForceDEM=false)! are you sure about your settings?" << endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
particleCloud_.checkCG(true);
|
particleCloud_.checkCG(true);
|
||||||
@ -136,12 +136,21 @@ void Archimedes::setForce() const
|
|||||||
|
|
||||||
if(twoDimensional_)
|
if(twoDimensional_)
|
||||||
{
|
{
|
||||||
force = -g_.value()*rho_[cellI]*pow(dp,2)/4*M_PI;
|
force = -g_.value()*forceSubM(0).rhoField()[cellI]*pow(dp,2)/4*M_PI;
|
||||||
Warning << "Archimedes::setForce() : this functionality is not tested!" << endl;
|
Warning << "Archimedes::setForce() : this functionality is not tested!" << endl;
|
||||||
}else{
|
}else{
|
||||||
force = -g_.value()*rho_[cellI]*particleCloud_.particleVolume(index);
|
force = -g_.value()*forceSubM(0).rhoField()[cellI]*particleCloud_.particleVolume(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if(index >=0 && index <100)
|
||||||
|
//{
|
||||||
|
// Pout << "cellI = " << cellI << endl;
|
||||||
|
// Pout << "index = " << index << endl;
|
||||||
|
// Pout << "forceSubM(0).rhoField()[cellI] = " << forceSubM(0).rhoField()[cellI] << endl;
|
||||||
|
// Pout << "particleCloud_.particleVolume(index) = " << particleCloud_.particleVolume(index) << endl;
|
||||||
|
// Pout << "force = " << force << endl;
|
||||||
|
//}
|
||||||
|
|
||||||
//Set value fields and write the probe
|
//Set value fields and write the probe
|
||||||
if(probeIt_)
|
if(probeIt_)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -63,10 +63,6 @@ private:
|
|||||||
|
|
||||||
bool twoDimensional_;
|
bool twoDimensional_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_; // ref to fluid density
|
|
||||||
|
|
||||||
word gravityFieldName_;
|
word gravityFieldName_;
|
||||||
|
|
||||||
#ifdef version21
|
#ifdef version21
|
||||||
|
|||||||
@ -63,8 +63,6 @@ ArchimedesIB::ArchimedesIB
|
|||||||
forceModel(dict,sm),
|
forceModel(dict,sm),
|
||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
twoDimensional_(false),
|
twoDimensional_(false),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")), //mod by alice
|
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")), //mod by alice
|
||||||
voidfractions_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),//mod by alice
|
voidfractions_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),//mod by alice
|
||||||
gravityFieldName_(propsDict_.lookup("gravityFieldName")),
|
gravityFieldName_(propsDict_.lookup("gravityFieldName")),
|
||||||
@ -125,8 +123,8 @@ void ArchimedesIB::setForce() const
|
|||||||
label cellI = particleCloud_.cellIDs()[index][subCell];
|
label cellI = particleCloud_.cellIDs()[index][subCell];
|
||||||
if (cellI > -1) // particle Found
|
if (cellI > -1) // particle Found
|
||||||
{
|
{
|
||||||
//force += -g_.value()*rho_[cellI]*rho_.mesh().V()[cellI]*(1-particleCloud_.voidfractions()[index][subCell]);//mod by alice
|
//force += -g_.value()*forceSubM(0).rhoField()[cellI]*forceSubM(0).rhoField().mesh().V()[cellI]*(1-particleCloud_.voidfractions()[index][subCell]);//mod by alice
|
||||||
force += -g_.value()*rho_[cellI]*rho_.mesh().V()[cellI]*(1-voidfractions_[cellI]);//mod by alice
|
force += -g_.value()*forceSubM(0).rhoField()[cellI]*particleCloud_.mesh().V()[cellI]*(1-voidfractions_[cellI]);//mod by alice
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -65,10 +65,6 @@ private:
|
|||||||
|
|
||||||
bool twoDimensional_;
|
bool twoDimensional_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_; // ref to fluid density
|
|
||||||
|
|
||||||
word voidfractionFieldName_;
|
word voidfractionFieldName_;
|
||||||
|
|
||||||
const volScalarField& voidfractions_;
|
const volScalarField& voidfractions_;
|
||||||
|
|||||||
@ -64,14 +64,10 @@ DiFeliceDrag::DiFeliceDrag
|
|||||||
:
|
:
|
||||||
forceModel(dict,sm),
|
forceModel(dict,sm),
|
||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
verbose_(false),
|
|
||||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
||||||
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
||||||
interpolation_(false),
|
|
||||||
UsFieldName_(propsDict_.lookup("granVelFieldName")),
|
UsFieldName_(propsDict_.lookup("granVelFieldName")),
|
||||||
UsField_(sm.mesh().lookupObject<volVectorField> (UsFieldName_)),
|
UsField_(sm.mesh().lookupObject<volVectorField> (UsFieldName_)),
|
||||||
scaleDia_(1.),
|
scaleDia_(1.),
|
||||||
@ -86,12 +82,6 @@ DiFeliceDrag::DiFeliceDrag
|
|||||||
particleCloud_.probeM().scalarFields_.append("voidfraction"); //other are debug
|
particleCloud_.probeM().scalarFields_.append("voidfraction"); //other are debug
|
||||||
particleCloud_.probeM().writeHeader();
|
particleCloud_.probeM().writeHeader();
|
||||||
|
|
||||||
if (propsDict_.found("verbose")) verbose_=true;
|
|
||||||
if (propsDict_.found("interpolation"))
|
|
||||||
{
|
|
||||||
Info << "using interpolated value of U." << endl;
|
|
||||||
interpolation_=true;
|
|
||||||
}
|
|
||||||
particleCloud_.checkCG(true);
|
particleCloud_.checkCG(true);
|
||||||
if (propsDict_.found("scale"))
|
if (propsDict_.found("scale"))
|
||||||
scaleDia_=scalar(readScalar(propsDict_.lookup("scale")));
|
scaleDia_=scalar(readScalar(propsDict_.lookup("scale")));
|
||||||
@ -104,6 +94,9 @@ DiFeliceDrag::DiFeliceDrag
|
|||||||
// define switches which can be read from dict
|
// define switches which can be read from dict
|
||||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||||
forceSubM(0).setSwitchesList(2,true); // activate implDEM switch
|
forceSubM(0).setSwitchesList(2,true); // activate implDEM switch
|
||||||
|
forceSubM(0).setSwitchesList(3,true); // activate search for verbose switch
|
||||||
|
forceSubM(0).setSwitchesList(4,true); // activate search for interpolate switch
|
||||||
|
forceSubM(0).setSwitchesList(8,true); // activate scalarViscosity switch
|
||||||
|
|
||||||
// read those switches defined above, if provided in dict
|
// read those switches defined above, if provided in dict
|
||||||
forceSubM(0).readSwitches();
|
forceSubM(0).readSwitches();
|
||||||
@ -127,12 +120,8 @@ void DiFeliceDrag::setForce() const
|
|||||||
Info << "DiFeliceDrag using scale from liggghts cg = " << scaleDia_ << endl;
|
Info << "DiFeliceDrag using scale from liggghts cg = " << scaleDia_ << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get viscosity field
|
const volScalarField& nufField = forceSubM(0).nuField();
|
||||||
#ifdef comp
|
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||||
const volScalarField nufField = particleCloud_.turbulence().mu() / rho_;
|
|
||||||
#else
|
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
vector position(0,0,0);
|
vector position(0,0,0);
|
||||||
scalar voidfraction(1);
|
scalar voidfraction(1);
|
||||||
@ -157,9 +146,6 @@ void DiFeliceDrag::setForce() const
|
|||||||
|
|
||||||
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
||||||
{
|
{
|
||||||
//if(mask[index][0])
|
|
||||||
//{
|
|
||||||
|
|
||||||
cellI = particleCloud_.cellIDs()[index][0];
|
cellI = particleCloud_.cellIDs()[index][0];
|
||||||
drag = vector(0,0,0);
|
drag = vector(0,0,0);
|
||||||
dragExplicit = vector(0,0,0);
|
dragExplicit = vector(0,0,0);
|
||||||
@ -168,7 +154,7 @@ void DiFeliceDrag::setForce() const
|
|||||||
|
|
||||||
if (cellI > -1) // particle Found
|
if (cellI > -1) // particle Found
|
||||||
{
|
{
|
||||||
if(interpolation_)
|
if(forceSubM(0).interpolation())
|
||||||
{
|
{
|
||||||
position = particleCloud_.position(index);
|
position = particleCloud_.position(index);
|
||||||
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
||||||
@ -183,7 +169,7 @@ void DiFeliceDrag::setForce() const
|
|||||||
Ur = Ufluid-Us;
|
Ur = Ufluid-Us;
|
||||||
ds = 2*particleCloud_.radius(index);
|
ds = 2*particleCloud_.radius(index);
|
||||||
nuf = nufField[cellI];
|
nuf = nufField[cellI];
|
||||||
rho = rho_[cellI];
|
rho = rhoField[cellI];
|
||||||
magUr = mag(Ur);
|
magUr = mag(Ur);
|
||||||
Rep = 0;
|
Rep = 0;
|
||||||
Cd = 0;
|
Cd = 0;
|
||||||
@ -212,10 +198,10 @@ void DiFeliceDrag::setForce() const
|
|||||||
|
|
||||||
drag = dragCoefficient*Ur; //total drag force!
|
drag = dragCoefficient*Ur; //total drag force!
|
||||||
|
|
||||||
forceSubM(0).explicitInterpCorr(dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],verbose_,index);
|
forceSubM(0).explicitInterpCorr(dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],forceSubM(0).verbose(),index);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(verbose_ && index >-1 && index <102)
|
if(forceSubM(0).verbose() && index >-1 && index <102)
|
||||||
{
|
{
|
||||||
Pout << "index = " << index << endl;
|
Pout << "index = " << index << endl;
|
||||||
Pout << "Us = " << Us << endl;
|
Pout << "Us = " << Us << endl;
|
||||||
@ -245,7 +231,6 @@ void DiFeliceDrag::setForce() const
|
|||||||
// write particle based data to global array
|
// write particle based data to global array
|
||||||
forceSubM(0).partToArray(index,drag,dragExplicit,Ufluid,dragCoefficient);
|
forceSubM(0).partToArray(index,drag,dragExplicit,Ufluid,dragCoefficient);
|
||||||
}
|
}
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -60,22 +60,14 @@ class DiFeliceDrag
|
|||||||
private:
|
private:
|
||||||
dictionary propsDict_;
|
dictionary propsDict_;
|
||||||
|
|
||||||
bool verbose_;
|
|
||||||
|
|
||||||
word velFieldName_;
|
word velFieldName_;
|
||||||
|
|
||||||
const volVectorField& U_;
|
const volVectorField& U_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_;
|
|
||||||
|
|
||||||
word voidfractionFieldName_;
|
word voidfractionFieldName_;
|
||||||
|
|
||||||
const volScalarField& voidfraction_;
|
const volScalarField& voidfraction_;
|
||||||
|
|
||||||
bool interpolation_; // use interpolated U field values
|
|
||||||
|
|
||||||
word UsFieldName_;
|
word UsFieldName_;
|
||||||
|
|
||||||
const volVectorField& UsField_; // the average particle velocity field (for implicit/expliti force split)
|
const volVectorField& UsField_; // the average particle velocity field (for implicit/expliti force split)
|
||||||
|
|||||||
@ -63,15 +63,11 @@ GidaspowDrag::GidaspowDrag
|
|||||||
:
|
:
|
||||||
forceModel(dict,sm),
|
forceModel(dict,sm),
|
||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
verbose_(false),
|
|
||||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
||||||
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
||||||
phi_(readScalar(propsDict_.lookup("phi"))),
|
phi_(readScalar(propsDict_.lookup("phi"))),
|
||||||
interpolation_(false),
|
|
||||||
UsFieldName_(propsDict_.lookup("granVelFieldName")),
|
UsFieldName_(propsDict_.lookup("granVelFieldName")),
|
||||||
UsField_(sm.mesh().lookupObject<volVectorField> (UsFieldName_)),
|
UsField_(sm.mesh().lookupObject<volVectorField> (UsFieldName_)),
|
||||||
scaleDia_(1.),
|
scaleDia_(1.),
|
||||||
@ -87,17 +83,14 @@ GidaspowDrag::GidaspowDrag
|
|||||||
particleCloud_.probeM().scalarFields_.append("voidfraction");
|
particleCloud_.probeM().scalarFields_.append("voidfraction");
|
||||||
particleCloud_.probeM().writeHeader();
|
particleCloud_.probeM().writeHeader();
|
||||||
|
|
||||||
if (propsDict_.found("verbose")) verbose_=true;
|
|
||||||
if (propsDict_.found("interpolation")) interpolation_=true;
|
|
||||||
|
|
||||||
// init force sub model
|
// init force sub model
|
||||||
setForceSubModels(propsDict_);
|
setForceSubModels(propsDict_);
|
||||||
|
|
||||||
// define switches which can be read from dict
|
// define switches which can be read from dict
|
||||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||||
forceSubM(0).setSwitchesList(2,true); // activate implDEM switch
|
forceSubM(0).setSwitchesList(2,true); // activate implDEM switch
|
||||||
|
forceSubM(0).setSwitchesList(3,true); // activate search for verbose switch
|
||||||
// read those switches defined above, if provided in dict
|
forceSubM(0).setSwitchesList(4,true); // activate search for interpolate switch
|
||||||
|
forceSubM(0).setSwitchesList(8,true); // activate scalarViscosity switch
|
||||||
forceSubM(0).readSwitches();
|
forceSubM(0).readSwitches();
|
||||||
|
|
||||||
particleCloud_.checkCG(true);
|
particleCloud_.checkCG(true);
|
||||||
@ -108,8 +101,6 @@ GidaspowDrag::GidaspowDrag
|
|||||||
|
|
||||||
if (propsDict_.found("switchingVoidfraction"))
|
if (propsDict_.found("switchingVoidfraction"))
|
||||||
switchingVoidfraction_ = readScalar(propsDict_.lookup("switchingVoidfraction"));
|
switchingVoidfraction_ = readScalar(propsDict_.lookup("switchingVoidfraction"));
|
||||||
|
|
||||||
Info << "Gidaspow - interpolation switch: " << interpolation_ << endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -130,12 +121,8 @@ void GidaspowDrag::setForce() const
|
|||||||
Info << "Gidaspow using scale from liggghts cg = " << scaleDia_ << endl;
|
Info << "Gidaspow using scale from liggghts cg = " << scaleDia_ << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get viscosity field
|
const volScalarField& nufField = forceSubM(0).nuField();
|
||||||
#ifdef comp
|
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||||
const volScalarField nufField = particleCloud_.turbulence().mu() / rho_;
|
|
||||||
#else
|
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
vector position(0,0,0);
|
vector position(0,0,0);
|
||||||
scalar voidfraction(1);
|
scalar voidfraction(1);
|
||||||
@ -180,7 +167,7 @@ void GidaspowDrag::setForce() const
|
|||||||
if (cellI > -1) // particle Found
|
if (cellI > -1) // particle Found
|
||||||
{
|
{
|
||||||
|
|
||||||
if(interpolation_)
|
if( forceSubM(0).interpolation() )
|
||||||
{
|
{
|
||||||
position = particleCloud_.position(index);
|
position = particleCloud_.position(index);
|
||||||
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
||||||
@ -199,8 +186,8 @@ void GidaspowDrag::setForce() const
|
|||||||
Us = particleCloud_.velocity(index);
|
Us = particleCloud_.velocity(index);
|
||||||
Ur = Ufluid-Us;
|
Ur = Ufluid-Us;
|
||||||
magUr = mag(Ur);
|
magUr = mag(Ur);
|
||||||
ds = 2*particleCloud_.radius(index)*phi_;
|
ds = 2*particleCloud_.radius(index);
|
||||||
rho = rho_[cellI];
|
rho = rhoField[cellI];
|
||||||
nuf = nufField[cellI];
|
nuf = nufField[cellI];
|
||||||
|
|
||||||
Rep=0.0;
|
Rep=0.0;
|
||||||
@ -223,10 +210,10 @@ void GidaspowDrag::setForce() const
|
|||||||
else //dense
|
else //dense
|
||||||
{
|
{
|
||||||
betaP = (150 * localPhiP*nuf*rho) //this is betaP = beta / localPhiP!
|
betaP = (150 * localPhiP*nuf*rho) //this is betaP = beta / localPhiP!
|
||||||
/ (voidfraction*ds/scaleDia_*ds/scaleDia_)
|
/ (voidfraction*ds/scaleDia_*phi_*ds/scaleDia_*phi_)
|
||||||
+
|
+
|
||||||
(1.75 * magUr * rho)
|
(1.75 * magUr * rho)
|
||||||
/((ds/scaleDia_));
|
/((ds/scaleDia_*phi_));
|
||||||
}
|
}
|
||||||
|
|
||||||
// calc particle's drag
|
// calc particle's drag
|
||||||
@ -237,9 +224,9 @@ void GidaspowDrag::setForce() const
|
|||||||
drag = dragCoefficient * Ur;
|
drag = dragCoefficient * Ur;
|
||||||
|
|
||||||
// explicitInterpCorr
|
// explicitInterpCorr
|
||||||
forceSubM(0).explicitInterpCorr(dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],verbose_);
|
forceSubM(0).explicitInterpCorr(dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],forceSubM(0).verbose());
|
||||||
|
|
||||||
if(verbose_ && index >=0 && index <2)
|
if(forceSubM(0).verbose() && index >=0 && index <2)
|
||||||
{
|
{
|
||||||
Pout << "cellI = " << cellI << endl;
|
Pout << "cellI = " << cellI << endl;
|
||||||
Pout << "index = " << index << endl;
|
Pout << "index = " << index << endl;
|
||||||
|
|||||||
@ -32,7 +32,7 @@ Description
|
|||||||
- only valid for low-Reynolds number systems (Re_p<1000)
|
- only valid for low-Reynolds number systems (Re_p<1000)
|
||||||
- including interpolation of the velocity to the exact position
|
- including interpolation of the velocity to the exact position
|
||||||
- splits off explicit drag component due to fluctuation in fluid and particle
|
- splits off explicit drag component due to fluctuation in fluid and particle
|
||||||
velocity
|
velocity (optional via forceSubModel "ImExCorr")
|
||||||
|
|
||||||
Class
|
Class
|
||||||
GidaspowDrag
|
GidaspowDrag
|
||||||
@ -64,24 +64,16 @@ class GidaspowDrag
|
|||||||
private:
|
private:
|
||||||
dictionary propsDict_;
|
dictionary propsDict_;
|
||||||
|
|
||||||
bool verbose_;
|
|
||||||
|
|
||||||
word velFieldName_;
|
word velFieldName_;
|
||||||
|
|
||||||
const volVectorField& U_;
|
const volVectorField& U_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_;
|
|
||||||
|
|
||||||
word voidfractionFieldName_;
|
word voidfractionFieldName_;
|
||||||
|
|
||||||
const volScalarField& voidfraction_;
|
const volScalarField& voidfraction_;
|
||||||
|
|
||||||
const scalar phi_;
|
const scalar phi_;
|
||||||
|
|
||||||
bool interpolation_; // use interpolated field values
|
|
||||||
|
|
||||||
word UsFieldName_;
|
word UsFieldName_;
|
||||||
|
|
||||||
const volVectorField& UsField_; // the average particle velocity field
|
const volVectorField& UsField_; // the average particle velocity field
|
||||||
|
|||||||
@ -64,16 +64,12 @@ KochHillDrag::KochHillDrag
|
|||||||
:
|
:
|
||||||
forceModel(dict,sm),
|
forceModel(dict,sm),
|
||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
verbose_(false),
|
|
||||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
||||||
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
||||||
UsFieldName_(propsDict_.lookupOrDefault("granVelFieldName",word("Us"))),
|
UsFieldName_(propsDict_.lookupOrDefault("granVelFieldName",word("Us"))),
|
||||||
UsField_(sm.mesh().lookupObject<volVectorField> (UsFieldName_)),
|
UsField_(sm.mesh().lookupObject<volVectorField> (UsFieldName_)),
|
||||||
interpolation_(false),
|
|
||||||
scaleDia_(1.),
|
scaleDia_(1.),
|
||||||
scaleDrag_(1.)
|
scaleDrag_(1.)
|
||||||
{
|
{
|
||||||
@ -86,15 +82,16 @@ KochHillDrag::KochHillDrag
|
|||||||
particleCloud_.probeM().scalarFields_.append("voidfraction"); //other are debug
|
particleCloud_.probeM().scalarFields_.append("voidfraction"); //other are debug
|
||||||
particleCloud_.probeM().writeHeader();
|
particleCloud_.probeM().writeHeader();
|
||||||
|
|
||||||
if (propsDict_.found("verbose")) verbose_=true;
|
|
||||||
if (propsDict_.found("interpolation")) interpolation_=true;
|
|
||||||
|
|
||||||
// init force sub model
|
// init force sub model
|
||||||
setForceSubModels(propsDict_);
|
setForceSubModels(propsDict_);
|
||||||
|
|
||||||
// define switches which can be read from dict
|
// define switches which can be read from dict
|
||||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||||
forceSubM(0).setSwitchesList(2,true); // activate implDEM switch
|
forceSubM(0).setSwitchesList(2,true); // activate implDEM switch
|
||||||
|
forceSubM(0).setSwitchesList(3,true); // activate search for verbose switch
|
||||||
|
forceSubM(0).setSwitchesList(4,true); // activate search for interpolate switch
|
||||||
|
forceSubM(0).setSwitchesList(7,true); // activate implForceDEMacc switch
|
||||||
|
forceSubM(0).setSwitchesList(8,true); // activate scalarViscosity switch
|
||||||
|
|
||||||
// read those switches defined above, if provided in dict
|
// read those switches defined above, if provided in dict
|
||||||
forceSubM(0).readSwitches();
|
forceSubM(0).readSwitches();
|
||||||
@ -125,12 +122,8 @@ void KochHillDrag::setForce() const
|
|||||||
Info << "KochHill using scale from liggghts cg = " << scaleDia_ << endl;
|
Info << "KochHill using scale from liggghts cg = " << scaleDia_ << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get viscosity field
|
const volScalarField& nufField = forceSubM(0).nuField();
|
||||||
#ifdef comp
|
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||||
const volScalarField nufField = particleCloud_.turbulence().mu()/rho_;
|
|
||||||
#else
|
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
vector position(0,0,0);
|
vector position(0,0,0);
|
||||||
scalar voidfraction(1);
|
scalar voidfraction(1);
|
||||||
@ -151,6 +144,8 @@ void KochHillDrag::setForce() const
|
|||||||
scalar volumefraction(0);
|
scalar volumefraction(0);
|
||||||
scalar betaP(0);
|
scalar betaP(0);
|
||||||
|
|
||||||
|
int couplingInterval(particleCloud_.dataExchangeM().couplingInterval());
|
||||||
|
|
||||||
interpolationCellPoint<scalar> voidfractionInterpolator_(voidfraction_);
|
interpolationCellPoint<scalar> voidfractionInterpolator_(voidfraction_);
|
||||||
interpolationCellPoint<vector> UInterpolator_(U_);
|
interpolationCellPoint<vector> UInterpolator_(U_);
|
||||||
|
|
||||||
@ -158,8 +153,6 @@ void KochHillDrag::setForce() const
|
|||||||
|
|
||||||
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
||||||
{
|
{
|
||||||
//if(mask[index][0])
|
|
||||||
//{
|
|
||||||
cellI = particleCloud_.cellIDs()[index][0];
|
cellI = particleCloud_.cellIDs()[index][0];
|
||||||
drag = vector(0,0,0);
|
drag = vector(0,0,0);
|
||||||
dragExplicit = vector(0,0,0);
|
dragExplicit = vector(0,0,0);
|
||||||
@ -171,7 +164,7 @@ void KochHillDrag::setForce() const
|
|||||||
|
|
||||||
if (cellI > -1) // particle Found
|
if (cellI > -1) // particle Found
|
||||||
{
|
{
|
||||||
if(interpolation_)
|
if(forceSubM(0).interpolation())
|
||||||
{
|
{
|
||||||
position = particleCloud_.position(index);
|
position = particleCloud_.position(index);
|
||||||
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
||||||
@ -190,7 +183,7 @@ void KochHillDrag::setForce() const
|
|||||||
Ur = Ufluid-Us;
|
Ur = Ufluid-Us;
|
||||||
ds = particleCloud_.d(index);
|
ds = particleCloud_.d(index);
|
||||||
nuf = nufField[cellI];
|
nuf = nufField[cellI];
|
||||||
rho = rho_[cellI];
|
rho = rhoField[cellI];
|
||||||
magUr = mag(Ur);
|
magUr = mag(Ur);
|
||||||
Rep = 0;
|
Rep = 0;
|
||||||
Vs = ds*ds*ds*M_PI/6;
|
Vs = ds*ds*ds*M_PI/6;
|
||||||
@ -230,13 +223,20 @@ void KochHillDrag::setForce() const
|
|||||||
if (modelType_=="B")
|
if (modelType_=="B")
|
||||||
dragCoefficient /= voidfraction;
|
dragCoefficient /= voidfraction;
|
||||||
|
|
||||||
|
if(forceSubM(0).switches()[7]) // implForceDEMaccumulated=true
|
||||||
|
{
|
||||||
|
//get drag from the particle itself
|
||||||
|
for (int j=0 ; j<3 ; j++) drag[j] = particleCloud_.fAccs()[index][j]/couplingInterval;
|
||||||
|
}else
|
||||||
|
{
|
||||||
drag = dragCoefficient * Ur;
|
drag = dragCoefficient * Ur;
|
||||||
|
|
||||||
// explicitInterpCorr
|
// explicitInterpCorr
|
||||||
forceSubM(0).explicitInterpCorr(dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],verbose_);
|
forceSubM(0).explicitInterpCorr(dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],forceSubM(0).verbose());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(verbose_ && index >=0 && index <2)
|
if(forceSubM(0).verbose() && index >=0 && index <2)
|
||||||
{
|
{
|
||||||
Pout << "cellI = " << cellI << endl;
|
Pout << "cellI = " << cellI << endl;
|
||||||
Pout << "index = " << index << endl;
|
Pout << "index = " << index << endl;
|
||||||
@ -267,8 +267,6 @@ void KochHillDrag::setForce() const
|
|||||||
|
|
||||||
// write particle based data to global array
|
// write particle based data to global array
|
||||||
forceSubM(0).partToArray(index,drag,dragExplicit,Ufluid,dragCoefficient);
|
forceSubM(0).partToArray(index,drag,dragExplicit,Ufluid,dragCoefficient);
|
||||||
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -64,16 +64,10 @@ class KochHillDrag
|
|||||||
private:
|
private:
|
||||||
dictionary propsDict_;
|
dictionary propsDict_;
|
||||||
|
|
||||||
bool verbose_;
|
|
||||||
|
|
||||||
word velFieldName_;
|
word velFieldName_;
|
||||||
|
|
||||||
const volVectorField& U_;
|
const volVectorField& U_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_;
|
|
||||||
|
|
||||||
word voidfractionFieldName_;
|
word voidfractionFieldName_;
|
||||||
|
|
||||||
const volScalarField& voidfraction_;
|
const volScalarField& voidfraction_;
|
||||||
@ -82,8 +76,6 @@ private:
|
|||||||
|
|
||||||
const volVectorField& UsField_;
|
const volVectorField& UsField_;
|
||||||
|
|
||||||
bool interpolation_; // use interpolated field values
|
|
||||||
|
|
||||||
mutable scalar scaleDia_;
|
mutable scalar scaleDia_;
|
||||||
|
|
||||||
mutable scalar scaleDrag_;
|
mutable scalar scaleDrag_;
|
||||||
|
|||||||
@ -67,8 +67,6 @@ KochHillRWDrag::KochHillRWDrag
|
|||||||
verbose_(false),
|
verbose_(false),
|
||||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
||||||
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
||||||
UsFieldName_(propsDict_.lookupOrDefault("granVelFieldName",word("Us"))),
|
UsFieldName_(propsDict_.lookupOrDefault("granVelFieldName",word("Us"))),
|
||||||
@ -152,16 +150,9 @@ void KochHillRWDrag::setForce() const
|
|||||||
Info << "KochHillRW using scale from liggghts cg = " << scale_ << endl;
|
Info << "KochHillRW using scale from liggghts cg = " << scale_ << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// get viscosity field
|
const volScalarField& nufField = forceSubM(0).nuField();
|
||||||
#ifdef comp
|
const volScalarField& mufField = forceSubM(0).muField();
|
||||||
const volScalarField nufField = particleCloud_.turbulence().mu()/rho_;
|
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||||
const volScalarField& muField = particleCloud_.turbulence().mu();
|
|
||||||
#else
|
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
|
||||||
const volScalarField muField = particleCloud_.turbulence().nu()*rho_;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
vector position(0,0,0);
|
vector position(0,0,0);
|
||||||
scalar voidfraction(1);
|
scalar voidfraction(1);
|
||||||
@ -263,7 +254,7 @@ void KochHillRWDrag::setForce() const
|
|||||||
if(t>=partTime_[index][0])
|
if(t>=partTime_[index][0])
|
||||||
{
|
{
|
||||||
scalar ds = 2*particleCloud_.radius(index);
|
scalar ds = 2*particleCloud_.radius(index);
|
||||||
mu = muField[cellI];
|
mu = mufField[cellI];
|
||||||
k = kField[cellI];
|
k = kField[cellI];
|
||||||
epsilon = epsilonField[cellI];
|
epsilon = epsilonField[cellI];
|
||||||
|
|
||||||
@ -323,7 +314,7 @@ void KochHillRWDrag::setForce() const
|
|||||||
|
|
||||||
ds = 2*particleCloud_.radius(index);
|
ds = 2*particleCloud_.radius(index);
|
||||||
nuf = nufField[cellI];
|
nuf = nufField[cellI];
|
||||||
rho = rho_[cellI];
|
rho = rhoField[cellI];
|
||||||
Rep = 0;
|
Rep = 0;
|
||||||
Vs = ds*ds*ds*M_PI/6;
|
Vs = ds*ds*ds*M_PI/6;
|
||||||
volumefraction = 1-voidfraction+SMALL;
|
volumefraction = 1-voidfraction+SMALL;
|
||||||
|
|||||||
@ -71,10 +71,6 @@ private:
|
|||||||
|
|
||||||
const volVectorField& U_;
|
const volVectorField& U_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_;
|
|
||||||
|
|
||||||
word voidfractionFieldName_;
|
word voidfractionFieldName_;
|
||||||
|
|
||||||
const volScalarField& voidfraction_;
|
const volScalarField& voidfraction_;
|
||||||
|
|||||||
@ -63,7 +63,6 @@ LaEuScalarTemp::LaEuScalarTemp
|
|||||||
:
|
:
|
||||||
forceModel(dict,sm),
|
forceModel(dict,sm),
|
||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
verbose_(false),
|
|
||||||
tempFieldName_(propsDict_.lookup("tempFieldName")),
|
tempFieldName_(propsDict_.lookup("tempFieldName")),
|
||||||
tempField_(sm.mesh().lookupObject<volScalarField> (tempFieldName_)),
|
tempField_(sm.mesh().lookupObject<volScalarField> (tempFieldName_)),
|
||||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
||||||
@ -76,10 +75,7 @@ LaEuScalarTemp::LaEuScalarTemp
|
|||||||
partHeatFluxName_(propsDict_.lookup("partHeatFluxName")),
|
partHeatFluxName_(propsDict_.lookup("partHeatFluxName")),
|
||||||
partHeatFlux_(NULL),
|
partHeatFlux_(NULL),
|
||||||
lambda_(readScalar(propsDict_.lookup("lambda"))),
|
lambda_(readScalar(propsDict_.lookup("lambda"))),
|
||||||
Cp_(readScalar(propsDict_.lookup("Cp"))),
|
Cp_(readScalar(propsDict_.lookup("Cp")))
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
interpolation_(false)
|
|
||||||
{
|
{
|
||||||
allocateMyArrays();
|
allocateMyArrays();
|
||||||
|
|
||||||
@ -88,10 +84,18 @@ LaEuScalarTemp::LaEuScalarTemp
|
|||||||
maxSource_=readScalar(propsDict_.lookup ("maxSource"));
|
maxSource_=readScalar(propsDict_.lookup ("maxSource"));
|
||||||
Info << "limiting eulerian source field to: " << maxSource_ << endl;
|
Info << "limiting eulerian source field to: " << maxSource_ << endl;
|
||||||
}
|
}
|
||||||
if (propsDict_.found("interpolation")) interpolation_=true;
|
|
||||||
if (propsDict_.found("verbose")) verbose_=true;
|
|
||||||
|
|
||||||
Info << "verbose_" << verbose_ << endl;
|
// init force sub model
|
||||||
|
setForceSubModels(propsDict_);
|
||||||
|
|
||||||
|
// define switches which can be read from dict
|
||||||
|
forceSubM(0).setSwitchesList(3,true); // activate search for verbose switch
|
||||||
|
forceSubM(0).setSwitchesList(4,true); // activate search for interpolate switch
|
||||||
|
forceSubM(0).setSwitchesList(8,true); // activate scalarViscosity switch
|
||||||
|
|
||||||
|
// read those switches defined above, if provided in dict
|
||||||
|
forceSubM(0).readSwitches();
|
||||||
|
|
||||||
|
|
||||||
particleCloud_.checkCG(false);
|
particleCloud_.checkCG(false);
|
||||||
}
|
}
|
||||||
@ -131,12 +135,10 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
|||||||
// get DEM data
|
// get DEM data
|
||||||
particleCloud_.dataExchangeM().getData(partTempName_,"scalar-atom",partTemp_);
|
particleCloud_.dataExchangeM().getData(partTempName_,"scalar-atom",partTemp_);
|
||||||
|
|
||||||
// get viscosity field
|
const volScalarField& nufField = forceSubM(0).nuField();
|
||||||
#ifdef comp
|
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().mu() / rho_;
|
|
||||||
#else
|
Info << "nufField=" << nufField << endl;
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// calc La based heat flux
|
// calc La based heat flux
|
||||||
vector position(0,0,0);
|
vector position(0,0,0);
|
||||||
@ -165,7 +167,7 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
|||||||
cellI = particleCloud_.cellIDs()[index][0];
|
cellI = particleCloud_.cellIDs()[index][0];
|
||||||
if(cellI >= 0)
|
if(cellI >= 0)
|
||||||
{
|
{
|
||||||
if(interpolation_)
|
if(forceSubM(0).interpolation())
|
||||||
{
|
{
|
||||||
position = particleCloud_.position(index);
|
position = particleCloud_.position(index);
|
||||||
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
||||||
@ -185,7 +187,7 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
|||||||
As = ds*ds*M_PI;
|
As = ds*ds*M_PI;
|
||||||
nuf = nufField[cellI];
|
nuf = nufField[cellI];
|
||||||
Rep = ds*magUr/nuf;
|
Rep = ds*magUr/nuf;
|
||||||
Pr = Cp_*nuf*rho_[cellI]/lambda_;
|
Pr = Cp_*nuf*rhoField[cellI]/lambda_;
|
||||||
|
|
||||||
if (Rep < 200)
|
if (Rep < 200)
|
||||||
{
|
{
|
||||||
@ -207,7 +209,7 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
|||||||
partHeatFlux_[index][0] = partHeatFlux;
|
partHeatFlux_[index][0] = partHeatFlux;
|
||||||
|
|
||||||
|
|
||||||
if(verbose_ && index >=0 && index <2)
|
if(forceSubM(0).verbose() && index >=0 && index <2)
|
||||||
{
|
{
|
||||||
Info << "partHeatFlux = " << partHeatFlux << endl;
|
Info << "partHeatFlux = " << partHeatFlux << endl;
|
||||||
Info << "magUr = " << magUr << endl;
|
Info << "magUr = " << magUr << endl;
|
||||||
@ -233,7 +235,7 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
|||||||
);
|
);
|
||||||
|
|
||||||
// scale with -1/(Vcell*rho*Cp)
|
// scale with -1/(Vcell*rho*Cp)
|
||||||
EuField.internalField() /= -rho_.internalField()*Cp_*EuField.mesh().V();
|
EuField.internalField() /= -rhoField.internalField()*Cp_*EuField.mesh().V();
|
||||||
|
|
||||||
// limit source term
|
// limit source term
|
||||||
scalar EuFieldInCell;
|
scalar EuFieldInCell;
|
||||||
@ -247,7 +249,7 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Info << "total convective particle-fluid heat flux [W] (Eulerian) = " << gSum(EuField*rho_*Cp_*EuField.mesh().V()) << endl;
|
Info << "total convective particle-fluid heat flux [W] (Eulerian) = " << gSum(EuField*rhoField*Cp_*EuField.mesh().V()) << endl;
|
||||||
|
|
||||||
// give DEM data
|
// give DEM data
|
||||||
particleCloud_.dataExchangeM().giveData(partHeatFluxName_,"scalar-atom", partHeatFlux_);
|
particleCloud_.dataExchangeM().giveData(partHeatFluxName_,"scalar-atom", partHeatFlux_);
|
||||||
|
|||||||
@ -65,8 +65,6 @@ private:
|
|||||||
|
|
||||||
dictionary propsDict_;
|
dictionary propsDict_;
|
||||||
|
|
||||||
bool verbose_;
|
|
||||||
|
|
||||||
word tempFieldName_;
|
word tempFieldName_;
|
||||||
|
|
||||||
const volScalarField& tempField_; // ref to temperature field
|
const volScalarField& tempField_; // ref to temperature field
|
||||||
@ -93,12 +91,6 @@ private:
|
|||||||
|
|
||||||
scalar Cp_; // specific heat capacity [W*s/(kg*K)]
|
scalar Cp_; // specific heat capacity [W*s/(kg*K)]
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_; // ref to fluid density field
|
|
||||||
|
|
||||||
bool interpolation_; // use interpolated field values
|
|
||||||
|
|
||||||
void allocateMyArrays() const;
|
void allocateMyArrays() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@ -66,29 +66,19 @@ MeiLift::MeiLift
|
|||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
useSecondOrderTerms_(false)
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
useSecondOrderTerms_(false),
|
|
||||||
interpolation_(false),
|
|
||||||
verbose_(false)
|
|
||||||
/*,
|
|
||||||
vorticityFieldName_(propsDict_.lookup("vorticityFieldName")),
|
|
||||||
vorticity_(sm.mesh().lookupObject<volVectorField> (vorticityFieldName_))*/
|
|
||||||
{
|
{
|
||||||
if (propsDict_.found("useSecondOrderTerms")) useSecondOrderTerms_=true;
|
if (propsDict_.found("useSecondOrderTerms")) useSecondOrderTerms_=true;
|
||||||
|
|
||||||
// init force sub model
|
// init force sub model
|
||||||
setForceSubModels(propsDict_);
|
setForceSubModels(propsDict_);
|
||||||
|
|
||||||
// define switches which can be read from dict
|
// define switches which can be read from dict
|
||||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||||
|
forceSubM(0).setSwitchesList(3,true); // activate search for verbose switch
|
||||||
// read those switches defined above, if provided in dict
|
forceSubM(0).setSwitchesList(4,true); // activate search for interpolate switch
|
||||||
|
forceSubM(0).setSwitchesList(8,true); // activate scalarViscosity switch
|
||||||
forceSubM(0).readSwitches();
|
forceSubM(0).readSwitches();
|
||||||
|
|
||||||
if (propsDict_.found("interpolation")) interpolation_=true;
|
|
||||||
if (propsDict_.found("verbose")) verbose_=true;
|
|
||||||
|
|
||||||
particleCloud_.checkCG(false);
|
particleCloud_.checkCG(false);
|
||||||
|
|
||||||
//Append the field names to be probed
|
//Append the field names to be probed
|
||||||
@ -114,12 +104,8 @@ MeiLift::~MeiLift()
|
|||||||
|
|
||||||
void MeiLift::setForce() const
|
void MeiLift::setForce() const
|
||||||
{
|
{
|
||||||
// get viscosity field
|
const volScalarField& nufField = forceSubM(0).nuField();
|
||||||
#ifdef comp
|
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||||
const volScalarField nufField = particleCloud_.turbulence().mu() / rho_;
|
|
||||||
#else
|
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
vector position(0,0,0);
|
vector position(0,0,0);
|
||||||
vector lift(0,0,0);
|
vector lift(0,0,0);
|
||||||
@ -159,7 +145,7 @@ void MeiLift::setForce() const
|
|||||||
{
|
{
|
||||||
Us = particleCloud_.velocity(index);
|
Us = particleCloud_.velocity(index);
|
||||||
|
|
||||||
if(interpolation_)
|
if( forceSubM(0).interpolation() )
|
||||||
{
|
{
|
||||||
position = particleCloud_.position(index);
|
position = particleCloud_.position(index);
|
||||||
Ur = UInterpolator_.interpolate(position,cellI)
|
Ur = UInterpolator_.interpolate(position,cellI)
|
||||||
@ -180,7 +166,7 @@ void MeiLift::setForce() const
|
|||||||
{
|
{
|
||||||
ds = 2*particleCloud_.radius(index);
|
ds = 2*particleCloud_.radius(index);
|
||||||
nuf = nufField[cellI];
|
nuf = nufField[cellI];
|
||||||
rho = rho_[cellI];
|
rho = rhoField[cellI];
|
||||||
|
|
||||||
// calc dimensionless properties
|
// calc dimensionless properties
|
||||||
Rep = ds*magUr/nuf;
|
Rep = ds*magUr/nuf;
|
||||||
@ -236,7 +222,7 @@ void MeiLift::setForce() const
|
|||||||
|
|
||||||
//**********************************
|
//**********************************
|
||||||
//SAMPLING AND VERBOSE OUTOUT
|
//SAMPLING AND VERBOSE OUTOUT
|
||||||
if(verbose_ )
|
if( forceSubM(0).verbose() )
|
||||||
{
|
{
|
||||||
Pout << "index = " << index << endl;
|
Pout << "index = " << index << endl;
|
||||||
Pout << "Us = " << Us << endl;
|
Pout << "Us = " << Us << endl;
|
||||||
|
|||||||
@ -80,20 +80,8 @@ private:
|
|||||||
|
|
||||||
const volVectorField& U_;
|
const volVectorField& U_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_;
|
|
||||||
|
|
||||||
bool useSecondOrderTerms_;
|
bool useSecondOrderTerms_;
|
||||||
|
|
||||||
bool interpolation_;
|
|
||||||
|
|
||||||
bool verbose_;
|
|
||||||
|
|
||||||
/*word vorticityFieldName_;
|
|
||||||
|
|
||||||
volVectorField& vorticity_;*/
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
|
|||||||
@ -66,9 +66,7 @@ SchillerNaumannDrag::SchillerNaumannDrag
|
|||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
verbose_(false),
|
verbose_(false),
|
||||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_))
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_))
|
|
||||||
{
|
{
|
||||||
//Append the field names to be probed
|
//Append the field names to be probed
|
||||||
particleCloud_.probeM().initialize(typeName, "schillerNaumannDrag.logDat");
|
particleCloud_.probeM().initialize(typeName, "schillerNaumannDrag.logDat");
|
||||||
@ -103,15 +101,11 @@ SchillerNaumannDrag::~SchillerNaumannDrag()
|
|||||||
|
|
||||||
void SchillerNaumannDrag::setForce() const
|
void SchillerNaumannDrag::setForce() const
|
||||||
{
|
{
|
||||||
// get viscosity field
|
|
||||||
#ifdef comp
|
|
||||||
const volScalarField nufField = particleCloud_.turbulence().mu() / rho_;
|
|
||||||
#else
|
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "setupProbeModel.H"
|
#include "setupProbeModel.H"
|
||||||
|
|
||||||
|
const volScalarField& nufField = forceSubM(0).nuField();
|
||||||
|
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||||
|
|
||||||
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
||||||
{
|
{
|
||||||
//if(mask[index][0])
|
//if(mask[index][0])
|
||||||
@ -126,7 +120,7 @@ void SchillerNaumannDrag::setForce() const
|
|||||||
vector Ur = U_[cellI]-Us;
|
vector Ur = U_[cellI]-Us;
|
||||||
scalar ds = 2*particleCloud_.radius(index);
|
scalar ds = 2*particleCloud_.radius(index);
|
||||||
scalar nuf = nufField[cellI];
|
scalar nuf = nufField[cellI];
|
||||||
scalar rho = rho_[cellI];
|
scalar rho = rhoField[cellI];
|
||||||
scalar voidfraction = particleCloud_.voidfraction(index);
|
scalar voidfraction = particleCloud_.voidfraction(index);
|
||||||
scalar magUr = mag(Ur);
|
scalar magUr = mag(Ur);
|
||||||
scalar Rep = 0;
|
scalar Rep = 0;
|
||||||
|
|||||||
@ -66,10 +66,6 @@ private:
|
|||||||
|
|
||||||
const volVectorField& U_;
|
const volVectorField& U_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
|
|||||||
@ -68,8 +68,6 @@ ShirgaonkarIB::ShirgaonkarIB
|
|||||||
depth_(1),
|
depth_(1),
|
||||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
pressureFieldName_(propsDict_.lookup("pressureFieldName")),
|
pressureFieldName_(propsDict_.lookup("pressureFieldName")),
|
||||||
p_(sm.mesh().lookupObject<volScalarField> (pressureFieldName_))
|
p_(sm.mesh().lookupObject<volScalarField> (pressureFieldName_))
|
||||||
{
|
{
|
||||||
@ -115,13 +113,12 @@ void ShirgaonkarIB::setForce() const
|
|||||||
vector drag;
|
vector drag;
|
||||||
|
|
||||||
#ifdef comp
|
#ifdef comp
|
||||||
// get viscosity field
|
const volScalarField& mufField = forceSubM(0).muField();
|
||||||
const volScalarField& mufField = particleCloud_.turbulence().mu();
|
|
||||||
volVectorField h = (mufField*fvc::laplacian(U_)-fvc::grad(p_));
|
volVectorField h = (mufField*fvc::laplacian(U_)-fvc::grad(p_));
|
||||||
#else
|
#else
|
||||||
// get viscosity field
|
const volScalarField& nufField = forceSubM(0).nuField();
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||||
volVectorField h = rho_*(nufField*fvc::laplacian(U_)-fvc::grad(p_));
|
volVectorField h = rhoField*(nufField*fvc::laplacian(U_)-fvc::grad(p_));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "setupProbeModel.H"
|
#include "setupProbeModel.H"
|
||||||
|
|||||||
@ -70,10 +70,6 @@ private:
|
|||||||
|
|
||||||
const volVectorField& U_;
|
const volVectorField& U_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_;
|
|
||||||
|
|
||||||
word pressureFieldName_;
|
word pressureFieldName_;
|
||||||
|
|
||||||
const volScalarField& p_;
|
const volScalarField& p_;
|
||||||
|
|||||||
@ -64,8 +64,6 @@ checkCouplingInterval::checkCouplingInterval
|
|||||||
:
|
:
|
||||||
forceModel(dict,sm),
|
forceModel(dict,sm),
|
||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
rhoP_(readScalar(propsDict_.lookup("rhoP")))
|
rhoP_(readScalar(propsDict_.lookup("rhoP")))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@ -82,12 +80,9 @@ void checkCouplingInterval::setForce() const
|
|||||||
{
|
{
|
||||||
if(particleCloud_.mesh().time().write())
|
if(particleCloud_.mesh().time().write())
|
||||||
{
|
{
|
||||||
// get viscosity field
|
|
||||||
#ifdef comp
|
const volScalarField& nufField = forceSubM(0).nuField();
|
||||||
const volScalarField nufField = particleCloud_.turbulence().mu() / rho_;
|
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||||
#else
|
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// find min particle relaxation time
|
// find min particle relaxation time
|
||||||
scalar minTauP = 1000;
|
scalar minTauP = 1000;
|
||||||
@ -101,7 +96,7 @@ void checkCouplingInterval::setForce() const
|
|||||||
{
|
{
|
||||||
scaledRad = particleCloud_.radius(index)/particleCloud_.cg();
|
scaledRad = particleCloud_.radius(index)/particleCloud_.cg();
|
||||||
tauP = rhoP_*4*scaledRad*scaledRad/
|
tauP = rhoP_*4*scaledRad*scaledRad/
|
||||||
(18 * nufField[cellI] * rho_[cellI]);
|
(18 * nufField[cellI] * rhoField[cellI]);
|
||||||
minTauP = min(minTauP,tauP);
|
minTauP = min(minTauP,tauP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -62,10 +62,6 @@ class checkCouplingInterval
|
|||||||
private:
|
private:
|
||||||
dictionary propsDict_;
|
dictionary propsDict_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_;
|
|
||||||
|
|
||||||
const scalar rhoP_;
|
const scalar rhoP_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@ -59,15 +59,39 @@ forceSubModel::forceSubModel
|
|||||||
dict_(dict),
|
dict_(dict),
|
||||||
particleCloud_(sm),
|
particleCloud_(sm),
|
||||||
forceModel_(fm),
|
forceModel_(fm),
|
||||||
nrDefaultSwitches_(3),
|
nrDefaultSwitches_(9), // !!!
|
||||||
switchesNameList_(wordList(nrDefaultSwitches_)),
|
switchesNameList_(wordList(nrDefaultSwitches_)),
|
||||||
switchesList_(List<Switch>(nrDefaultSwitches_)),
|
switchesList_(List<Switch>(nrDefaultSwitches_)),
|
||||||
switches_(List<Switch>(nrDefaultSwitches_))
|
switches_(List<Switch>(nrDefaultSwitches_)),
|
||||||
|
nu_
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"scalarViscosity",
|
||||||
|
sm.mesh().time().timeName(),
|
||||||
|
sm.mesh(),
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
sm.mesh(),
|
||||||
|
dimensionedScalar("nu0", dimensionSet(0, 2, -1, 0, 0), 1.)
|
||||||
|
),
|
||||||
|
nuField_(sm.turbulence().nu()),
|
||||||
|
densityFieldName_(dict_.lookupOrDefault<word>("densityFieldName","rho")),
|
||||||
|
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_))
|
||||||
{
|
{
|
||||||
// init switches lists
|
// init standard switch list
|
||||||
switchesNameList_[0]="treatExplicit";
|
int iCounter(0);
|
||||||
switchesNameList_[1]="treatDEM";
|
switchesNameList_[iCounter]="treatForceExplicit"; iCounter++; //0
|
||||||
switchesNameList_[2]="implDEM";
|
switchesNameList_[iCounter]="treatForceDEM";iCounter++; //1
|
||||||
|
switchesNameList_[iCounter]="implForceDEM";iCounter++; //2
|
||||||
|
switchesNameList_[iCounter]="verbose";iCounter++; //3
|
||||||
|
switchesNameList_[iCounter]="interpolation";iCounter++; //4
|
||||||
|
switchesNameList_[iCounter]="useFilteredDragModel";iCounter++; //5
|
||||||
|
switchesNameList_[iCounter]="useParcelSizeDependentFilteredDrag";iCounter++; //6
|
||||||
|
switchesNameList_[iCounter]="implForceDEMaccumulated";iCounter++; //7
|
||||||
|
switchesNameList_[iCounter]="scalarViscosity";iCounter++; //8
|
||||||
|
|
||||||
for(int i=0;i<switchesList_.size();i++)
|
for(int i=0;i<switchesList_.size();i++)
|
||||||
{
|
{
|
||||||
switchesList_[i]=false;
|
switchesList_[i]=false;
|
||||||
@ -114,7 +138,7 @@ void forceSubModel::partToArray
|
|||||||
}
|
}
|
||||||
|
|
||||||
// forces for DEM
|
// forces for DEM
|
||||||
if(switches_[2]) // implDEM
|
if(switches_[2]) // implForceDEM
|
||||||
{
|
{
|
||||||
for(int j=0;j<3;j++)
|
for(int j=0;j<3;j++)
|
||||||
myForceM().fluidVel()[index][j]=Ufluid[j];
|
myForceM().fluidVel()[index][j]=Ufluid[j];
|
||||||
@ -128,6 +152,8 @@ void forceSubModel::partToArray
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
void forceSubModel::explicitInterpCorr
|
void forceSubModel::explicitInterpCorr
|
||||||
(
|
(
|
||||||
vector& dragExplicit,
|
vector& dragExplicit,
|
||||||
@ -147,10 +173,10 @@ void forceSubModel::explicitInterpCorr
|
|||||||
|
|
||||||
void forceSubModel::readSwitches() const
|
void forceSubModel::readSwitches() const
|
||||||
{
|
{
|
||||||
Info << "\nforceSubModel:" << myType() << endl;
|
Info << "\nreading switches for forceSubModel:" << myType() << endl;
|
||||||
forAll(switchesNameList_,i)
|
forAll(switchesNameList_,i)
|
||||||
{
|
{
|
||||||
if(switchesList_[i] > 0+SMALL)
|
if(switchesList_[i] > 0+SMALL) //check if switch is required
|
||||||
{
|
{
|
||||||
Info << " looking for " << switchesNameList_[i] << " ..." << endl;
|
Info << " looking for " << switchesNameList_[i] << " ..." << endl;
|
||||||
if (dict_.found(switchesNameList_[i]))
|
if (dict_.found(switchesNameList_[i]))
|
||||||
@ -161,20 +187,91 @@ void forceSubModel::readSwitches() const
|
|||||||
}
|
}
|
||||||
Info << endl;
|
Info << endl;
|
||||||
|
|
||||||
if(switches_[2]) // implDEM=true
|
if(switches_[2]) // implForceDEM=true
|
||||||
{
|
{
|
||||||
// communicate implDEM to particleCloud
|
// communicate implForceDEM to particleCloud
|
||||||
particleCloud_.impDEMdrag_=true;
|
particleCloud_.impDEMdrag_=true;
|
||||||
|
|
||||||
// do sanity check
|
// do sanity check
|
||||||
if(switches_[0]) // treatExplicit=true
|
if(switches_[0]) // treatExplicit=true
|
||||||
{
|
{
|
||||||
Warning<< "please check your settings, treatExplicit together with implDEM does not work! (using treatExplicit=false)" << endl;
|
FatalError << "Please check your settings, treatExplicit together with implForceDEM does not work!."
|
||||||
switches_[0]=false;
|
<< abort(FatalError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(switches_[7]) // implForceDEMaccumulated=true
|
||||||
|
{
|
||||||
|
// sanity check for implForceDEMaccumulated
|
||||||
|
if(!switches_[2]) //implForceDEM=false
|
||||||
|
{
|
||||||
|
Warning<< "please check your settings, implForceDEMaccumulated without implForceDEM does not work! (using implForceDEMaccumulated=false)" << endl;
|
||||||
|
switches_[3]=false;
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
particleCloud_.impDEMdragAcc_=true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(switches_[8]) // scalarViscosity=true
|
||||||
|
{
|
||||||
|
Info << "Using a constant viscosity for this force model." << endl;
|
||||||
|
dimensionedScalar nu0_("nu", dimensionSet(0, 2, -1, 0, 0), dict_.lookup("nu"));
|
||||||
|
nu_=volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"scalarViscosity",
|
||||||
|
particleCloud_.mesh().time().timeName(),
|
||||||
|
particleCloud_.mesh(),
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
particleCloud_.mesh(),
|
||||||
|
nu0_
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// look for old nomenclature
|
||||||
|
if (dict_.found("treatExplicit") || dict_.found("treatDEM") || dict_.found("implDEM"))
|
||||||
|
FatalError<< "You are using an old nomenclature for force model settings, please have a look at the forceSubModel doc." << abort(FatalError);
|
||||||
|
|
||||||
|
// look for old nomenclature
|
||||||
|
if (dict_.found("verbose"))
|
||||||
|
Warning<< "Please make sure you use the new nomenclature for verbose force model settings, please have a look at the forceSubModel doc." << endl;
|
||||||
|
|
||||||
|
//if (dict_.found("interpolation"))
|
||||||
|
// FatalError<< "Please make sure you use the new nomenclature for interpolation in force model settings, please have a look at the forceSubModel doc." << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const volScalarField& forceSubModel::nuField() const
|
||||||
|
{
|
||||||
|
#ifdef comp
|
||||||
|
return particleCloud_.turbulence().mu() / rho_;
|
||||||
|
#else
|
||||||
|
if(switches_[8]) // scalarViscosity=true
|
||||||
|
return nu_;
|
||||||
|
else
|
||||||
|
return particleCloud_.turbulence().nu();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
const volScalarField& forceSubModel::muField() const
|
||||||
|
{
|
||||||
|
#ifdef comp
|
||||||
|
return particleCloud_.turbulence().mu();
|
||||||
|
#else
|
||||||
|
if(switches_[8]) // scalarViscosity=true
|
||||||
|
return nu_*rho_;
|
||||||
|
else
|
||||||
|
return particleCloud_.turbulence().nu()*rho_;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
const volScalarField& forceSubModel::rhoField() const
|
||||||
|
{
|
||||||
|
return rho_;
|
||||||
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
} // End namespace Foam
|
} // End namespace Foam
|
||||||
|
|||||||
@ -71,6 +71,13 @@ protected:
|
|||||||
|
|
||||||
mutable List<Switch> switches_;
|
mutable List<Switch> switches_;
|
||||||
|
|
||||||
|
mutable volScalarField nu_;
|
||||||
|
|
||||||
|
const volScalarField& nuField_;
|
||||||
|
|
||||||
|
word densityFieldName_;
|
||||||
|
|
||||||
|
const volScalarField& rho_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -127,6 +134,14 @@ public:
|
|||||||
|
|
||||||
// Access
|
// Access
|
||||||
|
|
||||||
|
inline bool verbose() const { return switches_[3]; };
|
||||||
|
|
||||||
|
inline bool interpolation() const { return switches_[4]; };
|
||||||
|
|
||||||
|
inline bool useFilteredDragModel() const { return switches_[5]; };
|
||||||
|
|
||||||
|
inline bool useParcelSizeDependentFilteredDrag() const { return switches_[6]; };
|
||||||
|
|
||||||
virtual word myType() const=0;
|
virtual word myType() const=0;
|
||||||
|
|
||||||
inline forceModel& myForceM() const { return forceModel_;};
|
inline forceModel& myForceM() const { return forceModel_;};
|
||||||
@ -142,6 +157,12 @@ public:
|
|||||||
virtual void readSwitches() const;
|
virtual void readSwitches() const;
|
||||||
|
|
||||||
const label& nrDefaultSwitches() const {return nrDefaultSwitches_;};
|
const label& nrDefaultSwitches() const {return nrDefaultSwitches_;};
|
||||||
|
|
||||||
|
const volScalarField& nuField() const;
|
||||||
|
|
||||||
|
const volScalarField& muField() const;
|
||||||
|
|
||||||
|
const volScalarField& rhoField() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -62,25 +62,21 @@ gradPForce::gradPForce
|
|||||||
:
|
:
|
||||||
forceModel(dict,sm),
|
forceModel(dict,sm),
|
||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
verbose_(false),
|
|
||||||
pFieldName_(propsDict_.lookup("pFieldName")),
|
pFieldName_(propsDict_.lookup("pFieldName")),
|
||||||
p_(sm.mesh().lookupObject<volScalarField> (pFieldName_)),
|
p_(sm.mesh().lookupObject<volScalarField> (pFieldName_)),
|
||||||
velocityFieldName_(propsDict_.lookup("velocityFieldName")),
|
velocityFieldName_(propsDict_.lookup("velocityFieldName")),
|
||||||
U_(sm.mesh().lookupObject<volVectorField> (velocityFieldName_)),
|
U_(sm.mesh().lookupObject<volVectorField> (velocityFieldName_)),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
useRho_(false),
|
useRho_(false),
|
||||||
useU_(false),
|
useU_(false),
|
||||||
addedMassCoeff_(0.0),
|
addedMassCoeff_(0.0)
|
||||||
interpolation_(false)
|
|
||||||
{
|
{
|
||||||
if (propsDict_.found("verbose")) verbose_=true;
|
|
||||||
|
|
||||||
// init force sub model
|
// init force sub model
|
||||||
setForceSubModels(propsDict_);
|
setForceSubModels(propsDict_);
|
||||||
|
|
||||||
// define switches which can be read from dict
|
// define switches which can be read from dict
|
||||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||||
|
forceSubM(0).setSwitchesList(1,true); // activate treatForceDEM switch
|
||||||
|
forceSubM(0).setSwitchesList(4,true); // activate search for interpolate switch
|
||||||
|
|
||||||
// read those switches defined above, if provided in dict
|
// read those switches defined above, if provided in dict
|
||||||
forceSubM(0).readSwitches();
|
forceSubM(0).readSwitches();
|
||||||
@ -88,10 +84,20 @@ gradPForce::gradPForce
|
|||||||
if (modelType_ == "B")
|
if (modelType_ == "B")
|
||||||
{
|
{
|
||||||
FatalError <<"using model gradPForce with model type B is not valid\n" << abort(FatalError);
|
FatalError <<"using model gradPForce with model type B is not valid\n" << abort(FatalError);
|
||||||
}else
|
}else if (modelType_ == "Bfull")
|
||||||
{
|
{
|
||||||
forceSubM(0).setSwitches(1,true); // treatDEM = true
|
if(forceSubM(0).switches()[1])
|
||||||
Info << "gradPForce is applied only to DEM side" << endl;
|
{
|
||||||
|
Info << "Using treatForceDEM false!" << endl;
|
||||||
|
forceSubM(0).setSwitches(1,false); // treatForceDEM = false
|
||||||
|
}
|
||||||
|
}else // modelType_=="A"
|
||||||
|
{
|
||||||
|
if(!forceSubM(0).switches()[1])
|
||||||
|
{
|
||||||
|
Info << "Using treatForceDEM true!" << endl;
|
||||||
|
forceSubM(0).setSwitches(1,true); // treatForceDEM = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (propsDict_.found("useU")) useU_=true;
|
if (propsDict_.found("useU")) useU_=true;
|
||||||
@ -101,11 +107,6 @@ gradPForce::gradPForce
|
|||||||
Info << "gradP will also include added mass with coefficient: " << addedMassCoeff_ << endl;
|
Info << "gradP will also include added mass with coefficient: " << addedMassCoeff_ << endl;
|
||||||
Info << "WARNING: use fix nve/sphere/addedMass in LIGGGHTS input script to correctly account for added mass effects!" << endl;
|
Info << "WARNING: use fix nve/sphere/addedMass in LIGGGHTS input script to correctly account for added mass effects!" << endl;
|
||||||
}
|
}
|
||||||
if (propsDict_.found("interpolation"))
|
|
||||||
{
|
|
||||||
Info << "using interpolated value of pressure gradient." << endl;
|
|
||||||
interpolation_=true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(p_.dimensions()==dimensionSet(0,2,-2,0,0))
|
if(p_.dimensions()==dimensionSet(0,2,-2,0,0))
|
||||||
useRho_ = true;
|
useRho_ = true;
|
||||||
@ -138,7 +139,7 @@ void gradPForce::setForce() const
|
|||||||
if (useRho_)
|
if (useRho_)
|
||||||
gradPField = fvc::grad(0.5*U2);
|
gradPField = fvc::grad(0.5*U2);
|
||||||
else
|
else
|
||||||
gradPField = fvc::grad(0.5*rho_*U2);
|
gradPField = fvc::grad(0.5*forceSubM(0).rhoField()*U2);
|
||||||
}*/
|
}*/
|
||||||
vector gradP;
|
vector gradP;
|
||||||
scalar Vs;
|
scalar Vs;
|
||||||
@ -162,7 +163,7 @@ void gradPForce::setForce() const
|
|||||||
{
|
{
|
||||||
position = particleCloud_.position(index);
|
position = particleCloud_.position(index);
|
||||||
|
|
||||||
if(interpolation_) // use intepolated values for alpha (normally off!!!)
|
if(forceSubM(0).interpolation()) // use intepolated values for alpha (normally off!!!)
|
||||||
{
|
{
|
||||||
gradP = gradPInterpolator_.interpolate(position,cellI);
|
gradP = gradPInterpolator_.interpolate(position,cellI);
|
||||||
}else
|
}else
|
||||||
@ -171,7 +172,7 @@ void gradPForce::setForce() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
Vs = particleCloud_.particleVolume(index);
|
Vs = particleCloud_.particleVolume(index);
|
||||||
rho = rho_[cellI];
|
rho = forceSubM(0).rhoField()[cellI];
|
||||||
|
|
||||||
// calc particle's pressure gradient force
|
// calc particle's pressure gradient force
|
||||||
if (useRho_)
|
if (useRho_)
|
||||||
@ -179,7 +180,7 @@ void gradPForce::setForce() const
|
|||||||
else
|
else
|
||||||
force = -Vs*gradP*(1.0+addedMassCoeff_);
|
force = -Vs*gradP*(1.0+addedMassCoeff_);
|
||||||
|
|
||||||
if(verbose_ && index >=0 && index <2)
|
if(forceSubM(0).verbose() && index >=0 && index <2)
|
||||||
{
|
{
|
||||||
Info << "index = " << index << endl;
|
Info << "index = " << index << endl;
|
||||||
Info << "gradP = " << gradP << endl;
|
Info << "gradP = " << gradP << endl;
|
||||||
|
|||||||
@ -63,8 +63,6 @@ class gradPForce
|
|||||||
private:
|
private:
|
||||||
dictionary propsDict_;
|
dictionary propsDict_;
|
||||||
|
|
||||||
bool verbose_;
|
|
||||||
|
|
||||||
word pFieldName_;
|
word pFieldName_;
|
||||||
|
|
||||||
const volScalarField& p_;
|
const volScalarField& p_;
|
||||||
@ -73,18 +71,12 @@ private:
|
|||||||
|
|
||||||
const volVectorField& U_;
|
const volVectorField& U_;
|
||||||
|
|
||||||
word densityFieldName_;
|
|
||||||
|
|
||||||
const volScalarField& rho_;
|
|
||||||
|
|
||||||
bool useRho_;
|
bool useRho_;
|
||||||
|
|
||||||
bool useU_; // if false: substitution p=0.5*rho*U^2
|
bool useU_; // if false: substitution p=0.5*rho*U^2
|
||||||
|
|
||||||
mutable double addedMassCoeff_; //added mass coefficient
|
mutable double addedMassCoeff_; //added mass coefficient
|
||||||
|
|
||||||
bool interpolation_; // use interpolated field values
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
|
|||||||
@ -40,6 +40,8 @@ Description
|
|||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#define NOTONCPU 9999
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
defineTypeNameAndDebug(virtualMassForce, 0);
|
defineTypeNameAndDebug(virtualMassForce, 0);
|
||||||
@ -63,30 +65,42 @@ virtualMassForce::virtualMassForce
|
|||||||
:
|
:
|
||||||
forceModel(dict,sm),
|
forceModel(dict,sm),
|
||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
verbose_(false),
|
|
||||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
phiFieldName_(propsDict_.lookup("phiFieldName")),
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
phi_(sm.mesh().lookupObject<surfaceScalarField> (phiFieldName_)),
|
||||||
UrelOld_(NULL)
|
UrelOld_(NULL),
|
||||||
|
splitUrelCalculation_(false),
|
||||||
|
Cadd_(0.5)
|
||||||
{
|
{
|
||||||
if (propsDict_.found("verbose")) verbose_=true;
|
|
||||||
|
|
||||||
if (particleCloud_.dataExchangeM().maxNumberOfParticles() > 0)
|
if (particleCloud_.dataExchangeM().maxNumberOfParticles() > 0)
|
||||||
{
|
{
|
||||||
// get memory for 2d array
|
// get memory for 2d array
|
||||||
particleCloud_.dataExchangeM().allocateArray(UrelOld_,0.,3);
|
particleCloud_.dataExchangeM().allocateArray(UrelOld_,NOTONCPU,3);
|
||||||
}
|
}
|
||||||
|
|
||||||
// init force sub model
|
// init force sub model
|
||||||
setForceSubModels(propsDict_);
|
setForceSubModels(propsDict_);
|
||||||
|
|
||||||
// define switches which can be read from dict
|
// define switches which can be read from dict
|
||||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||||
|
forceSubM(0).setSwitchesList(4,true); // activate search for interpolate switch
|
||||||
// read those switches defined above, if provided in dict
|
|
||||||
forceSubM(0).readSwitches();
|
forceSubM(0).readSwitches();
|
||||||
|
|
||||||
|
//Extra switches/settings
|
||||||
|
if(propsDict_.found("splitUrelCalculation"))
|
||||||
|
{
|
||||||
|
splitUrelCalculation_ = readBool(propsDict_.lookup("splitUrelCalculation"));
|
||||||
|
if(splitUrelCalculation_)
|
||||||
|
Info << "Virtual mass model: will split the Urel calculation\n";
|
||||||
|
Info << "WARNING: be sure that LIGGGHTS integration takes ddtv_p implicitly into account! \n";
|
||||||
|
}
|
||||||
|
if(propsDict_.found("Cadd"))
|
||||||
|
{
|
||||||
|
Cadd_ = readScalar(propsDict_.lookup("Cadd"));
|
||||||
|
Info << "Virtual mass model: using non-standard Cadd = " << Cadd_ << endl;
|
||||||
|
}
|
||||||
|
|
||||||
particleCloud_.checkCG(true);
|
particleCloud_.checkCG(true);
|
||||||
|
|
||||||
//Append the field names to be probed
|
//Append the field names to be probed
|
||||||
@ -94,6 +108,7 @@ virtualMassForce::virtualMassForce
|
|||||||
particleCloud_.probeM().vectorFields_.append("virtualMassForce"); //first entry must the be the force
|
particleCloud_.probeM().vectorFields_.append("virtualMassForce"); //first entry must the be the force
|
||||||
particleCloud_.probeM().vectorFields_.append("Urel");
|
particleCloud_.probeM().vectorFields_.append("Urel");
|
||||||
particleCloud_.probeM().vectorFields_.append("UrelOld");
|
particleCloud_.probeM().vectorFields_.append("UrelOld");
|
||||||
|
particleCloud_.probeM().vectorFields_.append("ddtUrel");
|
||||||
particleCloud_.probeM().scalarFields_.append("Vs");
|
particleCloud_.probeM().scalarFields_.append("Vs");
|
||||||
particleCloud_.probeM().scalarFields_.append("rho");
|
particleCloud_.probeM().scalarFields_.append("rho");
|
||||||
particleCloud_.probeM().writeHeader();
|
particleCloud_.probeM().writeHeader();
|
||||||
@ -116,32 +131,88 @@ void virtualMassForce::setForce() const
|
|||||||
|
|
||||||
scalar dt = U_.mesh().time().deltaT().value();
|
scalar dt = U_.mesh().time().deltaT().value();
|
||||||
|
|
||||||
|
vector position(0,0,0);
|
||||||
|
vector Ufluid(0,0,0);
|
||||||
|
vector Ur(0,0,0);
|
||||||
|
vector DDtU(0,0,0);
|
||||||
|
|
||||||
|
//Compute extra vfields in case it is needed
|
||||||
|
volVectorField DDtU_(0.0*U_/U_.mesh().time().deltaT());
|
||||||
|
if(splitUrelCalculation_)
|
||||||
|
DDtU_ = fvc::ddt(U_) + fvc::div(phi_, U_); //Total Derivative of fluid velocity
|
||||||
|
|
||||||
|
interpolationCellPoint<vector> UInterpolator_( U_);
|
||||||
|
interpolationCellPoint<vector> DDtUInterpolator_(DDtU_);
|
||||||
|
|
||||||
#include "setupProbeModel.H"
|
#include "setupProbeModel.H"
|
||||||
|
|
||||||
|
bool haveUrelOld_(false);
|
||||||
|
|
||||||
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
||||||
{
|
{
|
||||||
//if(mask[index][0])
|
|
||||||
//{
|
|
||||||
vector virtualMassForce(0,0,0);
|
vector virtualMassForce(0,0,0);
|
||||||
label cellI = particleCloud_.cellIDs()[index][0];
|
label cellI = particleCloud_.cellIDs()[index][0];
|
||||||
|
|
||||||
if (cellI > -1) // particle Found
|
if (cellI > -1) // particle Found
|
||||||
|
{
|
||||||
|
|
||||||
|
if(forceSubM(0).interpolation())
|
||||||
|
{
|
||||||
|
position = particleCloud_.position(index);
|
||||||
|
Ufluid = UInterpolator_.interpolate(position,cellI);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Ufluid = U_[cellI];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(splitUrelCalculation_) //if split, just use total derivative of fluid velocity
|
||||||
|
if(forceSubM(0).interpolation())
|
||||||
|
{
|
||||||
|
DDtU = DDtUInterpolator_.interpolate(position,cellI);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DDtU = DDtU_[cellI];
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
vector Us = particleCloud_.velocity(index);
|
vector Us = particleCloud_.velocity(index);
|
||||||
vector Ur = U_[cellI]-Us;
|
Ur = Ufluid - Us;
|
||||||
vector UrelOld;
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Check of particle was on this CPU the last step
|
||||||
|
if(UrelOld_[index][0]==NOTONCPU) //use 1. element to indicate that particle was on this CPU the last time step
|
||||||
|
haveUrelOld_ = false;
|
||||||
|
else
|
||||||
|
haveUrelOld_ = true;
|
||||||
|
|
||||||
|
vector UrelOld(0.,0.,0.);
|
||||||
|
vector ddtUrel(0.,0.,0.);
|
||||||
for(int j=0;j<3;j++)
|
for(int j=0;j<3;j++)
|
||||||
{
|
{
|
||||||
UrelOld[j] = UrelOld_[index][j];
|
UrelOld[j] = UrelOld_[index][j];
|
||||||
UrelOld_[index][j] = Ur[j];
|
UrelOld_[index][j] = Ur[j];
|
||||||
}
|
}
|
||||||
|
if(haveUrelOld_ ) //only compute force if we have old (relative) velocity
|
||||||
|
ddtUrel = (Ur-UrelOld)/dt;
|
||||||
|
|
||||||
|
if(splitUrelCalculation_) //we can always compute the total derivative in case we split
|
||||||
|
ddtUrel = DDtU;
|
||||||
|
|
||||||
vector ddtUrel = (Ur-UrelOld)/dt;
|
|
||||||
scalar ds = 2*particleCloud_.radius(index);
|
scalar ds = 2*particleCloud_.radius(index);
|
||||||
scalar Vs = ds*ds*ds*M_PI/6;
|
scalar Vs = ds*ds*ds*M_PI/6;
|
||||||
scalar rho = rho_[cellI];
|
scalar rho = forceSubM(0).rhoField()[cellI];
|
||||||
|
|
||||||
virtualMassForce = 0.5 * rho * Vs * ddtUrel;
|
virtualMassForce = Cadd_ * rho * Vs * ddtUrel;
|
||||||
|
|
||||||
|
if( forceSubM(0).verbose() ) //&& index>100 && index < 105)
|
||||||
|
{
|
||||||
|
Pout << "index / cellI = " << index << tab << cellI << endl;
|
||||||
|
Pout << "position = " << particleCloud_.position(index) << endl;
|
||||||
|
}
|
||||||
|
|
||||||
//Set value fields and write the probe
|
//Set value fields and write the probe
|
||||||
if(probeIt_)
|
if(probeIt_)
|
||||||
@ -150,25 +221,27 @@ void virtualMassForce::setForce() const
|
|||||||
vValues.append(virtualMassForce); //first entry must the be the force
|
vValues.append(virtualMassForce); //first entry must the be the force
|
||||||
vValues.append(Ur);
|
vValues.append(Ur);
|
||||||
vValues.append(UrelOld);
|
vValues.append(UrelOld);
|
||||||
|
vValues.append(ddtUrel);
|
||||||
sValues.append(Vs);
|
sValues.append(Vs);
|
||||||
sValues.append(rho);
|
sValues.append(rho);
|
||||||
particleCloud_.probeM().writeProbe(index, sValues, vValues);
|
particleCloud_.probeM().writeProbe(index, sValues, vValues);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else //particle not on this CPU
|
||||||
|
UrelOld_[index][0]=NOTONCPU;
|
||||||
|
|
||||||
// write particle based data to global array
|
// write particle based data to global array
|
||||||
forceSubM(0).partToArray(index,virtualMassForce,vector::zero);
|
forceSubM(0).partToArray(index,virtualMassForce,vector::zero);
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
void Foam::virtualMassForce::reAllocArrays() const
|
void Foam::virtualMassForce::reAllocArrays() const
|
||||||
{
|
{
|
||||||
if(particleCloud_.numberOfParticlesChanged())
|
if(particleCloud_.numberOfParticlesChanged())
|
||||||
{
|
{
|
||||||
// get arrays of new length
|
Pout << "virtualMassForce::reAllocArrays..." << endl;
|
||||||
particleCloud_.dataExchangeM().allocateArray(UrelOld_,1.,1);
|
particleCloud_.dataExchangeM().allocateArray(UrelOld_,NOTONCPU,3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -41,6 +41,7 @@ SourceFiles
|
|||||||
|
|
||||||
#include "forceModel.H"
|
#include "forceModel.H"
|
||||||
#include "dataExchangeModel.H"
|
#include "dataExchangeModel.H"
|
||||||
|
#include "interpolationCellPoint.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -58,18 +59,22 @@ class virtualMassForce
|
|||||||
private:
|
private:
|
||||||
dictionary propsDict_;
|
dictionary propsDict_;
|
||||||
|
|
||||||
bool verbose_;
|
|
||||||
|
|
||||||
word velFieldName_;
|
word velFieldName_;
|
||||||
|
|
||||||
const volVectorField& U_;
|
const volVectorField& U_;
|
||||||
|
|
||||||
word densityFieldName_;
|
word phiFieldName_;
|
||||||
|
|
||||||
const volScalarField& rho_;
|
const surfaceScalarField& phi_;
|
||||||
|
|
||||||
mutable double **UrelOld_;
|
mutable double **UrelOld_;
|
||||||
|
|
||||||
|
mutable bool splitUrelCalculation_; //indicator to split calculation of Urel between CFDEM and LIGGGHTS
|
||||||
|
//requires the integration fix to take dv/dt into account!
|
||||||
|
|
||||||
|
mutable double Cadd_; //indicator to split calculation of Urel between CFDEM and LIGGGHTS
|
||||||
|
//requires the integration fix to take dv/dt into account!
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
|
|||||||
@ -62,13 +62,9 @@ viscForce::viscForce
|
|||||||
:
|
:
|
||||||
forceModel(dict,sm),
|
forceModel(dict,sm),
|
||||||
propsDict_(dict.subDict(typeName + "Props")),
|
propsDict_(dict.subDict(typeName + "Props")),
|
||||||
verbose_(false),
|
|
||||||
velocityFieldName_(propsDict_.lookup("velocityFieldName")),
|
velocityFieldName_(propsDict_.lookup("velocityFieldName")),
|
||||||
U_(sm.mesh().lookupObject<volVectorField> (velocityFieldName_)),
|
U_(sm.mesh().lookupObject<volVectorField> (velocityFieldName_)),
|
||||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
addedMassCoeff_(0.0)
|
||||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
|
||||||
addedMassCoeff_(0.0),
|
|
||||||
interpolation_(false)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
// init force sub model
|
// init force sub model
|
||||||
@ -76,6 +72,9 @@ viscForce::viscForce
|
|||||||
|
|
||||||
// define switches which can be read from dict
|
// define switches which can be read from dict
|
||||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||||
|
forceSubM(0).setSwitchesList(1,true); // activate treatForceDEM switch
|
||||||
|
forceSubM(0).setSwitchesList(4,true); // activate search for interpolate switch
|
||||||
|
forceSubM(0).setSwitchesList(8,true); // activate scalarViscosity switch
|
||||||
|
|
||||||
// read those switches defined above, if provided in dict
|
// read those switches defined above, if provided in dict
|
||||||
forceSubM(0).readSwitches();
|
forceSubM(0).readSwitches();
|
||||||
@ -83,12 +82,22 @@ viscForce::viscForce
|
|||||||
if (modelType_ == "B")
|
if (modelType_ == "B")
|
||||||
{
|
{
|
||||||
FatalError <<"using model viscForce with model type B is not valid\n" << abort(FatalError);
|
FatalError <<"using model viscForce with model type B is not valid\n" << abort(FatalError);
|
||||||
}else
|
}else if (modelType_ == "Bfull")
|
||||||
{
|
{
|
||||||
forceSubM(0).setSwitches(1,true); // treatDEM = true
|
if(forceSubM(0).switches()[1])
|
||||||
Info << "viscForce is applied only to DEM side" << endl;
|
{
|
||||||
|
Info << "Using treatForceDEM false!" << endl;
|
||||||
|
forceSubM(0).setSwitches(1,false); // treatForceDEM = false
|
||||||
|
}
|
||||||
|
|
||||||
|
}else // modelType_=="A"
|
||||||
|
{
|
||||||
|
if(!forceSubM(0).switches()[1])
|
||||||
|
{
|
||||||
|
Info << "Using treatForceDEM true!" << endl;
|
||||||
|
forceSubM(0).setSwitches(1,true); // treatForceDEM = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (propsDict_.found("verbose")) verbose_=true;
|
|
||||||
|
|
||||||
if (propsDict_.found("useAddedMass"))
|
if (propsDict_.found("useAddedMass"))
|
||||||
{
|
{
|
||||||
@ -97,11 +106,6 @@ viscForce::viscForce
|
|||||||
Info << "WARNING: use fix nve/sphere/addedMass in LIGGGHTS input script to correctly account for added mass effects!" << endl;
|
Info << "WARNING: use fix nve/sphere/addedMass in LIGGGHTS input script to correctly account for added mass effects!" << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (propsDict_.found("interpolation"))
|
|
||||||
{
|
|
||||||
Info << "using interpolated value of pressure gradient." << endl;
|
|
||||||
interpolation_=true;
|
|
||||||
}
|
|
||||||
particleCloud_.checkCG(true);
|
particleCloud_.checkCG(true);
|
||||||
|
|
||||||
//Append the field names to be probed
|
//Append the field names to be probed
|
||||||
@ -122,22 +126,20 @@ viscForce::~viscForce()
|
|||||||
|
|
||||||
void viscForce::setForce() const
|
void viscForce::setForce() const
|
||||||
{
|
{
|
||||||
|
const volScalarField& nufField = forceSubM(0).nuField();
|
||||||
|
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||||
|
|
||||||
// get viscosity field
|
// get viscosity field
|
||||||
#ifdef comp
|
#ifdef comp
|
||||||
const volScalarField& mufField = particleCloud_.turbulence().mu();
|
|
||||||
|
|
||||||
// calc div(Tau)
|
// calc div(Tau)
|
||||||
volVectorField divTauField =
|
volVectorField divTauField =
|
||||||
- fvc::laplacian(mufField, U_)
|
- fvc::laplacian(forceSubM(0).muField(), U_)
|
||||||
- fvc::div(mufField*dev(fvc::grad(U_)().T()));
|
- fvc::div(forceSubM(0).muField()*dev(fvc::grad(U_)().T()));
|
||||||
#else
|
#else
|
||||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
|
||||||
|
|
||||||
// calc div(Tau)
|
// calc div(Tau)
|
||||||
volVectorField divTauField =
|
volVectorField divTauField =
|
||||||
- fvc::laplacian(nufField*rho_, U_)
|
- fvc::laplacian(nufField*rhoField, U_)
|
||||||
- fvc::div(nufField*rho_*dev(fvc::grad(U_)().T()));
|
- fvc::div(nufField*rhoField*dev(fvc::grad(U_)().T()));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
vector divTau;
|
vector divTau;
|
||||||
@ -162,7 +164,7 @@ void viscForce::setForce() const
|
|||||||
|
|
||||||
position = particleCloud_.position(index);
|
position = particleCloud_.position(index);
|
||||||
|
|
||||||
if(interpolation_) // use intepolated values for alpha (normally off!!!)
|
if(forceSubM(0).interpolation()) // use intepolated values for alpha (normally off!!!)
|
||||||
{
|
{
|
||||||
divTau = divTauInterpolator_.interpolate(position,cellI);
|
divTau = divTauInterpolator_.interpolate(position,cellI);
|
||||||
}else
|
}else
|
||||||
@ -176,7 +178,7 @@ void viscForce::setForce() const
|
|||||||
// to the generalized buoyancy force
|
// to the generalized buoyancy force
|
||||||
force = -Vs*divTau*(1.0+addedMassCoeff_);
|
force = -Vs*divTau*(1.0+addedMassCoeff_);
|
||||||
|
|
||||||
if(verbose_ && index >0 && index <2)
|
if(forceSubM(0).verbose() && index >0 && index <2)
|
||||||
{
|
{
|
||||||
Info << "index = " << index << endl;
|
Info << "index = " << index << endl;
|
||||||
Info << "gradP = " << divTau << endl;
|
Info << "gradP = " << divTau << endl;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user