release on 2012-08-01_14-14-45

This commit is contained in:
cfdem
2012-08-01 14:14:45 +02:00
parent 7e2938452b
commit 97de834b28
30 changed files with 747 additions and 65 deletions

82
README Normal file
View File

@ -0,0 +1,82 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright 2009-2012 JKU Linz
Copyright 2012- DCS Computing GmbH, Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 3 of the License, or (at your
option) any later version.
CFDEMcoupling is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with CFDEMcoupling; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
and OpenFOAM. Note: this code is not part of OpenFOAM (see DISCLAIMER).
\*---------------------------------------------------------------------------*/
CFDEM coupling provides an open source parallel coupled CFD-DEM framework
combining the strengths of LIGGGHTS DEM code and the Open Source
CFD package OpenFOAM(R)(*). The CFDEMcoupling toolbox allows to expand
standard CFD solvers of OpenFOAM(R)(*) to include a coupling to the DEM
code LIGGGHTS. In this toolbox the particle representation within the
CFD solver is organized by "cloud" classes. Key functionalities are organised
in sub-models (e.g. force models, data exchange models, etc.) which can easily
be selected and combined by dictionary settings.
The coupled solvers run fully parallel on distributed-memory clusters.
Features are:
- its modular approach allows users to easily implement new models
- its MPI parallelization enables to use it for large scale problems
- the "forum"_lws on CFD-DEM gives the possibility to exchange with other
users / developers
- the use of GIT allows to easily update to the latest version
- basic documentation is provided
The file structure:
- "src" directory including the source files of the coupling toolbox and models
- "applications" directory including the solver files for coupled CFD-DEM simulations
- "doc" directory including the documentation of CFDEMcoupling
- "tutorials" directory including basic tutorial cases showing the functionality
Details on installation are given on the "www.cfdem.com"
The functionality of this CFD-DEM framwork is described via "tutorial cases" showing
how to use different solvers and models.
CFDEMcoupling stands for Computational Fluid Dynamics (CFD) -
Discrete Element Method (DEM) coupling.
CFDEMcoupling is an open-source code, distributed freely under the terms of the
GNU Public License (GPL).
Core development of CFDEMcoupling is done by
Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012
\*---------------------------------------------------------------------------*/
(*) "OpenFOAM(R)"_of is a registered trade mark of Silicon Graphics
International Corp. This offering is not affiliated, approved or endorsed by
Silicon Graphics International Corp., the producer of the OpenFOAM(R) software
and owner of the OpenFOAM(R) trademark.
\*---------------------------------------------------------------------------*/

Binary file not shown.

View File

@ -408,6 +408,8 @@ Reasonable example settings for the "liggghtsCommands" dictionary are given in t

View File

@ -48,7 +48,7 @@ After setting some environment variables LIGGGHTS and CFDEMcoupling can be compi
</PRE>
<P>To clone the public LIGGGHTS repository, open a terminal and execute:
</P>
<PRE><H6>git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghtsdev LIGGGHTS-PUBLIC
<PRE><H6>git clone git://github.com/CFDEMproject/LIGGGHTS-PUBLIC.git LIGGGHTS-PUBLIC
</H6></PRE>
<P>If not already done, open a terminal and create a directory for CFDEMcoupling in $HOME:
</P>

Binary file not shown.

View File

@ -35,7 +35,7 @@ cd LIGGGHTS :pre
To clone the public LIGGGHTS repository, open a terminal and execute:
git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghtsdev LIGGGHTS-PUBLIC :pre,h6
git clone git://github.com/CFDEMproject/LIGGGHTS-PUBLIC.git LIGGGHTS-PUBLIC :pre,h6
If not already done, open a terminal and create a directory for CFDEMcoupling in $HOME:

View File

@ -0,0 +1,5 @@
fvPatchFields = fields/fvPatchFields
derivedFvPatchFields = $(fvPatchFields)/derived
$(derivedFvPatchFields)/uniformFixedValueVoidfraction/uniformFixedValueVoidfractionFvPatchFields.C
LIB = $(FOAM_USER_LIBBIN)/libfiniteVolumeCFDEM

View File

@ -0,0 +1,9 @@
EXE_INC = \
-I$(LIB_SRC)/triSurface/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
LIB_LIBS = \
-lOpenFOAM \
-ltriSurface \
-lmeshTools

View File

@ -0,0 +1,157 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM 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.
OpenFOAM 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 OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "uniformFixedValueVoidfractionFvPatchField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class Type>
uniformFixedValueVoidfractionFvPatchField<Type>::uniformFixedValueVoidfractionFvPatchField
(
const fvPatch& p,
const DimensionedField<Type, volMesh>& iF
)
:
fixedValueFvPatchField<Type>(p, iF),
uniformValue_(),
//voidfractionFieldName_(dict.lookupOrDefault<word>("voidfraction", "voidfraction"))
voidfractionFieldName_("voidfraction")
{}
template<class Type>
uniformFixedValueVoidfractionFvPatchField<Type>::uniformFixedValueVoidfractionFvPatchField
(
const uniformFixedValueVoidfractionFvPatchField<Type>& ptf,
const fvPatch& p,
const DimensionedField<Type, volMesh>& iF,
const fvPatchFieldMapper&
)
:
fixedValueFvPatchField<Type>(p, iF),
uniformValue_(ptf.uniformValue_().clone().ptr()),
voidfractionFieldName_("voidfraction")
{
const scalar t = this->db().time().timeOutputValue();
fvPatchField<Type>::operator==(uniformValue_->value(t));
}
template<class Type>
uniformFixedValueVoidfractionFvPatchField<Type>::uniformFixedValueVoidfractionFvPatchField
(
const fvPatch& p,
const DimensionedField<Type, volMesh>& iF,
const dictionary& dict
)
:
fixedValueFvPatchField<Type>(p, iF),
uniformValue_(DataEntry<Type>::New("uniformValue", dict)),
voidfractionFieldName_("voidfraction")
{
const scalar t = this->db().time().timeOutputValue();
fvPatchField<Type>::operator==(uniformValue_->value(t));
}
template<class Type>
uniformFixedValueVoidfractionFvPatchField<Type>::uniformFixedValueVoidfractionFvPatchField
(
const uniformFixedValueVoidfractionFvPatchField<Type>& ptf
)
:
fixedValueFvPatchField<Type>(ptf),
uniformValue_(ptf.uniformValue_().clone().ptr()),
voidfractionFieldName_("voidfraction")
{
const scalar t = this->db().time().timeOutputValue();
fvPatchField<Type>::operator==(uniformValue_->value(t));
}
template<class Type>
uniformFixedValueVoidfractionFvPatchField<Type>::uniformFixedValueVoidfractionFvPatchField
(
const uniformFixedValueVoidfractionFvPatchField<Type>& ptf,
const DimensionedField<Type, volMesh>& iF
)
:
fixedValueFvPatchField<Type>(ptf, iF),
uniformValue_(ptf.uniformValue_().clone().ptr()),
voidfractionFieldName_("voidfraction")
{
const scalar t = this->db().time().timeOutputValue();
fvPatchField<Type>::operator==(uniformValue_->value(t));
}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class Type>
void uniformFixedValueVoidfractionFvPatchField<Type>::autoMap
(
const fvPatchFieldMapper& m
)
{
this->setSize(m.size());
const scalar t = this->db().time().timeOutputValue();
fvPatchField<Type>::operator==(uniformValue_->value(t));
}
template<class Type>
void uniformFixedValueVoidfractionFvPatchField<Type>::updateCoeffs()
{
if (this->updated())
{
return;
}
const fvPatchField<scalar>& voidfraction = this->patch().template lookupPatchField<volScalarField, scalar>(voidfractionFieldName_);
const scalar t = this->db().time().timeOutputValue();
fvPatchField<Type>::operator==(1./voidfraction*uniformValue_->value(t));
fixedValueFvPatchField<Type>::updateCoeffs();
}
template<class Type>
void uniformFixedValueVoidfractionFvPatchField<Type>::write(Ostream& os) const
{
fvPatchField<Type>::write(os);
uniformValue_->writeData(os);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View File

@ -0,0 +1,169 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2012- DCS Computing GmbH,Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
CFDEMcoupling is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with CFDEMcoupling. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::uniformFixedValueVoidfractionFvPatchField
Description
Foam::uniformFixedValueVoidfractionFvPatchField is an evolution of
Foam::uniformFixedValueFvPatchField
SourceFiles
uniformFixedValueVoidfractionFvPatchField.C
\*---------------------------------------------------------------------------*/
#ifndef uniformFixedValueVoidfractionFvPatchField_H
#define uniformFixedValueVoidfractionFvPatchField_H
#include "Random.H"
#include "fixedValueFvPatchFields.H"
#include "DataEntry.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class uniformFixedValueVoidfractionFvPatch Declaration
\*---------------------------------------------------------------------------*/
template<class Type>
class uniformFixedValueVoidfractionFvPatchField
:
public fixedValueFvPatchField<Type>
{
// Private data
autoPtr<DataEntry<Type> > uniformValue_;
word voidfractionFieldName_;
public:
//- Runtime type information
TypeName("uniformFixedValueVoidfraction");
// Constructors
//- Construct from patch and internal field
uniformFixedValueVoidfractionFvPatchField
(
const fvPatch&,
const DimensionedField<Type, volMesh>&
);
//- Construct from patch, internal field and dictionary
uniformFixedValueVoidfractionFvPatchField
(
const fvPatch&,
const DimensionedField<Type, volMesh>&,
const dictionary&
);
//- Construct by mapping given uniformFixedValueVoidfractionFvPatchField
// onto a new patch
uniformFixedValueVoidfractionFvPatchField
(
const uniformFixedValueVoidfractionFvPatchField<Type>&,
const fvPatch&,
const DimensionedField<Type, volMesh>&,
const fvPatchFieldMapper&
);
//- Construct as copy
uniformFixedValueVoidfractionFvPatchField
(
const uniformFixedValueVoidfractionFvPatchField<Type>&
);
//- Construct and return a clone
virtual tmp<fvPatchField<Type> > clone() const
{
return tmp<fvPatchField<Type> >
(
new uniformFixedValueVoidfractionFvPatchField<Type>(*this)
);
}
//- Construct as copy setting internal field reference
uniformFixedValueVoidfractionFvPatchField
(
const uniformFixedValueVoidfractionFvPatchField<Type>&,
const DimensionedField<Type, volMesh>&
);
//- Construct and return a clone setting internal field reference
virtual tmp<fvPatchField<Type> > clone
(
const DimensionedField<Type, volMesh>& iF
) const
{
return tmp<fvPatchField<Type> >
(
new uniformFixedValueVoidfractionFvPatchField<Type>(*this, iF)
);
}
// Member functions
// Mapping functions
//- Map (and resize as needed) from self given a mapping object
virtual void autoMap
(
const fvPatchFieldMapper&
);
// Evaluation functions
//- Update the coefficients associated with the patch field
virtual void updateCoeffs();
//- Write
virtual void write(Ostream&) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
# include "uniformFixedValueVoidfractionFvPatchField.C"
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -0,0 +1,45 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2012- DCS Computing GmbH,Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
CFDEMcoupling is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with CFDEMcoupling. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "uniformFixedValueVoidfractionFvPatchFields.H"
#include "addToRunTimeSelectionTable.H"
#include "volFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
makePatchFields(uniformFixedValueVoidfraction);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View File

@ -0,0 +1,51 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2012- DCS Computing GmbH,Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
CFDEMcoupling is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with CFDEMcoupling. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#ifndef uniformFixedValueVoidfractionFvPatchFields_H
#define uniformFixedValueVoidfractionFvPatchFields_H
#include "uniformFixedValueVoidfractionFvPatchField.H"
#include "fieldTypes.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makePatchTypeFieldTypedefs(uniformFixedValueVoidfraction);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*---------------------------------------------------------------------------*\
CFDEMcoupling - Open Source CFD-DEM coupling
CFDEMcoupling is part of the CFDEMproject
www.cfdem.com
Christoph Goniva, christoph.goniva@cfdem.com
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2012- DCS Computing GmbH,Linz
-------------------------------------------------------------------------------
License
This file is part of CFDEMcoupling.
CFDEMcoupling is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
CFDEMcoupling is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with CFDEMcoupling. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#ifndef uniformFixedValueFvPatchFieldsFwd_H
#define uniformFixedValueFvPatchFieldsFwd_H
#include "fieldTypes.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
template<class Type> class uniformFixedValueFvPatchField;
makePatchTypeFieldTypedefs(uniform);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -1,5 +1,6 @@
cfdemCloud = cfdemCloud
forceModels = subModels/forceModel
forceModelsMS = subModels/forceModelMS
IOModels = subModels/IOModel
voidFractionModels = subModels/voidFractionModel
locateModels = subModels/locateModel
@ -13,34 +14,53 @@ liggghtsCommandModels = subModels/liggghtsCommandModel
$(cfdemCloud)/cfdemCloud.C
derived/cfdemCloudIB/cfdemCloudIB.C
derived/cfdemCloudMS/cfdemCloudMS.C
$(forceModels)/forceModel/forceModel.C
$(forceModels)/forceModel/newForceModel.C
$(forceModels)/noDrag/noDrag.C
$(forceModels)/DiFeliceDrag/DiFeliceDrag.C
$(forceModels)/DiFeliceDragNLift/DiFeliceDragNLift.C
$(forceModels)/GidaspowDrag/GidaspowDrag.C
$(forceModels)/SchillerNaumannDrag/SchillerNaumannDrag.C
$(forceModels)/Archimedes/Archimedes.C
$(forceModels)/ArchimedesIB/ArchimedesIB.C
$(forceModels)/interface/interface.C
$(forceModels)/ShirgaonkarIB/ShirgaonkarIB.C
$(forceModels)/fieldTimeAverage/fieldTimeAverage.C
$(forceModels)/fieldBound/fieldBound.C
$(forceModels)/volWeightedAverage/volWeightedAverage.C
$(forceModels)/totalMomentumExchange/totalMomentumExchange.C
$(forceModels)/KochHillDrag/KochHillDrag.C
$(forceModels)/LaEuScalarLiquid/LaEuScalarLiquid.C
$(forceModels)/LaEuScalarTemp/LaEuScalarTemp.C
$(forceModels)/LaEuScalarDust/LaEuScalarDust.C
$(forceModels)/virtualMassForce/virtualMassForce.C
$(forceModels)/gradPForce/gradPForce.C
$(forceModels)/gradULiftForce/gradULiftForce.C
$(forceModels)/viscForce/viscForce.C
$(forceModels)/MeiLift/MeiLift.C
$(forceModels)/KochHillDragNLift/KochHillDragNLift.C
$(forceModels)/solidsPressureForce/solidsPressureForce.C
$(forceModels)/periodicPressure/periodicPressure.C
$(forceModels)/averageSlipVel/averageSlipVel.C
$(forceModelsMS)/forceModelMS/forceModelMS.C
$(forceModelsMS)/forceModelMS/newForceModelMS.C
$(forceModelsMS)/DiFeliceDragMS/DiFeliceDragMS.C
$(IOModels)/IOModel/IOModel.C
$(IOModels)/IOModel/newIOModel.C
$(IOModels)/noIO/noIO.C
$(IOModels)/basicIO/basicIO.C
$(IOModels)/trackIO/trackIO.C
$(IOModels)/sophIO/sophIO.C
$(voidFractionModels)/voidFractionModel/voidFractionModel.C
$(voidFractionModels)/voidFractionModel/newVoidFractionModel.C
$(voidFractionModels)/centreVoidFraction/centreVoidFraction.C
$(voidFractionModels)/dividedVoidFraction/dividedVoidFraction.C
$(voidFractionModels)/dividedVoidFractionMS/dividedVoidFractionMS.C
$(voidFractionModels)/bigParticleVoidFraction/bigParticleVoidFraction.C
$(voidFractionModels)/GaussVoidFraction/GaussVoidFraction.C
$(voidFractionModels)/IBVoidFraction/IBVoidFraction.C
@ -56,16 +76,19 @@ $(locateModels)/engineSearchIB/engineSearchIB.C
$(meshMotionModels)/meshMotionModel/meshMotionModel.C
$(meshMotionModels)/meshMotionModel/newMeshMotionModel.C
$(meshMotionModels)/noMeshMotion/noMeshMotion.C
$(meshMotionModels)/DEMdrivenMeshMotion/DEMdrivenMeshMotion.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
$(regionModels)/differentialRegion/differentialRegion.C
$(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C
$(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C

View File

@ -1,5 +1,7 @@
word CFDEMversion="cfdem-2.4.3";
word CFDEMversion="cfdem-2.4.4";
word compatibleLIGGGHTSversion="2.0.4";
Info << "\ncfdem version: " << CFDEMversion << "\n" << endl;
Info << "\nCFDEMcoupling version: " << CFDEMversion << "\n" << endl;
Info << "\n, compatible to LIGGGHTS version: " << compatibleLIGGGHTSversion << "\n" << endl;

View File

@ -30,7 +30,7 @@ fix m3 all property/global coefficientRestitution peratomtypepair 1 0.9
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_style gran/hertz/history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
@ -40,11 +40,12 @@ timestep 0.00003
fix gravi all gravity 981 vector 0.0 0.0 -1.0
#walls
fix xwalls all wall/gran/hertz/history 1 0 xplane 0 1 1
#fix ywalls all wall/gran/hertz/history 1 0 yplane -1 1f 1
fix ywalls all wall/gran/hertz/history 1 0 yplane 0 1 1
fix zwalls all wall/gran/hertz/history 1 0 zplane 0 4 1
#--modified C.K. deleted z-wall
fix xwalls1 all wall/gran/hertz/history primitive type 1 xplane 0.
fix xwalls2 all wall/gran/hertz/history primitive type 1 xplane 1.
fix ywalls1 all wall/gran/hertz/history primitive type 1 yplane 0.
fix ywalls2 all wall/gran/hertz/history primitive type 1 yplane 1.
fix zwalls1 all wall/gran/hertz/history primitive type 1 zplane 0.
fix zwalls2 all wall/gran/hertz/history primitive type 1 zplane 4.
#-import mesh from cad:
#fix cad1 all mesh/gran hopperGenauerSALOME.stl 1 1.0 0. 0. 0. 0. 180. 0.

View File

@ -1,5 +1,5 @@
# Pour granular particles into chute container, then induce flow
echo both
atom_style granular
atom_modify map array
communicate single vel yes
@ -24,7 +24,7 @@ fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_style gran/hertz/history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
@ -32,20 +32,19 @@ timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#walls
fix zwalls all wall/gran/hertz/history 1 0 zplane 0.0 0.0553 1
fix cylwalls all wall/gran/hertz/history 1 0 zcylinder 0.01385 1
fix zwalls1 all wall/gran/hertz/history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran/hertz/history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran/hertz/history primitive type 1 zcylinder 0.01385 0. 0. tangential_damping off
#cfd coupling
#fix cfd all couple/cfd
#particle distributions and insertion
region bc cylinder z 0.0 0.0 0.012 0. 0.055 units box
fix pts1 all particletemplate/sphere 1 atom_type 1 density constant 200 radius constant 0.0005
fix pdd1 all particledistribution/discrete 1. 1 pts1 1.0
#particle insertion
group nve_group region reg
region bc cylinder z 0.0 0.0 0.012 0.02 0.03 units box
fix ins nve_group pour 10000 1 1 vol 0.7 100 diam uniform 0.001 0.001 dens uniform 200 200 vel uniform 0. 0. 0. 0. -1.0 region bc
fix ins all insert/pack seed 100001 distributiontemplate pdd1 vel constant 0. 0. -1. insert_every once overlapcheck yes all_in yes particles_in_region 10000 region bc
#apply nve integration to all particles that are inserted as single particles
fix integr nve_group nve/sphere
fix integr all nve/sphere
#screen output
compute 1 all erotate/sphere

View File

@ -28,16 +28,16 @@ fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_style gran/hertz/history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#walls
fix zwalls all wall/gran/hertz/history 1 0 zplane 0.0 0.0553 1
fix cylwalls all wall/gran/hertz/history 1 0 zcylinder 0.01385 1
fix zwalls1 all wall/gran/hertz/history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran/hertz/history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran/hertz/history primitive type 1 zcylinder 0.01385 0. 0. tangential_damping off
# change the particles density
set group all density 2000
@ -47,18 +47,17 @@ fix cfd all couple/cfd couple_every 100 mpi
fix cfd2 all couple/cfd/force
#apply nve integration to all particles that are inserted as single particles
#group nve_group region reg
fix integr nve_group nve/sphere
fix integr all nve/sphere
#center of mass
compute centerOfMass all com
#compute total dragforce
#compute dragtotal all reduce sum f_dragforce[1] f_dragforce[2] f_dragforce[3]
compute dragtotal all reduce sum f_dragforce[1] f_dragforce[2] f_dragforce[3]
#screen output
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol c_centerOfMass[3] #c_dragtotal[1] c_dragtotal[2] c_dragtotal[3]
thermo_style custom step atoms ke c_1 vol c_centerOfMass[3] c_dragtotal[1] c_dragtotal[2] c_dragtotal[3]
thermo 10
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
@ -66,7 +65,7 @@ compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
dump myDump all stl 1 post/dump_*.stl
#run 1
dump dmp all custom 5000 ../DEM/post/dump*.liggghts_restart id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
dump dmp all custom 5000 ../DEM/post/dump*.liggghts_restart id type type x y z vx vy vz fx fy fz f_dragforce[1] f_dragforce[2] f_dragforce[3] radius
undump myDump
run 1

View File

@ -1,5 +1,5 @@
# Pour granular particles into chute container, then induce flow
echo both
atom_style granular
atom_modify map array
communicate single vel yes
@ -24,7 +24,7 @@ fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_style gran/hertz/history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
@ -32,19 +32,22 @@ timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#walls
fix zwalls all wall/gran/hertz/history 1 0 zplane 0.0 0.0553 1
fix cylwalls all wall/gran/hertz/history 1 0 zcylinder 0.01385 1
fix zwalls1 all wall/gran/hertz/history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran/hertz/history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran/hertz/history primitive type 1 zcylinder 0.01385 0. 0. tangential_damping off
#cfd coupling
#fix cfd all couple/cfd
#particle insertion
group nve_group region reg
region bc cylinder z 0.0 0.0 0.012 0.02 0.03 units box
fix ins nve_group pour 10000 1 1 vol 0.7 100 diam uniform 0.001 0.001 dens uniform 200 200 vel uniform 0. 0. 0. 0. -1.0 region bc
#particle distributions and insertion
region bc cylinder z 0.0 0.0 0.012 0. 0.055 units box
fix pts1 all particletemplate/sphere 1 atom_type 1 density constant 200 radius constant 0.0005
fix pdd1 all particledistribution/discrete 1. 1 pts1 1.0
fix ins all insert/pack seed 100001 distributiontemplate pdd1 vel constant 0. 0. -1. insert_every once overlapcheck yes all_in yes particles_in_region 10000 region bc
#apply nve integration to all particles that are inserted as single particles
fix integr nve_group nve/sphere
fix integr all nve/sphere
#screen output

View File

@ -28,7 +28,7 @@ fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_style gran/hertz/history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
@ -36,8 +36,10 @@ timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#walls
fix zwalls all wall/gran/hertz/history 1 0 zplane 0.0 0.0553 1
fix cylwalls all wall/gran/hertz/history 1 0 zcylinder 0.01385 1
#walls
fix zwalls1 all wall/gran/hertz/history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran/hertz/history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran/hertz/history primitive type 1 zcylinder 0.01385 0. 0. tangential_damping off
# change the particles density
set group all density 2000
@ -47,8 +49,7 @@ fix cfd all couple/cfd couple_every 100 mpi
fix cfd2 all couple/cfd/force
#apply nve integration to all particles that are inserted as single particles
#group nve_group region reg
fix integr nve_group nve/sphere
fix integr all nve/sphere
#center of mass
compute centerOfMass all com

View File

@ -28,7 +28,7 @@ fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_style gran/hertz/history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
@ -36,8 +36,9 @@ timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#walls
fix zwalls all wall/gran/hertz/history 1 0 zplane 0.0 0.0553 1
fix cylwalls all wall/gran/hertz/history 1 0 zcylinder 0.01385 1
fix zwalls1 all wall/gran/hertz/history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran/hertz/history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran/hertz/history primitive type 1 zcylinder 0.01385 0. 0. tangential_damping off
# change the particles density
set group all density 2000
@ -47,8 +48,7 @@ fix cfd all couple/cfd couple_every 100 mpi
fix cfd2 all couple/cfd/force
#apply nve integration to all particles that are inserted as single particles
#group nve_group region reg
fix integr nve_group nve/sphere
fix integr all nve/sphere
#center of mass
compute centerOfMass all com

View File

@ -18,3 +18,8 @@ dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile
dummyfile

View File

@ -27,17 +27,20 @@ fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
fix m5 all property/global characteristicVelocity scalar 2.0
#pair style
pair_style gran/hooke 1 0 #Hookean without cohesion
pair_style gran/hooke/history #Hookean without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 -1.0 0.0
#walls
fix xwalls all wall/gran/hooke 1 0 xplane 0.0 0.1 1
fix ywalls all wall/gran/hooke 1 0 yplane 0 0.1 1
fix zwalls all wall/gran/hooke 1 0 zplane 0 0.01 1
#walls (liggghts 2.0)
fix xwalls1 all wall/gran/hooke/history primitive type 1 xplane 0.0
fix xwalls2 all wall/gran/hooke/history primitive type 1 xplane 0.1
fix ywalls1 all wall/gran/hooke/history primitive type 1 yplane 0.0
fix ywalls2 all wall/gran/hooke/history primitive type 1 yplane 0.1
fix zwalls1 all wall/gran/hooke/history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran/hooke/history primitive type 1 zplane 0.01
#-import mesh from cad:
#fix cad1 all mesh/gran hopperGenauerSALOME.stl 1 1.0 0. 0. 0. 0. 180. 0.

View File

@ -38,7 +38,7 @@ meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel off;
IOModel basicIO;
dataExchangeModel twoWayMPI;//twoWayFiles;//oneWayVTK;//

View File

@ -13,7 +13,7 @@ clc;
fprintf('\ncalc Ergun eqn:\n')
dp = 0.022; % particle diameter
phip = 1; % sphericity
epsilon = 0.41; % voidfraction
epsilon = 0.4436; % voidfraction
U = 1; % superficial velocity
L = 1; % length of bed
rhoG = 1.188; % density in kg/m

View File

@ -13,9 +13,6 @@ processors 1 1 2
#read the restart file
read_restart ../DEM/liggghts.restart
#region reg block 0 0.1 0 0.1 0 0.1 units box
#create_box 1 reg
neighbor 0.003 bin
neigh_modify delay 0 binsize 0.01
@ -28,7 +25,7 @@ fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#pair style
pair_style gran/hertz/history 1 0 #Hertzian without cohesion
pair_style gran/hertz/history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
@ -36,15 +33,19 @@ timestep 0.00001
fix gravi all gravity 9.81 vector 0. 0. -1.
#walls
fix xwalls all wall/gran/hertz/history 1 0 xplane 0. 0.1 1
fix ywalls all wall/gran/hertz/history 1 0 yplane 0. 0.1 1
fix zwalls all wall/gran/hertz/history 1 0 zplane 0. 1.1 1 #temperature 283
#walls
fix xwalls1 all wall/gran/hertz/history primitive type 1 xplane 0.
fix xwalls2 all wall/gran/hertz/history primitive type 1 xplane 0.1
fix ywalls1 all wall/gran/hertz/history primitive type 1 yplane 0.
fix ywalls2 all wall/gran/hertz/history primitive type 1 yplane 0.1
fix zwalls1 all wall/gran/hertz/history primitive type 1 zplane 0.
fix zwalls2 all wall/gran/hertz/history primitive type 1 zplane 1.1
#heat transfer
fix ftco all property/global thermalConductivity peratomtype 5. # lambda in [W/(K*m)]
fix ftca all property/global thermalCapacity peratomtype 0.1 # cp in [J/(kg*K)]
fix heattransfer all heat/gran 600.
fix heattransfer all heat/gran initial_temperature 600.
#set particle temperature for the bed
run 0

View File

@ -0,0 +1,73 @@
#Particle packing by insertion and successive growing of particles
atom_style granular
atom_modify map array
boundary m m m
newton off
echo both
communicate single vel yes
units si
processors 1 1 2
region reg block 0. 0.1 0. 0.1 0. 1.1 units box
create_box 1 reg
neighbor 0.002 bin
neigh_modify delay 0
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
#New pair style
pair_style gran/hertz/history #Hertzian without cohesion
pair_coeff * *
timestep 0.00001
#walls
fix xwalls1 all wall/gran/hertz/history primitive type 1 xplane 0.
fix xwalls2 all wall/gran/hertz/history primitive type 1 xplane 0.1
fix ywalls1 all wall/gran/hertz/history primitive type 1 yplane 0.
fix ywalls2 all wall/gran/hertz/history primitive type 1 yplane 0.1
fix zwalls1 all wall/gran/hertz/history primitive type 1 zplane 0.
fix zwalls2 all wall/gran/hertz/history primitive type 1 zplane 1.1
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#heat transfer
fix ftco all property/global thermalConductivity peratomtype 5.
fix ftca all property/global thermalCapacity peratomtype 10.
fix heattransfer all heat/gran initial_temperature 263.
#particle distributions and insertion
region bc block 0. 0.1 0. 0.1 0. 1.1 units box
fix pts1 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.011
fix pdd1 all particledistribution/discrete 1. 1 pts1 1.0
fix ins all insert/pack seed 100001 distributiontemplate pdd1 vel constant 0. 0. -3. insert_every 10000 overlapcheck yes all_in yes particles_in_region 1005 region bc
#apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
#output settings, include total thermal energy
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 f_heattransfer vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles
run 1
dump dmp all custom 1000 post/dump.packing id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius f_heattransfer[0] f_heatFlux[0]
run 150000
write_restart liggghts.restart