added liquid FB tutorial

This commit is contained in:
s126103
2021-10-07 16:27:21 +02:00
parent be9b19ff76
commit c5716b5a04
33 changed files with 740941 additions and 0 deletions

View File

@ -0,0 +1,259 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object couplingProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//===========================================================================//
// sub-models & settings
syncMode false;
modelType "A";
couplingInterval 100;
voidFractionModel divided;
locateModel engine;
meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel basicIO;
probeModel off;//particleProbe;
dataExchangeModel twoWayMPI;
averagingModel dense;
clockModel standardClock;
smoothingModel constDiffSmoothing;//off;
//useDDTvoidfraction;
forceModels
(
gradPForce//Smooth
viscForce
Archimedes
BeetstraDrag
//DiFeliceDrag
//KochHillDrag
//GidaspowDrag
//SchillerNaumannDrag
virtualMassForce
MeiLift
ParmarBassetForce
dSauter
);
getParticleDensities true;
getParticleAngVels true;
momCoupleModels
(
implicitCouple
);
turbulenceModelType "turbulenceProperties";
//===========================================================================//
// sub-model properties
particleProbeProps
{
particleIDsToSample (0 1000 2000 3000 4000 5000);
verboseToFile;
verbose;
printEvery 500;
sampleAll;
probeDebug;
includePosition;
writePrecision 4;
}
ParmarBassetForceProps
{
velFieldName "U";
granVelFieldName "Us";
useUs true;
interpolation true;
nIntegral 20;
discretisationOrder 1;
smoothingModel constDiffAndTemporalSmoothing;
constDiffAndTemporalSmoothingProps
{
lowerLimit 1e-8;
upperLimit 1e8;
smoothingLength 0.0015; // dp
smoothingStrength 0.01; // timescale = dt/gamma
correctBoundary true;
}
}
BeetstraDragProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
interpolation true;
verbose false;
polydisperse false;
implForceDEM true;
dSauterFieldName "voidfraction";
suppressProbe true;
}
DiFeliceDragProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
interpolation true;
verbose false;
implForceDEM true;
}
KochHillDragProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
interpolation true;
verbose false;
implForceDEM true;
}
GidaspowDragProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
interpolation true;
verbose false;
implForceDEM true;
phi 1.0;
}
SchillerNaumannDragProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
interpolation true;
verbose false;
implForceDEM true;
}
virtualMassForceProps
{
velFieldName "U";
voidfractionFieldName "voidfraction";
granVelFieldName "Us";
phiFieldName "phi";
useUs true;
useFelderhof true;
interpolation true;
smoothingModel constDiffAndTemporalSmoothing;
constDiffAndTemporalSmoothingProps
{
lowerLimit 1e-8;
upperLimit 1e8;
smoothingLength 0.0015; // dp
smoothingStrength 0.01; // timescale = dt/gamma
correctBoundary true;
}
}
MeiLiftProps
{
velFieldName "U";
useShearInduced true;
useSpinInduced true;
combineShearSpin false;
interpolation true;
verbose false;
}
dSauterProps
{
}
ArchimedesProps
{
gravityFieldName "g";
treatForceDEM true; // needed for models "A" or "Bfull"
}
gradPForceProps
{
pFieldName "p";
voidfractionFieldName "voidfraction";
velocityFieldName "U";
interpolation true;
}
gradPForceSmoothProps
{
pFieldName "p";
voidfractionFieldName "voidfraction";
velocityFieldName "U";
smoothingModel "temporalSmoothing";
temporalSmoothingProps
{
lowerLimit 1e-8;
upperLimit 1e8;
refField "p";
gamma 0.01; // timescale = dt/gamma
}
}
viscForceProps
{
velocityFieldName "U";
interpolation true;
}
constDiffSmoothingProps
{
lowerLimit 1e-8;
upperLimit 1e8;
smoothingLength 0.0015; //dp
}
engineProps
{
treeSearch true;
}
dividedProps
{
alphaMin 0.01;
scaleUpVol 1.0;
}
twoWayMPIProps
{
liggghtsPath "../DEM/in.liggghts_run";
}
implicitCoupleProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
}
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value ( 0 0 -9.81);
// ************************************************************************* //

View File

@ -0,0 +1,43 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object liggghtsCommands;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
liggghtsCommandModels
(
runLiggghts
writeLiggghts
);
// ************************************************************************* //
/*runLiggghtsProps
{
preNo false;
}*/
writeLiggghtsProps
{
writeLast on;
writeName "post/restart/liggghts.restartCFDEM";
overwrite on;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
transportModel Newtonian;
nu nu [ 0 2 -1 0 0 0 0 ] 1.00708e-06;
}
// ************************************************************************* //

View File

@ -0,0 +1,31 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType laminar;
/*
simulationType RAS;
RAS
{
RASModel kEpsilon;
turbulence on;
printCoeffs on;
} */
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object Ksl;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -3 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,40 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type fixedValue;
value uniform (0 0 0.142);
}
outlet
{
type zeroGradient;
}
walls
{
type slip;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object Us;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,40 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 0;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object rho;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -3 0 0 0 0 0];
internalField uniform 998.20413;
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object sSmoothField;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object vSmoothField;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 0 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,40 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object voidfraction;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1;
boundaryField
{
inlet
{
type fixedValue;
value uniform 1;
}
outlet
{
type zeroGradient;
}
walls
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,57 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pisoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 25;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.1;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
functions
{
}
// ************************************************************************* //

View File

@ -0,0 +1,117 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application pisoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.1;//0.01;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.001;//0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
libs ("libOpenFOAM.so" "libgroovyBC.so");
functions
{
probes
{
type probes;
// Where to load it from
functionObjectLibs ( "libsampling.so" );
// Name of the directory for probe data
name probes;
probeLocations
(
(0 0 0.0001)
(0 0 0.0026)
(0 0 0.0051)
(0 0 0.0076)
(0 0 0.0101)
(0 0 0.0126)
(0 0 0.0151)
(0 0 0.0176)
(0 0 0.0201)
(0 0 0.0226)
(0 0 0.0251)
(0 0 0.0276)
(0 0 0.0301)
(0 0 0.0326)
(0 0 0.0351)
(0 0 0.0375)
(0 0 0.0401)
(0 0 0.0426)
(0 0 0.0451)
(0 0 0.0476)
(0 0 0.0529)
);
// Fields to be probed
fields ( p U voidfraction volAverage_voidfraction);
// Write at same frequency as fields
writeControl timeStep;//outputTime;
writeInterval 1;
}
/*pressureDrop
{
type patchAverage;
functionObjectLibs
(
"libsimpleFunctionObjects.so"
);
verbose true;
patches
(
inlet
outlet
);
fields
(
p
);
factor 1;
}*/
}
// ************************************************************************* //

View File

@ -0,0 +1,86 @@
/*-------------------------------*- C++ -*---------------------------------*\
| ========= |
| \\ / OpenFOAM |
| \\ / |
| \\ / The Open Source CFD Toolbox |
| \\/ http://www.OpenFOAM.org |
\*-------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
note "mesh decomposition control dictionary";
location "system";
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 16;
//- Keep owner and neighbour on same processor for faces in zones:
// preserveFaceZones (heater solid1 solid3);
//method scotch;
// method hierarchical;
method simple;
// method metis;
// method manual;
simpleCoeffs
{
n (2 2 4);
delta 0.001;
}
hierarchicalCoeffs
{
n (2 1 1);
delta 0.001;
order xyz;
}
metisCoeffs
{
/*
processorWeights
(
1
1
1
1
);
*/
}
scotchCoeffs
{
//processorWeights
//(
// 1
// 1
// 1
// 1
//);
//writeGraph true;
//strategy "b";
}
manualCoeffs
{
dataFile "decompositionData";
}
//// Is the case distributed
//distributed yes;
//// Per slave (so nProcs-1 entries) the directory above the case.
//roots
//(
// "/tmp"
// "/tmp"
//);
// ************************************************************************* //

View File

@ -0,0 +1,81 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
d2dt2Schemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) cellLimited Gauss linear 1;
grad(U) Gauss linear;
}
divSchemes
{
default Gauss linear;
div(phi,U) Gauss limitedLinearV 1;
div(phi,k) Gauss limitedLinear 1;
div(phi,epsilon) Gauss limitedLinear 1;
div(phi,R) Gauss limitedLinear 1;
div(R) Gauss linear;
div(phi,nuTilda) Gauss limitedLinear 1;
div((viscousTerm*dev(grad(U).T()))) Gauss linear;
div((nu*dev(grad(U).T()))) Gauss linear;
div((nuEff*dev(grad(U).T()))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
laplacian(viscousTerm,U) Gauss linear corrected;
laplacian(nu,U) Gauss linear corrected;
laplacian(nuEff,U) Gauss linear corrected;
laplacian((1|A(U)),p) Gauss linear corrected;
laplacian((voidfraction2|A(U)),p) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian(DREff,R) Gauss linear corrected;
laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
}
interpolationSchemes
{
default linear;
interpolate(U) linear;
}
snGradSchemes
{
default corrected;
}
fluxRequired
{
default no;
p ;
}
// ************************************************************************* //

View File

@ -0,0 +1,84 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.6 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"(p)"
{
solver PCG;
preconditioner
{
preconditioner GAMG;
tolerance 1e-8;
relTol 0;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
nFinestSweeps 2;
cacheAgglomeration on;
nCellsInCoarsestLevel 100;
agglomerator faceAreaPair;
mergeLevels 1;
}
tolerance 1e-8;
relTol 0.01;
maxIter 100;
}
pFinal
{
solver GAMG;
tolerance 1e-8;
relTol 0;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
nFinestSweeps 2;
cacheAgglomeration on;
nCellsInCoarsestLevel 100;
agglomerator faceAreaPair;
mergeLevels 1;
}
"(U|k|epsilon|R|nuTilda)"
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-8;
relTol 0.0;
nSweeps 1;
}
"(voidfraction|Us|Ksl|dSmoothing|UsNext|voidfractionNext|sSmoothField|vSmoothField|UrelSmooth)"
{
solver PCG;
preconditioner DIC;
tolerance 1e-5;
relTol 0;
}
}
PISO
{
nCorrectors 3;
nNonOrthogonalCorrectors 1;
pRefPoint (0 0.025 0);
pRefValue 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,64 @@
# Pour granular particles into a cylinder, then induce flow
echo both
atom_style granular
atom_modify map array
communicate single vel yes
processors 4 4 1
boundary f f f
newton off
units si
region reg block -0.03 0.03 -0.03 0.03 0 2.0 units box
create_box 1 reg
neighbor 0.0005 bin #0.0003
neigh_modify delay 0
# Material properties required for granular 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.8
fix m4 all property/global coefficientFriction peratomtypepair 1 0.5
# walls
fix mesh all mesh/surface file mesh/walls.stl type 1 move 0 0 0
fix walls all wall/gran model hertz tangential history mesh n_meshes 1 meshes mesh
fix bottom all wall/gran model hertz tangential history primitive type 1 zplane 0
fix top all wall/gran model hertz tangential history primitive type 1 zplane 2
# pair style
pair_style gran model hertz tangential history
pair_coeff * *
# timestep, gravity
timestep 1e-5
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
# particle distributions and insertion
region bc cylinder z 0.0 0.0 0.0285 0 0.6 units box #insertion region
include in.particleSizeDistribution
fix ins all insert/pack seed 100001 distributiontemplate pdd1 vel constant 0 0 0 insert_every 10000 overlapcheck yes all_in yes mass_in_region 0.87 region bc
# apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
# screen output
compute rke all erotate/sphere
thermo_style custom step atoms ke c_rke vol
thermo 1000
# insert the first particles so that dump is not empty
run 1
dump dmp all custom 1000 ../DEM/post/dump*.liggghts_init id type x y z vx vy vz fx fy fz omegax omegay omegaz radius
# run for some steps
label run
run 10000
# repeat until kinetic energy is below treshold
variable kinEn equal ke
if "${kinEn} > 0.00001" then "jump SELF run"
# write restart file
write_restart post/restart/liggghts.restart

View File

@ -0,0 +1,55 @@
# Pour granular particles into a cylinder, then induce flow
log ../DEM/log.liggghts
thermo_log ../DEM/post/thermo.txt
atom_style granular
atom_modify map array
communicate single vel yes
boundary f f f
newton off
units si
processors 4 4 1
# read the restart file
read_restart ../DEM/post/restart/liggghts.restart
neighbor 0.0005 bin #0.0003
neigh_modify delay 0
# Material properties required for granular 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.05
# walls
fix mesh all mesh/surface file ../mesh/walls.stl type 1 move 0 0 0
fix walls all wall/gran model hertz tangential history mesh n_meshes 1 meshes mesh
fix bottom all wall/gran model hertz tangential history primitive type 1 zplane 0
fix top all wall/gran model hertz tangential history primitive type 1 zplane 2
# pair style
pair_style gran model hertz tangential history
pair_coeff * *
# timestep, gravity
timestep 1e-5
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
# cfd coupling
fix cfd all couple/cfd couple_every 100 mpi
fix cfd2 all couple/cfd/force/implicit
# apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
# screen output
compute rke all erotate/sphere
thermo_style custom step atoms ke c_rke vol
thermo 10
dump dmp all custom 50000 ../DEM/post/dump*.liggghts_run id type x y z vx vy vz fx fy fz radius omegax omegay omegaz
run 1

View File

@ -0,0 +1,59 @@
# Particle size distribution for LIGGGHTS
# normal distribution
# mean radius = 0.000775 m
# standard deviation = 0.000080 m
# density = 2575 kg/m3
fix pts1 all particletemplate/sphere 10007 atom_type 1 density constant 2575 radius constant 0.000540
fix pts2 all particletemplate/sphere 10009 atom_type 1 density constant 2575 radius constant 0.000549
fix pts3 all particletemplate/sphere 10037 atom_type 1 density constant 2575 radius constant 0.000559
fix pts4 all particletemplate/sphere 10039 atom_type 1 density constant 2575 radius constant 0.000569
fix pts5 all particletemplate/sphere 10061 atom_type 1 density constant 2575 radius constant 0.000578
fix pts6 all particletemplate/sphere 10067 atom_type 1 density constant 2575 radius constant 0.000588
fix pts7 all particletemplate/sphere 10069 atom_type 1 density constant 2575 radius constant 0.000597
fix pts8 all particletemplate/sphere 10079 atom_type 1 density constant 2575 radius constant 0.000607
fix pts9 all particletemplate/sphere 10091 atom_type 1 density constant 2575 radius constant 0.000617
fix pts10 all particletemplate/sphere 10093 atom_type 1 density constant 2575 radius constant 0.000626
fix pts11 all particletemplate/sphere 10099 atom_type 1 density constant 2575 radius constant 0.000636
fix pts12 all particletemplate/sphere 10103 atom_type 1 density constant 2575 radius constant 0.000645
fix pts13 all particletemplate/sphere 10111 atom_type 1 density constant 2575 radius constant 0.000655
fix pts14 all particletemplate/sphere 10133 atom_type 1 density constant 2575 radius constant 0.000665
fix pts15 all particletemplate/sphere 10139 atom_type 1 density constant 2575 radius constant 0.000674
fix pts16 all particletemplate/sphere 10141 atom_type 1 density constant 2575 radius constant 0.000684
fix pts17 all particletemplate/sphere 10151 atom_type 1 density constant 2575 radius constant 0.000693
fix pts18 all particletemplate/sphere 10159 atom_type 1 density constant 2575 radius constant 0.000703
fix pts19 all particletemplate/sphere 10163 atom_type 1 density constant 2575 radius constant 0.000713
fix pts20 all particletemplate/sphere 10169 atom_type 1 density constant 2575 radius constant 0.000722
fix pts21 all particletemplate/sphere 10177 atom_type 1 density constant 2575 radius constant 0.000732
fix pts22 all particletemplate/sphere 10181 atom_type 1 density constant 2575 radius constant 0.000741
fix pts23 all particletemplate/sphere 10193 atom_type 1 density constant 2575 radius constant 0.000751
fix pts24 all particletemplate/sphere 10211 atom_type 1 density constant 2575 radius constant 0.000761
fix pts25 all particletemplate/sphere 10223 atom_type 1 density constant 2575 radius constant 0.000770
fix pts26 all particletemplate/sphere 10243 atom_type 1 density constant 2575 radius constant 0.000780
fix pts27 all particletemplate/sphere 10247 atom_type 1 density constant 2575 radius constant 0.000789
fix pts28 all particletemplate/sphere 10253 atom_type 1 density constant 2575 radius constant 0.000799
fix pts29 all particletemplate/sphere 10259 atom_type 1 density constant 2575 radius constant 0.000809
fix pts30 all particletemplate/sphere 10267 atom_type 1 density constant 2575 radius constant 0.000818
fix pts31 all particletemplate/sphere 10271 atom_type 1 density constant 2575 radius constant 0.000828
fix pts32 all particletemplate/sphere 10273 atom_type 1 density constant 2575 radius constant 0.000837
fix pts33 all particletemplate/sphere 10289 atom_type 1 density constant 2575 radius constant 0.000847
fix pts34 all particletemplate/sphere 10301 atom_type 1 density constant 2575 radius constant 0.000857
fix pts35 all particletemplate/sphere 10303 atom_type 1 density constant 2575 radius constant 0.000866
fix pts36 all particletemplate/sphere 10313 atom_type 1 density constant 2575 radius constant 0.000876
fix pts37 all particletemplate/sphere 10321 atom_type 1 density constant 2575 radius constant 0.000885
fix pts38 all particletemplate/sphere 10331 atom_type 1 density constant 2575 radius constant 0.000895
fix pts39 all particletemplate/sphere 10333 atom_type 1 density constant 2575 radius constant 0.000905
fix pts40 all particletemplate/sphere 10337 atom_type 1 density constant 2575 radius constant 0.000914
fix pts41 all particletemplate/sphere 10343 atom_type 1 density constant 2575 radius constant 0.000924
fix pts42 all particletemplate/sphere 10357 atom_type 1 density constant 2575 radius constant 0.000933
fix pts43 all particletemplate/sphere 10369 atom_type 1 density constant 2575 radius constant 0.000943
fix pts44 all particletemplate/sphere 10391 atom_type 1 density constant 2575 radius constant 0.000953
fix pts45 all particletemplate/sphere 10399 atom_type 1 density constant 2575 radius constant 0.000962
fix pts46 all particletemplate/sphere 10427 atom_type 1 density constant 2575 radius constant 0.000972
fix pts47 all particletemplate/sphere 10429 atom_type 1 density constant 2575 radius constant 0.000981
fix pts48 all particletemplate/sphere 10433 atom_type 1 density constant 2575 radius constant 0.000991
fix pts49 all particletemplate/sphere 10453 atom_type 1 density constant 2575 radius constant 0.001001
fix pts50 all particletemplate/sphere 10457 atom_type 1 density constant 2575 radius constant 0.001010
fix pdd1 all particledistribution/discrete 10459 50 pts1 0.000637 pts2 0.000900 pts3 0.001254 pts4 0.001721 pts5 0.002329 pts6 0.003106 pts7 0.004084 pts8 0.005292 pts9 0.006760 pts10 0.008512 pts11 0.010564 pts12 0.012923 pts13 0.015584 pts14 0.018524 pts15 0.021703 pts16 0.025064 pts17 0.028532 pts18 0.032016 pts19 0.035412 pts20 0.038607 pts21 0.041490 pts22 0.043949 pts23 0.045890 pts24 0.047231 pts25 0.047916 pts26 0.047916 pts27 0.047231 pts28 0.045890 pts29 0.043949 pts30 0.041490 pts31 0.038607 pts32 0.035412 pts33 0.032016 pts34 0.028532 pts35 0.025064 pts36 0.021703 pts37 0.018524 pts38 0.015584 pts39 0.012923 pts40 0.010564 pts41 0.008512 pts42 0.006760 pts43 0.005292 pts44 0.004084 pts45 0.003106 pts46 0.002329 pts47 0.001721 pts48 0.001254 pts49 0.000900 pts50 0.000637

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,18 @@
#===================================================================#
# small_hearth
# Tim MJ Nijssen - Oktober 2021
#===================================================================#
This tutorial case provides a demonstration of the extended liquid-solid coupling by Nijssen et al. (2020). The case represents a liquid-solid fluidised bed pellet softening reactor, as described by Nijssen et al. (2021).
#===================================================================#
The following scripts are available in the /scripts directory:
- cleanCase.sh: Cleans the case directory from all previous output. Prompts the user whether to remove LIGGGHTS restart files, CFD mesh files and result directories
- runAllPar.sh: Runs LIGGGHTS initialisation if no previous restart file is found, then performs a coupled run according to the start and end times set in CFD/system.controlDict. Afterwards, the case is reconstructed and results moved to a separate directory.
#===================================================================#
T.M.J. Nijssen, J.A.M. Kuipers, J. van der Stel, A.T. Adema, K.A. Buist. Complete liquid-solid momentum coupling for unresolved CFD-DEM simulations. International Journal of Multiphase Flow, 2020.
T.M.J. Nijssen, O.J.I. Kramer, P.J. de Moel, J. Rahman, J.P. Kroon, P. Berhanu, E.S. Boek, K.A. Buist, J.P. van der Hoek, J.T. Padding, J.A.M. Kuipers. Experimental and numerical insights into heterogeneous liquid-solid behaviour in drinking water softening reactors. Chemical Engineering Science: X, 2021.

View File

@ -0,0 +1,46 @@
#!/bin/bash
#===================================================================#
# run settings for case
# Tim MJ Nijssen - May 2018
#===================================================================#
#- decide what run settings to use
if [ -z "$1" ]; then
#- ask runtype if not specified
echo "Please specify runtype (DEM/CFDDEM):"
read runType
else
#- use specified type
runType=$1
fi
#- check runType
if [ "$runType" == DEM ] || [ "$runType" == CFDDEM ]; then
echo "Running settings for $runType"
else
echo "Error: invalid runType"
read
fi
if [ "$runType" == DEM ]; then
#- DEM run settings
nrProcs="16"
runTitle="DEMrun"
headerText="$runTitle"
logfileName="log_DEM"
solverName="in.liggghts_init"
machineFileName="none" # yourMachinefileName | none
debugMode="off"
fi
if [ "$runType" == CFDDEM ]; then
#- CFDDEM run settings
nrProcs="16"
headerText="$runTitle"
logfileName="log_CFDDEM"
solverName="cfdemSolverPiso"
machineFileName="none" # yourMachinefileName | none
debugMode="off" # on | off| strict
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
fi

View File

@ -0,0 +1,42 @@
#!/bin/bash
#===================================================================#
# construct mesh
#===================================================================#
#--------------------------------------------------------------------------------#
#- run settings file
scriptPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
. $scriptPath/scriptSettings.sh $1
#--------------------------------------------------------------------------------#
cd $casePath/CFD
# blockmesh
if [ -f "$casePath/CFD/constant/polyMesh/blockMeshDict" ]; then
echo "Meshing with blockMesh"
blockMesh
fi
# snappyhexmesh
if [ -f "$casePath/CFD/system/snappyHexMeshDict" ]; then
echo "Meshing with snappyHexMesh"
surfaceFeatureExtract
decomposePar
mpirun -np $nrProcs snappyHexMesh -overwrite -parallel
reconstructParMesh -constant -mergeTol 1e-6
rm -r processor*
fi
# UNV to foam
if ls $casePath/CFD/constant/polyMesh/*.unv 1> /dev/null 2>&1; then
echo "Meshing with ideasUnvToFoam"
ideasUnvToFoam $casePath/CFD/constant/polyMesh/*.unv
fi
cd $currentPath

View File

@ -0,0 +1,101 @@
#!/bin/bash
#===================================================================#
# clean script for case
# Tim MJ Nijssen - September 2021
# Based on: Christoph Goniva - Feb. 2011
#===================================================================#
#--------------------------------------------------------------------------------#
#- run settings file
scriptPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
. $scriptPath/scriptSettings.sh $1
#--------------------------------------------------------------------------------#
#- clean up case
rm -r $casePath/*~
rm -r $casePath/#*#
rm -r $casePath/DEM/*~
rm -r $casePath/DEM/#*#
rm -r $casePath/CFD/*~
rm -r $casePath/CFD/#*#
rm -r $casePath/*.e*
rm -r $casePath/*.o*
rm -r $casePath/log*
rm -r $casePath/CFD/0*
rm -r $casePath/CFD/1*
rm -r $casePath/CFD/2*
rm -r $casePath/CFD/3*
rm -r $casePath/CFD/4*
rm -r $casePath/CFD/5*
rm -r $casePath/CFD/6*
rm -r $casePath/CFD/7*
rm -r $casePath/CFD/8*
rm -r $casePath/CFD/9*
rm -r $casePath/CFD/log*
rm -r $casePath/CFD/org.0/*~
rm -r $casePath/CFD/constant/*~
rm -r $casePath/CFD/system/*~
rm -r $casePath/DEM/*~
rm -r $casePath/CFD/processor*
rm -r $casePath/CFD/clockData
rm -r $casePath/CFD/VTK
rm -r $casePath/CFD/particleProbes
rm -r $casePath/CFD/postProcessing
rm -r $casePath/DEM/log*
rm -r $casePath/DEM/post/dump*
rm -r $casePath/DEM/post/*.vtk
rm -r $casePath/DEM/post/*.txt
#- liggghts restart
if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then
echo -n "Clean LIGGGHTS restart file(s)? (y/N)? "
read -t 10 answer
if echo "$answer" | grep -iq "^y" ;then
rm -r $casePath/DEM/post/restart/*
fi
fi
#- CFD mesh
if [ -f "$casePath/CFD/constant/polyMesh/points" ]; then
echo -n "Clean CFD mesh? (y/N)? "
read -t 10 answer
if echo "$answer" | grep -iq "^y" ;then
rm -r $casePath/CFD/constant/extendedFeatureEdgeMesh
rm $casePath/CFD/constant/triSurface/*.eMesh
rm $casePath/CFD/constant/polyMesh/boundary
rm $casePath/CFD/constant/polyMesh/faces
rm $casePath/CFD/constant/polyMesh/neighbour
rm $casePath/CFD/constant/polyMesh/owner
rm $casePath/CFD/constant/polyMesh/points
fi
fi
#- results
if ls $casePath/results* 1> /dev/null 2>&1; then
echo -n "Clean results? (y/N)? "
read -t 10 answer
if echo "$answer" | grep -iq "^y" ;then
rm -r $casePath/results*
fi
fi
#- function objects
if [ -d "$casePath/CFD/dynamicCode" ]; then
echo -n "Clean dynamicCode? (y/N)? "
read -t 10 answer
if echo "$answer" | grep -iq "^y" ;then
rm -r $casePath/CFD/dynamicCode
fi
fi
cd $currentPath

View File

@ -0,0 +1,77 @@
#!/bin/bash
#===================================================================#
# post-run script for case
# Tim MJ Nijssen - September 2021
#===================================================================#
#--------------------------------------------------------------------------------#
#- run settings file
scriptPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
. $scriptPath/scriptSettings.sh $1
#--------------------------------------------------------------------------------#
#- make results directories
dateTime=$(date +%y%m%d_%H%M%S)
resultsPath="$casePath"/results_"$runTitle"_"$dateTime"
mkdir $resultsPath
mkdir $resultsPath/DEM
mkdir $resultsPath/DEM/dump_run
mkdir $resultsPath/CFD
mkdir $resultsPath/log
mkdir $resultsPath/VTK
#- reconstruct and convert CFD data
cd $casePath/CFD
reconstructPar -noLagrangian
foamToVTK
#- move CFD files
mv $casePath/CFD/0* $resultsPath/CFD/
mv $casePath/CFD/1* $resultsPath/CFD/
mv $casePath/CFD/2* $resultsPath/CFD/
mv $casePath/CFD/3* $resultsPath/CFD/
mv $casePath/CFD/4* $resultsPath/CFD/
mv $casePath/CFD/5* $resultsPath/CFD/
mv $casePath/CFD/6* $resultsPath/CFD/
mv $casePath/CFD/7* $resultsPath/CFD/
mv $casePath/CFD/8* $resultsPath/CFD/
mv $casePath/CFD/9* $resultsPath/CFD/
mv $casePath/CFD/particleProbes* $resultsPath/CFD/
mv $casePath/CFD/postProcessing* $resultsPath/CFD/
mv $casePath/CFD/dynamicCode* $resultsPath/CFD/
mv $casePath/CFD/VTK/CFD* $resultsPath/VTK/
cp -r $casePath/CFD/org* $resultsPath/CFD/
cp -r $casePath/CFD/constant $resultsPath/CFD/
cp -r $casePath/CFD/system $resultsPath/CFD/
cp -r $casePath/CFD/clockData $resultsPath/CFD/
#- copy DEM data
cp $casePath/DEM/* $resultsPath/DEM/
cp -r $casePath/DEM/mesh $resultsPath/DEM/
#- move and convert DEM init files
if ls $casePath/DEM/post/*init* 1> /dev/null 2>&1; then
mkdir $resultsPath/DEM/dump_init
mv $casePath/DEM/post/*init* $resultsPath/DEM/dump_init/
cd $resultsPath/DEM/dump_init
python2 $CFDEM_LPP_DIR/lpp.py dump*
mv $resultsPath/DEM/dump_init/*.vtk $resultsPath/VTK/
fi
#- move and convert DEM run files
mv $casePath/DEM/post/*run* $resultsPath/DEM/dump_run/
cd $resultsPath/DEM/dump_run
python2 $CFDEM_LPP_DIR/lpp.py dump*
mv $resultsPath/DEM/dump_run/*.vtk $resultsPath/VTK/
#- copy log files
cp $casePath/log/* $resultsPath/log/
mv $casePath/slurm* $resultsPath/log/
#- return to path
cd $currentPath

View File

@ -0,0 +1,57 @@
#!/bin/bash
#===================================================================#
# all tasks before actual CFD-DEM run
# Tim MJ Nijssen - September 2021
# based on: Christoph Goniva - August 2011
#===================================================================#
#--------------------------------------------------------------------------------#
#- run settings file
scriptPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
. $scriptPath/scriptSettings.sh $1
#--------------------------------------------------------------------------------#
runTitle=$(basename "$casePath")
#- prompt for costum title
echo -n "Add custom simulation title? (y/N)?"
read -t 10 answer
if echo "$answer" | grep -iq "^y" ;then
echo -n "Enter simulation title:"
read runTitle
fi
#- run DEM init
if [ -f "$casePath/DEM/in.liggghts_init" ]; then
if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then
echo "preRunAllPar: Using existing restart file"
else
echo "preRunAllPar: Running DEM init"
. $scriptPath/runDEMPar.sh $casePath
fi
fi
#- copy 0.org
echo "preRunAllPar: Copying 0.org"
cp -r $casePath/CFD/org.0 $casePath/CFD/0
#- mesh
if [ -f "$casePath/CFD/constant/polyMesh/points" ]; then
echo "preRunAllPar: using old mesh"
else
echo "preRunAllPar: Building mesh"
. $scriptPath/buildMesh.sh $casePath > $logPath/log.mesh
fi
#- set fields
if [ -f "$casePath/CFD/system/setFieldsDict" ]; then
echo "preRunAllPar: Setting fields"
cd $casePath/CFD
setFields
fi
#- decompose
echo "preRunAllPar: Decomposing"
cd $casePath/CFD
decomposePar
cd $currentPath

View File

@ -0,0 +1,26 @@
#!/bin/bash
#===================================================================#
# allrun script
# Tim MJ Nijssen - September 2021
# based on: Christoph Goniva - August 2011
#===================================================================#
#--------------------------------------------------------------------------------#
#- run settings file
scriptPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
. $scriptPath/scriptSettings.sh $1
#--------------------------------------------------------------------------------#
#- do all tasks before actual run
echo "runAllPar: calling preRunAllPar"
. $scriptPath/preRunAllPar.sh $casePath
#- run parallel CFD-DEM
echo "runAllPar: Running CFD-DEM"
. $scriptPath/runCFDDEMPar.sh $casePath
#- do all tasks after actual run
echo "runAllPar: calling postRunAllPar"
. $scriptPath/postRunAllPar.sh $casePath

View File

@ -0,0 +1,56 @@
#!/bin/bash
#===================================================================#
# CFDDEMrun script for case
# Tim MJ Nijssen - September 2021
# based on: Christoph Goniva - May. 2011
#===================================================================#
#- include functions
source $CFDEM_PROJECT_DIR/etc/functions.sh
#--------------------------------------------------------------------------------#
#- run settings file
scriptPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
. $scriptPath/scriptSettings.sh $1
#--------------------------------------------------------------------------------#
#- run case settings file
. $casePath/runSettings.sh "CFDDEM"
#--------------------------------------------------------------------------------#
cd $casePath/CFD
if [ $debugMode == "on" ]; then
debugMode="valgrind"
elif [ $debugMode == "strict" ]; then
debugMode="valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes"
else
debugMode=""
fi
#- make proc dirs visible
count=0
for i in `seq $nrProcs`
do
let count=$i-1
(cd $casePath/CFD/processor$count && touch file.foam)
done
#- header
echo 2>&1 | tee -a /$logpath/$logfileName
echo "// $headerText //" 2>&1 | tee -a $logpath/$logfileName
echo 2>&1 | tee -a $logpath/$logfileName
#- write path
pwd 2>&1 | tee -a $logpath/$logfileName
echo 2>&1 | tee -a $logpath/$logfileName
#- run applictaion
if [[ $machineFileName == "none" ]]; then
mpirun -np $nrProcs $debugMode $solverName -parallel 2>&1 | tee -a $logpath/$logfileName
else
mpirun -machinefile $machineFileName -np $nrProcs $debugMode $solverName -parallel 2>&1 | tee -a $logpath/$logfileName
fi
#- return
cd $currentPath

View File

@ -0,0 +1,27 @@
#!/bin/bash
#===================================================================#
# DEMrun script for case (init)
# Tim MJ Nijssen - September 2021
# based on: Daniel Queteschiner - June 2014
#===================================================================#
#- include functions
source $CFDEM_PROJECT_DIR/etc/functions.sh
#--------------------------------------------------------------------------------#
#- run settings file
scriptPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
. $scriptPath/scriptSettings.sh $1
#--------------------------------------------------------------------------------#
#- run case settings file
. $casePath/runSettings.sh "DEM"
#--------------------------------------------------------------------------------#
echo $logPath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
#- call function to run DEM case
parDEMrun $logPath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
#- return
cd $currentPath

View File

@ -0,0 +1,23 @@
#!/bin/bash
#===================================================================#
# sets variables for CFDEM utility scripts
# Tim MJ Nijssen - September 2021
#===================================================================#
#- casepath
currentPath=$(pwd)
if [ -z "$1" ]; then
#- parent directory if no other path is specified
casePath="$(dirname "$scriptPath")"
else
#- read input
casePath="$(dirname "$(readlink -f $1)/.")"
fi
#- other paths
logPath=$casePath/log
mkdir $logPath