V-blender finalized for v-1.0

This commit is contained in:
Hamidreza 2025-04-21 15:52:51 +03:30
parent cde93e953e
commit 8da8afbe63
9 changed files with 149 additions and 145 deletions

View File

@ -15,39 +15,39 @@ contactListType sortedContactList;
contactSearch contactSearch
{ {
method NBS; // method for broad search method NBS; // method for broad search
updateInterval 10;
sizeRatio 1.1; updateInterval 10;
cellExtent 0.55; sizeRatio 1.1;
adjustableBox Yes; cellExtent 0.55;
adjustableBox Yes;
} }
model model
{ {
contactForceModel nonLinearNonLimited; contactForceModel nonLinearNonLimited;
rollingFrictionModel normal; rollingFrictionModel normal;
Yeff (1.0e6 1.0e6 Yeff (1.0e6 1.0e6
1.0e6); // Young modulus [Pa] 1.0e6); // Young modulus [Pa]
Geff (0.8e6 0.8e6 Geff (0.8e6 0.8e6
0.8e6); // Shear modulus [Pa] 0.8e6); // Shear modulus [Pa]
nu (0.25 0.25 nu (0.25 0.25
0.25); // Poisson's ratio [-] 0.25); // Poisson's ratio [-]
en (0.97 0.85 en (0.97 0.85
0.97); // coefficient of normal restitution 0.97); // coefficient of normal restitution
mu (0.65 0.35 mu (0.65 0.35
0.65); // dynamic friction 0.65); // dynamic friction
mur (0.1 0.1 mur (0.1 0.1
0.1); // rolling friction 0.1); // rolling friction
} }

View File

@ -6,9 +6,9 @@ objectName particleInsertion;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
active Yes; // is insertion active -> Yes or No active Yes; // is insertion active -> Yes or No
checkForCollision No; // is checked -> Yes or No checkForCollision Yes; // is checked -> Yes or 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
@ -16,76 +16,74 @@ checkForCollision No; // is checked -> Yes o
rightregion rightregion
{ {
timeControl simulationTime; timeControl simulationTime;
regionType cylinder; // type of insertion region
rate 10000; // Particles Insertion Rate (particles/s)
startTime 0.0; // start time of small particles insertion (s)
endTime 1; // end time of small particles insertion (s)
insertionInterval 0.025; // time interval of small particles insertion (s)
cylinderInfo regionType cylinder; // type of insertion region
{
/* coordinates of center of both ends of the insertion
cylinder on the right side of the V-blender (m,m,m) */ rate 10000; // Particles Insertion Rate (particles/s)
p1 (0.0950615 0.12 0.5011585); startTime 0.0; // start time of small particles insertion (s)
p2 (0.1150615 0.12 0.4811585); endTime 1; // end time of small particles insertion (s)
radius 0.1; // radius of cylinder (m) insertionInterval 0.025; // time interval of small particles insertion (s)
}
cylinderInfo
setFields {
{ /* 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);
p2 (0.1150615 0.12 0.4811585);
radius 0.1; // radius of cylinder (m)
}
setFields
{
velocity realx3 (1.2 0.0 -1.2); // initial velocity of inserted particles velocity realx3 (1.2 0.0 -1.2); // initial velocity of inserted particles
} }
mixture mixture
{ {
smallSphere 1; // first layer of inserted particles smallSphere 1; // first layer of inserted particles
} }
} }
leftregion leftregion
{ {
timeControl simulationTime; timeControl simulationTime;
regionType cylinder; // type of insertion region
rate 10000; // Particles Insertion Rate (particles/s)
startTime 1.5; // start time of large particles insertion (s)
endTime 2.5; // end time of large particles insertion (s)
insertionInterval 0.025; // time interval of large particles insertion (s)
cylinderInfo regionType cylinder; // type of insertion region
{
/* coordinates of center of both ends of the insertion
cylinder on the left side of the V-blender (m,m,m) */ rate 10000; // Particles Insertion Rate (particles/s)
p1 ( 0.7562545 0.12 0.50079); startTime 1.5; // start time of large particles insertion (s)
p2 ( 0.7362545 0.12 0.48079); endTime 2.5; // end time of large particles insertion (s)
radius 0.1; // radius of cylinder (m) insertionInterval 0.025; // time interval of large particles insertion (s)
}
cylinderInfo
setFields {
{ /* coordinates of center of both ends of the insertion
velocity realx3 (-1.2 0.0 -1.2); // initial velocity of inserted particles cylinder on the left side of the V-blender (m,m,m) */
}
p1 ( 0.7562545 0.12 0.50079);
mixture
{ p2 ( 0.7362545 0.12 0.48079);
largeSphere 1; // second layer of inserted particles
} radius 0.1; // radius of cylinder (m)
}
setFields
{
velocity realx3 (-1.2 0.0 -1.2); // initial velocity of inserted particles
}
mixture
{
largeSphere 1; // second layer of inserted particles
}
} }

View File

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

0
tutorials/sphereGranFlow/V-blender/cleanThisCase Normal file → Executable file
View File

0
tutorials/sphereGranFlow/V-blender/runThisCase Normal file → Executable file
View File

View File

@ -2,47 +2,49 @@
| phasicFlow File | | phasicFlow File |
| copyright: www.cemf.ir | | copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */ \* ------------------------------------------------------------------------- */
objectName domainDict; objectName domainDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; 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 // Simulation domain: every particles that goes outside this domain will be deleted
globalBox
{
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
} }
boundaries boundaries
{ {
left left
{ {
type exit; // other options: periodic, reflective type exit; // other options: periodic, reflective
} }
right right
{ {
type exit; // other options: periodict, reflective type exit; // other options: periodict, reflective
} }
bottom bottom
{ {
type exit; // other options: periodict, reflective type exit; // other options: periodict, reflective
} }
top top
{ {
type exit; // other options: periodict, reflective type exit; // other options: periodict, reflective
} }
rear rear
{ {
type exit; // other options: periodict, reflective type exit; // other options: periodict, reflective
} }
front front
{ {
type exit; // other options: periodict, reflective type exit; // other options: periodict, reflective
} }
} }

View File

@ -2,40 +2,40 @@
| phasicFlow File | | phasicFlow File |
| copyright: www.cemf.ir | | copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */ \* ------------------------------------------------------------------------- */
objectName geometryDict; objectName geometryDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
motionModel rotatingAxis; // motion model: rotating object around an axis motionModel rotatingAxis; // motion model: rotating object around an axis
rotatingAxisInfo // information for rotatingAxis motion model rotatingAxisInfo // information for rotatingAxis motion model
{ {
rotAxis rotAxis
{ {
p1 (0.128228 0.116446 0.297901); // first point for the axis of rotation p1 (0.128228 0.116446 0.297901); // first 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); // second point for the axis of rotation
omega 3.14; // rotation speed (rad/s) omega 3.14; // rotation speed (rad/s)
startTime 3; // start time of rotation startTime 3; // start time of rotation
endTime 10; // end time of rotation endTime 10; // end time of rotation
} }
} }
surfaces surfaces
{ {
body body
{ {
type stlWall; // type of the wall type stlWall; // type of the wall
file body.stl; // file name in stl folder file body.stl; // file name in stl folder
material wallMat; // material name of this wall material wallMat; // material name of this wall
motion rotAxis; // motion component name motion rotAxis; // motion component name
} }
} }

View File

@ -10,32 +10,30 @@ setFields
{ {
/* /*
Default value for fields defined for particles Default value for fields defined for particles
These fields should always be defined for simulations with These fields should always be defined for simulations with
spherical particles. spherical particles.
*/ */
defaultValue defaultValue
{ {
velocity realx3 (0 0 0); // linear velocity (m/s) velocity realx3 (0 0 0); // linear velocity (m/s)
acceleration realx3 (0 0 0); // linear acceleration (m/s2) acceleration realx3 (0 0 0); // linear acceleration (m/s2)
rVelocity realx3 (0 0 0); // rotational velocity (rad/s) rVelocity realx3 (0 0 0); // rotational velocity (rad/s)
shapeName word smallSphere; // name of the particle shape shapeName word smallSphere; // name of the particle shape
} }
selectors selectors
{} {}
} }
positionParticles // positions particles
positionParticles
{ {
method empty; // ordered positioning method empty; // no particle at the start of simulation
mortonSorting Yes; // perform initial sorting based on morton code? mortonSorting Yes; // perform initial sorting based on morton code?
maxNumberOfParticles 25000;
} }

View File

@ -23,12 +23,17 @@ g (0 0 -9.8); // gravity vector (m/s2)
includeObjects (diameter); // save necessary (i.e., required) data on disk includeObjects (diameter); // save necessary (i.e., required) data on disk
// exclude unnecessary data from saving on disk // exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1); excludeObjects ();
// include the objects to be saved in the time folders
includeObject ();
integrationMethod AdamsBashforth2; // integration method integrationMethod AdamsBashforth2; // integration method
integrationHistory off; // Do not save integration history on the disk
writeFormat ascii; // data writting format (ascii or binary) writeFormat ascii; // data writting format (ascii or binary)
timersReport Yes; // report timers (Yes or No) timersReport Yes; // report timers (Yes or No)
timersReportInterval 0.01; // time interval for reporting timers timersReportInterval 0.05; // time interval for reporting timers