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/dynamicMesh/lnInclude \
|
||||
-I$(LIB_SRC)/fvOptions/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-L$(CFDEM_LIB_DIR)\
|
||||
-lincompressibleRASModels \
|
||||
@ -22,3 +21,4 @@ EXE_LIBS = \
|
||||
-ldynamicMesh \
|
||||
-lfvOptions \
|
||||
-l$(CFDEM_LIB_NAME)
|
||||
|
||||
|
||||
@ -42,6 +42,7 @@ Description
|
||||
#include "implicitCouple.H"
|
||||
#include "clockModel.H"
|
||||
#include "smoothingModel.H"
|
||||
#include "forceModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -59,10 +60,9 @@ int main(int argc, char *argv[])
|
||||
#include "checkModelType.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
Info<< "\nStarting time loop\n" << endl;
|
||||
while (runTime.loop())
|
||||
{
|
||||
Info<< "\nStarting time loop\n" << endl;
|
||||
particleCloud.clockM().start(1,"Global");
|
||||
|
||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||
@ -72,7 +72,17 @@ int main(int argc, char *argv[])
|
||||
|
||||
// do particle stuff
|
||||
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;
|
||||
Ksl = particleCloud.momCoupleM(0).impMomSource();
|
||||
@ -97,16 +107,16 @@ int main(int argc, char *argv[])
|
||||
// Momentum predictor
|
||||
fvVectorMatrix UEqn
|
||||
(
|
||||
fvm::ddt(voidfraction,U) + fvm::Sp(fvc::ddt(voidfraction),U)
|
||||
+ fvm::div(phi,U) + fvm::Sp(fvc::div(phi),U)
|
||||
fvm::ddt(voidfraction,U) - fvm::Sp(fvc::ddt(voidfraction),U)
|
||||
+ fvm::div(phi,U) - fvm::Sp(fvc::div(phi),U)
|
||||
// + turbulence->divDevReff(U)
|
||||
+ particleCloud.divVoidfractionTau(U, voidfraction)
|
||||
==
|
||||
- fvm::Sp(Ksl/rho,U)
|
||||
);
|
||||
|
||||
if (modelType=="B")
|
||||
UEqn == - fvc::grad(p) + Ksl/rho*Us;
|
||||
if (modelType=="B" || modelType=="Bfull")
|
||||
UEqn == - fvc::grad(p) + Ksl/rho*Us;
|
||||
else
|
||||
UEqn == - voidfraction*fvc::grad(p) + Ksl/rho*Us;
|
||||
|
||||
@ -169,7 +179,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
#include "continuityErrorPhiPU.H"
|
||||
|
||||
if (modelType=="B")
|
||||
if (modelType=="B" || modelType=="Bfull")
|
||||
U -= rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
||||
else
|
||||
U -= voidfraction*rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
||||
|
||||
@ -89,6 +89,22 @@
|
||||
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"
|
||||
|
||||
@ -40,30 +40,26 @@ Description
|
||||
|
||||
#include "cfdemCloud.H"
|
||||
#include "implicitCouple.H"
|
||||
#include "forceModel.H"
|
||||
#include "smoothingModel.H"
|
||||
#include "forceModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
#include "setRootCase.H"
|
||||
|
||||
#include "createTime.H"
|
||||
#include "createMesh.H"
|
||||
#include "createFields.H"
|
||||
|
||||
#include "initContinuityErrs.H"
|
||||
|
||||
// create cfdemCloud
|
||||
#include "readGravitationalAcceleration.H"
|
||||
cfdemCloud particleCloud(mesh);
|
||||
|
||||
#include "checkModelType.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
Info<< "\nStarting time loop\n" << endl;
|
||||
|
||||
while (runTime.loop())
|
||||
{
|
||||
Info<< "Time = " << runTime.timeName() << nl << endl;
|
||||
@ -73,7 +69,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
// do particle stuff
|
||||
Info << "- evolve()" << endl;
|
||||
particleCloud.evolve(voidfraction,Us,U);
|
||||
bool hasEvolved = particleCloud.evolve(voidfraction,Us,U);
|
||||
|
||||
Ksl.internalField() = particleCloud.momCoupleM(0).impMomSource();
|
||||
particleCloud.smoothingM().smoothen(Ksl);
|
||||
@ -115,7 +111,7 @@ int main(int argc, char *argv[])
|
||||
if (momentumPredictor)
|
||||
{
|
||||
//solve UEqn
|
||||
if (modelType=="B")
|
||||
if (modelType=="B" || modelType=="Bfull")
|
||||
solve(UEqn == - fvc::grad(p) + Ksl/rho*Us);
|
||||
else
|
||||
solve(UEqn == - voidfraction*fvc::grad(p) + Ksl/rho*Us);
|
||||
@ -176,7 +172,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
#include "continuityErrorPhiPU.H"
|
||||
|
||||
if (modelType=="B")
|
||||
if (modelType=="B" || modelType=="Bfull")
|
||||
U -= rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
||||
else
|
||||
U -= voidfraction*rUA*fvc::grad(p) - Ksl/rho*Us*rUA;
|
||||
|
||||
@ -71,6 +71,7 @@ int main(int argc, char *argv[])
|
||||
double **voidfractions_;
|
||||
double **particleWeights_;
|
||||
double **particleVolumes_;
|
||||
double **particleV_;
|
||||
double **cellIDs_;
|
||||
|
||||
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(particleWeights_,0.,1);
|
||||
particleCloud.dataExchangeM().allocateArray(particleVolumes_,0.,1);
|
||||
particleCloud.dataExchangeM().allocateArray(particleV_,0.,1);
|
||||
particleCloud.get_cellIDs(cellIDs_); // get ref to cellIDs
|
||||
//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.setPos(positions_);
|
||||
|
||||
particleCloud.voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_);
|
||||
particleCloud.voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_,particleV_);
|
||||
|
||||
voidfraction.internalField() = particleCloud.voidFractionM().voidFractionInterp();
|
||||
voidfraction.correctBoundaryConditions();
|
||||
@ -135,6 +137,7 @@ int main(int argc, char *argv[])
|
||||
particleCloud.dataExchangeM().destroy(voidfractions_,1);
|
||||
particleCloud.dataExchangeM().destroy(particleWeights_,1);
|
||||
particleCloud.dataExchangeM().destroy(particleVolumes_,1);
|
||||
particleCloud.dataExchangeM().destroy(particleV_,1);
|
||||
//particleCloud.dataExchangeM().destroy(cellIDs_); // destroyed in cloud
|
||||
|
||||
Info<< "End\n" << endl;
|
||||
|
||||
@ -164,7 +164,7 @@ In order to get the latest code version, please use the git repository at http:/
|
||||
</P>
|
||||
<PRE>modelType
|
||||
</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>
|
||||
<PRE>couplingInterval
|
||||
</PRE>
|
||||
|
||||
Binary file not shown.
@ -133,7 +133,7 @@ Reasonable example settings for the "couplingProperties" dictionary are given in
|
||||
|
||||
modelType :pre
|
||||
|
||||
"modelType" refers to the formulation of the equations to be solved. Choose "A" 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
|
||||
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
</P>
|
||||
<P><B>Description:</B>
|
||||
</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><B>Restrictions:</B>
|
||||
</P>
|
||||
|
||||
@ -31,7 +31,7 @@ Note: This examples list might not be complete - please look for other models (f
|
||||
|
||||
[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:]
|
||||
|
||||
|
||||
@ -19,13 +19,10 @@
|
||||
);
|
||||
ArchimedesProps
|
||||
{
|
||||
densityFieldName "density";
|
||||
gravityFieldName "gravity";
|
||||
};
|
||||
</PRE>
|
||||
<UL><LI><I>density</I> = name of the finite volume density field
|
||||
|
||||
<LI><I>gravity</I> = name of the finite volume gravity field
|
||||
<UL><LI><I>gravity</I> = name of the finite volume gravity field
|
||||
|
||||
|
||||
</UL>
|
||||
@ -37,7 +34,6 @@ ArchimedesProps
|
||||
);
|
||||
ArchimedesProps
|
||||
{
|
||||
densityFieldName "rho";
|
||||
gravityFieldName "g";
|
||||
}
|
||||
</PRE>
|
||||
|
||||
@ -17,12 +17,10 @@ forceModels
|
||||
);
|
||||
ArchimedesProps
|
||||
\{
|
||||
densityFieldName "density";
|
||||
gravityFieldName "gravity";
|
||||
\}; :pre
|
||||
|
||||
{density} = name of the finite volume density field :ulb,l
|
||||
{gravity} = name of the finite volume gravity field :l
|
||||
{gravity} = name of the finite volume gravity field :ulb,l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -33,7 +31,6 @@ forceModels
|
||||
);
|
||||
ArchimedesProps
|
||||
\{
|
||||
densityFieldName "rho";
|
||||
gravityFieldName "g";
|
||||
\} :pre
|
||||
|
||||
|
||||
@ -19,14 +19,11 @@
|
||||
);
|
||||
ArchimedesIBProps
|
||||
{
|
||||
densityFieldName "density";
|
||||
gravityFieldName "gravity";
|
||||
voidfractionFieldName "voidfraction";
|
||||
};
|
||||
</PRE>
|
||||
<UL><LI><I>density</I> = name of the finite volume density field
|
||||
|
||||
<LI><I>gravity</I> = name of the finite volume gravity field
|
||||
<UL><LI><I>gravity</I> = name of the finite volume gravity field
|
||||
|
||||
<LI><I>voidfraction</I> = name of the finite volume voidfraction field
|
||||
|
||||
@ -40,7 +37,6 @@ ArchimedesIBProps
|
||||
);
|
||||
ArchimedesIBProps
|
||||
{
|
||||
densityFieldName "rho";
|
||||
gravityFieldName "g";
|
||||
voidfractionFieldName "voidfractionNext";
|
||||
}
|
||||
|
||||
@ -17,13 +17,11 @@ forceModels
|
||||
);
|
||||
ArchimedesIBProps
|
||||
\{
|
||||
densityFieldName "density";
|
||||
gravityFieldName "gravity";
|
||||
voidfractionFieldName "voidfraction";
|
||||
\}; :pre
|
||||
|
||||
{density} = name of the finite volume density field :ulb,l
|
||||
{gravity} = name of the finite volume gravity field :l
|
||||
{gravity} = name of the finite volume gravity field :ulb,l
|
||||
{voidfraction} = name of the finite volume voidfraction field :l
|
||||
:ule
|
||||
|
||||
@ -35,7 +33,6 @@ forceModels
|
||||
);
|
||||
ArchimedesIBProps
|
||||
\{
|
||||
densityFieldName "rho";
|
||||
gravityFieldName "g";
|
||||
voidfractionFieldName "voidfractionNext";
|
||||
\} :pre
|
||||
|
||||
@ -20,15 +20,12 @@
|
||||
DiFeliceDragProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
interpolation;
|
||||
interpolation switch1;
|
||||
};
|
||||
</PRE>
|
||||
<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>interpolation</I> = flag to use interpolated voidfraction and velocity values (normally off)
|
||||
<LI><I>switch1</I> = flag to use interpolated voidfraction and velocity values (normally off)
|
||||
|
||||
|
||||
</UL>
|
||||
@ -41,8 +38,7 @@ DiFeliceDragProps
|
||||
DiFeliceDragProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
interpolation;
|
||||
interpolation true;
|
||||
}
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
|
||||
@ -18,13 +18,11 @@ forceModels
|
||||
DiFeliceDragProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
interpolation;
|
||||
interpolation switch1;
|
||||
\}; :pre
|
||||
|
||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||
{density} = name of the finite volume gravity field :l
|
||||
{interpolation} = flag to use interpolated voidfraction and velocity values (normally off) :l
|
||||
{switch1} = flag to use interpolated voidfraction and velocity values (normally off) :l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -36,8 +34,7 @@ forceModels
|
||||
DiFeliceDragProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
interpolation;
|
||||
interpolation true;
|
||||
\} :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -20,27 +20,24 @@
|
||||
GidaspowDragProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
voidfractionFieldName "voidfraction";
|
||||
granVelFieldName "Us";
|
||||
phi "scalar";
|
||||
interpolation;
|
||||
implDEM;
|
||||
interpolation switch1;
|
||||
implForceDEM switch2;
|
||||
};
|
||||
</PRE>
|
||||
<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>Us</I> = name of the finite volume cell averaged particle velocity field
|
||||
|
||||
<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>
|
||||
<P><B>Examples:</B>
|
||||
@ -52,7 +49,6 @@ GidaspowDragProps
|
||||
GidaspowDragProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
voidfractionFieldName "voidfraction";
|
||||
granVelFieldName "Us";
|
||||
}
|
||||
|
||||
@ -18,21 +18,19 @@ forceModels
|
||||
GidaspowDragProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
voidfractionFieldName "voidfraction";
|
||||
granVelFieldName "Us";
|
||||
phi "scalar";
|
||||
interpolation;
|
||||
implDEM;
|
||||
interpolation switch1;
|
||||
implForceDEM switch2;
|
||||
\}; :pre
|
||||
|
||||
{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
|
||||
{Us} = name of the finite volume cell averaged particle velocity field :l
|
||||
{phi} = drag correction factor (in doubt 1) :l
|
||||
{interpolation} = (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
|
||||
{switch1} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l
|
||||
{switch2} = (optional, normally off) flag to use implicit formulation of drag on DEM side:l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -44,7 +42,6 @@ forceModels
|
||||
GidaspowDragProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
voidfractionFieldName "voidfraction";
|
||||
granVelFieldName "Us";
|
||||
\} :pre
|
||||
|
||||
@ -20,21 +20,18 @@
|
||||
KochHillDragProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
voidfractionFieldName "voidfraction";
|
||||
interpolation;
|
||||
implDEM;
|
||||
interpolation "bool1";
|
||||
implForceDEM "bool2";
|
||||
};
|
||||
</PRE>
|
||||
<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>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>
|
||||
<P><B>Examples:</B>
|
||||
@ -46,7 +43,6 @@ KochHillDragProps
|
||||
KochHillDragProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
voidfractionFieldName "voidfraction";
|
||||
}
|
||||
</PRE>
|
||||
|
||||
@ -18,17 +18,15 @@ forceModels
|
||||
KochHillDragProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
voidfractionFieldName "voidfraction";
|
||||
interpolation;
|
||||
implDEM;
|
||||
interpolation "bool1";
|
||||
implForceDEM "bool2";
|
||||
\}; :pre
|
||||
|
||||
{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
|
||||
{interpolation} = (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
|
||||
{bool1} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l
|
||||
{bool2} = (optional, normally off) flag to use implicit formulation of drag on DEM side:l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -40,7 +38,6 @@ forceModels
|
||||
KochHillDragProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
voidfractionFieldName "voidfraction";
|
||||
\} :pre
|
||||
|
||||
|
||||
@ -27,9 +27,8 @@ LaEuScalarTempProps
|
||||
partHeatFluxName "convectiveHeatFlux";
|
||||
lambda value;
|
||||
Cp value1;
|
||||
densityFieldName "density";
|
||||
interpolation;
|
||||
verbose;
|
||||
interpolation "switch1";
|
||||
verbose "switch2";
|
||||
};
|
||||
</PRE>
|
||||
<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>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>verbose</I> = (normally off) for verbose run
|
||||
<LI><I>switch2</I> = (normally off) for verbose run
|
||||
|
||||
|
||||
</UL>
|
||||
@ -72,7 +69,6 @@ LaEuScalarTempProps
|
||||
partHeatFluxName "convectiveHeatFlux";
|
||||
lambda 0.0256;
|
||||
Cp 1007;
|
||||
densityFieldName "rho";
|
||||
}
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
|
||||
@ -25,9 +25,8 @@ LaEuScalarTempProps
|
||||
partHeatFluxName "convectiveHeatFlux";
|
||||
lambda value;
|
||||
Cp value1;
|
||||
densityFieldName "density";
|
||||
interpolation;
|
||||
verbose;
|
||||
interpolation "switch1";
|
||||
verbose "switch2";
|
||||
\}; :pre
|
||||
|
||||
{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
|
||||
{value} = fluid thermal conductivity \[W/(m*K)\] :l
|
||||
{value1} = fluid specific heat capacity \[W*s/(kg*K)\] :l
|
||||
{density} = name of the finite volume fluid density field :l
|
||||
{interpolation} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l
|
||||
{verbose} = (normally off) for verbose run :l
|
||||
{switch1} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l
|
||||
{switch2} = (normally off) for verbose run :l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -59,7 +57,6 @@ LaEuScalarTempProps
|
||||
partHeatFluxName "convectiveHeatFlux";
|
||||
lambda 0.0256;
|
||||
Cp 1007;
|
||||
densityFieldName "rho";
|
||||
\} :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -20,21 +20,18 @@
|
||||
MeiLiftProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
useSecondOrderTerms;
|
||||
interpolation;
|
||||
verbose;
|
||||
interpolation "switch1";
|
||||
verbose "switch2";
|
||||
};
|
||||
</PRE>
|
||||
<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>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>
|
||||
@ -47,10 +44,9 @@ MeiLiftProps
|
||||
MeiLiftProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
useSecondOrderTerms;
|
||||
interpolation;
|
||||
verbose;
|
||||
interpolation true;
|
||||
verbose true;
|
||||
}
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
|
||||
@ -18,17 +18,15 @@ forceModels
|
||||
MeiLiftProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
useSecondOrderTerms;
|
||||
interpolation;
|
||||
verbose;
|
||||
interpolation "switch1";
|
||||
verbose "switch2";
|
||||
\}; :pre
|
||||
|
||||
{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
|
||||
{interpolation} = 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
|
||||
{switch1} = switch to activate tri-linear interpolation of the flow quantities at the particle position :l
|
||||
{switch2} = switch to activate the report of per-particle quantities to the screen :l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -40,10 +38,9 @@ forceModels
|
||||
MeiLiftProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
useSecondOrderTerms;
|
||||
interpolation;
|
||||
verbose;
|
||||
interpolation true;
|
||||
verbose true;
|
||||
\} :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -20,13 +20,10 @@
|
||||
SchillerNaumannDragProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
};
|
||||
</PRE>
|
||||
<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>
|
||||
<P><B>Examples:</B>
|
||||
@ -38,7 +35,6 @@ SchillerNaumannDragProps
|
||||
SchillerNaumannDragProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
}
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
|
||||
@ -18,11 +18,9 @@ forceModels
|
||||
SchillerNaumannDragProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
\}; :pre
|
||||
|
||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||
{density} = name of the finite volume gravity field :l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -34,7 +32,6 @@ forceModels
|
||||
SchillerNaumannDragProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
\} :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -20,14 +20,11 @@
|
||||
ShirgaonkarIBProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
pressureFieldName "pressure";
|
||||
};
|
||||
</PRE>
|
||||
<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
|
||||
|
||||
|
||||
@ -41,7 +38,6 @@ ShirgaonkarIBProps
|
||||
ShirgaonkarIBProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
pressureFieldName "p";
|
||||
}
|
||||
</PRE>
|
||||
|
||||
@ -18,12 +18,10 @@ forceModels
|
||||
ShirgaonkarIBProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
pressureFieldName "pressure";
|
||||
\}; :pre
|
||||
|
||||
{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
|
||||
:ule
|
||||
|
||||
@ -36,7 +34,6 @@ forceModels
|
||||
ShirgaonkarIBProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
pressureFieldName "p";
|
||||
\} :pre
|
||||
|
||||
|
||||
@ -20,18 +20,15 @@
|
||||
gradPForceProps
|
||||
{
|
||||
pFieldName "pressure";
|
||||
densityFieldName "density";
|
||||
velocityFieldName "U";
|
||||
interpolation;
|
||||
interpolation switch1;
|
||||
};
|
||||
</PRE>
|
||||
<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>interpolation</I> = flag to use interpolated pressure values (normally off)
|
||||
<LI><I>switch1</I> = flag to use interpolated pressure values (normally off)
|
||||
|
||||
|
||||
</UL>
|
||||
@ -44,9 +41,8 @@ gradPForceProps
|
||||
gradPForceProps
|
||||
{
|
||||
pFieldName "p";
|
||||
densityFieldName "rho";
|
||||
velocityFieldName "U";
|
||||
interpolation;
|
||||
interpolation true;
|
||||
}
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
|
||||
@ -18,15 +18,13 @@ forceModels
|
||||
gradPForceProps
|
||||
\{
|
||||
pFieldName "pressure";
|
||||
densityFieldName "density";
|
||||
velocityFieldName "U";
|
||||
interpolation;
|
||||
interpolation switch1;
|
||||
\}; :pre
|
||||
|
||||
{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
|
||||
{interpolation} = flag to use interpolated pressure values (normally off) :l
|
||||
{switch1} = flag to use interpolated pressure values (normally off) :l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -38,9 +36,8 @@ forceModels
|
||||
gradPForceProps
|
||||
\{
|
||||
pFieldName "p";
|
||||
densityFieldName "rho";
|
||||
velocityFieldName "U";
|
||||
interpolation;
|
||||
interpolation true;
|
||||
\} :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -20,13 +20,10 @@
|
||||
virtualMassForceProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
};
|
||||
</PRE>
|
||||
<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>
|
||||
<P><B>Examples:</B>
|
||||
@ -38,7 +35,6 @@ virtualMassForceProps
|
||||
virtualMassForceProps
|
||||
{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
}
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
|
||||
@ -18,11 +18,9 @@ forceModels
|
||||
virtualMassForceProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "density";
|
||||
\}; :pre
|
||||
|
||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||
{density} = name of the finite volume fluid density field :l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -34,7 +32,6 @@ forceModels
|
||||
virtualMassForceProps
|
||||
\{
|
||||
velFieldName "U";
|
||||
densityFieldName "rho";
|
||||
\} :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
@ -20,15 +20,12 @@
|
||||
viscForceProps
|
||||
{
|
||||
velocityFieldName "U";
|
||||
densityFieldName "density";
|
||||
interpolation;
|
||||
interpolation "switch";
|
||||
};
|
||||
</PRE>
|
||||
<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>interpolation</I> = flag to use interpolated stress values (normally off)
|
||||
<LI><I>switch</I> = flag to use interpolated stress values (normally off)
|
||||
|
||||
|
||||
</UL>
|
||||
@ -41,7 +38,6 @@ viscForceProps
|
||||
viscForceProps
|
||||
{
|
||||
velocityFieldName "U";
|
||||
densityFieldName "density";
|
||||
}
|
||||
</PRE>
|
||||
<P><B>Description:</B>
|
||||
|
||||
@ -18,13 +18,11 @@ forceModels
|
||||
viscForceProps
|
||||
\{
|
||||
velocityFieldName "U";
|
||||
densityFieldName "density";
|
||||
interpolation;
|
||||
interpolation "switch";
|
||||
\}; :pre
|
||||
|
||||
{U} = name of the finite volume fluid velocity field :ulb,l
|
||||
{density} = name of the finite volume gravity field :l
|
||||
{interpolation} = flag to use interpolated stress values (normally off) :l
|
||||
{switch} = flag to use interpolated stress values (normally off) :l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
@ -36,7 +34,6 @@ forceModels
|
||||
viscForceProps
|
||||
\{
|
||||
velocityFieldName "U";
|
||||
densityFieldName "density";
|
||||
\} :pre
|
||||
|
||||
[Description:]
|
||||
|
||||
Binary file not shown.
@ -26,13 +26,12 @@ writeLiggghtsProps
|
||||
verbose;
|
||||
}
|
||||
</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>verbose</I> = (normally off) for verbose run
|
||||
<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
|
||||
|
||||
|
||||
</UL>
|
||||
|
||||
@ -24,10 +24,10 @@ writeLiggghtsProps
|
||||
verbose;
|
||||
\} :pre
|
||||
|
||||
{switch1} = switch (choose on/off) to select if only last step is stored or every write step. :ulb,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
|
||||
{verbose} = (normally off) for verbose run :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
|
||||
{switch2} = switch (choose on/off) to select if only one restart file $name or many files $name_$timeStamp are written (default off):l
|
||||
{verbose} = (default off) for verbose run :l
|
||||
:ule
|
||||
|
||||
[Examples:]
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
cfdemCloud = cfdemCloud
|
||||
forceModels = subModels/forceModel
|
||||
forceSubModels = subModels/forceModel/forceSubModels
|
||||
forceModelsMS = subModels/forceModelMS
|
||||
IOModels = subModels/IOModel
|
||||
voidFractionModels = subModels/voidFractionModel
|
||||
voidFractionModelsMS = subModels/voidFractionModelMS
|
||||
locateModels = subModels/locateModel
|
||||
meshMotionModels = subModels/meshMotionModel
|
||||
momCoupleModels = subModels/momCoupleModel
|
||||
regionModels = subModels/regionModel
|
||||
dataExchangeModels = subModels/dataExchangeModel
|
||||
averagingModels = subModels/averagingModel
|
||||
clockModels = subModels/clockModel
|
||||
@ -15,44 +16,79 @@ smoothingModels = subModels/smoothingModel
|
||||
probeModels = subModels/probeModel
|
||||
|
||||
$(cfdemCloud)/cfdemCloud.C
|
||||
derived/cfdemCloudBiDisperse/cfdemCloudBiDisperse.C
|
||||
derived/cfdemCloudBiDisperseRotation/cfdemCloudBiDisperseRotation.C
|
||||
derived/cfdemCloudIB/cfdemCloudIB.C
|
||||
derived/cfdemCloudMS/cfdemCloudMS.C
|
||||
derived/cfdemCloudSRF/cfdemCloudSRF.C
|
||||
|
||||
$(forceModels)/forceModel/forceModel.C
|
||||
$(forceModels)/forceModel/newForceModel.C
|
||||
$(forceModels)/noDrag/noDrag.C
|
||||
$(forceModels)/checkCouplingInterval/checkCouplingInterval.C
|
||||
$(forceModels)/DEMbasedDrag/DEMbasedDrag.C
|
||||
$(forceModels)/DiFeliceDrag/DiFeliceDrag.C
|
||||
$(forceModels)/DiFeliceDragNLift/DiFeliceDragNLift.C
|
||||
$(forceModels)/GidaspowDrag/GidaspowDrag.C
|
||||
$(forceModels)/RongDrag/RongDrag.C
|
||||
$(forceModels)/SchillerNaumannDrag/SchillerNaumannDrag.C
|
||||
$(forceModels)/Archimedes/Archimedes.C
|
||||
$(forceModels)/ArchimedesIB/ArchimedesIB.C
|
||||
$(forceModels)/interface/interface.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)/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)/LaEuScalarDust/LaEuScalarDust.C
|
||||
$(forceModels)/virtualMassForce/virtualMassForce.C
|
||||
$(forceModels)/gradPForce/gradPForce.C
|
||||
$(forceModels)/gradULiftForce/gradULiftForce.C
|
||||
$(forceModels)/HollowayDrag/HollowayDrag.C
|
||||
$(forceModels)/viscForce/viscForce.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)/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/newForceModelMS.C
|
||||
$(forceModelsMS)/DiFeliceDragMS/DiFeliceDragMS.C
|
||||
$(forceModelsMS)/GidaspowDragMS/GidaspowDragMS.C
|
||||
$(forceModelsMS)/noDragMS/noDragMS.C
|
||||
|
||||
$(probeModels)/probeModel/probeModel.C
|
||||
$(probeModels)/probeModel/newProbeModel.C
|
||||
$(probeModels)/noProbe/noProbe.C
|
||||
$(probeModels)/particleProbe/particleProbe.C
|
||||
/*$(probeModels)/interfaceParticleProbe/interfaceParticleProbe.C*/
|
||||
|
||||
$(IOModels)/IOModel/IOModel.C
|
||||
$(IOModels)/IOModel/newIOModel.C
|
||||
$(IOModels)/noIO/noIO.C
|
||||
$(IOModels)/basicIO/basicIO.C
|
||||
$(IOModels)/tempIO/tempIO.C
|
||||
$(IOModels)/colorIO/colorIO.C
|
||||
$(IOModels)/trackIO/trackIO.C
|
||||
$(IOModels)/sophIO/sophIO.C
|
||||
|
||||
@ -60,46 +96,54 @@ $(voidFractionModels)/voidFractionModel/voidFractionModel.C
|
||||
$(voidFractionModels)/voidFractionModel/newVoidFractionModel.C
|
||||
$(voidFractionModels)/centreVoidFraction/centreVoidFraction.C
|
||||
$(voidFractionModels)/dividedVoidFraction/dividedVoidFraction.C
|
||||
$(voidFractionModels)/dividedVoidFractionBiDi/dividedVoidFractionBiDi.C
|
||||
$(voidFractionModels)/dividedVoidFractionMS/dividedVoidFractionMS.C
|
||||
$(voidFractionModels)/bigParticleVoidFraction/bigParticleVoidFraction.C
|
||||
$(voidFractionModels)/GaussVoidFraction/GaussVoidFraction.C
|
||||
$(voidFractionModels)/IBVoidFraction/IBVoidFraction.C
|
||||
$(voidFractionModels)/weightedNeigbhorsVoidFraction/weightedNeigbhorsVoidFraction.C
|
||||
|
||||
$(voidFractionModelsMS)/voidFractionModelMS/voidFractionModelMS.C
|
||||
$(voidFractionModelsMS)/voidFractionModelMS/newVoidFractionModelMS.C
|
||||
|
||||
$(locateModels)/locateModel/locateModel.C
|
||||
$(locateModels)/locateModel/newLocateModel.C
|
||||
$(locateModels)/standardSearch/standardSearch.C
|
||||
$(locateModels)/engineSearch/engineSearch.C
|
||||
$(locateModels)/turboEngineSearch/turboEngineSearch.C
|
||||
$(locateModels)/engineSearchMany2Many/engineSearchMany2Many.C
|
||||
$(locateModels)/turboEngineSearch/turboEngineSearch.C
|
||||
$(locateModels)/turboEngineSearchM2M/turboEngineSearchM2M.C
|
||||
$(locateModels)/engineSearchIB/engineSearchIB.C
|
||||
|
||||
$(locateModels)/hyperEngineSearch/hyperEngineSearch.C
|
||||
$(locateModels)/ijkSearch/ijkSearch.C
|
||||
|
||||
$(meshMotionModels)/meshMotionModel/meshMotionModel.C
|
||||
$(meshMotionModels)/meshMotionModel/newMeshMotionModel.C
|
||||
$(meshMotionModels)/noMeshMotion/noMeshMotion.C
|
||||
$(meshMotionModels)/DEMdrivenMeshMotion/DEMdrivenMeshMotion.C
|
||||
$(meshMotionModels)/IBMeshMotion/IBMeshMotion.C
|
||||
|
||||
$(momCoupleModels)/momCoupleModel/momCoupleModel.C
|
||||
$(momCoupleModels)/momCoupleModel/newMomCoupleModel.C
|
||||
$(momCoupleModels)/explicitCouple/explicitCouple.C
|
||||
$(momCoupleModels)/explicitCoupleSource/explicitCoupleSource.C
|
||||
$(momCoupleModels)/implicitCouple/implicitCouple.C
|
||||
$(momCoupleModels)/noCouple/noCouple.C
|
||||
|
||||
$(regionModels)/regionModel/regionModel.C
|
||||
$(regionModels)/regionModel/newRegionModel.C
|
||||
$(regionModels)/allRegion/allRegion.C
|
||||
|
||||
$(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C
|
||||
$(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C
|
||||
$(dataExchangeModels)/oneWayVTK/oneWayVTK.C
|
||||
$(dataExchangeModels)/twoWayFiles/twoWayFiles.C
|
||||
$(dataExchangeModels)/noDataExchange/noDataExchange.C
|
||||
$(dataExchangeModels)/twoWayMPI/twoWayMPI.C
|
||||
$(dataExchangeModels)/twoWayM2M/twoWayM2M.C
|
||||
$(dataExchangeModels)/twoWayMany2Many/twoWayMany2Many.C
|
||||
|
||||
$(averagingModels)/averagingModel/averagingModel.C
|
||||
$(averagingModels)/averagingModel/newAveragingModel.C
|
||||
$(averagingModels)/dilute/dilute.C
|
||||
$(averagingModels)/dense/dense.C
|
||||
$(averagingModels)/denseBiDi/denseBiDi.C
|
||||
|
||||
$(clockModels)/clockModel/clockModel.C
|
||||
$(clockModels)/clockModel/newClockModel.C
|
||||
@ -108,8 +152,10 @@ $(clockModels)/noClock/noClock.C
|
||||
|
||||
$(liggghtsCommandModels)/liggghtsCommandModel/liggghtsCommandModel.C
|
||||
$(liggghtsCommandModels)/liggghtsCommandModel/newLiggghtsCommandModel.C
|
||||
$(liggghtsCommandModels)/colorParticles/colorParticles.C
|
||||
$(liggghtsCommandModels)/execute/execute.C
|
||||
$(liggghtsCommandModels)/runLiggghts/runLiggghts.C
|
||||
$(liggghtsCommandModels)/setDEMGravity/setDEMGravity.C
|
||||
$(liggghtsCommandModels)/writeLiggghts/writeLiggghts.C
|
||||
$(liggghtsCommandModels)/readLiggghtsData/readLiggghtsData.C
|
||||
|
||||
@ -117,5 +163,6 @@ $(smoothingModels)/smoothingModel/smoothingModel.C
|
||||
$(smoothingModels)/smoothingModel/newSmoothingModel.C
|
||||
$(smoothingModels)/noSmoothing/noSmoothing.C
|
||||
$(smoothingModels)/constDiffSmoothing/constDiffSmoothing.C
|
||||
$(smoothingModels)/localPSizeDiffSmoothing/localPSizeDiffSmoothing.C
|
||||
|
||||
LIB = $(CFDEM_LIB_DIR)/lib$(CFDEM_LIB_NAME)
|
||||
|
||||
@ -10,15 +10,17 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/transportModels \
|
||||
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/triSurface/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/OpenFOAM/containers/HashTables/labelHashSet \
|
||||
-I$(CFDEM_LIGGGHTS_SRC_DIR) \
|
||||
-I$(CFDEM_M2MLIB_PATH) \
|
||||
-I$(CFDEM_Many2ManyLIB_PATH) \
|
||||
-I$(CFDEM_SRC_DIR)/cfdTools \
|
||||
|
||||
LIB_LIBS = \
|
||||
$(PLIBS) \
|
||||
-L$(CFDEM_LIB_DIR) \
|
||||
-L$(FOAM_USER_LIBBIN) \
|
||||
-lfiniteVolume \
|
||||
-lincompressibleRASModels \
|
||||
-lincompressibleLESModels \
|
||||
@ -27,5 +29,11 @@ LIB_LIBS = \
|
||||
-lmpi_cxx \
|
||||
-L$(CFDEM_LIGGGHTS_SRC_DIR) \
|
||||
-Wl,--whole-archive -l$(CFDEM_LIGGGHTS_LIB_NAME) -Wl,--no-whole-archive \
|
||||
-L$(CFDEM_M2MLIB_PATH) \
|
||||
-lcouple \
|
||||
-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();
|
||||
|
||||
//Warning << "model type not being checked" << endl;
|
||||
|
||||
if (modelType=="B"){
|
||||
if (modelType=="Bfull"){
|
||||
Info << "solving volume averaged Navier Stokes equations of type B\n"<< endl;
|
||||
|
||||
// check if Archimedes is used
|
||||
@ -18,6 +17,41 @@
|
||||
if(!found)
|
||||
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
|
||||
found=false;
|
||||
forAll(particleCloud.forceModels(),i)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
word CFDEMversion="cfdem-2.7.2";
|
||||
word compatibleLIGGGHTSversion="3.0.2";
|
||||
word CFDEMversion="cfdem-2.7.9";
|
||||
word compatibleLIGGGHTSversion="3.0.3";
|
||||
word OFversion="2.3.x-commit-4d6f4a3115ff76ec4154c580eb041bc95ba4ec09";
|
||||
|
||||
Info << "\nCFDEMcoupling version: " << CFDEMversion << "\n" << endl;
|
||||
|
||||
@ -80,6 +80,7 @@ Foam::cfdemCloud::cfdemCloud
|
||||
positions_(NULL),
|
||||
velocities_(NULL),
|
||||
fluidVel_(NULL),
|
||||
fAcc_(NULL),
|
||||
impForces_(NULL),
|
||||
expForces_(NULL),
|
||||
DEMForces_(NULL),
|
||||
@ -89,6 +90,7 @@ Foam::cfdemCloud::cfdemCloud
|
||||
cellIDs_(NULL),
|
||||
particleWeights_(NULL),
|
||||
particleVolumes_(NULL),
|
||||
particleV_(NULL),
|
||||
numberOfParticles_(0),
|
||||
numberOfParticlesChanged_(false),
|
||||
arraysReallocated_(false),
|
||||
@ -99,6 +101,7 @@ Foam::cfdemCloud::cfdemCloud
|
||||
cg_(1.),
|
||||
cgOK_(true),
|
||||
impDEMdrag_(false),
|
||||
impDEMdragAcc_(false),
|
||||
imExSplitFactor_(1.0),
|
||||
treatVoidCellsAsExplicitForce_(false),
|
||||
useDDTvoidfraction_(false),
|
||||
@ -279,6 +282,7 @@ Foam::cfdemCloud::~cfdemCloud()
|
||||
dataExchangeM().destroy(positions_,3);
|
||||
dataExchangeM().destroy(velocities_,3);
|
||||
dataExchangeM().destroy(fluidVel_,3);
|
||||
dataExchangeM().destroy(fAcc_,3);
|
||||
dataExchangeM().destroy(impForces_,3);
|
||||
dataExchangeM().destroy(expForces_,3);
|
||||
dataExchangeM().destroy(DEMForces_,3);
|
||||
@ -288,6 +292,7 @@ Foam::cfdemCloud::~cfdemCloud()
|
||||
dataExchangeM().destroy(cellIDs_,1);
|
||||
dataExchangeM().destroy(particleWeights_,1);
|
||||
dataExchangeM().destroy(particleVolumes_,1);
|
||||
dataExchangeM().destroy(particleV_,1);
|
||||
}
|
||||
// * * * * * * * * * * * * * * * private Member Functions * * * * * * * * * * * * * //
|
||||
void Foam::cfdemCloud::getDEMdata()
|
||||
@ -295,6 +300,9 @@ void Foam::cfdemCloud::getDEMdata()
|
||||
dataExchangeM().getData("radius","scalar-atom",radii_);
|
||||
dataExchangeM().getData("x","vector-atom",positions_);
|
||||
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()
|
||||
@ -305,6 +313,7 @@ void Foam::cfdemCloud::giveDEMdata()
|
||||
|
||||
if(impDEMdrag_)
|
||||
{
|
||||
if(verbose_) Info << "sending Ksl and uf" << endl;
|
||||
dataExchangeM().giveData("Ksl","scalar-atom",Cds_);
|
||||
dataExchangeM().giveData("uf","vector-atom",fluidVel_);
|
||||
}
|
||||
@ -499,7 +508,7 @@ bool Foam::cfdemCloud::evolve
|
||||
// set void fraction field
|
||||
clockM().start(19,"setvoidFraction");
|
||||
if(verbose_) Info << "- setvoidFraction()" << endl;
|
||||
voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_);
|
||||
voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_,particleV_);
|
||||
if(verbose_) Info << "setvoidFraction done." << endl;
|
||||
clockM().stop("setvoidFraction");
|
||||
|
||||
@ -507,7 +516,6 @@ bool Foam::cfdemCloud::evolve
|
||||
clockM().start(20,"setVectorAverage");
|
||||
setVectorAverages();
|
||||
|
||||
|
||||
//Smoothen "next" fields
|
||||
smoothingM().dSmoothing();
|
||||
smoothingM().smoothen(voidFractionM().voidFractionNext());
|
||||
@ -516,7 +524,7 @@ bool Foam::cfdemCloud::evolve
|
||||
//because we need unsmoothened Us field to detect cells for explicit
|
||||
//force coupling
|
||||
if(!treatVoidCellsAsExplicitForce())
|
||||
smoothingM().smoothenReferenceField(averagingM().UsNext());
|
||||
smoothingM().smoothenReferenceField(averagingM().UsNext());
|
||||
|
||||
clockM().stop("setVectorAverage");
|
||||
}
|
||||
@ -592,6 +600,7 @@ bool Foam::cfdemCloud::reAllocArrays() const
|
||||
dataExchangeM().allocateArray(positions_,0.,3);
|
||||
dataExchangeM().allocateArray(velocities_,0.,3);
|
||||
dataExchangeM().allocateArray(fluidVel_,0.,3);
|
||||
dataExchangeM().allocateArray(fAcc_,0.,3);
|
||||
dataExchangeM().allocateArray(impForces_,0.,3);
|
||||
dataExchangeM().allocateArray(expForces_,0.,3);
|
||||
dataExchangeM().allocateArray(DEMForces_,0.,3);
|
||||
@ -601,6 +610,7 @@ bool Foam::cfdemCloud::reAllocArrays() const
|
||||
dataExchangeM().allocateArray(cellIDs_,-1.,voidFractionM().maxCellsPerParticle());
|
||||
dataExchangeM().allocateArray(particleWeights_,0.,voidFractionM().maxCellsPerParticle());
|
||||
dataExchangeM().allocateArray(particleVolumes_,0.,voidFractionM().maxCellsPerParticle());
|
||||
dataExchangeM().allocateArray(particleV_,0.,1);
|
||||
arraysReallocated_ = true;
|
||||
return true;
|
||||
}
|
||||
@ -612,7 +622,7 @@ tmp<fvVectorMatrix> cfdemCloud::divVoidfractionTau(volVectorField& U,volScalarFi
|
||||
return
|
||||
(
|
||||
- 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
|
||||
{
|
||||
if (modelType_=="B")
|
||||
if (modelType_=="B" || modelType_=="Bfull")
|
||||
{
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
|
||||
@ -102,6 +102,8 @@ protected:
|
||||
|
||||
mutable double **fluidVel_;
|
||||
|
||||
mutable double **fAcc_;
|
||||
|
||||
mutable double **impForces_;
|
||||
|
||||
mutable double **expForces_;
|
||||
@ -120,6 +122,8 @@ protected:
|
||||
|
||||
mutable double **particleVolumes_;
|
||||
|
||||
mutable double **particleV_;
|
||||
|
||||
int numberOfParticles_;
|
||||
|
||||
bool numberOfParticlesChanged_;
|
||||
@ -140,6 +144,8 @@ protected:
|
||||
|
||||
bool impDEMdrag_;
|
||||
|
||||
bool impDEMdragAcc_;
|
||||
|
||||
mutable scalar imExSplitFactor_;
|
||||
|
||||
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& impDEMdragAcc() const;
|
||||
|
||||
inline const scalar& imExSplitFactor() const;
|
||||
|
||||
inline const bool& treatVoidCellsAsExplicitForce() const;
|
||||
@ -266,6 +274,8 @@ public:
|
||||
|
||||
inline double ** fluidVels() const;
|
||||
|
||||
inline double ** fAccs() const;
|
||||
|
||||
inline double ** impForces() const;
|
||||
|
||||
inline double ** expForces() const;
|
||||
|
||||
@ -55,6 +55,11 @@ inline const bool& cfdemCloud::impDEMdrag() const
|
||||
return impDEMdrag_;
|
||||
};
|
||||
|
||||
inline const bool& cfdemCloud::impDEMdragAcc() const
|
||||
{
|
||||
return impDEMdragAcc_;
|
||||
};
|
||||
|
||||
inline const scalar& cfdemCloud::imExSplitFactor() const
|
||||
{
|
||||
return imExSplitFactor_;
|
||||
@ -110,6 +115,11 @@ inline double ** cfdemCloud::fluidVels() const
|
||||
return fluidVel_;
|
||||
}
|
||||
|
||||
inline double ** cfdemCloud::fAccs() const
|
||||
{
|
||||
return fAcc_;
|
||||
}
|
||||
|
||||
inline double ** cfdemCloud::impForces() const
|
||||
{
|
||||
return impForces_;
|
||||
@ -174,7 +184,7 @@ inline label Foam::cfdemCloud::body(int index)
|
||||
|
||||
inline double cfdemCloud::particleVolume(int index)
|
||||
{
|
||||
return particleVolumes_[index][0];
|
||||
return particleV_[index][0];
|
||||
}
|
||||
|
||||
inline scalar cfdemCloud::radius(int index)
|
||||
|
||||
@ -121,7 +121,7 @@ bool Foam::cfdemCloudIB::evolve()
|
||||
|
||||
// set void fraction field
|
||||
if(verbose_) Info << "- setvoidFraction()" << endl;
|
||||
voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_);
|
||||
voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_,particleV_);
|
||||
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
|
||||
fvScalarMatrix phiIBEqn
|
||||
|
||||
@ -56,8 +56,8 @@ cfdemCloudMS::cfdemCloudMS
|
||||
cellIDsCM_(NULL),
|
||||
bodies_(NULL),
|
||||
nrigids_(NULL),
|
||||
nClumpTypes_(1),
|
||||
clumpType_(NULL),
|
||||
nClumpTypes_(1),
|
||||
clumpVol_(NULL),
|
||||
clumpDH_(NULL),
|
||||
clumpWeights_(NULL),
|
||||
@ -73,6 +73,8 @@ cfdemCloudMS::cfdemCloudMS
|
||||
DEMForcesCM_(NULL),
|
||||
numberOfClumps_(-1),
|
||||
numberOfClumpsChanged_(false),
|
||||
manDHdev_(false),
|
||||
dHbyV_(scalarList(0)),
|
||||
useforcePerClump_(false),
|
||||
forceModels_(couplingProperties_.lookup("forceModelsMS"))
|
||||
{
|
||||
@ -86,6 +88,7 @@ cfdemCloudMS::cfdemCloudMS
|
||||
forceModels_[i]
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -132,9 +135,17 @@ void cfdemCloudMS::getDEMdata()
|
||||
|
||||
//- save clump volume and mass
|
||||
double **typeDH(NULL);
|
||||
dataExchangeM().allocateArray(typeDH,-1,1,nClumpTypes()+1);
|
||||
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
|
||||
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++)
|
||||
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);
|
||||
for(int ind = 0;ind < numberOfClumps(); ind++)
|
||||
@ -193,7 +204,7 @@ bool cfdemCloudMS::reAllocArrays() const
|
||||
dataExchangeM().allocateArray(cellIDsCM_,-1,1,"nbodies");
|
||||
dataExchangeM().allocateArray(bodies_,0,1);
|
||||
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(clumpDH_,1.,1,"nbodies");
|
||||
dataExchangeM().allocateArray(clumpWeights_,1,1,"nbodies");
|
||||
@ -215,7 +226,6 @@ bool cfdemCloudMS::reAllocArrays() const
|
||||
void Foam::cfdemCloudMS::setNumberOfParticles(int nP)
|
||||
{
|
||||
cfdemCloud::setNumberOfParticles(nP);
|
||||
|
||||
int nC = dataExchangeM().getNumberOfClumps();
|
||||
|
||||
if(nC != numberOfClumps())
|
||||
@ -223,6 +233,9 @@ void Foam::cfdemCloudMS::setNumberOfParticles(int nP)
|
||||
numberOfClumpsChanged_ = true;
|
||||
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()
|
||||
|
||||
@ -59,7 +59,6 @@ class cfdemCloudMS
|
||||
public cfdemCloud
|
||||
{
|
||||
private:
|
||||
|
||||
mutable double **positionsCM_;
|
||||
mutable double **velocitiesCM_;
|
||||
mutable double **cellIDsCM_;
|
||||
@ -86,9 +85,10 @@ private:
|
||||
|
||||
int numberOfClumps_;
|
||||
bool numberOfClumpsChanged_;
|
||||
Switch manDHdev_;
|
||||
scalarList dHbyV_;
|
||||
|
||||
bool useforcePerClump_;
|
||||
|
||||
const wordList forceModels_;
|
||||
autoPtr<class forceModelMS>* forceModel_;
|
||||
|
||||
@ -154,6 +154,12 @@ public:
|
||||
|
||||
inline bool numberOfClumpsChanged() const;
|
||||
|
||||
inline void setManDHdev(Switch);
|
||||
|
||||
inline void setDHbyV(scalarList);
|
||||
|
||||
inline scalarList& dHbyV();
|
||||
|
||||
inline bool useforcePerClump() const;
|
||||
|
||||
const forceModel& forceM(int);
|
||||
|
||||
@ -138,6 +138,21 @@ inline bool cfdemCloudMS::numberOfClumpsChanged() const
|
||||
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
|
||||
{
|
||||
return useforcePerClump_;
|
||||
|
||||
@ -37,12 +37,22 @@
|
||||
#- 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
|
||||
export CFDEM_LIGGGHTS_LIB_NAME=lmp_$CFDEM_LIGGGHTS_MAKEFILE_NAME
|
||||
|
||||
#- CFDEM lib name
|
||||
export CFDEM_LIB_NAME=lagrangianCFDEM-$CFDEM_VERSION-$WM_PROJECT_VERSION
|
||||
|
||||
#-----------------------------------------------------
|
||||
# additional libraries
|
||||
|
||||
#- LMP Many2Many lib path and makefile
|
||||
export CFDEM_Many2ManyLIB_PATH=$CFDEM_SRC_DIR/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMany2Many/library
|
||||
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
|
||||
|
||||
#- 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++
|
||||
|
||||
#- LMP ASPHERE lib path and makefile
|
||||
export CFDEM_ASPHERELIB_PATH=$CFDEM_LAMMPS_LIB_DIR/poems
|
||||
export CFDEM_ASPHERELIB_MAKEFILENAME=g++
|
||||
#-----------------------------------------------------
|
||||
|
||||
#- path to test harness
|
||||
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
|
||||
fi
|
||||
|
||||
logpath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")/$logDir"
|
||||
|
||||
while [ $COUNT -lt $NLINES ]
|
||||
do
|
||||
let COUNT++
|
||||
@ -57,7 +59,7 @@ mkdir -p $logDir
|
||||
|
||||
#--------------------------------------------------------------------------------#
|
||||
#- define variables
|
||||
logpath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")/$logDir"
|
||||
#logpath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")/$logDir"
|
||||
logfileName="log_compile$LINE""lib"
|
||||
headerText="$logfileName""-$NOW"
|
||||
libVarMakefileName="CFDEM_$LINE""LIB_MAKEFILENAME"
|
||||
|
||||
@ -195,7 +195,13 @@ compileLMPlib()
|
||||
rm $logpath/$logfileName
|
||||
|
||||
#- change path
|
||||
cd $libraryPath
|
||||
if [ -d "$libraryPath" ]; then
|
||||
cd $libraryPath
|
||||
else
|
||||
echo ""
|
||||
echo "lib path $libraryPath does not exist - check settings in .../etc/bashrc."
|
||||
read
|
||||
fi
|
||||
|
||||
#- header
|
||||
echo 2>&1 | tee -a $logpath/$logfileName
|
||||
@ -556,6 +562,7 @@ parCFDDEMrun()
|
||||
machineFileName="$7"
|
||||
debugMode="$8"
|
||||
reconstuctCase="$9"
|
||||
cleanCase="$10"
|
||||
#--------------------------------------------------------------------------------#
|
||||
|
||||
if [ $debugMode == "on" ]; then
|
||||
|
||||
@ -1,2 +1,11 @@
|
||||
lagrangian/cfdemParticle/dir
|
||||
|
||||
#====================================================='
|
||||
#- RADL
|
||||
fvOptions/dir
|
||||
cylPorousMedia/dir
|
||||
|
||||
#====================================================='
|
||||
#- other
|
||||
finiteVolume/dir
|
||||
transportModels/incompressible/dir
|
||||
|
||||
@ -1,4 +1,19 @@
|
||||
cfdemSolverPisoMS/dir
|
||||
cfdemIB/dir
|
||||
cfdemIBMesh/dir
|
||||
myPimpleDyMFoam/dir
|
||||
nonNewtonianVoidfractionIcoFoam/dir
|
||||
cfdemSolverPiso/dir
|
||||
cfdemSolverIB/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
|
||||
# .../etc/testTutorial.sh , which can be run with the alias
|
||||
@ -7,15 +6,63 @@
|
||||
#===================================================================#
|
||||
|
||||
cfdemSolverPiso/settlingTestMPI/dir
|
||||
|
||||
cfdemSolverPiso/ErgunTestMPI/dir
|
||||
|
||||
cfdemSolverPiso/ErgunTestMPI_cgs/dir
|
||||
|
||||
cfdemSolverPiso/ErgunTestMPI_restart/dir
|
||||
|
||||
cfdemSolverIB/twoSpheresGlowinskiMPI/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;
|
||||
}
|
||||
|
||||
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 timeDirPath(path/time_.timeName());
|
||||
|
||||
@ -113,6 +113,8 @@ public:
|
||||
|
||||
virtual int dumpDEMdata() const;
|
||||
|
||||
bool dumpNow() const;
|
||||
|
||||
fileName createTimeDir(fileName) const;
|
||||
|
||||
fileName createLagrangianDir(fileName) const;
|
||||
|
||||
@ -84,7 +84,7 @@ basicIO::~basicIO()
|
||||
|
||||
int basicIO::dumpDEMdata() const
|
||||
{
|
||||
if (time_.outputTime())
|
||||
if (dumpNow())
|
||||
{
|
||||
// make time directory
|
||||
if (parOutput_) lagPath_=buildFilePath(dirName_);
|
||||
|
||||
@ -79,7 +79,7 @@ int sophIO::dumpDEMdata() const
|
||||
{
|
||||
int npProcs(-1);
|
||||
|
||||
if (time_.outputTime())
|
||||
if (dumpNow())
|
||||
{
|
||||
npProcs=basicIO::dumpDEMdata();
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ int trackIO::dumpDEMdata() const
|
||||
{
|
||||
int npProcs(-1);
|
||||
|
||||
if (time_.outputTime())
|
||||
if (dumpNow())
|
||||
{
|
||||
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/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.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/features.h /usr/include/x86_64-linux-gnu/bits/predefs.h \
|
||||
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||
/usr/include/stdlib.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/bits/wordsize.h \
|
||||
/usr/include/x86_64-linux-gnu/gnu/stubs.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/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/waitflags.h \
|
||||
/usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
|
||||
/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/bits/byteswap.h /usr/include/xlocale.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/bits/select.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/sys/sysmacros.h /usr/include/alloca.h \
|
||||
/usr/include/x86_64-linux-gnu/bits/stdlib.h error.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 /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/stdlib.h /usr/include/string.h \
|
||||
/usr/include/x86_64-linux-gnu/bits/string3.h irregular.h \
|
||||
/usr/lib/openmpi/include/mpi.h \
|
||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.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/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
|
||||
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi.h \
|
||||
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.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/stdlib.h /usr/include/string.h \
|
||||
/usr/include/x86_64-linux-gnu/bits/string3.h lammps_data_write.h \
|
||||
send2one.h /usr/lib/openmpi/include/mpi.h \
|
||||
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.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/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 \
|
||||
send2one.h \
|
||||
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi.h \
|
||||
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.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 \
|
||||
/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
|
||||
/usr/include/x86_64-linux-gnu/bits/stdio2.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/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.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/features.h /usr/include/x86_64-linux-gnu/bits/predefs.h \
|
||||
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||
/usr/include/stdio.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/bits/wordsize.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/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/bits/functexcept.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/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/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
|
||||
/usr/include/c++/4.6/bits/range_access.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/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.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/features.h /usr/include/x86_64-linux-gnu/bits/predefs.h \
|
||||
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||
/usr/include/stdio.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/bits/wordsize.h \
|
||||
/usr/include/x86_64-linux-gnu/gnu/stubs.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/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 \
|
||||
/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/stdio2.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/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 \
|
||||
/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/bits/byteswap.h /usr/include/xlocale.h \
|
||||
/usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.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/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/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
|
||||
|
||||
@ -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/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.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/features.h /usr/include/x86_64-linux-gnu/bits/predefs.h \
|
||||
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||
/usr/include/stdlib.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/bits/wordsize.h \
|
||||
/usr/include/x86_64-linux-gnu/gnu/stubs.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/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/waitflags.h \
|
||||
/usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
|
||||
/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/bits/byteswap.h /usr/include/xlocale.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/bits/select.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/sys/sysmacros.h /usr/include/alloca.h \
|
||||
/usr/include/x86_64-linux-gnu/bits/stdlib.h memory.h error.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 /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/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.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 \
|
||||
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/x86_64-linux-gnu/./bits/c++config.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/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/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
|
||||
/usr/include/c++/4.6/bits/range_access.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/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.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/features.h /usr/include/x86_64-linux-gnu/bits/predefs.h \
|
||||
/home/goniva/OpenFOAM/ThirdParty-2.2.x/platforms/linux64Gcc/openmpi-1.6.3/include/mpi_portable_platform.h \
|
||||
/usr/include/stdlib.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/bits/wordsize.h \
|
||||
/usr/include/x86_64-linux-gnu/gnu/stubs.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/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/waitflags.h \
|
||||
/usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
|
||||
/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/bits/byteswap.h /usr/include/xlocale.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/bits/select.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/sys/sysmacros.h /usr/include/alloca.h \
|
||||
/usr/include/x86_64-linux-gnu/bits/stdlib.h send2one.h memory.h error.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 /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()]),
|
||||
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;
|
||||
|
||||
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);
|
||||
|
||||
// open LIGGGHTS input script
|
||||
FILE *fp=NULL;
|
||||
char *liggghtsPathChar = new char[256];
|
||||
int n = 0;
|
||||
if (me == 0)
|
||||
{
|
||||
// read path from dictionary
|
||||
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;
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
if (n == 0) break;
|
||||
MPI_Bcast(line,n,MPI_CHAR,0,MPI_COMM_WORLD);
|
||||
if (liggghts == 1) lmp->input->one(line);
|
||||
MPI_Bcast(&n,1,MPI_INT,0,MPI_COMM_WORLD);
|
||||
if (n > 0) {
|
||||
MPI_Bcast(liggghtsPathChar,n,MPI_CHAR,0,MPI_COMM_WORLD);
|
||||
if (liggghts == 1) lmp->input->file(liggghtsPathChar);
|
||||
}
|
||||
|
||||
delete [] liggghtsPathChar;
|
||||
|
||||
// get DEM time step size
|
||||
DEMts_ = lmp->update->dt;
|
||||
checkTSsize();
|
||||
@ -189,14 +184,46 @@ void twoWayMany2Many::getData
|
||||
) const
|
||||
{
|
||||
char* charName = wordToChar(name);
|
||||
if ( type == "vector-atom" && name != "x")
|
||||
if(name != "x")
|
||||
{
|
||||
double **tmp_ = (double **) lammps_extract_atom(lmp,charName);
|
||||
lmp2foam_vec_->exchange(tmp_ ? tmp_[0] : NULL, field[0]);
|
||||
}else if (name != "x")
|
||||
{
|
||||
double *tmp_ = (double *) lammps_extract_atom(lmp,charName);
|
||||
lmp2foam_->exchange(tmp_, field[0]);
|
||||
if ( type == "vector-atom")
|
||||
{
|
||||
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]);
|
||||
}else if ( type == "scalar-atom")
|
||||
{
|
||||
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]);
|
||||
}else
|
||||
{
|
||||
FatalError << "requesting type " << type << " and name " << name << abort(FatalError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -232,24 +259,26 @@ void twoWayMany2Many::giveData
|
||||
else
|
||||
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);
|
||||
}else if( type == "scalar-atom" )
|
||||
{
|
||||
Warning << "LIGGGHTS not ready for use of impleDEM and Many2Many" << endl;
|
||||
double *tmp_=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)
|
||||
tmp_ = (double *) static_cast<LAMMPS_NS::FixPropertyAtom*>(fix)->array_atom;
|
||||
tmp_ = (double *) static_cast<LAMMPS_NS::FixPropertyAtom*>(fix)->vector_atom;
|
||||
else
|
||||
FatalError << "coupling fix not found!"<< abort(FatalError);
|
||||
|
||||
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{
|
||||
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 coupleNow = false;
|
||||
label commandLines(0);
|
||||
if (doCoupleNow())
|
||||
{
|
||||
couplingStep_++;
|
||||
@ -371,9 +401,13 @@ bool Foam::twoWayMany2Many::couple() const
|
||||
|
||||
if(particleCloud_.liggghtsCommand()[i]().runCommand(couplingStep()))
|
||||
{
|
||||
const char* command = particleCloud_.liggghtsCommand()[i]().command(0);
|
||||
Info << "Executing command: '"<< command <<"'"<< endl;
|
||||
lmp->input->one(command);
|
||||
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;
|
||||
lmp->input->one(command);
|
||||
}
|
||||
}
|
||||
}
|
||||
particleCloud_.clockM().stop("LIGGGHTS");
|
||||
@ -595,18 +629,29 @@ void Foam::twoWayMany2Many::locateParticle(int* id_lammpsSync, bool id_lammps_al
|
||||
{
|
||||
label patchI = pbm_.whichPatch(nearestFace);
|
||||
|
||||
label n(-1);
|
||||
if (procPatchIndices_[patchI] != -1)
|
||||
{
|
||||
label n = neighbourProcIndices_
|
||||
n = neighbourProcIndices_
|
||||
[
|
||||
refCast<const processorPolyPatch>
|
||||
(
|
||||
pbm_[patchI]
|
||||
).neighbProcNo()
|
||||
];
|
||||
particleTransferID[n].append(id_lammps_[i]);
|
||||
particleTransferPos[n].append(pos);
|
||||
commPart=true;
|
||||
|
||||
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]);
|
||||
particleTransferPos[n].append(pos);
|
||||
commPart=true;
|
||||
//Pout << couplingStep_ << "st communicating particle " << id_lammps_[i] << ", to proc# " << n << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!commPart)
|
||||
@ -703,7 +748,7 @@ void Foam::twoWayMany2Many::locateParticle(int* id_lammpsSync, bool id_lammps_al
|
||||
particleCloud_.clockM().start(9,"locate_Stage3");
|
||||
|
||||
int nlocal_foam_lostAll(-1);
|
||||
if (firstRun_)
|
||||
if (firstRun_ || allowDiagComm_)
|
||||
{
|
||||
particleCloud_.clockM().start(10,"locate_Stage3_1");
|
||||
MPI_Allreduce(&nlocal_foam_lost_, &nlocal_foam_lostAll, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
|
||||
|
||||
@ -90,6 +90,7 @@ private:
|
||||
|
||||
// new vars
|
||||
mutable bool firstRun_;
|
||||
Switch allowDiagComm_;
|
||||
mutable bool particleLost_;
|
||||
mutable double Npart_;
|
||||
mutable Many2Many * lmp2foam_;
|
||||
|
||||
@ -63,8 +63,6 @@ Archimedes::Archimedes
|
||||
forceModel(dict,sm),
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
twoDimensional_(false),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
gravityFieldName_(propsDict_.lookup("gravityFieldName")),
|
||||
#if defined(version21) || defined(version16ext)
|
||||
g_(sm.mesh().lookupObject<uniformDimensionedVectorField> (gravityFieldName_))
|
||||
@ -91,18 +89,20 @@ Archimedes::Archimedes
|
||||
|
||||
// define switches which can be read from dict
|
||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||
forceSubM(0).setSwitchesList(1,true); // activate treatDEM switch
|
||||
|
||||
// read those switches defined above, if provided in dict
|
||||
forceSubM(0).setSwitchesList(1,true); // activate treatForceDEM switch
|
||||
forceSubM(0).readSwitches();
|
||||
|
||||
if (modelType_=="A"){
|
||||
forceSubM(0).setSwitches(1,true); // treatDEM = true
|
||||
Info << "accounting for Archimedes only on DEM side!" << endl;
|
||||
if (modelType_=="A" || modelType_=="Bfull"){
|
||||
if(!forceSubM(0).switches()[1]) // treatDEM != true
|
||||
{
|
||||
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"){
|
||||
forceSubM(0).setSwitches(1,false); // treatDEM = false
|
||||
Info << "accounting for Archimedes on DEM and CFD side!" << endl;
|
||||
if(forceSubM(0).switches()[1]) // treatDEM = true
|
||||
{
|
||||
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);
|
||||
@ -136,12 +136,21 @@ void Archimedes::setForce() const
|
||||
|
||||
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;
|
||||
}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
|
||||
if(probeIt_)
|
||||
{
|
||||
|
||||
@ -63,10 +63,6 @@ private:
|
||||
|
||||
bool twoDimensional_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_; // ref to fluid density
|
||||
|
||||
word gravityFieldName_;
|
||||
|
||||
#ifdef version21
|
||||
|
||||
@ -63,8 +63,6 @@ ArchimedesIB::ArchimedesIB
|
||||
forceModel(dict,sm),
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
twoDimensional_(false),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")), //mod by alice
|
||||
voidfractions_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),//mod by alice
|
||||
gravityFieldName_(propsDict_.lookup("gravityFieldName")),
|
||||
@ -125,8 +123,8 @@ void ArchimedesIB::setForce() const
|
||||
label cellI = particleCloud_.cellIDs()[index][subCell];
|
||||
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()*rho_[cellI]*rho_.mesh().V()[cellI]*(1-voidfractions_[cellI]);//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()*forceSubM(0).rhoField()[cellI]*particleCloud_.mesh().V()[cellI]*(1-voidfractions_[cellI]);//mod by alice
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -65,10 +65,6 @@ private:
|
||||
|
||||
bool twoDimensional_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_; // ref to fluid density
|
||||
|
||||
word voidfractionFieldName_;
|
||||
|
||||
const volScalarField& voidfractions_;
|
||||
|
||||
@ -64,14 +64,10 @@ DiFeliceDrag::DiFeliceDrag
|
||||
:
|
||||
forceModel(dict,sm),
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
verbose_(false),
|
||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
||||
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
||||
interpolation_(false),
|
||||
UsFieldName_(propsDict_.lookup("granVelFieldName")),
|
||||
UsField_(sm.mesh().lookupObject<volVectorField> (UsFieldName_)),
|
||||
scaleDia_(1.),
|
||||
@ -86,12 +82,6 @@ DiFeliceDrag::DiFeliceDrag
|
||||
particleCloud_.probeM().scalarFields_.append("voidfraction"); //other are debug
|
||||
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);
|
||||
if (propsDict_.found("scale"))
|
||||
scaleDia_=scalar(readScalar(propsDict_.lookup("scale")));
|
||||
@ -104,6 +94,9 @@ DiFeliceDrag::DiFeliceDrag
|
||||
// define switches which can be read from dict
|
||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit 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
|
||||
forceSubM(0).readSwitches();
|
||||
@ -126,14 +119,10 @@ void DiFeliceDrag::setForce() const
|
||||
scaleDia_=particleCloud_.cg();
|
||||
Info << "DiFeliceDrag using scale from liggghts cg = " << scaleDia_ << endl;
|
||||
}
|
||||
|
||||
// get viscosity field
|
||||
#ifdef comp
|
||||
const volScalarField nufField = particleCloud_.turbulence().mu() / rho_;
|
||||
#else
|
||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
||||
#endif
|
||||
|
||||
const volScalarField& nufField = forceSubM(0).nuField();
|
||||
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||
|
||||
vector position(0,0,0);
|
||||
scalar voidfraction(1);
|
||||
vector Ufluid(0,0,0);
|
||||
@ -157,9 +146,6 @@ void DiFeliceDrag::setForce() const
|
||||
|
||||
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
||||
{
|
||||
//if(mask[index][0])
|
||||
//{
|
||||
|
||||
cellI = particleCloud_.cellIDs()[index][0];
|
||||
drag = vector(0,0,0);
|
||||
dragExplicit = vector(0,0,0);
|
||||
@ -168,7 +154,7 @@ void DiFeliceDrag::setForce() const
|
||||
|
||||
if (cellI > -1) // particle Found
|
||||
{
|
||||
if(interpolation_)
|
||||
if(forceSubM(0).interpolation())
|
||||
{
|
||||
position = particleCloud_.position(index);
|
||||
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
||||
@ -183,7 +169,7 @@ void DiFeliceDrag::setForce() const
|
||||
Ur = Ufluid-Us;
|
||||
ds = 2*particleCloud_.radius(index);
|
||||
nuf = nufField[cellI];
|
||||
rho = rho_[cellI];
|
||||
rho = rhoField[cellI];
|
||||
magUr = mag(Ur);
|
||||
Rep = 0;
|
||||
Cd = 0;
|
||||
@ -212,10 +198,10 @@ void DiFeliceDrag::setForce() const
|
||||
|
||||
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 << "Us = " << Us << endl;
|
||||
@ -245,7 +231,6 @@ void DiFeliceDrag::setForce() const
|
||||
// write particle based data to global array
|
||||
forceSubM(0).partToArray(index,drag,dragExplicit,Ufluid,dragCoefficient);
|
||||
}
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -60,22 +60,14 @@ class DiFeliceDrag
|
||||
private:
|
||||
dictionary propsDict_;
|
||||
|
||||
bool verbose_;
|
||||
|
||||
word velFieldName_;
|
||||
|
||||
const volVectorField& U_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
|
||||
word voidfractionFieldName_;
|
||||
|
||||
const volScalarField& voidfraction_;
|
||||
|
||||
bool interpolation_; // use interpolated U field values
|
||||
|
||||
word UsFieldName_;
|
||||
|
||||
const volVectorField& UsField_; // the average particle velocity field (for implicit/expliti force split)
|
||||
|
||||
@ -63,15 +63,11 @@ GidaspowDrag::GidaspowDrag
|
||||
:
|
||||
forceModel(dict,sm),
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
verbose_(false),
|
||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
||||
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
||||
phi_(readScalar(propsDict_.lookup("phi"))),
|
||||
interpolation_(false),
|
||||
UsFieldName_(propsDict_.lookup("granVelFieldName")),
|
||||
UsField_(sm.mesh().lookupObject<volVectorField> (UsFieldName_)),
|
||||
scaleDia_(1.),
|
||||
@ -87,17 +83,14 @@ GidaspowDrag::GidaspowDrag
|
||||
particleCloud_.probeM().scalarFields_.append("voidfraction");
|
||||
particleCloud_.probeM().writeHeader();
|
||||
|
||||
if (propsDict_.found("verbose")) verbose_=true;
|
||||
if (propsDict_.found("interpolation")) interpolation_=true;
|
||||
|
||||
// init force sub model
|
||||
setForceSubModels(propsDict_);
|
||||
|
||||
// define switches which can be read from dict
|
||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||
forceSubM(0).setSwitchesList(2,true); // activate implDEM switch
|
||||
|
||||
// read those switches defined above, if provided in 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
|
||||
forceSubM(0).readSwitches();
|
||||
|
||||
particleCloud_.checkCG(true);
|
||||
@ -108,8 +101,6 @@ GidaspowDrag::GidaspowDrag
|
||||
|
||||
if (propsDict_.found("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;
|
||||
}
|
||||
|
||||
// get viscosity field
|
||||
#ifdef comp
|
||||
const volScalarField nufField = particleCloud_.turbulence().mu() / rho_;
|
||||
#else
|
||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
||||
#endif
|
||||
const volScalarField& nufField = forceSubM(0).nuField();
|
||||
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||
|
||||
vector position(0,0,0);
|
||||
scalar voidfraction(1);
|
||||
@ -180,7 +167,7 @@ void GidaspowDrag::setForce() const
|
||||
if (cellI > -1) // particle Found
|
||||
{
|
||||
|
||||
if(interpolation_)
|
||||
if( forceSubM(0).interpolation() )
|
||||
{
|
||||
position = particleCloud_.position(index);
|
||||
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
||||
@ -199,8 +186,8 @@ void GidaspowDrag::setForce() const
|
||||
Us = particleCloud_.velocity(index);
|
||||
Ur = Ufluid-Us;
|
||||
magUr = mag(Ur);
|
||||
ds = 2*particleCloud_.radius(index)*phi_;
|
||||
rho = rho_[cellI];
|
||||
ds = 2*particleCloud_.radius(index);
|
||||
rho = rhoField[cellI];
|
||||
nuf = nufField[cellI];
|
||||
|
||||
Rep=0.0;
|
||||
@ -223,10 +210,10 @@ void GidaspowDrag::setForce() const
|
||||
else //dense
|
||||
{
|
||||
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)
|
||||
/((ds/scaleDia_));
|
||||
/((ds/scaleDia_*phi_));
|
||||
}
|
||||
|
||||
// calc particle's drag
|
||||
@ -237,9 +224,9 @@ void GidaspowDrag::setForce() const
|
||||
drag = dragCoefficient * Ur;
|
||||
|
||||
// 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 << "index = " << index << endl;
|
||||
|
||||
@ -32,7 +32,7 @@ Description
|
||||
- only valid for low-Reynolds number systems (Re_p<1000)
|
||||
- including interpolation of the velocity to the exact position
|
||||
- splits off explicit drag component due to fluctuation in fluid and particle
|
||||
velocity
|
||||
velocity (optional via forceSubModel "ImExCorr")
|
||||
|
||||
Class
|
||||
GidaspowDrag
|
||||
@ -64,24 +64,16 @@ class GidaspowDrag
|
||||
private:
|
||||
dictionary propsDict_;
|
||||
|
||||
bool verbose_;
|
||||
|
||||
word velFieldName_;
|
||||
|
||||
const volVectorField& U_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
|
||||
word voidfractionFieldName_;
|
||||
|
||||
const volScalarField& voidfraction_;
|
||||
|
||||
const scalar phi_;
|
||||
|
||||
bool interpolation_; // use interpolated field values
|
||||
|
||||
word UsFieldName_;
|
||||
|
||||
const volVectorField& UsField_; // the average particle velocity field
|
||||
|
||||
@ -64,16 +64,12 @@ KochHillDrag::KochHillDrag
|
||||
:
|
||||
forceModel(dict,sm),
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
verbose_(false),
|
||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
||||
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
||||
UsFieldName_(propsDict_.lookupOrDefault("granVelFieldName",word("Us"))),
|
||||
UsField_(sm.mesh().lookupObject<volVectorField> (UsFieldName_)),
|
||||
interpolation_(false),
|
||||
scaleDia_(1.),
|
||||
scaleDrag_(1.)
|
||||
{
|
||||
@ -86,15 +82,16 @@ KochHillDrag::KochHillDrag
|
||||
particleCloud_.probeM().scalarFields_.append("voidfraction"); //other are debug
|
||||
particleCloud_.probeM().writeHeader();
|
||||
|
||||
if (propsDict_.found("verbose")) verbose_=true;
|
||||
if (propsDict_.found("interpolation")) interpolation_=true;
|
||||
|
||||
// init force sub model
|
||||
setForceSubModels(propsDict_);
|
||||
|
||||
// define switches which can be read from dict
|
||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit 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
|
||||
forceSubM(0).readSwitches();
|
||||
@ -125,12 +122,8 @@ void KochHillDrag::setForce() const
|
||||
Info << "KochHill using scale from liggghts cg = " << scaleDia_ << endl;
|
||||
}
|
||||
|
||||
// get viscosity field
|
||||
#ifdef comp
|
||||
const volScalarField nufField = particleCloud_.turbulence().mu()/rho_;
|
||||
#else
|
||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
||||
#endif
|
||||
const volScalarField& nufField = forceSubM(0).nuField();
|
||||
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||
|
||||
vector position(0,0,0);
|
||||
scalar voidfraction(1);
|
||||
@ -151,6 +144,8 @@ void KochHillDrag::setForce() const
|
||||
scalar volumefraction(0);
|
||||
scalar betaP(0);
|
||||
|
||||
int couplingInterval(particleCloud_.dataExchangeM().couplingInterval());
|
||||
|
||||
interpolationCellPoint<scalar> voidfractionInterpolator_(voidfraction_);
|
||||
interpolationCellPoint<vector> UInterpolator_(U_);
|
||||
|
||||
@ -158,8 +153,6 @@ void KochHillDrag::setForce() const
|
||||
|
||||
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
||||
{
|
||||
//if(mask[index][0])
|
||||
//{
|
||||
cellI = particleCloud_.cellIDs()[index][0];
|
||||
drag = vector(0,0,0);
|
||||
dragExplicit = vector(0,0,0);
|
||||
@ -171,7 +164,7 @@ void KochHillDrag::setForce() const
|
||||
|
||||
if (cellI > -1) // particle Found
|
||||
{
|
||||
if(interpolation_)
|
||||
if(forceSubM(0).interpolation())
|
||||
{
|
||||
position = particleCloud_.position(index);
|
||||
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
||||
@ -190,7 +183,7 @@ void KochHillDrag::setForce() const
|
||||
Ur = Ufluid-Us;
|
||||
ds = particleCloud_.d(index);
|
||||
nuf = nufField[cellI];
|
||||
rho = rho_[cellI];
|
||||
rho = rhoField[cellI];
|
||||
magUr = mag(Ur);
|
||||
Rep = 0;
|
||||
Vs = ds*ds*ds*M_PI/6;
|
||||
@ -230,13 +223,20 @@ void KochHillDrag::setForce() const
|
||||
if (modelType_=="B")
|
||||
dragCoefficient /= voidfraction;
|
||||
|
||||
drag = dragCoefficient * Ur;
|
||||
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;
|
||||
|
||||
// explicitInterpCorr
|
||||
forceSubM(0).explicitInterpCorr(dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],verbose_);
|
||||
// explicitInterpCorr
|
||||
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 << "index = " << index << endl;
|
||||
@ -267,8 +267,6 @@ void KochHillDrag::setForce() const
|
||||
|
||||
// write particle based data to global array
|
||||
forceSubM(0).partToArray(index,drag,dragExplicit,Ufluid,dragCoefficient);
|
||||
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -64,16 +64,10 @@ class KochHillDrag
|
||||
private:
|
||||
dictionary propsDict_;
|
||||
|
||||
bool verbose_;
|
||||
|
||||
word velFieldName_;
|
||||
|
||||
const volVectorField& U_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
|
||||
word voidfractionFieldName_;
|
||||
|
||||
const volScalarField& voidfraction_;
|
||||
@ -82,8 +76,6 @@ private:
|
||||
|
||||
const volVectorField& UsField_;
|
||||
|
||||
bool interpolation_; // use interpolated field values
|
||||
|
||||
mutable scalar scaleDia_;
|
||||
|
||||
mutable scalar scaleDrag_;
|
||||
|
||||
@ -67,8 +67,6 @@ KochHillRWDrag::KochHillRWDrag
|
||||
verbose_(false),
|
||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
||||
voidfraction_(sm.mesh().lookupObject<volScalarField> (voidfractionFieldName_)),
|
||||
UsFieldName_(propsDict_.lookupOrDefault("granVelFieldName",word("Us"))),
|
||||
@ -152,16 +150,9 @@ void KochHillRWDrag::setForce() const
|
||||
Info << "KochHillRW using scale from liggghts cg = " << scale_ << endl;
|
||||
}
|
||||
|
||||
// get viscosity field
|
||||
#ifdef comp
|
||||
const volScalarField nufField = particleCloud_.turbulence().mu()/rho_;
|
||||
const volScalarField& muField = particleCloud_.turbulence().mu();
|
||||
#else
|
||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
||||
const volScalarField muField = particleCloud_.turbulence().nu()*rho_;
|
||||
|
||||
#endif
|
||||
|
||||
const volScalarField& nufField = forceSubM(0).nuField();
|
||||
const volScalarField& mufField = forceSubM(0).muField();
|
||||
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||
|
||||
vector position(0,0,0);
|
||||
scalar voidfraction(1);
|
||||
@ -263,7 +254,7 @@ void KochHillRWDrag::setForce() const
|
||||
if(t>=partTime_[index][0])
|
||||
{
|
||||
scalar ds = 2*particleCloud_.radius(index);
|
||||
mu = muField[cellI];
|
||||
mu = mufField[cellI];
|
||||
k = kField[cellI];
|
||||
epsilon = epsilonField[cellI];
|
||||
|
||||
@ -323,7 +314,7 @@ void KochHillRWDrag::setForce() const
|
||||
|
||||
ds = 2*particleCloud_.radius(index);
|
||||
nuf = nufField[cellI];
|
||||
rho = rho_[cellI];
|
||||
rho = rhoField[cellI];
|
||||
Rep = 0;
|
||||
Vs = ds*ds*ds*M_PI/6;
|
||||
volumefraction = 1-voidfraction+SMALL;
|
||||
|
||||
@ -71,10 +71,6 @@ private:
|
||||
|
||||
const volVectorField& U_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
|
||||
word voidfractionFieldName_;
|
||||
|
||||
const volScalarField& voidfraction_;
|
||||
|
||||
@ -63,7 +63,6 @@ LaEuScalarTemp::LaEuScalarTemp
|
||||
:
|
||||
forceModel(dict,sm),
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
verbose_(false),
|
||||
tempFieldName_(propsDict_.lookup("tempFieldName")),
|
||||
tempField_(sm.mesh().lookupObject<volScalarField> (tempFieldName_)),
|
||||
voidfractionFieldName_(propsDict_.lookup("voidfractionFieldName")),
|
||||
@ -76,10 +75,7 @@ LaEuScalarTemp::LaEuScalarTemp
|
||||
partHeatFluxName_(propsDict_.lookup("partHeatFluxName")),
|
||||
partHeatFlux_(NULL),
|
||||
lambda_(readScalar(propsDict_.lookup("lambda"))),
|
||||
Cp_(readScalar(propsDict_.lookup("Cp"))),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
interpolation_(false)
|
||||
Cp_(readScalar(propsDict_.lookup("Cp")))
|
||||
{
|
||||
allocateMyArrays();
|
||||
|
||||
@ -88,10 +84,18 @@ LaEuScalarTemp::LaEuScalarTemp
|
||||
maxSource_=readScalar(propsDict_.lookup ("maxSource"));
|
||||
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);
|
||||
}
|
||||
@ -131,12 +135,10 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
||||
// get DEM data
|
||||
particleCloud_.dataExchangeM().getData(partTempName_,"scalar-atom",partTemp_);
|
||||
|
||||
// get viscosity field
|
||||
#ifdef comp
|
||||
const volScalarField& nufField = particleCloud_.turbulence().mu() / rho_;
|
||||
#else
|
||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
||||
#endif
|
||||
const volScalarField& nufField = forceSubM(0).nuField();
|
||||
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||
|
||||
Info << "nufField=" << nufField << endl;
|
||||
|
||||
// calc La based heat flux
|
||||
vector position(0,0,0);
|
||||
@ -165,7 +167,7 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
||||
cellI = particleCloud_.cellIDs()[index][0];
|
||||
if(cellI >= 0)
|
||||
{
|
||||
if(interpolation_)
|
||||
if(forceSubM(0).interpolation())
|
||||
{
|
||||
position = particleCloud_.position(index);
|
||||
voidfraction = voidfractionInterpolator_.interpolate(position,cellI);
|
||||
@ -185,7 +187,7 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
||||
As = ds*ds*M_PI;
|
||||
nuf = nufField[cellI];
|
||||
Rep = ds*magUr/nuf;
|
||||
Pr = Cp_*nuf*rho_[cellI]/lambda_;
|
||||
Pr = Cp_*nuf*rhoField[cellI]/lambda_;
|
||||
|
||||
if (Rep < 200)
|
||||
{
|
||||
@ -207,7 +209,7 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
||||
partHeatFlux_[index][0] = partHeatFlux;
|
||||
|
||||
|
||||
if(verbose_ && index >=0 && index <2)
|
||||
if(forceSubM(0).verbose() && index >=0 && index <2)
|
||||
{
|
||||
Info << "partHeatFlux = " << partHeatFlux << endl;
|
||||
Info << "magUr = " << magUr << endl;
|
||||
@ -233,7 +235,7 @@ void LaEuScalarTemp::manipulateScalarField(volScalarField& EuField) const
|
||||
);
|
||||
|
||||
// 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
|
||||
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
|
||||
particleCloud_.dataExchangeM().giveData(partHeatFluxName_,"scalar-atom", partHeatFlux_);
|
||||
|
||||
@ -65,8 +65,6 @@ private:
|
||||
|
||||
dictionary propsDict_;
|
||||
|
||||
bool verbose_;
|
||||
|
||||
word tempFieldName_;
|
||||
|
||||
const volScalarField& tempField_; // ref to temperature field
|
||||
@ -93,12 +91,6 @@ private:
|
||||
|
||||
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;
|
||||
|
||||
public:
|
||||
|
||||
@ -66,30 +66,20 @@ MeiLift::MeiLift
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
useSecondOrderTerms_(false),
|
||||
interpolation_(false),
|
||||
verbose_(false)
|
||||
/*,
|
||||
vorticityFieldName_(propsDict_.lookup("vorticityFieldName")),
|
||||
vorticity_(sm.mesh().lookupObject<volVectorField> (vorticityFieldName_))*/
|
||||
useSecondOrderTerms_(false)
|
||||
{
|
||||
if (propsDict_.found("useSecondOrderTerms")) useSecondOrderTerms_=true;
|
||||
|
||||
// init force sub model
|
||||
setForceSubModels(propsDict_);
|
||||
|
||||
// define switches which can be read from dict
|
||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||
|
||||
// read those switches defined above, if provided in 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
|
||||
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
|
||||
particleCloud_.probeM().initialize(typeName, "meiLift.logDat");
|
||||
@ -114,12 +104,8 @@ MeiLift::~MeiLift()
|
||||
|
||||
void MeiLift::setForce() const
|
||||
{
|
||||
// get viscosity field
|
||||
#ifdef comp
|
||||
const volScalarField nufField = particleCloud_.turbulence().mu() / rho_;
|
||||
#else
|
||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
||||
#endif
|
||||
const volScalarField& nufField = forceSubM(0).nuField();
|
||||
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||
|
||||
vector position(0,0,0);
|
||||
vector lift(0,0,0);
|
||||
@ -159,7 +145,7 @@ void MeiLift::setForce() const
|
||||
{
|
||||
Us = particleCloud_.velocity(index);
|
||||
|
||||
if(interpolation_)
|
||||
if( forceSubM(0).interpolation() )
|
||||
{
|
||||
position = particleCloud_.position(index);
|
||||
Ur = UInterpolator_.interpolate(position,cellI)
|
||||
@ -180,7 +166,7 @@ void MeiLift::setForce() const
|
||||
{
|
||||
ds = 2*particleCloud_.radius(index);
|
||||
nuf = nufField[cellI];
|
||||
rho = rho_[cellI];
|
||||
rho = rhoField[cellI];
|
||||
|
||||
// calc dimensionless properties
|
||||
Rep = ds*magUr/nuf;
|
||||
@ -236,7 +222,7 @@ void MeiLift::setForce() const
|
||||
|
||||
//**********************************
|
||||
//SAMPLING AND VERBOSE OUTOUT
|
||||
if(verbose_ )
|
||||
if( forceSubM(0).verbose() )
|
||||
{
|
||||
Pout << "index = " << index << endl;
|
||||
Pout << "Us = " << Us << endl;
|
||||
|
||||
@ -80,20 +80,8 @@ private:
|
||||
|
||||
const volVectorField& U_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
|
||||
bool useSecondOrderTerms_;
|
||||
|
||||
bool interpolation_;
|
||||
|
||||
bool verbose_;
|
||||
|
||||
/*word vorticityFieldName_;
|
||||
|
||||
volVectorField& vorticity_;*/
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
|
||||
@ -66,9 +66,7 @@ SchillerNaumannDrag::SchillerNaumannDrag
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
verbose_(false),
|
||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_))
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_))
|
||||
{
|
||||
//Append the field names to be probed
|
||||
particleCloud_.probeM().initialize(typeName, "schillerNaumannDrag.logDat");
|
||||
@ -103,15 +101,11 @@ SchillerNaumannDrag::~SchillerNaumannDrag()
|
||||
|
||||
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"
|
||||
|
||||
const volScalarField& nufField = forceSubM(0).nuField();
|
||||
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||
|
||||
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
||||
{
|
||||
//if(mask[index][0])
|
||||
@ -126,7 +120,7 @@ void SchillerNaumannDrag::setForce() const
|
||||
vector Ur = U_[cellI]-Us;
|
||||
scalar ds = 2*particleCloud_.radius(index);
|
||||
scalar nuf = nufField[cellI];
|
||||
scalar rho = rho_[cellI];
|
||||
scalar rho = rhoField[cellI];
|
||||
scalar voidfraction = particleCloud_.voidfraction(index);
|
||||
scalar magUr = mag(Ur);
|
||||
scalar Rep = 0;
|
||||
|
||||
@ -66,10 +66,6 @@ private:
|
||||
|
||||
const volVectorField& U_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
|
||||
@ -68,8 +68,6 @@ ShirgaonkarIB::ShirgaonkarIB
|
||||
depth_(1),
|
||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
pressureFieldName_(propsDict_.lookup("pressureFieldName")),
|
||||
p_(sm.mesh().lookupObject<volScalarField> (pressureFieldName_))
|
||||
{
|
||||
@ -115,13 +113,12 @@ void ShirgaonkarIB::setForce() const
|
||||
vector drag;
|
||||
|
||||
#ifdef comp
|
||||
// get viscosity field
|
||||
const volScalarField& mufField = particleCloud_.turbulence().mu();
|
||||
const volScalarField& mufField = forceSubM(0).muField();
|
||||
volVectorField h = (mufField*fvc::laplacian(U_)-fvc::grad(p_));
|
||||
#else
|
||||
// get viscosity field
|
||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
||||
volVectorField h = rho_*(nufField*fvc::laplacian(U_)-fvc::grad(p_));
|
||||
const volScalarField& nufField = forceSubM(0).nuField();
|
||||
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||
volVectorField h = rhoField*(nufField*fvc::laplacian(U_)-fvc::grad(p_));
|
||||
#endif
|
||||
|
||||
#include "setupProbeModel.H"
|
||||
|
||||
@ -70,10 +70,6 @@ private:
|
||||
|
||||
const volVectorField& U_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
|
||||
word pressureFieldName_;
|
||||
|
||||
const volScalarField& p_;
|
||||
|
||||
@ -64,8 +64,6 @@ checkCouplingInterval::checkCouplingInterval
|
||||
:
|
||||
forceModel(dict,sm),
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
rhoP_(readScalar(propsDict_.lookup("rhoP")))
|
||||
{}
|
||||
|
||||
@ -82,12 +80,9 @@ void checkCouplingInterval::setForce() const
|
||||
{
|
||||
if(particleCloud_.mesh().time().write())
|
||||
{
|
||||
// get viscosity field
|
||||
#ifdef comp
|
||||
const volScalarField nufField = particleCloud_.turbulence().mu() / rho_;
|
||||
#else
|
||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
||||
#endif
|
||||
|
||||
const volScalarField& nufField = forceSubM(0).nuField();
|
||||
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||
|
||||
// find min particle relaxation time
|
||||
scalar minTauP = 1000;
|
||||
@ -101,7 +96,7 @@ void checkCouplingInterval::setForce() const
|
||||
{
|
||||
scaledRad = particleCloud_.radius(index)/particleCloud_.cg();
|
||||
tauP = rhoP_*4*scaledRad*scaledRad/
|
||||
(18 * nufField[cellI] * rho_[cellI]);
|
||||
(18 * nufField[cellI] * rhoField[cellI]);
|
||||
minTauP = min(minTauP,tauP);
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,10 +62,6 @@ class checkCouplingInterval
|
||||
private:
|
||||
dictionary propsDict_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
|
||||
const scalar rhoP_;
|
||||
|
||||
public:
|
||||
|
||||
@ -59,15 +59,39 @@ forceSubModel::forceSubModel
|
||||
dict_(dict),
|
||||
particleCloud_(sm),
|
||||
forceModel_(fm),
|
||||
nrDefaultSwitches_(3),
|
||||
nrDefaultSwitches_(9), // !!!
|
||||
switchesNameList_(wordList(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
|
||||
switchesNameList_[0]="treatExplicit";
|
||||
switchesNameList_[1]="treatDEM";
|
||||
switchesNameList_[2]="implDEM";
|
||||
// init standard switch list
|
||||
int iCounter(0);
|
||||
switchesNameList_[iCounter]="treatForceExplicit"; iCounter++; //0
|
||||
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++)
|
||||
{
|
||||
switchesList_[i]=false;
|
||||
@ -114,7 +138,7 @@ void forceSubModel::partToArray
|
||||
}
|
||||
|
||||
// forces for DEM
|
||||
if(switches_[2]) // implDEM
|
||||
if(switches_[2]) // implForceDEM
|
||||
{
|
||||
for(int j=0;j<3;j++)
|
||||
myForceM().fluidVel()[index][j]=Ufluid[j];
|
||||
@ -128,6 +152,8 @@ void forceSubModel::partToArray
|
||||
}
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
void forceSubModel::explicitInterpCorr
|
||||
(
|
||||
vector& dragExplicit,
|
||||
@ -147,10 +173,10 @@ void forceSubModel::explicitInterpCorr
|
||||
|
||||
void forceSubModel::readSwitches() const
|
||||
{
|
||||
Info << "\nforceSubModel:" << myType() << endl;
|
||||
Info << "\nreading switches for forceSubModel:" << myType() << endl;
|
||||
forAll(switchesNameList_,i)
|
||||
{
|
||||
if(switchesList_[i] > 0+SMALL)
|
||||
if(switchesList_[i] > 0+SMALL) //check if switch is required
|
||||
{
|
||||
Info << " looking for " << switchesNameList_[i] << " ..." << endl;
|
||||
if (dict_.found(switchesNameList_[i]))
|
||||
@ -161,20 +187,91 @@ void forceSubModel::readSwitches() const
|
||||
}
|
||||
Info << endl;
|
||||
|
||||
if(switches_[2]) // implDEM=true
|
||||
if(switches_[2]) // implForceDEM=true
|
||||
{
|
||||
// communicate implDEM to particleCloud
|
||||
// communicate implForceDEM to particleCloud
|
||||
particleCloud_.impDEMdrag_=true;
|
||||
|
||||
// do sanity check
|
||||
if(switches_[0]) // treatExplicit=true
|
||||
{
|
||||
Warning<< "please check your settings, treatExplicit together with implDEM does not work! (using treatExplicit=false)" << endl;
|
||||
switches_[0]=false;
|
||||
FatalError << "Please check your settings, treatExplicit together with implForceDEM does not work!."
|
||||
<< 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
|
||||
|
||||
@ -71,6 +71,13 @@ protected:
|
||||
|
||||
mutable List<Switch> switches_;
|
||||
|
||||
mutable volScalarField nu_;
|
||||
|
||||
const volScalarField& nuField_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
|
||||
public:
|
||||
|
||||
@ -127,6 +134,14 @@ public:
|
||||
|
||||
// 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;
|
||||
|
||||
inline forceModel& myForceM() const { return forceModel_;};
|
||||
@ -142,6 +157,12 @@ public:
|
||||
virtual void readSwitches() const;
|
||||
|
||||
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),
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
verbose_(false),
|
||||
pFieldName_(propsDict_.lookup("pFieldName")),
|
||||
p_(sm.mesh().lookupObject<volScalarField> (pFieldName_)),
|
||||
velocityFieldName_(propsDict_.lookup("velocityFieldName")),
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velocityFieldName_)),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
useRho_(false),
|
||||
useU_(false),
|
||||
addedMassCoeff_(0.0),
|
||||
interpolation_(false)
|
||||
addedMassCoeff_(0.0)
|
||||
{
|
||||
if (propsDict_.found("verbose")) verbose_=true;
|
||||
|
||||
// init force sub model
|
||||
setForceSubModels(propsDict_);
|
||||
|
||||
// define switches which can be read from dict
|
||||
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
|
||||
forceSubM(0).readSwitches();
|
||||
@ -88,10 +84,20 @@ gradPForce::gradPForce
|
||||
if (modelType_ == "B")
|
||||
{
|
||||
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
|
||||
Info << "gradPForce is applied only to DEM side" << endl;
|
||||
if(forceSubM(0).switches()[1])
|
||||
{
|
||||
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;
|
||||
@ -101,11 +107,6 @@ gradPForce::gradPForce
|
||||
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;
|
||||
}
|
||||
if (propsDict_.found("interpolation"))
|
||||
{
|
||||
Info << "using interpolated value of pressure gradient." << endl;
|
||||
interpolation_=true;
|
||||
}
|
||||
|
||||
if(p_.dimensions()==dimensionSet(0,2,-2,0,0))
|
||||
useRho_ = true;
|
||||
@ -138,7 +139,7 @@ void gradPForce::setForce() const
|
||||
if (useRho_)
|
||||
gradPField = fvc::grad(0.5*U2);
|
||||
else
|
||||
gradPField = fvc::grad(0.5*rho_*U2);
|
||||
gradPField = fvc::grad(0.5*forceSubM(0).rhoField()*U2);
|
||||
}*/
|
||||
vector gradP;
|
||||
scalar Vs;
|
||||
@ -162,7 +163,7 @@ void gradPForce::setForce() const
|
||||
{
|
||||
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);
|
||||
}else
|
||||
@ -171,7 +172,7 @@ void gradPForce::setForce() const
|
||||
}
|
||||
|
||||
Vs = particleCloud_.particleVolume(index);
|
||||
rho = rho_[cellI];
|
||||
rho = forceSubM(0).rhoField()[cellI];
|
||||
|
||||
// calc particle's pressure gradient force
|
||||
if (useRho_)
|
||||
@ -179,7 +180,7 @@ void gradPForce::setForce() const
|
||||
else
|
||||
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 << "gradP = " << gradP << endl;
|
||||
|
||||
@ -63,8 +63,6 @@ class gradPForce
|
||||
private:
|
||||
dictionary propsDict_;
|
||||
|
||||
bool verbose_;
|
||||
|
||||
word pFieldName_;
|
||||
|
||||
const volScalarField& p_;
|
||||
@ -73,18 +71,12 @@ private:
|
||||
|
||||
const volVectorField& U_;
|
||||
|
||||
word densityFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
|
||||
bool useRho_;
|
||||
|
||||
bool useU_; // if false: substitution p=0.5*rho*U^2
|
||||
|
||||
mutable double addedMassCoeff_; //added mass coefficient
|
||||
|
||||
bool interpolation_; // use interpolated field values
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
|
||||
@ -40,6 +40,8 @@ Description
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
#define NOTONCPU 9999
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineTypeNameAndDebug(virtualMassForce, 0);
|
||||
@ -63,30 +65,42 @@ virtualMassForce::virtualMassForce
|
||||
:
|
||||
forceModel(dict,sm),
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
verbose_(false),
|
||||
velFieldName_(propsDict_.lookup("velFieldName")),
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velFieldName_)),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
UrelOld_(NULL)
|
||||
phiFieldName_(propsDict_.lookup("phiFieldName")),
|
||||
phi_(sm.mesh().lookupObject<surfaceScalarField> (phiFieldName_)),
|
||||
UrelOld_(NULL),
|
||||
splitUrelCalculation_(false),
|
||||
Cadd_(0.5)
|
||||
{
|
||||
if (propsDict_.found("verbose")) verbose_=true;
|
||||
|
||||
if (particleCloud_.dataExchangeM().maxNumberOfParticles() > 0)
|
||||
{
|
||||
// get memory for 2d array
|
||||
particleCloud_.dataExchangeM().allocateArray(UrelOld_,0.,3);
|
||||
particleCloud_.dataExchangeM().allocateArray(UrelOld_,NOTONCPU,3);
|
||||
}
|
||||
|
||||
// init force sub model
|
||||
setForceSubModels(propsDict_);
|
||||
|
||||
// define switches which can be read from dict
|
||||
forceSubM(0).setSwitchesList(0,true); // activate treatExplicit switch
|
||||
|
||||
// read those switches defined above, if provided in dict
|
||||
forceSubM(0).setSwitchesList(4,true); // activate search for interpolate switch
|
||||
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);
|
||||
|
||||
//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("Urel");
|
||||
particleCloud_.probeM().vectorFields_.append("UrelOld");
|
||||
particleCloud_.probeM().vectorFields_.append("ddtUrel");
|
||||
particleCloud_.probeM().scalarFields_.append("Vs");
|
||||
particleCloud_.probeM().scalarFields_.append("rho");
|
||||
particleCloud_.probeM().writeHeader();
|
||||
@ -116,32 +131,88 @@ void virtualMassForce::setForce() const
|
||||
|
||||
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"
|
||||
|
||||
bool haveUrelOld_(false);
|
||||
|
||||
for(int index = 0;index < particleCloud_.numberOfParticles(); index++)
|
||||
{
|
||||
//if(mask[index][0])
|
||||
//{
|
||||
vector virtualMassForce(0,0,0);
|
||||
label cellI = particleCloud_.cellIDs()[index][0];
|
||||
|
||||
if (cellI > -1) // particle Found
|
||||
{
|
||||
vector Us = particleCloud_.velocity(index);
|
||||
vector Ur = U_[cellI]-Us;
|
||||
vector UrelOld;
|
||||
for(int j=0;j<3;j++)
|
||||
|
||||
if(forceSubM(0).interpolation())
|
||||
{
|
||||
UrelOld[j] = UrelOld_[index][j];
|
||||
UrelOld_[index][j] = Ur[j];
|
||||
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);
|
||||
Ur = Ufluid - Us;
|
||||
}
|
||||
|
||||
vector ddtUrel = (Ur-UrelOld)/dt;
|
||||
|
||||
//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++)
|
||||
{
|
||||
UrelOld[j] = UrelOld_[index][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;
|
||||
|
||||
scalar ds = 2*particleCloud_.radius(index);
|
||||
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
|
||||
if(probeIt_)
|
||||
@ -150,25 +221,27 @@ void virtualMassForce::setForce() const
|
||||
vValues.append(virtualMassForce); //first entry must the be the force
|
||||
vValues.append(Ur);
|
||||
vValues.append(UrelOld);
|
||||
vValues.append(ddtUrel);
|
||||
sValues.append(Vs);
|
||||
sValues.append(rho);
|
||||
particleCloud_.probeM().writeProbe(index, sValues, vValues);
|
||||
}
|
||||
}
|
||||
|
||||
else //particle not on this CPU
|
||||
UrelOld_[index][0]=NOTONCPU;
|
||||
|
||||
// write particle based data to global array
|
||||
forceSubM(0).partToArray(index,virtualMassForce,vector::zero);
|
||||
//}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
void Foam::virtualMassForce::reAllocArrays() const
|
||||
{
|
||||
if(particleCloud_.numberOfParticlesChanged())
|
||||
{
|
||||
// get arrays of new length
|
||||
particleCloud_.dataExchangeM().allocateArray(UrelOld_,1.,1);
|
||||
Pout << "virtualMassForce::reAllocArrays..." << endl;
|
||||
particleCloud_.dataExchangeM().allocateArray(UrelOld_,NOTONCPU,3);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -41,6 +41,7 @@ SourceFiles
|
||||
|
||||
#include "forceModel.H"
|
||||
#include "dataExchangeModel.H"
|
||||
#include "interpolationCellPoint.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -58,18 +59,22 @@ class virtualMassForce
|
||||
private:
|
||||
dictionary propsDict_;
|
||||
|
||||
bool verbose_;
|
||||
|
||||
word velFieldName_;
|
||||
|
||||
const volVectorField& U_;
|
||||
|
||||
word densityFieldName_;
|
||||
word phiFieldName_;
|
||||
|
||||
const volScalarField& rho_;
|
||||
const surfaceScalarField& phi_;
|
||||
|
||||
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:
|
||||
|
||||
//- Runtime type information
|
||||
|
||||
@ -62,13 +62,9 @@ viscForce::viscForce
|
||||
:
|
||||
forceModel(dict,sm),
|
||||
propsDict_(dict.subDict(typeName + "Props")),
|
||||
verbose_(false),
|
||||
velocityFieldName_(propsDict_.lookup("velocityFieldName")),
|
||||
U_(sm.mesh().lookupObject<volVectorField> (velocityFieldName_)),
|
||||
densityFieldName_(propsDict_.lookup("densityFieldName")),
|
||||
rho_(sm.mesh().lookupObject<volScalarField> (densityFieldName_)),
|
||||
addedMassCoeff_(0.0),
|
||||
interpolation_(false)
|
||||
addedMassCoeff_(0.0)
|
||||
{
|
||||
|
||||
// init force sub model
|
||||
@ -76,6 +72,9 @@ viscForce::viscForce
|
||||
|
||||
// define switches which can be read from dict
|
||||
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
|
||||
forceSubM(0).readSwitches();
|
||||
@ -83,12 +82,22 @@ viscForce::viscForce
|
||||
if (modelType_ == "B")
|
||||
{
|
||||
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
|
||||
Info << "viscForce is applied only to DEM side" << endl;
|
||||
if(forceSubM(0).switches()[1])
|
||||
{
|
||||
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"))
|
||||
{
|
||||
@ -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;
|
||||
}
|
||||
|
||||
if (propsDict_.found("interpolation"))
|
||||
{
|
||||
Info << "using interpolated value of pressure gradient." << endl;
|
||||
interpolation_=true;
|
||||
}
|
||||
particleCloud_.checkCG(true);
|
||||
|
||||
//Append the field names to be probed
|
||||
@ -122,22 +126,20 @@ viscForce::~viscForce()
|
||||
|
||||
void viscForce::setForce() const
|
||||
{
|
||||
const volScalarField& nufField = forceSubM(0).nuField();
|
||||
const volScalarField& rhoField = forceSubM(0).rhoField();
|
||||
|
||||
// get viscosity field
|
||||
#ifdef comp
|
||||
const volScalarField& mufField = particleCloud_.turbulence().mu();
|
||||
|
||||
// calc div(Tau)
|
||||
volVectorField divTauField =
|
||||
- fvc::laplacian(mufField, U_)
|
||||
- fvc::div(mufField*dev(fvc::grad(U_)().T()));
|
||||
- fvc::laplacian(forceSubM(0).muField(), U_)
|
||||
- fvc::div(forceSubM(0).muField()*dev(fvc::grad(U_)().T()));
|
||||
#else
|
||||
const volScalarField& nufField = particleCloud_.turbulence().nu();
|
||||
|
||||
// calc div(Tau)
|
||||
volVectorField divTauField =
|
||||
- fvc::laplacian(nufField*rho_, U_)
|
||||
- fvc::div(nufField*rho_*dev(fvc::grad(U_)().T()));
|
||||
- fvc::laplacian(nufField*rhoField, U_)
|
||||
- fvc::div(nufField*rhoField*dev(fvc::grad(U_)().T()));
|
||||
#endif
|
||||
|
||||
vector divTau;
|
||||
@ -162,7 +164,7 @@ void viscForce::setForce() const
|
||||
|
||||
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);
|
||||
}else
|
||||
@ -176,7 +178,7 @@ void viscForce::setForce() const
|
||||
// to the generalized buoyancy force
|
||||
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 << "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