updated V1.0 screwConveyor

This commit is contained in:
ramin1728 2024-12-28 13:46:09 +03:30
parent 018770a1f1
commit 0d5f8a98a2
7 changed files with 236 additions and 116 deletions

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