release on 2014-11-10_07-57-15

This commit is contained in:
Christoph Goniva, DCS Computing GmbH
2014-11-10 07:57:15 +01:00
parent a8c8955d53
commit 409283acc3
147 changed files with 1507 additions and 1611 deletions

81
README Executable file
View 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.
\*---------------------------------------------------------------------------*/

View File

@ -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)

View File

@ -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;

View File

@ -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"

View File

@ -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;

View File

@ -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;

View File

@ -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.

View File

@ -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

View File

@ -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>

View File

@ -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:]

View File

@ -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>

View File

@ -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

View File

@ -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";
}

View File

@ -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

View File

@ -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>

View File

@ -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:]

View File

@ -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";
}

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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:]

View File

@ -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>

View File

@ -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:]

View File

@ -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>

View File

@ -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:]

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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:]

View File

@ -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>

View File

@ -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:]

View File

@ -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>

View File

@ -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.

View File

@ -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>

View File

@ -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:]

View File

@ -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)

View File

@ -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 */

View File

@ -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)

View File

@ -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;

View File

@ -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>
(

View File

@ -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;

View File

@ -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)

View File

@ -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

View File

@ -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]
);
}
}
@ -133,8 +136,16 @@ 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
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()

View File

@ -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);

View File

@ -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_;

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -1,2 +1,11 @@
lagrangian/cfdemParticle/dir
#====================================================='
#- RADL
fvOptions/dir
cylPorousMedia/dir
#====================================================='
#- other
finiteVolume/dir
transportModels/incompressible/dir

View File

@ -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

View File

@ -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

View File

@ -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());

View File

@ -113,6 +113,8 @@ public:
virtual int dumpDEMdata() const;
bool dumpNow() const;
fileName createTimeDir(fileName) const;
fileName createLagrangianDir(fileName) const;

View File

@ -84,7 +84,7 @@ basicIO::~basicIO()
int basicIO::dumpDEMdata() const
{
if (time_.outputTime())
if (dumpNow())
{
// make time directory
if (parOutput_) lagPath_=buildFilePath(dirName_);

View File

@ -79,7 +79,7 @@ int sophIO::dumpDEMdata() const
{
int npProcs(-1);
if (time_.outputTime())
if (dumpNow())
{
npProcs=basicIO::dumpDEMdata();

View File

@ -77,7 +77,7 @@ int trackIO::dumpDEMdata() const
{
int npProcs(-1);
if (time_.outputTime())
if (dumpNow())
{
npProcs = sophIO::dumpDEMdata();

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -90,6 +90,7 @@ private:
// new vars
mutable bool firstRun_;
Switch allowDiagComm_;
mutable bool particleLost_;
mutable double Npart_;
mutable Many2Many * lmp2foam_;

View File

@ -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_)
{

View File

@ -63,10 +63,6 @@ private:
bool twoDimensional_;
word densityFieldName_;
const volScalarField& rho_; // ref to fluid density
word gravityFieldName_;
#ifdef version21

View File

@ -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
}
}

View File

@ -65,10 +65,6 @@ private:
bool twoDimensional_;
word densityFieldName_;
const volScalarField& rho_; // ref to fluid density
word voidfractionFieldName_;
const volScalarField& voidfractions_;

View File

@ -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();
@ -127,12 +120,8 @@ void DiFeliceDrag::setForce() const
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);
@ -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);
}
//}
}

View File

@ -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)

View File

@ -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;

View File

@ -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

View File

@ -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);
//}
}
}

View File

@ -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_;

View File

@ -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;

View File

@ -71,10 +71,6 @@ private:
const volVectorField& U_;
word densityFieldName_;
const volScalarField& rho_;
word voidfractionFieldName_;
const volScalarField& voidfraction_;

View File

@ -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_);

View File

@ -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:

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -66,10 +66,6 @@ private:
const volVectorField& U_;
word densityFieldName_;
const volScalarField& rho_;
public:
//- Runtime type information

View File

@ -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"

View File

@ -70,10 +70,6 @@ private:
const volVectorField& U_;
word densityFieldName_;
const volScalarField& rho_;
word pressureFieldName_;
const volScalarField& p_;

View File

@ -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);
}
}

View File

@ -62,10 +62,6 @@ class checkCouplingInterval
private:
dictionary propsDict_;
word densityFieldName_;
const volScalarField& rho_;
const scalar rhoP_;
public:

View File

@ -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

View File

@ -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;
};

View File

@ -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;

View File

@ -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

View File

@ -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];
}
vector ddtUrel = (Ur-UrelOld)/dt;
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;
}
//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);
}
}

View File

@ -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

View File

@ -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