release on 2014-07-17_09-51-22

This commit is contained in:
goniva
2014-07-17 09:51:22 +02:00
parent 3b2dedf0fd
commit 1d04b8c164
65 changed files with 598 additions and 1301 deletions

View File

@ -14,7 +14,7 @@ casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
echo $casePath
# check if mesh was built
if [ -d "$casePath/CFD/constant/polyMesh/boundary" ]; then
if [ -f "$casePath/CFD/constant/polyMesh/boundary" ]; then
echo "mesh was built before - using old mesh"
else
echo "mesh needs to be built"
@ -23,7 +23,5 @@ else
fi
#gnome-terminal --title='cfdemSolverIB two settling disks CFD' -e "CFDrun()"
gnome-terminal --title='cfdemSolverIB twoSpheresGlowinskiMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"
#gnome-terminal --title='cfdemSolverIB two settling disks DEM' -e "DEMrun()"
#gnome-terminal --title='cfdemSolverIB twoSpheresGlowinskiMPI DEM' -e "bash $casePath/DEMrun.sh"

View File

@ -91,7 +91,7 @@ twoWayFilesProps
twoWayMPIProps
{
maxNumberOfParticles 10100;
liggghtsPath "../DEM/in.liggghts_init";
liggghtsPath "../DEM/in.liggghts_run";
}
IBProps

View File

@ -1,123 +0,0 @@
#echo both
atom_style granular
atom_modify map array
communicate single vel yes
#--modified C.K.
#dimension 2
#--modified C.K.
#boundary f f p
boundary f f f
newton off
units si
processors 2 2 1
region reg block 0 1 0 1 0 4 units box
create_box 1 reg
neighbor 0.3 bin
neigh_modify delay 0 binsize 0.01
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype 5.e7
fix m2 all property/global poissonsRatio peratomtype 0.45
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 model hertz tangential history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00003
#fix gravi all gravity 9.81 vector 0.0 -1.0 0.0
fix gravi all gravity 981 vector 0.0 0.0 -1.0
#walls
fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.
fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1.
fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.
fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 1.
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.
fix zwalls2 all wall/gran model hertz tangential 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.
#-use the imported mesh as granular wall
#fix bucket_wall all wall/gran/hertz/history 1 0 mesh/gran 1 cad1
#cfd coupling
fix cfd all couple/cfd couple_every 10 mpi
fix cfd2 all couple/cfd/force
#- create single partciles
#create_atoms 1 single 0.05 0.3 0.025 units box
#create_atoms 1 single 1 0.001 0.0 units box
create_atoms 1 single .5 .5 3.5 units box
create_atoms 1 single .5 .5 3.16 units box
#create_atoms 1 single .5 .5 3.26 units box
#create_atoms 1 single 1.5 -0.001 0.0 units box
#set atom 1 diameter 0.015 density 100 vx 0 vy -.5 vz 0
set atom 1 diameter 0.167 density 1.5 vx 0 vy 0 vz 0
#set atom 2 diameter 0.167 density 1.14 vx 0 vy 0 vz 0
set atom 2 diameter 0.167 density 1.5 vx 0 vy 0 vz 0
#create_atoms 1 single 0.048 0.018 0.05 units box
#set atom 1 diameter 0.001 density 3000 vx 0.1 vy 0 vz 0
#create_atoms 1 single 0.052 0.018 0.05 units box
#set atom 2 diameter 0.001 density 3000 vx -0.1 vy 0 vz 0
variable vx1 equal vx[1]
variable vy1 equal vy[1]
variable vz1 equal vz[1]
variable vx2 equal vx[2]
variable vy2 equal vy[2]
variable vz2 equal vz[2]
variable x1 equal x[1]
variable y1 equal y[1]
variable z1 equal z[1]
variable x2 equal x[2]
variable y2 equal y[2]
variable z2 equal z[2]
variable time equal step*dt
fix extra1 all print 100 "${time} ${vx1} ${vy1} ${vz1}" file ../DEM/post/velocity_particle_1.txt title "%" screen no
fix extra2 all print 100 "${time} ${vx2} ${vy2} ${vz2}" file ../DEM/post/velocity_particle_2.txt title "%" screen no
fix extra3 all print 100 "${time} ${x1} ${y1} ${z1}" file ../DEM/post/position_particle_1.txt title "%" screen no
fix extra4 all print 100 "${time} ${x2} ${y2} ${z2}" file ../DEM/post/position_particle_2.txt title "%" screen no
#apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere #wenn das ausgeblendet, dann kein vel update
#fix 1 all nve/noforce
#--modified C.K.
#fix 2D all enforce2d
#screen output
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
#dump myDump all stl 1 ../DEM/post/dump.stl
#run 1
dump dmp all custom 100 ../DEM/post/dump.liggghts_init id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
#undump myDump
#force : f_couple_cfd[0] f_couple_cfd[1] f_couple_cfd[2]
#node : f_couple_cfd[6]
#cell id : f_couple_cfd[7]
run 1 upto #80000 upto
#write_restart liggghts.restart

View File

@ -45,7 +45,7 @@ if [ $postproc == "true" ]
then
#- get VTK data from liggghts dump file
cd $casePath/DEM/post
python -i $CFDEM_LPP_DIR/lpp.py dump.liggghts_init
python -i $CFDEM_LPP_DIR/lpp.py dump.liggghts_run
#- get VTK data from CFD sim
cd $casePath/CFD
@ -79,6 +79,6 @@ rm -r $casePath/log_*
echo "done"
#- preserve post directory
echo "dummyfile" >> $casePath/DEM/post/dummy
touch $casePath/DEM/post/.gitignore

View File

@ -149,6 +149,7 @@ GidaspowDragProps
velFieldName "U";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
granVelFieldName "Us";
phi 1;
//interpolation; // this case does not like interpolation
implDEM_;

View File

@ -2,18 +2,15 @@
#===================================================================#
# allrun script for testcase as part of test routine
# run ErgunTestMPI
# Christoph Goniva - June 2014
# run settlingTest
# Christoph Goniva - Sept. 2010
#===================================================================#
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
#- include functions
source $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh
# check if mesh was built
if [ -f "$casePath/CFD/constant/polyMesh/points" ]; then
if [ -d "$casePath/CFD/constant/polyMesh/boundary" ]; then
echo "mesh was built before - using old mesh"
else
echo "mesh needs to be built"
@ -21,27 +18,11 @@ else
blockMesh
fi
# check if DEM case was run
if [ -f "$casePath/DEM/liggghts.restart" ]; then
echo "DEM restart file found"
if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then
echo "LIGGGHTS init was run before - using existing restart file"
else
echo "starting DEM run..."
#--------------------------------------------------------------------------------#
#- define variables
logpath="$casePath"
headerText="run_liggghts_ErgunTestMPI_DEM"
logfileName="log_$headerText"
solverName="in.liggghts_init"
nrProcs=4
machineFileName="none"
debugMode="off"
#--------------------------------------------------------------------------------#
#- clean up case
rm -r $casePath/DEM/post/*
#- call function to run DEM case
parDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
#- run DEM in new terminal
$casePath/DEMrun.sh
fi
#- run parallel CFD-DEM in new terminal

View File

@ -228,11 +228,11 @@ dividedProps
twoWayMPIProps
{
liggghtsPath "../DEM/in.liggghts_resume";
liggghtsPath "../DEM/in.liggghts_run";
}
twoWayM2MProps
{
maxNumberOfParticles 10100;
liggghtsPath "../DEM/in.liggghts_resume";
liggghtsPath "../DEM/in.liggghts_run";
}
// ************************************************************************* //

View File

@ -1,64 +1,64 @@
# Pour granular particles into chute container, then induce flow
echo both
atom_style granular
atom_modify map array
communicate single vel yes
echo both
atom_style granular
atom_modify map array
communicate single vel yes
boundary m m m
newton off
boundary m m m
newton off
units si
units si
region reg block -0.015 0.015 -0.015 0.015 -0.001 0.0554 units box
create_box 1 reg
region reg block -0.015 0.015 -0.015 0.015 -0.001 0.0554 units box
create_box 1 reg
neighbor 0.001 bin
neigh_modify delay 0
neighbor 0.001 bin
neigh_modify delay 0
#Material properties required for new pair styles
# 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.5
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
#pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
pair_coeff * *
# pair style
pair_style gran model hertz tangential history # Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
# timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#walls
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 0.01385 0. 0.
# walls
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 0.01385 0. 0.
#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 2000 radius constant 0.0005
fix pdd1 all particledistribution/discrete 1. 1 pts1 1.0
# 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 2000 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
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 all nve/sphere
# apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
#screen output
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
# screen output
compute rke all erotate/sphere
thermo_style custom step atoms ke c_rke vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
run 1
dump dmp all custom 5000 post/dump.liggghts_init id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
# insert the first particles so that dump is not empty
run 1
dump dmp all custom 5000 post/dump.liggghts_init id type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
#force : f_couple_cfd[0] f_couple_cfd[1] f_couple_cfd[2]
#node : f_couple_cfd[6]
#cell id : f_couple_cfd[7]
run 10000 upto
write_restart liggghts.restart
run 10000 upto
write_restart post/restart/liggghts.restart

View File

@ -1,71 +0,0 @@
# Pour granular particles into chute container, then induce flow
atom_style granular
atom_modify map array
communicate single vel yes
boundary m m m
newton off
units si
processors 2 2 1
#read the restart file
read_restart ../DEM/liggghts.restart
#do not do this here, the simulation box is in the restart file!
#region reg block -0.015 0.015 -0.015 0.015 -0.001 0.0554 units box
#create_box 1 reg
neighbor 0.0005 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
#pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 0.01385 0. 0.
# change the particles density
set group all density 2000
#cfd coupling
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
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]
#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 10
thermo_modify lost ignore norm no
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 vx vy vz fx fy fz f_dragforce[1] f_dragforce[2] f_dragforce[3] radius
undump myDump
run 1

View File

@ -62,7 +62,7 @@ if [ $postproc == "true" ]
#- get VTK data from liggghts dump file
cd $casePath/DEM/post
python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_restart
python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run
#- get VTK data from CFD sim
cd $casePath/CFD
@ -86,6 +86,8 @@ source $WM_PROJECT_DIR/bin/tools/CleanFunctions
cd $casePath/CFD
cleanCase
rm -r $casePath/CFD/clockData
rm -r $casePath/DEM/post/*
(cd $casePath/DEM/post && touch dummy)
rm -r $casePath/DEM/post/*.*
rm -r $casePath/DEM/post/restart/*.*
touch $casePath/DEM/post/.gitignore
touch $casePath/DEM/post/restart/.gitignore
echo "done"

View File

@ -18,17 +18,13 @@ else
blockMesh
fi
echo "WARNING:copying a CGS based controlDict to $HOME/.OpenFOAM/$WM_PROJECT_VERSION"
echo "this will make your simulations use CGS unit system"
read
echo "Make sure $HOME/.OpenFOAM/$WM_PROJECT_VERSION/controlDict is removed after this simulation."
mkdir -p $FOAM_INST_DIR/.OpenFOAM//$WM_PROJECT_VERSION
cp $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/controlDict_cgs_$WM_PROJECT_VERSION $FOAM_INST_DIR/.OpenFOAM/$WM_PROJECT_VERSION/controlDict
if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then
echo "LIGGGHTS init was run before - using existing restart file"
else
#- run DEM
$casePath/DEMrun.sh
fi
#- run parallel CFD-DEM in new terminal
gnome-terminal --title='cfdemSolverPiso ErgunTestMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"
gnome-terminal --title='cfdemSolverPiso ErgunTestMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"
echo "removing $FOAM_INST_DIR/.OpenFOAM/$WM_PROJECT_VERSION/controlDict?"
read
rm -r $FOAM_INST_DIR/.OpenFOAM/$WM_PROJECT_VERSION/controlDict*

View File

@ -184,11 +184,11 @@ dividedProps
twoWayMPIProps
{
//maxNumberOfParticles 10100;
liggghtsPath "../DEM/in.liggghts_resume";
liggghtsPath "../DEM/in.liggghts_run";
}
twoWayM2MProps
{
maxNumberOfParticles 10100;
liggghtsPath "../DEM/in.liggghts_resume";
liggghtsPath "../DEM/in.liggghts_run";
}
// ************************************************************************* //

View File

@ -5,6 +5,7 @@ clc;
%====================================%
% simulation data 1
%====================================%
rhoG = 0.01 % density in g/cm3
%path = '../probes/0/p'; % 2.1.x
path = '../postProcessing/probes/0/p'; % 2.2.x
columns=22;
@ -12,7 +13,7 @@ headerlines=4;
data = loaddata(path,columns,headerlines);
data=transpose(data);
[x,y]=size(data)
dp_sim = (data(:,2)-data(:,y))*0.01/10; % *rhoG to get pressure, then *10 to get from Ba in Pa
dp_sim = (data(:,2)-data(:,y))*rhoG*0.1; % *rhoG to get pressure, then *0.1 to get from Ba in Pa
t_sim = data(:,1);
%fprintf('final pressureDrop of sim = %f Pa\n',dp_sim(length(dp_sim)) )

View File

@ -23,7 +23,7 @@ startTime 0;
stopAt endTime;
endTime 0.1;//0.1;
endTime 0.1;
deltaT 0.001;
@ -49,7 +49,104 @@ adjustTimeStep no;
maxCo 0.1;
libs ( "libgroovyBC.so" );
//libs ( "libgroovyBC.so" );
DimensionedConstants
{
unitSet CGS; // SI; // USCS; //
CGSCoeffs
{
universal
{
c c [ 0 1 -1 0 0 0 0 ] 2.99792e+10; // speed of light in vacuum (cm/s)
G G [ -1 3 -2 0 0 0 0 ] 6.67429e-8; // gravitational constant (cm^3/(gs^2))
h h [ 1 2 -1 0 0 0 0 ] 6.62607e-27; // Planck's constant (erg.s)
}
electromagnetic
{
e e [ 0 0 1 0 0 1 0 ] 4.803204e-10; // elementary charge (statcoulomb)
}
atomic
{
me me [ 1 0 0 0 0 0 0 ] 9.10938e-28; // electron mass (g)
mp mp [ 1 0 0 0 0 0 0 ] 1.67262e-24; // proton mass (g)
}
physicoChemical
{
mu mu [ 1 0 0 0 0 0 0 ] 1.66054e-24; // atomic mass unit (g)
k k [ 1 2 -2 -1 0 0 0 ] 1.38065e-16; // Boltzman constant (erg/K)
}
standard
{
//- Standard pressure [bar]
Pstd Pstd [ 1 -1 -2 0 0 0 0 ] 1000000; // 1 bar (barye)
//- Standard temperature [degK]
Tstd Tstd [ 0 0 0 1 0 0 0 ] 298.15; // should be same as in SI unit system
}
}
SICoeffs
{
universal
{
c c [ 0 1 -1 0 0 0 0 ] 2.99792e+08;
G G [ -1 3 -2 0 0 0 0 ] 6.67429e-11;
h h [ 1 2 -1 0 0 0 0 ] 6.62607e-34;
}
electromagnetic
{
e e [ 0 0 1 0 0 1 0 ] 1.60218e-19;
}
atomic
{
me me [ 1 0 0 0 0 0 0 ] 9.10938e-31;
mp mp [ 1 0 0 0 0 0 0 ] 1.67262e-27;
}
physicoChemical
{
mu mu [ 1 0 0 0 0 0 0 ] 1.66054e-27;
k k [ 1 2 -2 -1 0 0 0 ] 1.38065e-23;
}
standard
{
//- Standard pressure [Pa]
Pstd Pstd [ 1 -1 -2 0 0 0 0 ] 100000;
//- Standard temperature [degK]
Tstd Tstd [ 0 0 0 1 0 0 0 ] 298.15;
}
}
USCSCoeffs
{
universal
{
c c [ 0 1 -1 0 0 0 0 ] 9.83558e+08;
G G [ -1 3 -2 0 0 0 0 ] 1.06909e-09;
h h [ 1 2 -1 0 0 0 0 ] 1.57234e-32;
}
electromagnetic
{
e e [ 0 0 1 0 0 1 0 ] 1.60218e-19;
}
atomic
{
me me [ 1 0 0 0 0 0 0 ] 2.00825e-30;
mp mp [ 1 0 0 0 0 0 0 ] 3.68746e-27;
}
physicoChemical
{
mu mu [ 1 0 0 0 0 0 0 ] 3.66083e-27;
k k [ 1 2 -2 -1 0 0 0 ] 1.82012e-22;
}
standard
{
//- Standard pressure [lbm/ft^2]
Pstd Pstd [ 1 -1 -2 0 0 0 0 ] 2088.6;
//- Standard temperature [degR]
Tstd Tstd [ 0 0 0 1 0 0 0 ] 536.67;
}
}
}
functions
(

View File

@ -1,63 +1,64 @@
# Pour granular particles into chute container, then induce flow
echo both
atom_style granular
atom_modify map array
communicate single vel yes
echo both
atom_style granular
atom_modify map array
communicate single vel yes
boundary m m m
newton off
units cgs
boundary m m m
newton off
region reg block -1.5 1.5 -1.5 1.5 -0.1 5.54 units box
create_box 1 reg
units cgs
neighbor 0.1 bin
neigh_modify delay 0
region reg block -1.5 1.5 -1.5 1.5 -0.1 5.54 units box
create_box 1 reg
neighbor 0.1 bin
neigh_modify delay 0
#Material properties required for new pair styles
# 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.5
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
#pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
pair_coeff * *
# pair style
pair_style gran model hertz tangential history # Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 981 vector 0.0 0.0 -1.0
# timestep, gravity
timestep 0.00001
fix gravi all gravity 981 vector 0.0 0.0 -1.0
#walls
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 5.53
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 1.385 0. 0.
# walls
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 5.53
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 1.385 0. 0.
#particle distributions and insertion
region bc cylinder z 0.0 0.0 1.2 0. 5.5 units box
fix pts1 all particletemplate/sphere 1 atom_type 1 density constant 2. radius constant 0.05
fix pdd1 all particledistribution/discrete 1. 1 pts1 1.0
# particle distributions and insertion
region bc cylinder z 0.0 0.0 1.2 0. 5.5 units box
fix pts1 all particletemplate/sphere 1 atom_type 1 density constant 2. radius constant 0.05
fix pdd1 all particledistribution/discrete 1 1 pts1 1.0
fix ins all insert/pack seed 100001 distributiontemplate pdd1 vel constant 0. 0. -100. insert_every once overlapcheck yes all_in yes particles_in_region 10000 region bc
fix ins all insert/pack seed 100001 distributiontemplate pdd1 vel constant 0. 0. -100. 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 all nve/sphere
# apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
#screen output
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
# screen output
compute rke all erotate/sphere
thermo_style custom step atoms ke c_rke vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
run 1
dump dmp all custom 5000 post/dump.liggghts_init id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
# insert the first particles so that dump is not empty
run 1
dump dmp all custom 5000 post/dump.liggghts_init id type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
#force : f_couple_cfd[0] f_couple_cfd[1] f_couple_cfd[2]
#node : f_couple_cfd[6]
#cell id : f_couple_cfd[7]
run 10000 upto
write_restart liggghts.restart
run 10000 upto
write_restart post/restart/liggghts.restart

View File

@ -1,67 +0,0 @@
# Pour granular particles into chute container, then induce flow
atom_style granular
atom_modify map array
communicate single vel yes
boundary m m m
newton off
units cgs
processors 2 2 1
#read the restart file
read_restart ../DEM/liggghts.restart
neighbor 0.1 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
#pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 981 vector 0.0 0.0 -1.0
#walls
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 5.53
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 1.385 0. 0.
# change the particles density
set group all density 2.0
#cfd coupling
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
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]
#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 10
thermo_modify lost ignore norm no
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 vx vy vz fx fy fz f_dragforce[1] f_dragforce[2] f_dragforce[3] radius
undump myDump
run 1

View File

@ -1 +0,0 @@
dummyfile

View File

@ -62,7 +62,7 @@ if [ $postproc == "true" ]
#- get VTK data from liggghts dump file
cd $casePath/DEM/post
python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_restart
python -i $CFDEM_LPP_DIR/lpp.py dump*.liggghts_run
#- get VTK data from CFD sim
cd $casePath/CFD
@ -90,14 +90,13 @@ rm -r $casePath/CFD/octave/octave-core
rm -r $casePath/CFD/VTK
rm -r $casePath/CFD/processor*
rm -r $casePath/CFD/couplingFiles/*
rm -r $casePath/DEM/post/*
rm -r $casePath/DEM/log.*
rm -r $casePath/DEM/liggghts.restartCFDEM*
rm -r $casePath/CFD/probes
rm -r $casePath/CFD/postProcessing
rm -r $casePath/CFD/lagrangian
rm -r $casePath/CFD/clockData
rm -r $casePath/DEM/log.*
rm -r $casePath/DEM/post/*.*
rm -r $casePath/DEM/post/restart/*.*
touch $casePath/DEM/post/.gitignore
touch $casePath/DEM/post/restart/.gitignore
echo "done"
#- preserve post directory
echo "dummyfile" >> $casePath/DEM/post/dummy

View File

@ -20,11 +20,18 @@ else
blockMesh
fi
if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then
echo "LIGGGHTS init was run before - using existing restart file"
else
#- run DEM in new terminal
$casePath/DEMrun.sh
fi
#-------------------------------------------------------#
# adapt settings for init run
cp $casePath/CFD/constant/liggghtsCommands_init $casePath/CFD/constant/liggghtsCommands
cp $casePath/CFD/constant/couplingProperties_init $casePath/CFD/constant/couplingProperties
cp $casePath/CFD/system/controlDict_init $casePath/CFD/system/controlDict
cp $casePath/CFD/constant/liggghtsCommands_run $casePath/CFD/constant/liggghtsCommands
cp $casePath/CFD/constant/couplingProperties_run $casePath/CFD/constant/couplingProperties
cp $casePath/CFD/system/controlDict_run $casePath/CFD/system/controlDict
#-------------------------------------------------------#
#- run parallel CFD-DEM in new terminal
@ -102,7 +109,8 @@ source $WM_PROJECT_DIR/bin/tools/CleanFunctions
cd $casePath/CFD
cleanCase
rm -r $casePath/CFD/clockData
rm -r $casePath/DEM/post/*
rm $casePath/DEM/liggghts.restartCFDEM*
(cd $casePath/DEM/post && touch dummy)
echo "done"
rm -r $casePath/DEM/post/*.*
rm -r $casePath/DEM/post/restart/*.*
touch $casePath/DEM/post/.gitignore
touch $casePath/DEM/post/restart/.gitignore
echo "done"

View File

@ -1,235 +0,0 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / 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
modelType "A"; // A or B
couplingInterval 100;
voidFractionModel divided;//centre;//
locateModel engine;//turboEngineM2M;//
meshMotionModel noMeshMotion;
regionModel allRegion;
IOModel basicIO;
probeModel off;
dataExchangeModel twoWayMPI;//twoWayM2M;//twoWayFiles;//oneWayVTK;//
averagingModel dense;//dilute;//
clockModel standardClock;//off;
smoothingModel off;// localPSizeDiffSmoothing;// constDiffSmoothing; //
forceModels
(
//GidaspowDrag
//BeetstraDrag
//DiFeliceDrag
KochHillDrag
gradPForce
viscForce
//Archimedes
//volWeightedAverage
//totalMomentumExchange
//particleCellVolume
);
momCoupleModels
(
implicitCouple
);
turbulenceModelType "RASProperties";//"LESProperties";//
//===========================================================================//
// sub-model properties
localPSizeDiffSmoothingProps
{
lowerLimit 0.1;
upperLimit 1e10;
dSmoothingLength 1.5e-3;
Csmoothing 1.0;
}
constDiffSmoothingProps
{
lowerLimit 0.1;
upperLimit 1e10;
smoothingLength 1.5e-3;
}
implicitCoupleProps
{
velFieldName "U";
granVelFieldName "Us";
voidfractionFieldName "voidfraction";
}
ArchimedesProps
{
densityFieldName "rho";
gravityFieldName "g";
}
gradPForceProps
{
pFieldName "p";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
velocityFieldName "U";
//interpolation;
}
viscForceProps
{
velocityFieldName "U";
densityFieldName "rho";
interpolation;
}
volWeightedAverageProps
{
scalarFieldNames
(
voidfraction
);
vectorFieldNames
(
);
upperThreshold 0.999;
lowerThreshold 0;
verbose;
}
totalMomentumExchangeProps
{
implicitMomExFieldName "Ksl";
explicitMomExFieldName "none";
fluidVelFieldName "U";
granVelFieldName "Us";
densityFieldName "rho";
}
GidaspowDragProps
{
verbose;
velFieldName "U";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
phi 1;
}
DiFeliceDragProps
{
velFieldName "U";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
}
KochHillDragProps
{
//verbose;
velFieldName "U";
densityFieldName "rho";
voidfractionFieldName "voidfraction";
}
BeetstraDragProps
{
velFieldName "U";
densityFieldName "rho";
gravityFieldName "g";
rhoParticle 2000.;
voidfractionFieldName "voidfraction";
interpolation ;
useFilteredDragModel ;
useParcelSizeDependentFilteredDrag ;
k 0.05;
aLimit 0.0;
// verbose ;
}
virtualMassForceProps
{
velFieldName "U";
densityFieldName "rho";
}
particleCellVolumeProps
{
upperThreshold 0.999;
lowerThreshold 0.;
verbose;
}
oneWayVTKProps
{
couplingFilename "vtk_out%4.4d.vtk";
maxNumberOfParticles 30000;
}
twoWayFilesProps
{
maxNumberOfParticles 10100;
}
centreProps
{
alphaMin 0.10;
}
engineProps
{
treeSearch true;
}
turboEngineM2MProps
{
turboEngineProps
{
treeSearch true;
}
}
dividedProps
{
alphaMin 0.01;
scaleUpVol 1.0;
}
twoWayMPIProps
{
liggghtsPath "../DEM/in.liggghts_resume";
}
twoWayM2MProps
{
maxNumberOfParticles 10100;
liggghtsPath "../DEM/in.liggghts_resume";
}
// ************************************************************************* //

View File

@ -1,44 +0,0 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / 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;
}
//- optional
writeLiggghtsProps
{
writeLast off;
overwrite off;
}
// ************************************************************************* //

View File

@ -1,117 +0,0 @@
/*--------------------------------*- 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.05;
deltaT 0.001;
writeControl adjustableRunTime;
writeInterval 0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression uncompressed;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep no;
maxCo 0.1;
//libs ( "libgroovyBC.so" "libfiniteVolumeCFDEM.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 voidfractionNext voidfractionPrev);
// Write at same frequency as fields
outputControl timeStep;//outputTime;
outputInterval 1;
}
/*pressureDrop
{
type patchAverage;
functionObjectLibs
(
"libsimpleFunctionObjects.so"
);
verbose true;
patches
(
inlet
outlet
);
fields
(
p
);
factor 1;
}*/
);
// ************************************************************************* //

View File

@ -1,64 +1,64 @@
# Pour granular particles into chute container, then induce flow
echo both
atom_style granular
atom_modify map array
communicate single vel yes
echo both
atom_style granular
atom_modify map array
communicate single vel yes
boundary m m m
newton off
boundary m m m
newton off
units si
units si
region reg block -0.015 0.015 -0.015 0.015 -0.001 0.0554 units box
create_box 1 reg
region reg block -0.015 0.015 -0.015 0.015 -0.001 0.0554 units box
create_box 1 reg
neighbor 0.001 bin
neigh_modify delay 0
neighbor 0.001 bin
neigh_modify delay 0
#Material properties required for new pair styles
# 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.5
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
#pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
pair_coeff * *
# pair style
pair_style gran model hertz tangential history # Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
# timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#walls
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 0.01385 0. 0.
# walls
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 0.01385 0. 0.
#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 2000 radius constant 0.0005
fix pdd1 all particledistribution/discrete 1. 1 pts1 1.0
# 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 2000 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
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 all nve/sphere
# apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
#screen output
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
# screen output
compute rke all erotate/sphere
thermo_style custom step atoms ke c_rke vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
run 1
dump dmp all custom 5000 post/dump.liggghts_init id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
# insert the first particles so that dump is not empty
run 1
dump dmp all custom 5000 post/dump.liggghts_init id type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
#force : f_couple_cfd[0] f_couple_cfd[1] f_couple_cfd[2]
#node : f_couple_cfd[6]
#cell id : f_couple_cfd[7]
run 10000 upto
write_restart liggghts.restart
run 10000 upto
write_restart post/restart/liggghts.restart

View File

@ -1,71 +1,65 @@
# Pour granular particles into chute container, then induce flow
log ../DEM/log.liggghts
thermo_log ../DEM/post/thermo.txt
atom_style granular
atom_modify map array
communicate single vel yes
atom_style granular
atom_modify map array
communicate single vel yes
boundary m m m
newton off
boundary m m m
newton off
units si
processors 2 2 1
units si
processors 2 2 1
#read the restart file
read_restart ../DEM/liggghts.restartCFDEM_0.050000
# read the restart file
read_restart ../DEM/post/restart/liggghts.restartCFDEM
#do not do this here, the simulation box is in the restart file!
#region reg block -0.015 0.015 -0.015 0.015 -0.001 0.0554 units box
#create_box 1 reg
neighbor 0.0005 bin
neigh_modify delay 0
neighbor 0.0005 bin
neigh_modify delay 0
# Material properties required for granular pair styles
#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
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
# pair style
pair_style gran model hertz tangential history # Hertzian without cohesion
pair_coeff * *
#pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
pair_coeff * *
# timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 0.01385 0. 0.
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 0.01385 0. 0.
# change the particles density
set group all density 2000
set group all density 2000
#cfd coupling
fix cfd all couple/cfd couple_every 100 mpi
fix cfd2 all couple/cfd/force
# cfd coupling
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
fix integr all nve/sphere
# apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
#center of mass
compute centerOfMass all com
# 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 total dragforce
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 10
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
# screen output
compute rke all erotate/sphere
thermo_style custom step atoms ke c_rke 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
#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 vx vy vz fx fy fz f_dragforce[1] f_dragforce[2] f_dragforce[3] radius
undump myDump
dump dmp all custom 5000 ../DEM/post/dump*.liggghts_restart id type x y z vx vy vz fx fy fz f_dragforce[1] f_dragforce[2] f_dragforce[3] radius
run 1
run 1

View File

@ -1,71 +0,0 @@
# Pour granular particles into chute container, then induce flow
atom_style granular
atom_modify map array
communicate single vel yes
boundary m m m
newton off
units si
processors 2 2 1
#read the restart file
read_restart ../DEM/liggghts.restart
#do not do this here, the simulation box is in the restart file!
#region reg block -0.015 0.015 -0.015 0.015 -0.001 0.0554 units box
#create_box 1 reg
neighbor 0.0005 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
#pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 0.0553
fix cylwalls all wall/gran model hertz tangential history primitive type 1 zcylinder 0.01385 0. 0.
# change the particles density
set group all density 2000
#cfd coupling
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
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]
#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 10
thermo_modify lost ignore norm no
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 vx vy vz fx fy fz f_dragforce[1] f_dragforce[2] f_dragforce[3] radius
undump myDump
run 1

View File

@ -48,7 +48,7 @@ averagingModel dense;//dilute;//
clockModel off; //standardClock;//
smoothingModel off;//constDiffSmoothing; //
smoothingModel constDiffSmoothing; //off;//
//useDDTvoidfraction;
@ -137,7 +137,7 @@ oneWayVTKProps
twoWayMPIProps
{
liggghtsPath "../DEM/in.liggghts_init";
liggghtsPath "../DEM/in.liggghts_run";
}
twoWayFilesProps
@ -166,7 +166,7 @@ bigParticleProps
engineProps
{
treeSearch true;
treeSearch true;
}
// ************************************************************************* //

View File

@ -1,79 +0,0 @@
echo both
# Pour granular particles into chute container, then induce flow
atom_style granular
atom_modify map array sort 0 0
communicate single vel yes
#processors 1 1 2
boundary f f f
newton off
units si
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
#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
#fix m5 all property/global characteristicVelocity scalar 2.0
#pair style
pair_style gran model hertz tangential history #hertzan without cohesion
pair_coeff * *
#timestep, gravity
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 -1.0 0.0
#walls (liggghts 2.0)
fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0
fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 0.1
fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0
fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.1
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential 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.
#-use the imported mesh as granular wall
#fix bucket_wall all wall/gran/hertz/history 1 0 mesh/gran 1 cad1
#- create single partciles
create_atoms 1 single 0.05 0.025 0.05 units box
set group all diameter 0.0001 density 3000
#cfd coupling
fix cfd all couple/cfd couple_every 100 mpi
fix cfd2 all couple/cfd/force
variable vx equal vx[1]
variable vy equal vy[1]
variable vz equal vz[1]
variable time equal step*dt
fix extra all print 100 "${time} ${vx} ${vy} ${vz}" file ../DEM/post/velocity.txt title "%" screen no
#apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
#screen output
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
run 1
dump dmp all custom 1000 ../DEM/post/dump.liggghts_init id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
run 1 upto

View File

@ -1 +0,0 @@
dummyfile

View File

@ -59,7 +59,7 @@ if [ $postproc == "true" ]
#- get VTK data from liggghts dump file
cd $casePath/DEM/post
python -i $CFDEM_LPP_DIR/lpp.py dump.liggghts_init
python -i $CFDEM_LPP_DIR/lpp.py dump.liggghts_run
#- get VTK data from CFD sim
cd $casePath/CFD
@ -90,5 +90,5 @@ if [ $cleanCase == "true" ]
fi
#- preserve post directory
echo "dummyfile" >> $casePath/DEM/post/dummy
touch $casePath/DEM/post/.gitignore

View File

@ -2,18 +2,15 @@
#===================================================================#
# allrun script for testcase as part of test routine
# run packedBedTemp
# Christoph Goniva - June 2014
# run settlingTest
# Christoph Goniva - August 2011
#===================================================================#
#- define variables
casePath="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"
#- include functions
source $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh
# check if mesh was built
if [ -f "$casePath/CFD/constant/polyMesh/points" ]; then
if [ -f "$casePath/CFD/constant/polyMesh/boundary" ]; then
echo "mesh was built before - using old mesh"
else
echo "mesh needs to be built"
@ -21,27 +18,11 @@ else
blockMesh
fi
# check if DEM case was run
if [ -f "$casePath/DEM/liggghts.restart" ]; then
echo "DEM restart file found"
if [ -f "$casePath/DEM/post/restart/liggghts.restart" ]; then
echo "LIGGGHTS init was run before - using existing restart file"
else
echo "starting DEM run..."
#--------------------------------------------------------------------------------#
#- define variables
logpath="$casePath"
headerText="run_liggghts_packedBedTemp_DEM"
logfileName="log_$headerText"
solverName="in.liggghts_init"
nrProcs=4
machineFileName="none"
debugMode="off"
#--------------------------------------------------------------------------------#
#- clean up case
rm -r $casePath/DEM/post/*
#- call function to run DEM case
parDEMrun $logpath $logfileName $casePath $headerText $solverName $nrProcs $machineFileName $debugMode
#- run DEM init
$casePath/parDEMrun.sh
fi
#- run parallel CFD-DEM in new terminal

View File

@ -132,7 +132,7 @@ oneWayVTKProps
twoWayMPIProps
{
maxNumberOfParticles 10000;
liggghtsPath "../DEM/in.liggghts_resume";
liggghtsPath "../DEM/in.liggghts_run";
}
centreProps

View File

@ -1,73 +1,73 @@
#Particle packing by insertion and successive growing of particles
# Particle packing by insertion and successive growing of particles
atom_style granular
atom_modify map array
boundary m m m
newton off
echo both
atom_style granular
atom_modify map array
boundary m m m
newton off
echo both
communicate single vel yes
communicate single vel yes
units si
processors 1 1 *
units si
processors 1 1 2
region reg block 0. 0.1 0. 0.1 0. 1.1 units box
create_box 1 reg
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
neighbor 0.002 bin
neigh_modify delay 0
#Material properties required for new pair styles
# 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.5
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 model hertz tangential history #Hertzian without cohesion
pair_coeff * *
# pair style
pair_style gran model hertz tangential history #Hertzian without cohesion
pair_coeff * *
timestep 0.00001
timestep 0.00001
#walls
fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.
fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 0.1
fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.
fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.1
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 1.1
# walls
fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0.0
fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 0.1
fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0.0
fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.1
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0.0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 1.1
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
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.
# 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
# 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
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
# 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
# output settings, include total thermal energy
compute rke all erotate/sphere
thermo_style custom step atoms ke c_rke 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 1
dump dmp all custom 1000 post/dump.liggghts_init id 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
run 150000
write_restart liggghts.restart
write_restart post/restart/liggghts.restart

View File

@ -65,7 +65,7 @@ if [ $postproc == "true" ]
#- get VTK data from liggghts dump file
cd $casePath/DEM/post
python -i $CFDEM_LPP_DIR/lpp.py dump.liggghts_init
python -i $CFDEM_LPP_DIR/lpp.py dump.liggghts_run
#- get VTK data from CFD sim
cd $casePath/CFD
@ -83,11 +83,26 @@ if [ $postproc == "true" ]
fi
#- clean up case
echo "deleting data at: $casePath :\n"
source $WM_PROJECT_DIR/bin/tools/CleanFunctions
cd $casePath/CFD
cleanCase
rm -r $casePath/CFD/clockData
rm -r $casePath/DEM/post/*
(cd $casePath/DEM/post && touch dummy)
echo "deleting data at: $casePath : ???\n"
rm -r $casePath/CFD/0.*
rm -r $casePath/CFD/1
rm -r $casePath/CFD/callgrind.*
rm -r $casePath/CFD/*.out
rm -r $casePath/CFD/octave/*.eps
rm -r $casePath/CFD/octave/octave-core
rm -r $casePath/CFD/VTK
rm -r $casePath/CFD/processor*
rm -r $casePath/DEM/post/*.*
rm -r $casePath/DEM/post/restart/*.*
rm -r $casePath/DEM/log.*
rm -r $casePath/CFD/log.*
rm -r $casePath/CFD/probes
rm -r $casePath/CFD/postProcessing
rm -r $casePath/log_*
echo "done"
#- preserve post directory
touch $casePath/DEM/post/.gitignore
touch $casePath/DEM/post/restart/.gitignore