screwConveyor updated.

This commit is contained in:
Ramin Khodabandeh 2024-05-28 16:40:44 +04:30
parent a6185d1362
commit 209be098b4
7 changed files with 185 additions and 105 deletions

View File

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

View File

@ -6,11 +6,9 @@ objectName particleInsertion;
objectType dicrionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
active yes; // is insertion active -> yes or no
active yes; // is insertion active?
collisionCheck No; // not implemented for yes
checkForCollision No; // is checked -> yes or no
/*
five layers of particles are packed one-by-one using 5 insertion steps.
@ -18,29 +16,42 @@ five layers of particles are packed one-by-one using 5 insertion steps.
layer0
{
type cylinderRegion; // type of insertion region
rate 5000; // insertion rate (particles/s)
startTime 0; // (s)
endTime 100; // (s)
interval 0.03; //s
regionType cylinder; // type of insertion region
cylinderRegionInfo
cylinderInfo
{
radius 0.09; // radius of cylinder (m)
p1 (0.22 0.73 0.25); // (m,m,m)
p2 (0.22 0.742 0.25); // (m,m,m)
// coordinates of center of both ends of the insertion cylinder on
// the right side of the screwConveyor(m,m,m)
p1 (0.22 0.73 0.25); // (m,m,m)
p2 (0.22 0.742 0.25); // (m,m,m)
radius 0.09; // radius of cylinder (m)
}
timeControl simulationTime;
insertionInterval 0.03; // seconds
rate 5000; // insertion rate (particles/s)
startTime 0.0; // seconds
endTime 100.0; // seconds
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
{
sphere1 1; // mixture composition of inserted particles
sphere1 1; // mixture composition of inserted particles
}
}

View File

@ -6,7 +6,10 @@ objectName sphereDict;
objectType sphereShape;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (sphere1); // names of shapes
diameters (0.01); // diameter of shapes
materials (prop1); // material names for shapes
names (sphere1); // names of shapes
diameters (0.01); // diameter of shapes
materials (prop1); // material names for shapes

View File

@ -0,0 +1,58 @@
/* -------------------------------*- 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);
max (1.2 1 0.5);
}
boundaries
{
// 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
neighborListUpdateInterval 10;
// Determines how often do you want to update the new changes in the boundary
updateInterval 1;
// The distance from the boundary plane within which particles are marked to be in the boundary list
neighborLength 0.01;
left
{
type exit; // other options: periodict, 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,50 @@ objectName geometryDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
motionModel rotatingAxis; // motion model can be rotatingAxis or stationary or vibrating
// motion model: rotating object around an axis
motionModel rotatingAxisMotion;
rotatingAxisInfo // information for rotatingAxisMotion motion model
{
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 rotation
endTime 30; // end time of rotation
}
}
surfaces
{
helix
{
type stlWall; // type of the wall
file helix.stl; // file name in stl folder
material prop1; // material name of this wall
motion rotAxis; // motion component name
type stlWall; // type of the wall
file helix.stl; // file name in stl folder
material prop1; // material name of this wall
motion rotAxis; // motion component name
}
shell
{
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
}
type stlWall; // type of the wall
}
file shell.stl; // file name in stl folder
material prop1; // material name of this wall
rotatingAxisMotionInfo
{
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;
motion none; // motion component name
}
}

View File

@ -6,35 +6,38 @@ objectName particlesDict;
objectType dictionary;
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
{
defaultValue
{
// linear velocity (m/s)
velocity realx3 (0 0 0);
velocity realx3 (0 0 0); // linear velocity (m/s)
// linear acceleration (m/s2)
acceleration realx3 (0 0 0);
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
// rotational velocity (rad/s)
rVelocity realx3 (0 0 0);
rVelocity realx3 (0 0 0); // rotational velocity (rad/s)
// name of the particle shape
shapeName word sphere1;
shapeName word sphere1; // name of the particle shape
}
selectors
{}
}
positionParticles // positions particles
{
method empty; // other options: ordered and random
maxNumberOfParticles 50000; // maximum number of particles in the simulation
regionType box; // other options: cylinder and sphere
boxInfo // box for positioning particles
{
min (-0.1 -0.08 0.015); // lower corner point of the box
max (0.1 0.0 0.098); // upper corner point of the box
}
}

View File

@ -6,33 +6,31 @@ objectName settingsDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
run screwConveyor;
run layerdSiloFilling;
dt 0.0001; // time step for integration (s)
dt 0.0001; // time step for integration (s)
startTime 0.0; // start time for simulation
startTime 0; // start time for simulation
endTime 20.0; // 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)
// save necessary (i.e., required) data on disk
includeObjects (diameter);
// exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
/*
Simulation domain
every particles that goes outside this domain is deleted.
*/
domain
{
min (0.0 -0.06 0.001);
max (1.2 1 0.5);
}
integrationMethod AdamsBashforth2; // integration method
integrationMethod AdamsBashforth3; // integration method
writeFormat ascii; // data writting format (ascii or binary)
timersReport Yes; // report timers
timersReportInterval 0.01; // time interval for reporting timers
timersReport Yes; // report timers?
timersReportInterval 0.01; // time interval for reporting timers