Merge pull request #143 from ramin1728/V-blender

updated V1.0 V-blender
This commit is contained in:
PhasicFlow 2024-12-28 17:45:11 +03:30 committed by GitHub
commit dbb3b5c3a2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
28 changed files with 1066 additions and 818 deletions

View File

@ -6,73 +6,62 @@ objectName interaction;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
materials (lightMat heavyMat wallMat); // a list of materials names
// a list of materials names densities (1000 1500 2500); // density of materials [kg/m3]
materials (lightMat heavyMat wallMat);
// density of materials [kg/m3]
densities (1000 1500 2500);
contactListType sortedContactList; contactListType sortedContactList;
contactSearch
{
method NBS; // method for broad search
updateInterval 10;
sizeRatio 1.1;
cellExtent 0.55;
adjustableBox Yes;
}
model model
{ {
contactForceModel nonLinearLimited; contactForceModel nonLinearLimited;
rollingFrictionModel normal;
rollingFrictionModel normal;
/* /*
Property (lightMat-lightMat lightMat-heavyMat lightMat-wallMat Property (lightMat-lightMat lightMat-heavyMat lightMat-wallMat
heavyMat-heavyMat heavyMat-wallMat heavyMat-heavyMat heavyMat-wallMat
wallMat-wallMat ); wallMat-wallMat);
*/ */
// Young modulus [Pa]
Yeff (1.0e6 1.0e6 1.0e6 Yeff (1.0e6 1.0e6 1.0e6
1.0e6 1.0e6 1.0e6 1.0e6
1.0e6); 1.0e6); // Young modulus [Pa]
// Shear modulus [Pa]
Geff (0.8e6 0.8e6 0.8e6 Geff (0.8e6 0.8e6 0.8e6
0.8e6 0.8e6 0.8e6 0.8e6
0.8e6); 0.8e6); // Shear modulus [Pa]
// Poisson's ratio [-]
nu (0.25 0.25 0.25
0.25 0.25
0.25);
// coefficient of normal restitution
en (0.97 0.97 0.85
0.97 0.85
1.00);
// coefficient of tangential restitution
et (1.0 1.0 1.0
1.0 1.0
1.0);
// dynamic friction
mu (0.65 0.65 0.35
0.65 0.35
0.35);
// rolling friction
mur (0.1 0.1 0.1
0.1 0.1
0.1);
}
contactSearch
{
// method for broad search particle-particle
method NBS;
// method for broad search particle-wall
wallMapping cellMapping;
NBSInfo nu (0.25 0.25 0.25
{ 0.25 0.25
// each 20 timesteps, update neighbor list 0.25); // Poisson's ratio [-]
updateFrequency 10;
// bounding box size to particle diameter (max)
sizeRatio 1.1;
}
cellMappingInfo en (0.97 0.97 0.85
{ 0.97 0.85
// each 20 timesteps, update neighbor list 1.00); // coefficient of normal restitution
updateFrequency 10;
// bounding box for particle-wall search (> 0.5) et (1.0 1.0 1.0
cellExtent 0.6; 1.0 1.0
} 1.0); // coefficient of tangential restitution
mu (0.65 0.65 0.35
0.65 0.35
0.35); // dynamic friction
mur (0.1 0.1 0.1
0.1 0.1
0.1); // rolling friction
} }

View File

@ -6,82 +6,81 @@ objectName particleInsertion;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
active Yes; // is insertion active -> Yes or No
// is insertion active? checkForCollision No; // is checked -> Yes or No
active yes;
// not implemented for yes
collisionCheck No;
/* /*
Two layers of particles are packed one-by-one using 1 insertion steps. Two layers of particles are packed one-by-one using 1 insertion steps
*/ */
// Right Layer Region
layerrightregion
{
// type of insertion region
type cylinderRegion;
// insertion rate (particles/s)
rate 12500;
// Start time of LightParticles insertion (s)
startTime 0;
// End time of LightParticles insertion (s)
endTime 1;
// Time Interval of LightParticles insertion (s)
interval 0.025;
cylinderRegionInfo layerrightregion // Right Layer Region
{
timeControl simulationTime;
regionType cylinder; // type of insertion region
rate 12500; // Right Region Particles Insertion Rate (particles/s)
startTime 0; // Start time of LightParticles insertion (s)
endTime 1; // End time of LightParticles insertion (s)
insertionInterval 0.025; // Time Interval of LightParticles insertion (s)
cylinderInfo
{ {
// Coordinates of cylinderRegion (m,m,m)
p2 (-0.15 0.25 0.05); p2 (-0.15 0.25 0.05); //
p1 (-0.15 0.24 0.05);
// radius of cylinder (m) p1 (-0.15 0.24 0.05); // Bottom of cylinderRegion (m,m,m)
radius 0.035;
radius 0.035; // radius of cylinder (m)
} }
setFields setFields
{ {
// initial velocity of inserted particles velocity realx3 (0.0 -0.6 0.0); // initial velocity of inserted particles
velocity realx3 (0.0 -0.6 0.0);
} }
mixture mixture
{ {
// mixture composition of inserted particles smallSphere 1; // mixture composition of inserted particles
smallSphere 1;
} }
} }
// Left Layer Region
layerleftregion
{
type cylinderRegion;
//Left Region Particles Insertion Rate (particles/s)
rate 7500;
// Start time of LightParticles insertion (s)
startTime 0;
// End time of LightParticles insertion (s)
endTime 1;
// Time Interval of LightParticles insertion (s)
interval 0.025;
cylinderRegionInfo layerleftregion // Left Layer Region
{
timeControl simulationTime;
regionType cylinder; // type of insertion region
rate 7500; // Left Region Particles Insertion Rate (particles/s)
startTime 0; // Start time of LightParticles insertion (s)
endTime 1; // End time of LightParticles insertion (s)
insertionInterval 0.025; // Time Interval of LightParticles insertion (s)
cylinderInfo
{ {
// Coordinates of cylinderRegion (m,m,m) p2 (-0.23 0.25 0.05); // Top of cylinderRegion (m,m,m)
p2 (-0.23 0.25 0.05);
p1 (-0.23 0.24 0.05); p1 (-0.23 0.24 0.05); // Bottom of cylinderRegion (m,m,m)
// radius of cylinder (m)
radius 0.035; radius 0.035; // radius of cylinder (m)
} }
setFields setFields
{ {
velocity realx3 (0.0 -0.6 0.0); velocity realx3 (0.0 -0.6 0.0); // initial velocity of inserted particles
} }
mixture mixture
{ {
largeSphere 1; // only heavySphere largeSphere 1; // only heavySphere
} }
} }

View File

@ -0,0 +1,13 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName sphereDict;
objectType sphereShape;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (smallSphere largeSphere); // names of shapes
diameters (0.004 0.005); // diameter of shapes (m)
materials (lightMat heavyMat); // material names for shapes

View File

@ -0,0 +1,64 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (-0.328 0.095 -0.025); // lower corner point of the box
max (-0.068 0.355 0.125); // upper corner point of the box
}
decomposition
{
direction z;
}
boundaries
{
neighborListUpdateInterval 50; /* Determines how often (how many iterations) do you want to
rebuild the list of particles in the neighbor list
of all boundaries in the simulation domain */
updateInterval 10; // Determines how often do you want to update the new changes in the boundary
neighborLength 0.004; // The distance from the boundary plane within which particles are marked to be in the boundary list
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodict, reflective
}
bottom
{
type exit; // other options: periodict, reflective
}
top
{
type exit; // other options: periodict, reflective
}
rear
{
type exit; // other options: periodict, reflective
}
front
{
type exit; // other options: periodict, reflective
}
}

View File

@ -6,74 +6,77 @@ objectName geometryDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
motionModel rotatingAxis;
// motion model: all surfaces are fixed rotatingAxisInfo
motionModel rotatingAxisMotion; {
rotAxis
{
p1 (-0.1974 0.2269 0); // first point for the axis of rotation
p2 (-0.1974 0.2269 0.1); // second point for the axis of rotation
omega 2.38733; // rotation speed (rad/s) => 15 rpm
startTime 2; // Start time of Geometry Rotating
endTime 9.5; // End time of Geometry Rotating
}
}
surfaces surfaces
{ {
body body
{ {
// type of the wall type stlWall; // type of the wall
type stlWall;
// file name in stl folder file Body.stl; // file name in stl folder
file Body.stl;
// material name of this wall material wallMat; // material name of this wall
material wallMat;
// motion component name motion rotAxis; // motion component name
motion rotAxis;
} }
/* This is a Cylinder Wall at the rear of cylinder */
/*
This is a Cylinder Wall at the rear of cylinder
*/
rearEnd rearEnd
{ {
// type of the wall type cylinderWall; // type of the wall
type cylinderWall;
// first point for the axis of rotation p1 (-0.1974 0.2269 -0.001); // first point for the axis of rotation
p1 (-0.1974 0.2269 -0.001);
// second point for the axis of rotation p2 (-0.1974 0.2269 0.0); // second point for the axis of rotation
p2 (-0.1974 0.2269 0.0);
// Radius of p1 radius1 0.0001; // Radius of p1
radius1 0.0001;
// Radius of p2 radius2 0.12; // Radius of p2
radius2 0.12;
// material name of the wall material wallMat; // material name of the wall
material wallMat;
// motion component name motion rotAxis; // motion component name
motion rotAxis;
} }
/* This a cylinder Wall at the front of Cylinder */
/*
This a cylinder Wall at the front of Cylinder
*/
frontEnd frontEnd
{ {
// type of the wall type cylinderWall; // type of the wall
type cylinderWall;
// first point for the axis of rotation p1 (-0.1974 0.2269 0.0989); // first point for the axis of rotation
p1 (-0.1974 0.2269 0.0989);
// second point for the axis of rotation p2 (-0.1974 0.2269 0.0990); // second point for the axis of rotation
p2 (-0.1974 0.2269 0.0990);
// Radius of p1 radius1 0.0001; // Radius of p1
radius1 0.0001;
// Radius of p2 radius2 0.12; // Radius of p2
radius2 0.12;
// material name of the wall material wallMat; // material name of the wall
material wallMat;
// motion component name motion rotAxis; // motion component name
motion rotAxis;
}
}
// information for rotatingAxisMotion motion model
rotatingAxisMotionInfo
{
rotAxis
{
// first point for the axis of rotation
p1 (-0.1974 0.2269 0);
// second point for the axis of rotation
p2 (-0.1974 0.2269 0.1);
// rotation speed (rad/s) => 15 rpm
omega 2.38733;
// Start time of Geometry Rotating
startTime 2;
// End time of Geometry Rotating
endTime 9.5;
} }
} }

View File

@ -6,33 +6,95 @@ objectName particlesDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
setFields setFields
{ {
/*
Default value for fields defined for particles
These fields should always be defined for simulations with
spherical particles.
*/
defaultValue defaultValue
{ {
// linear velocity (m/s) velocity realx3 (0 0 0); // linear velocity (m/s)
velocity realx3 (0 0 0);
// linear acceleration (m/s2) acceleration realx3 (0 0 0); // linear acceleration (m/s2)
acceleration realx3 (0 0 0);
// rotational velocity (rad/s) rVelocity realx3 (0 0 0); // rotational velocity (rad/s)
rVelocity realx3 (0 0 0);
// name of the particle shape shapeName word smallSphere; // name of the particle shape
shapeName word smallSphere;
} }
selectors selectors
{} {
shapeAssigne
{
selector stridedRange; // other options: box, cylinder, sphere, randomPoints
stridedRangeInfo
{
begin 0; // begin index of points
end 20000; // end index of points
stride 3; // stride for selector
}
fieldValue // fields that the selector is applied to
{
shapeName word sphere1; // sets shapeName of the selected points to largeSphere
}
}
}
} }
// positions particles positionParticles // positions particles
positionParticles
{ {
// creates the required spaces with zero particles (empty). method ordered; // other options: random and empty
method empty;
// maximum number of particles in the simulation
maxNumberOfParticles 20050;
// perform initial sorting based on morton code?
mortonSorting Yes;
mortonSorting Yes; // perform initial sorting based on morton code?
orderedInfo
{
diameter 0.005; // minimum space between centers of particles
numPoints 20000; // number of particles in the simulation
axisOrder (z y x); // axis order for filling the space with particles
}
regionType box; // other options: cylinder and sphere
boxInfo // box information for positioning particles
{
min (-0.08 -0.08 0.015); // lower corner point of the box
max ( 0.08 0.08 0.2); // upper corner point of the box
}
} }

View File

@ -6,43 +6,29 @@ objectName settingsDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
run RotatingDrumwithBaffles;
run RotatingDrumwithBaffles; dt 0.00001; // time step for integration (s)
// time step for integration (s) startTime 0; // start time for simulation
dt 0.00001;
// start time for simulation endTime 10; // end time for simulation
startTime 0;
// end time for simulation saveInterval 0.05; // time interval for saving the simulation
endTime 10;
// time interval for saving the simulation timePrecision 6; // maximum number of digits for time folder
saveInterval 0.05;
// maximum number of digits for time folder g (0 -9.8 0); // gravity vector (m/s2)
timePrecision 6;
// gravity vector (m/s2) includeObjects (diameter); // save necessary (i.e., required) data on disk
g (0 -9.8 0);
/*Simulation domain*/ // exclude unnecessary data from saving on disk
/* Every particles that goes outside this domain is deleted.*/ excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
domain
{
min (-0.328 0.095 -0.025);
max (-0.068 0.355 0.125);
}
// integration method integrationMethod AdamsBashforth2; // integration method
integrationMethod AdamsBashforth3;
// binary or ascii for saving data writeFormat ascii; // data writting format (ascii or binary)
writeFormat ascii;
// report timers? timersReport Yes; // report timers (Yes or No)
timersReport Yes;
// time interval for reporting timers timersReportInterval 0.01; // time interval for reporting timers
timersReportInterval 0.01;

View File

@ -6,70 +6,49 @@ objectName interaction;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
materials (wallMat lightMat); // a list of materials names
// a list of materials names densities (1000 1000); // density of materials [kg/m3]
materials (wallMat lightMat);
// density of materials [kg/m3]
densities (1000 1000);
contactListType sortedContactList; contactListType sortedContactList;
model
{
contactForceModel nonLinearNonLimited;
rollingFrictionModel normal;
// Young modulus [Pa]
Yeff (1.0e6 1.0e6
1.0e6);
// Shear modulus [Pa]
Geff (0.8e6 0.8e6
0.8e6);
// Poisson's ratio [-]
nu (0.25 0.25
0.25);
// coefficient of normal restitution
en (0.97 0.85
0.97);
// dynamic friction
mu (0.65 0.35
0.65);
// rolling friction
mur (0.1 0.1
0.1);
}
contactSearch contactSearch
{ {
// method for broad search particle-particle method NBS; // method for broad search
method NBS;
// method for broad search particle-wall updateInterval 10;
wallMapping cellMapping;
NBSInfo sizeRatio 1.1;
{
// each 20 timesteps, update neighbor list
updateFrequency 20;
// bounding box size to particle diameter (max) cellExtent 0.55;
sizeRatio 1.1;
}
cellMappingInfo adjustableBox Yes;
{ }
// each 20 timesteps, update neighbor list
updateFrequency 20;
// bounding box for particle-wall search (> 0.5) model
cellExtent 0.7; {
} contactForceModel nonLinearNonLimited;
rollingFrictionModel normal;
Yeff (1.0e6 1.0e6
1.0e6); // Young modulus [Pa]
Geff (0.8e6 0.8e6
0.8e6); // Shear modulus [Pa]
nu (0.25 0.25
0.25); // Poisson's ratio [-]
en (0.97 0.85
0.97); // coefficient of normal restitution
mu (0.65 0.35
0.65); // dynamic friction
mur (0.1 0.1
0.1); // rolling friction
} }

View File

@ -6,97 +6,86 @@ objectName particleInsertion;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
active Yes; // is insertion active -> Yes or No
// is insertion active? checkForCollision No; // is checked -> Yes or No
active yes;
// not implemented for yes
collisionCheck No;
/* /*
two layers of particles are packed one-by-one using tho insertion steps. Two layers of particles are packed one-by-one using tho insertion steps
*/ */
rightregion rightregion
{ {
// type of insertion region timeControl simulationTime;
type cylinderRegion;
// insertion rate (particles/s) regionType cylinder; // type of insertion region
rate 10000;
// start time of small particles insertion (s) rate 10000; // Particles Insertion Rate (particles/s)
startTime 0.0;
// end time of small particles insertion (s) startTime 0.0; // start time of small particles insertion (s)
endTime 1;
// time interval of small particles insertion (s) endTime 1; // end time of small particles insertion (s)
interval 0.025;
cylinderRegionInfo insertionInterval 0.025; // time interval of small particles insertion (s)
cylinderInfo
{ {
// radius of cylinder (m) /* coordinates of center of both ends of the insertion
radius 0.1;
cylinder on the right side of the V-blender (m,m,m) */
// coordinates of center of both ends of the insertion cylinder on
// the right side of the V-blender (m,m,m)
p1 (0.0950615 0.12 0.5011585); p1 (0.0950615 0.12 0.5011585);
p2 (0.1150615 0.12 0.4811585); p2 (0.1150615 0.12 0.4811585);
radius 0.1; // radius of cylinder (m)
} }
setFields setFields
{ {
// initial velocity of inserted particles velocity realx3 (1.2 0.0 -1.2); // initial velocity of inserted particles
velocity realx3 (1.2 0.0 -1.2);
} }
mixture mixture
{ {
// first layer of inserted particles smallSphere 1; // first layer of inserted particles
smallSphere 1;
} }
} }
leftregion leftregion
{ {
// type of insertion region timeControl simulationTime;
type cylinderRegion;
// insertion rate (particles/s) regionType cylinder; // type of insertion region
rate 10000;
// start time of large particles insertion (s) rate 10000; // Particles Insertion Rate (particles/s)
startTime 1.5;
// end time of large particles insertion (s) startTime 1.5; // start time of large particles insertion (s)
endTime 2.5;
// time interval of large particles insertion (s) endTime 2.5; // end time of large particles insertion (s)
interval 0.025;
cylinderRegionInfo insertionInterval 0.025; // time interval of large particles insertion (s)
cylinderInfo
{ {
// radius of cylinder (m) /* coordinates of center of both ends of the insertion
radius 0.1;
// coordinates of center of both ends of the insertion cylinder on cylinder on the left side of the V-blender (m,m,m) */
// the left side of the V-blender (m,m,m)
p1 ( 0.7562545 0.12 0.50079); p1 ( 0.7562545 0.12 0.50079);
p2 ( 0.7362545 0.12 0.48079);
p2 ( 0.7362545 0.12 0.48079);
radius 0.1; // radius of cylinder (m)
} }
setFields setFields
{ {
// initial velocity of inserted particles velocity realx3 (-1.2 0.0 -1.2); // initial velocity of inserted particles
velocity realx3 (-1.2 0.0 -1.2);
} }
mixture mixture
{ {
// second layer of inserted particles largeSphere 1; // second layer of inserted particles
largeSphere 1;
} }
} }

View File

@ -0,0 +1,13 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName sphereDict;
objectType sphereShape;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (smallSphere largeSphere); // names of particles
diameters (0.01 0.0101); // diameter of particles
materials (lightMat lightMat); // material names for particles

View File

@ -0,0 +1,64 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (-0.1 -0.4 0); // lower corner point of the box
max (0.86 0.6 0.6); // upper corner point of the box
}
decomposition
{
direction z;
}
boundaries
{
neighborListUpdateInterval 50; /* Determines how often (how many iterations) do you want to
rebuild the list of particles in the neighbor list
of all boundaries in the simulation domain */
updateInterval 10; // Determines how often do you want to update the new changes in the boundary
neighborLength 0.004; // The distance from the boundary plane within which particles are marked to be in the boundary list
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodict, reflective
}
bottom
{
type exit; // other options: periodict, reflective
}
top
{
type exit; // other options: periodict, reflective
}
rear
{
type exit; // other options: periodict, reflective
}
front
{
type exit; // other options: periodict, reflective
}
}

View File

@ -6,49 +6,37 @@ objectName geometryDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
motionModel rotatingAxis; // motion model: rotating object around an axis
// motion model: rotating object around an axis rotatingAxisInfo // information for rotatingAxis motion model
motionModel rotatingAxisMotion;
surfaces
{
body
{
// type of the wall
type stlWall;
// file name in stl folder
file body.stl;
// material name of this wall
material wallMat;
// motion component name
motion rotAxis;
}
}
// information for rotatingAxisMotion motion model
rotatingAxisMotionInfo
{ {
rotAxis rotAxis
{ {
// first point for the axis of rotation p1 (0.128228 0.116446 0.297901); // first point for the axis of rotation
p1 (0.128228 0.116446 0.297901);
// second point for the axis of rotation p2 (0.722596 0.116459 0.297901); // second point for the axis of rotation
p2 (0.722596 0.116459 0.297901);
// rotation speed (rad/s) omega 3.14; // rotation speed (rad/s)
omega 3.14;
// start time of rotation startTime 3; // start time of rotation
startTime 3;
// end time of rotation endTime 10; // end time of rotation
endTime 10;
} }
} }
surfaces
{
body
{
type stlWall; // type of the wall
file body.stl; // file name in stl folder
material wallMat; // material name of this wall
motion otAxis; // motion component name
}
}

View File

@ -6,43 +6,74 @@ objectName particlesDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
setFields setFields
{ {
/* /*
Default value for fields defined for particles Default value for fields defined for particles
These fields should always be defined for simulations with
spherical particles.
*/
defaultValue These fields should always be defined for simulations with
spherical particles.
*/
defaultValue
{
velocity realx3 (0 0 0); // linear velocity (m/s)
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
rVelocity realx3 (0 0 0); // rotational velocity (rad/s)
shapeName word smallSphere; // name of the particle shape
}
selectors
{
shapeAssigne
{
selector stridedRange; // other options: box, cylinder, sphere, randomPoints
stridedRangeInfo
{
begin 0; // begin index of points
end 24000; // end index of points
stride 3; // stride for selector
}
fieldValue // fields that the selector is applied to
{
shapeName word sphere1; // sets shapeName of the selected points to largeSphere
}
}
}
}
positionParticles // positions particles
{
method ordered; // ordered positioning
mortonSorting Yes; // perform initial sorting based on morton code?
orderedInfo
{ {
// linear velocity (m/s) diameter 0.0101; // minimum space between centers of particles
velocity realx3 (0 0 0);
// linear acceleration (m/s2) numPoints 25000; // number of particles in the simulation
acceleration realx3 (0 0 0);
// rotational velocity (rad/s) axisOrder (x y z); // axis order for filling the space with particles
rVelocity realx3 (0 0 0);
// name of the particle shape
shapeName word smallSphere;
} }
selectors regionType cylinder; // other options: cylinder and sphere
{}
} cylinderInfo // cylinder for positioning particles
{
// positions particles p1 (0.0 0.0 0.09); // Coordinates of bottom cylinderRegion (m,m,m)
positionParticles
{ p2 (0.0 0.0 0.21); // Coordinates of top cylinderRegion (m,m,m)
// no particle is initially in the simulation
method empty; radius 0.09; // radius of cylinder
}
// maximum number of particles in the simulation
maxNumberOfParticles 25000;
// perform initial sorting based on morton code?
mortonSorting Yes;
} }

View File

@ -6,45 +6,29 @@ objectName settingsDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
run rotatingVblender; run rotatingVblender;
// time step for integration (s) dt 0.00001; // time step for integration (s)
dt 0.00001;
// start time for simulation startTime 0; // start time for simulation
startTime 0;
// end time for simulation endTime 10; // end time for simulation
endTime 10;
// time interval for saving the simulation saveInterval 0.05; // time interval for saving the simulation
saveInterval 0.05;
// maximum number of digits for time folder timePrecision 6; // maximum number of digits for time folder
timePrecision 6;
// gravity vector (m/s2) g (0 0 -9.8); // gravity vector (m/s2)
g (0 0 -9.8);
/* includeObjects (diameter); // save necessary (i.e., required) data on disk
Simulation domain
every particles that goes outside this domain is deleted.
*/
domain // exclude unnecessary data from saving on disk
{ excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
min (-0.1 -0.4 0);
max (0.86 0.6 0.6);
}
// integration method integrationMethod AdamsBashforth2; // integration method
integrationMethod AdamsBashforth2;
writeFormat ascii; writeFormat ascii; // data writting format (ascii or binary)
// report timers? timersReport Yes; // report timers (Yes or No)
timersReport Yes;
// time interval for reporting timers timersReportInterval 0.01; // time interval for reporting timers
timersReportInterval 0.01;

View File

@ -6,49 +6,45 @@ objectName interaction;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
materials (prop1); // a list of materials names
materials (prop1); // a list of materials names densities (1000.0); // density of materials [kg/m3]
densities (1000.0); // density of materials [kg/m3]
contactListType sortedContactList; contactListType sortedContactList;
model
{
contactForceModel nonLinearNonLimited;
rollingFrictionModel normal;
Yeff (1.0e6); // Young modulus [Pa]
Geff (0.8e6); // Shear modulus [Pa]
nu (0.25); // Poisson's ratio [-]
en (0.7); // coefficient of normal restitution
et (1.0); // coefficient of tangential restitution
mu (0.3); // dynamic friction
mur (0.1); // rolling friction
}
contactSearch contactSearch
{ {
method NBS; // method for broad search particle-particle method NBS; // method for broad search
wallMapping cellMapping; // method for broad search particle-wall
NBSInfo updateInterval 10;
{
updateFrequency 10; // each 20 timesteps, update neighbor list
sizeRatio 1.1; // bounding box size to particle diameter (max)
}
cellMappingInfo sizeRatio 1.1;
{
updateFrequency 10; // each 20 timesteps, update neighbor list
cellExtent 0.6; // bounding box for particle-wall search (> 0.5)
}
cellExtent 0.55;
adjustableBox Yes;
} }
model
{
contactForceModel nonLinearNonLimited;
rollingFrictionModel normal;
Yeff (1.0e6); // Young modulus [Pa]
Geff (0.8e6); // Shear modulus [Pa]
nu (0.25); // Poisson's ratio [-]
en (0.7); // coefficient of normal restitution
et (1.0); // coefficient of tangential restitution
mu (0.3); // dynamic friction
mur (0.1); // rolling friction
}

View File

@ -6,39 +6,45 @@ objectName particleInsertion;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
active Yes; // is insertion active -> Yes or No
checkForCollision No; // is checked -> Yes or No
active yes; // is insertion active?
collisionCheck No; // not implemented for yes
/* /*
five layers of particles are packed one-by-one using 5 insertion steps. five layers of particles are packed one-by-one using 5 insertion steps
*/ */
layer0 layer0
{ {
type cylinderRegion; // type of insertion region timeControl simulationTime;
rate 5000; // insertion rate (particles/s)
startTime 0; // (s)
endTime 100; // (s)
interval 0.03; //s
cylinderRegionInfo regionType cylinder; // type of insertion region
rate 5000; // Particles Insertion Rate (particles/s)
startTime 0; // Start time of LightParticles insertion (s)
endTime 100; // End time of LightParticles insertion (s)
insertionInterval 0.03; // Time Interval of LightParticles insertion (s)
cylinderInfo
{ {
radius 0.09; // radius of cylinder (m) p1 (0.22 0.730 0.25); // Bottom of cylinderRegion(m,m,m)
p1 (0.22 0.73 0.25); // (m,m,m)
p2 (0.22 0.742 0.25); // (m,m,m) p2 (0.22 0.742 0.25); // Top of cylinderRegion (m,m,m)
radius 0.09; // radius of cylinder (m)
} }
setFields setFields
{ {
velocity realx3 (0.0 -0.6 -0); // initial velocity of inserted particles velocity realx3 (0.0 -0.6 -0); // initial velocity of inserted particles
} }
mixture mixture
{ {
sphere1 1; // mixture composition of inserted particles sphere1 1; // mixture composition of inserted particles
} }
} }

View File

@ -0,0 +1,13 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName sphereDict;
objectType sphereShape;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (sphere1); // names of shapes
diameters (0.01); // diameter of shapes
materials (prop1); // material names for shapes

View File

@ -0,0 +1,64 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (0.0 -0.06 0.001); // lower corner point of the box
max (1.2 1 0.5); // upper corner point of the box
}
decomposition
{
direction z;
}
boundaries
{
neighborListUpdateInterval 50; /* Determines how often (how many iterations) do you want to
rebuild the list of particles in the neighbor list
of all boundaries in the simulation domain */
updateInterval 10; // Determines how often do you want to update the new changes in the boundary
neighborLength 0.004; // The distance from the boundary plane within which particles are marked to be in the boundary list
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodict, reflective
}
bottom
{
type exit; // other options: periodict, reflective
}
top
{
type exit; // other options: periodict, reflective
}
rear
{
type exit; // other options: periodict, reflective
}
front
{
type exit; // other options: periodict, reflective
}
}

View File

@ -6,40 +6,48 @@ objectName geometryDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
motionModel rotatingAxis; // motion model: rotating object around an axis
// motion model: rotating object around an axis rotatingAxisInfo
motionModel rotatingAxisMotion; {
rotAxis
{
p1 (1.09635 0.2010556 0.22313511); // first point for the axis of rotation
p2 (0.0957492 0.201556 0.22313511); // second point for the axis of rotation
omega 3; // rotation speed (rad/s)
startTime 5; // Start time of Geometry Rotating
endTime 30; // End time of Geometry Rotating
}
}
surfaces surfaces
{ {
helix helix
{ {
type stlWall; // type of the wall type stlWall; // type of the wall
file helix.stl; // file name in stl folder
material prop1; // material name of this wall file helix.stl; // file name in stl folder
motion rotAxis; // motion component name
material prop1; // material name of this wall
motion rotAxis; // motion component name
} }
shell shell
{ {
type stlWall; // type of the wall type stlWall; // type of the wall
file shell.stl; // file name in stl folder
material prop1; // material name of this wall
motion none; // motion component name
}
} file shell.stl; // file name in stl folder
material prop1; // material name of this wall
rotatingAxisMotionInfo motion none; // motion component name
{
rotAxis
{
p1 (1.09635 0.2010556 0.22313511); // first point for the axis of rotation
p2 (0.0957492 0.201556 0.22313511); // second point for the axis of rotation
omega 3; // rotation speed (rad/s)
startTime 5;
endTime 30;
} }
} }

View File

@ -6,35 +6,72 @@ objectName particlesDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
// positions particles
positionParticles
{
method empty; // creates the required fields with zero particles (empty).
maxNumberOfParticles 50000; // maximum number of particles in the simulation
mortonSorting Yes; // perform initial sorting based on morton
}
setFields setFields
{ {
/*
Default value for fields defined for particles
These fields should always be defined for simulations with
spherical particles.
*/
defaultValue defaultValue
{ {
// linear velocity (m/s) velocity realx3 (0 0 0); // linear velocity (m/s)
velocity realx3 (0 0 0);
// linear acceleration (m/s2) acceleration realx3 (0 0 0); // linear acceleration (m/s2)
acceleration realx3 (0 0 0);
// rotational velocity (rad/s) rVelocity realx3 (0 0 0); // rotational velocity (rad/s)
rVelocity realx3 (0 0 0);
// name of the particle shape shapeName word sphere1; // name of the particle shape
shapeName word sphere1;
} }
selectors selectors
{} {
shapeAssigne
{
selector stridedRange; // other options: box, cylinder, sphere, randomPoints
stridedRangeInfo
{
begin 0; // begin index of points
end 5000; // end index of points
stride 3; // stride for selector
}
fieldValue // fields that the selector is applied to
{
shapeName word sphere1; // sets shapeName of the selected points to largeSphere
}
}
}
} }
positionParticles // positions particles
{
method ordered; // other options: random and empty
mortonSorting Yes; // perform initial sorting based on morton code?
orderedInfo
{
diameter 0.01; // minimum space between centers of particles
numPoints 5000; // number of particles in the simulation
axisOrder (z y x); // axis order for filling the space with particles
}
regionType box; // other options: cylinder and sphere
boxInfo // box information for positioning particles
{
min (-0.08 -0.08 0.015); // lower corner point of the box
max (0.08 0.08 1); // upper corner point of the box
}
}

View File

@ -6,33 +6,29 @@ objectName settingsDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
run screwConveyor;
run layerdSiloFilling; dt 0.0001; // time step for integration (s)
dt 0.0001; // time step for integration (s) startTime 0; // start time for simulation
startTime 0; // start time for simulation endTime 20; // end time for simulation
endTime 20; // end time for simulation saveInterval 0.05; // time interval for saving the simulation
saveInterval 0.05; // time interval for saving the simulation timePrecision 6; // maximum number of digits for time folder
timePrecision 6; // maximum number of digits for time folder g (0 -9.8 0); // gravity vector (m/s2)
g (0 -9.8 0); // gravity vector (m/s2) includeObjects (diameter); // save necessary (i.e., required) data on disk
/* // exclude unnecessary data from saving on disk
Simulation domain excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
every particles that goes outside this domain is deleted.
*/
domain
{
min (0.0 -0.06 0.001);
max (1.2 1 0.5);
}
integrationMethod AdamsBashforth3; // integration method integrationMethod AdamsBashforth2; // integration method
timersReport Yes; // report timers? writeFormat ascii; // data writting format (ascii or binary)
timersReportInterval 0.01; // time interval for reporting timers timersReport Yes; // report timers (Yes or No)
timersReportInterval 0.01; // time interval for reporting timers

View File

@ -6,72 +6,47 @@ objectName interaction;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
materials (solidProperty); // a list of materials names
// a list of materials names densities (1000.0); // density of materials [kg/m3]
materials (solidProperty);
// density of materials [kg/m3]
densities (1000.0);
contactListType sortedContactList; contactListType sortedContactList;
model
{
contactForceModel nonLinearNonLimited;
rollingFrictionModel normal;
/*
Property (solidProperty-solidProperty);
*/
// Young modulus [Pa]
Yeff (1.0e6);
// Shear modulus [Pa]
Geff (0.8e6);
// Poisson's ratio [-]
nu (0.25);
// coefficient of normal restitution
en (0.7);
// coefficient of tangential restitution
et (1.0);
// dynamic friction
mu (0.3);
// rolling friction
mur (0.1);
}
contactSearch contactSearch
{ {
method NBS; // method for broad search
// method for broad search particle-particle updateInterval 10;
method NBS;
// method for broad search particle-wall sizeRatio 1.1;
wallMapping cellMapping;
NBSInfo cellExtent 0.55;
{
// each 20 timesteps, update neighbor list
updateFrequency 20;
// bounding box size to particle diameter (max)
sizeRatio 1.1;
}
cellMappingInfo
{
// each 20 timesteps, update neighbor list
updateFrequency 20;
// bounding box for particle-wall search (> 0.5)
cellExtent 0.7;
}
adjustableBox Yes;
} }
model
{
contactForceModel nonLinearNonLimited;
rollingFrictionModel normal;
/*
Property (solidProperty-solidProperty)
*/
Yeff (1.0e6); // Young modulus [Pa]
Geff (0.8e6); // Shear modulus [Pa]
nu (0.25); // Poisson's ratio [-]
en (0.7); // coefficient of normal restitution
et (1.0); // coefficient of tangential restitution
mu (0.3); // dynamic friction
mur (0.1); // rolling friction
}

View File

@ -6,11 +6,8 @@ objectName particleInsertion;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
active No; // is insertion active -> Yes or No
// is insertion active? collisionCheck No; // is checked -> Yes or No
active no;
// not implemented for yes
collisionCheck No;

View File

@ -6,12 +6,8 @@ objectName sphereDict;
objectType sphereShape; objectType sphereShape;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
names (sphere1); // name of shapes
// names of particles diameters (0.005); // diameter of shapes (m)
names (smallSphere largeSphere);
// diameter of particles materials (solidProperty); // material name for shapes
diameters (0.01 0.0101);
// material names for particles
materials (lightMat lightMat);

View File

@ -0,0 +1,64 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (-0.3 -0.3 -0.3); // lower corner point of the box
max (0.5 0.5 0.5); // upper corner point of the box
}
decomposition
{
direction z;
}
boundaries
{
neighborListUpdateInterval 50; /* Determines how often (how many iterations) do you want to
rebuild the list of particles in the neighbor list
of all boundaries in the simulation domain */
updateInterval 10; // Determines how often do you want to update the new changes in the boundary
neighborLength 0.004; // The distance from the boundary plane within which particles are marked to be in the boundary list
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodict, reflective
}
bottom
{
type exit; // other options: periodict, reflective
}
top
{
type exit; // other options: periodict, reflective
}
rear
{
type exit; // other options: periodict, reflective
}
front
{
type exit; // other options: periodict, reflective
}
}

View File

@ -6,217 +6,154 @@ objectName geometryDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
motionModel rotatingAxis; // motion model: rotating object around an axis
// motion model: rotating object around an axis rotatingAxisInfo // information for rotatingAxisMotion motion model
motionModel rotatingAxisMotion;
// information for rotatingAxisMotion motion model
rotatingAxisMotionInfo
{ {
axisOfRotation axisOfRotation
{ {
p1 (-0.1 0.0 0.15); // first point for the axis of rotation p1 (-0.1 0.0 0.15); // first point for the axis of rotation
p2 ( 0.1 0.0 0.15); // second point for the axis of rotation
omega 1.5708; // rotation speed ==> 15 rad/s p2 ( 0.1 0.0 0.15); // second point for the axis of rotation
// Start time of Geometry Rotating (s) omega 1.5708; // rotation speed ==> 15 rad/s
startTime 0.5;
// End time of Geometry Rotating (s) startTime 0.5; // Start time of Geometry Rotating (s)
endTime 9.5;
endTime 9.5; // End time of Geometry Rotating (s)
} }
} }
surfaces surfaces
{ {
topGate topGate
{ {
// type of wall type cylinderWall; // type of wall
type cylinderWall;
// begin point of cylinder axis p1 (0.0 0.0 0.3); // begin point of cylinder axis
p1 (0.0 0.0 0.3);
// end point of cylinder axis p2 (0.0 0.0 0.301); // end point of cylinder axis
p2 (0.0 0.0 0.301);
// radius at p1 radius1 0.03; // radius at p1
radius1 0.03;
// radius at p2 radius2 0.0001; // radius at p2
radius2 0.0001;
// material of wall material solidProperty; // material of wall
material solidProperty;
// motion component name motion axisOfRotation; // motion component name
motion axisOfRotation;
} }
topCylinder topCylinder
{ {
// type of the wall type cylinderWall; // type of the wall
type cylinderWall;
// begin point of cylinder axis p1 (0.0 0.0 0.28); // begin point of cylinder axis
p1 (0.0 0.0 0.28);
// end point of cylinder axis p2 (0.0 0.0 0.3); // end point of cylinder axis
p2 (0.0 0.0 0.3);
// radius at p1 radius1 0.03; // radius at p1
radius1 0.03;
// radius at p2 radius2 0.03; // radius at p2
radius2 0.03;
// number of divisions resolution 36; // number of divisions
resolution 36;
// material name of this wall material solidProperty; // material name of this wall
material solidProperty;
// motion component name motion axisOfRotation; // motion component name
motion axisOfRotation;
} }
coneShelltop coneShelltop
{ {
// type of the wall type cylinderWall; // type of the wall
type cylinderWall;
// begin point of cylinder axis p1 (0.0 0.0 0.2); // begin point of cylinder axis
p1 (0.0 0.0 0.2);
// end point of cylinder axis p2 (0.0 0.0 0.28); // end point of cylinder axis
p2 (0.0 0.0 0.28);
// radius at p1 radius1 0.1; // radius at p1
radius1 0.1;
// radius at p2 radius2 0.03; // radius at p2
radius2 0.03;
// number of divisions resolution 36; // number of divisions
resolution 36;
// material name of this wall material solidProperty; // material name of this wall
material solidProperty;
// motion component name motion axisOfRotation; // motion component name
motion axisOfRotation;
} }
cylinderShell cylinderShell
{ {
// type of the wall type cylinderWall; // type of the wall
type cylinderWall;
// begin point of cylinder axis p1 (0.0 0.0 0.1); // begin point of cylinder axis
p1 (0.0 0.0 0.1);
// end point of cylinder axis p2 (0.0 0.0 0.2); // end point of cylinder axis
p2 (0.0 0.0 0.2);
// radius at p1 radius1 0.1; // radius at p1
radius1 0.1;
// radius at p2 radius2 0.1; // radius at p2
radius2 0.1;
// number of divisions resolution 36; // number of divisions
resolution 36;
// material name of this wall material solidProperty; // material name of this wall
material solidProperty;
// motion component name motion axisOfRotation; // motion component name
motion axisOfRotation;
} }
coneShelldown coneShelldown
{ {
type cylinderWall; // type of the wall
// type of the wall p1 (0.0 0.0 0.02); // begin point of cylinder axis
type cylinderWall;
// begin point of cylinder axis p2 (0.0 0.0 0.1); // end point of cylinder axis
p1 (0.0 0.0 0.02);
// end point of cylinder axis radius1 0.03; // radius at p1
p2 (0.0 0.0 0.1);
// radius at p1 radius2 0.1; // radius at p2
radius1 0.03;
// radius at p2 resolution 36; // number of divisions
radius2 0.1;
// number of divisions material solidProperty; // material name of this wall
resolution 36;
// material name of this wall motion axisOfRotation; // motion component name
material solidProperty;
// motion component name
motion axisOfRotation;
} }
bottomCylinder bottomCylinder
{ {
// type of the wall type cylinderWall; // type of the wall
type cylinderWall;
// begin point of cylinder axis p1 (0.0 0.0 0.0); // begin point of cylinder axis
p1 (0.0 0.0 0.0);
// end point of cylinder axis p2 (0.0 0.0 0.02); // end point of cylinder axis
p2 (0.0 0.0 0.02);
// radius at p1 radius1 0.03; // radius at p1
radius1 0.03;
// radius at p2 radius2 0.03; // radius at p2
radius2 0.03;
// number of divisions resolution 36; // number of divisions
resolution 36;
// material name of this wall material solidProperty; // material name of this wall
material solidProperty;
// motion component name motion axisOfRotation; // motion component name
motion axisOfRotation;
} }
exitGate exitGate
{ {
type cylinderWall; // type of the wall
// type of the wall p1 (0.0 0.0 -0.001); // begin point of cylinder axis
type cylinderWall;
// begin point of cylinder axis p2 (0.0 0.0 0.0); // end point of cylinder axis
p1 (0.0 0.0 -0.001);
// end point of cylinder axis radius1 0.03; // radius at p1
p2 (0.0 0.0 0.0);
// radius at p1 radius2 0.0001; // radius at p2
radius1 0.03;
// radius at p2 resolution 36; // number of divisions
radius2 0.0001;
// number of divisions material solidProperty; // material name of this wall
resolution 36;
// material name of this wall motion axisOfRotation; // motion component name
material solidProperty;
// motion component name
motion axisOfRotation;
} }
} }

View File

@ -6,66 +6,74 @@ objectName particlesDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
setFields setFields
{ {
/* /*
Default value for fields defined for particles Default value for fields defined for particles
These fields should always be defined for simulations with
spherical particles. These fields should always be defined for simulations with
spherical particles.
*/ */
defaultValue defaultValue
{ {
// linear velocity (m/s) velocity realx3 (0 0 0); // linear velocity (m/s)
velocity realx3 (0 0 0);
// linear acceleration (m/s2) acceleration realx3 (0 0 0); // linear acceleration (m/s2)
acceleration realx3 (0 0 0);
// rotational velocity (rad/s) rVelocity realx3 (0 0 0); // rotational velocity (rad/s)
rVelocity realx3 (0 0 0);
// name of the particle shape shapeName word sphere1; // name of the particle shape
shapeName word sphere1;
} }
selectors selectors
{} {
shapeAssigne
{
selector stridedRange; // other options: box, cylinder, sphere, randomPoints
stridedRangeInfo
{
begin 0; // begin index of points
end 24000; // end index of points
stride 3; // stride for selector
}
fieldValue // fields that the selector is applied to
{
shapeName word sphere1; // sets shapeName of the selected points to largeSphere
}
}
}
} }
// positions particles positionParticles // positions particles
positionParticles
{ {
// ordered positioning
method positionOrdered;
// maximum number of particles in the simulation method ordered; // ordered positioning
maxNumberOfParticles 25001;
// perform initial sorting based on morton code? mortonSorting Yes; // perform initial sorting based on morton code?
mortonSorting Yes;
// cylinder for positioning particles orderedInfo
cylinder
{ {
// Coordinates of top cylinderRegion (m,m,m) diameter 0.005; // minimum space between centers of particles
p1 (0.0 0.0 0.09);
p2 (0.0 0.0 0.21); numPoints 24000; // number of particles in the simulation
// radius of cylinder axisOrder (x y z); // axis order for filling the space with particles
radius 0.09;
} }
positionOrderedInfo regionType cylinder; // other options: cylinder and sphere
cylinderInfo // cylinder for positioning particles
{ {
// minimum space between centers of particles p1 (0.0 0.0 0.09); // Coordinates of bottom cylinderRegion (m,m,m)
diameter 0.005;
// number of particles in the simulation p2 (0.0 0.0 0.21); // Coordinates of top cylinderRegion (m,m,m)
numPoints 24000;
// axis order for filling the space with particles radius 0.09; // radius of cylinder
axisOrder (x y z);
} }
} }

View File

@ -3,45 +3,32 @@
| copyright: www.cemf.ir | | copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */ \* ------------------------------------------------------------------------- */
objectName settingsDict; objectName settingsDict;
objectType dictionary;; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
run toteblender;
run toteBlender; dt 0.00004; // time step for integration (s)
// time step for integration (s) startTime 0; // start time for simulation
dt 0.00004;
// start time for simulation endTime 10; // end time for simulation
startTime 0;
// end time for simulation saveInterval 0.05; // time interval for saving the simulation
endTime 10;
// time interval for saving the simulation timePrecision 3; // maximum number of digits for time folder
saveInterval 0.05;
// maximum number of digits for time folder g (0 0 -9.8); // gravity vector (m/s2)
timePrecision 3;
// gravity vector (m/s2) includeObjects (diameter); // save necessary (i.e., required) data on disk
g (0 0 -9.8);
/* Simulation domain */ // exclude unnecessary data from saving on disk
/* every particles that goes outside this domain is deleted. */ excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
domain
{
min (-0.3 -0.3 -0.3);
max (0.5 0.5 0.5);
}
// integration method integrationMethod AdamsBashforth2; // integration method
integrationMethod AdamsMoulton4;
writeFormat ascii; writeFormat ascii; // data writting format (ascii or binary)
// report timers? timersReport Yes; // report timers (Yes or No)
timersReport Yes;
// time interval for reporting timers timersReportInterval 0.02; // time interval for reporting timers
timersReportInterval 0.02;