toteblender updated.

This commit is contained in:
Ramin Khodabandeh 2024-05-28 18:12:13 +04:30
parent 0032f7f9bc
commit b815272fcb
7 changed files with 289 additions and 310 deletions

View File

@ -6,72 +6,48 @@ 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;
contactSearch
{
method NBS; // method for broad search particle-particle
updateInterval 10;
sizeRatio 1.1;
cellExtent 0.55;
adjustableBox Yes;
}
model model
{ {
contactForceModel nonLinearNonLimited; contactForceModel nonLinearNonLimited;
rollingFrictionModel normal; rollingFrictionModel normal;
/* // Property (solidProperty-solidProperty)
Property (solidProperty-solidProperty);
*/
// Young modulus [Pa] Yeff (1.0e6); // Young modulus [Pa]
Yeff (1.0e6);
// Shear modulus [Pa] Geff (0.8e6); // Shear modulus [Pa]
Geff (0.8e6);
// Poisson's ratio [-]
nu (0.25);
// coefficient of normal restitution
en (0.7);
// coefficient of tangential restitution nu (0.25); // Poisson's ratio [-]
et (1.0);
// dynamic friction en (0.7); // coefficient of normal restitution
mu (0.3);
// rolling friction et (1.0); // coefficient of tangential restitution
mur (0.1);
mu (0.3); // dynamic friction
mur (0.1); // rolling friction
} }
contactSearch
{
// method for broad search particle-particle
method NBS;
// method for broad search particle-wall
wallMapping cellMapping;
NBSInfo
{
// 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;
}
}

View File

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

View File

@ -6,12 +6,15 @@ objectName sphereDict;
objectType sphereShape; objectType sphereShape;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
names (sphere1); // name of shapes
diameters (0.005); // diameter of shapes (m)
materials (solidProperty); // material name for shapes
// name of shapes
names (sphere1);
// diameter of shapes (m)
diameters (0.005);
// material name for shapes
materials (solidProperty);

View File

@ -0,0 +1,65 @@
/* -------------------------------*- 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);
max (0.5 0.5 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 0.0001;
// The distance from the boundary plane within which particles are marked to be in the boundary list
neighborLength 0.004;
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,217 +6,162 @@ objectName geometryDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; 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
// 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
p2 ( 0.1 0.0 0.15); // second point for the axis of rotation
omega 1.5708; // rotation speed ==> 15 rad/s
omega 1.5708; // rotation speed ==> 15 rad/s
// Start time of Geometry Rotating (s)
startTime 0.5; startTime 0.5; // Start time of Geometry Rotating (s)
// End time of Geometry Rotating (s) endTime 9.5; // End time of Geometry Rotating (s)
endTime 9.5;
} }
} }
surfaces surfaces
{ {
topGate topGate
{ {
// type of wall type cylinderWall; // other options: cuboidWall and planeWall
type cylinderWall;
p1 (0.0 0.0 0.3); // begin point of cylinder axis
// begin point of cylinder axis
p1 (0.0 0.0 0.3); p2 (0.0 0.0 0.301); // end point of cylinder axis
// end point of cylinder axis radius1 0.03; // radius at p1
p2 (0.0 0.0 0.301);
radius2 0.0001; // radius at p2
// radius at p1
radius1 0.03; material solidProperty; // material of wall
// radius at p2 motion axisOfRotation; // motion component name
radius2 0.0001;
// material of wall
material solidProperty;
// motion component name
motion axisOfRotation;
} }
topCylinder topCylinder
{ {
// type of the wall type cylinderWall; // other options: cuboidWall and planeWall
type cylinderWall;
p1 (0.0 0.0 0.28); // begin point of cylinder axis
// begin point of cylinder axis
p1 (0.0 0.0 0.28); p2 (0.0 0.0 0.3); // end point of cylinder axis
// end point of cylinder axis radius1 0.03; // radius at p1
p2 (0.0 0.0 0.3);
radius2 0.03; // radius at p2
// radius at p1
radius1 0.03; resolution 36; // number of divisions
// radius at p2 material solidProperty; // material name of this wall
radius2 0.03;
motion axisOfRotation; // motion component name
// number of divisions
resolution 36;
// material name of this wall
material solidProperty;
// motion component name
motion axisOfRotation;
} }
coneShelltop coneShelltop
{ {
// type of the wall type cylinderWall; // other options: cuboidWall and planeWall
type cylinderWall;
p1 (0.0 0.0 0.2); // begin point of cylinder axis
// begin point of cylinder axis
p1 (0.0 0.0 0.2); p2 (0.0 0.0 0.28); // end point of cylinder axis
// end point of cylinder axis radius1 0.1; // radius at p1
p2 (0.0 0.0 0.28);
radius2 0.03; // radius at p2
// radius at p1
radius1 0.1; resolution 36; // number of divisions
// radius at p2 material solidProperty; // material name of this wall
radius2 0.03;
motion axisOfRotation; // motion component name
// number of divisions
resolution 36;
// material name of this wall
material solidProperty;
// motion component name
motion axisOfRotation;
} }
cylinderShell cylinderShell
{ {
// type of the wall type cylinderWall; // other options: cuboidWall and planeWall
type cylinderWall;
p1 (0.0 0.0 0.1); // begin point of cylinder axis
// begin point of cylinder axis
p1 (0.0 0.0 0.1); p2 (0.0 0.0 0.2); // end point of cylinder axis
// end point of cylinder axis radius1 0.1; // radius at p1
p2 (0.0 0.0 0.2);
radius2 0.1; // radius at p2
// radius at p1
radius1 0.1; resolution 36; // number of divisions
// radius at p2 material solidProperty; // material name of this wall
radius2 0.1;
motion axisOfRotation; // motion component name
// number of divisions
resolution 36;
// material name of this wall
material solidProperty;
// motion component name
motion axisOfRotation;
} }
coneShelldown coneShelldown
{ {
type cylinderWall; // other options: cuboidWall and planeWall
// type of the wall
type cylinderWall; p1 (0.0 0.0 0.02); // begin point of cylinder axis
// begin point of cylinder axis p2 (0.0 0.0 0.1); // end point of cylinder axis
p1 (0.0 0.0 0.02);
radius1 0.03; // radius at p1
// end point of cylinder axis
p2 (0.0 0.0 0.1); radius2 0.1; // radius at p2
// radius at p1 resolution 36; // number of divisions
radius1 0.03;
material solidProperty; // material name of this wall
// radius at p2
radius2 0.1; motion axisOfRotation; // motion component name
// number of divisions
resolution 36;
// material name of this wall
material solidProperty;
// motion component name
motion axisOfRotation;
} }
bottomCylinder bottomCylinder
{ {
// type of the wall type cylinderWall; // other options: cuboidWall and planeWall
type cylinderWall;
p1 (0.0 0.0 0.0); // begin point of cylinder axis
// begin point of cylinder axis
p1 (0.0 0.0 0.0); p2 (0.0 0.0 0.02); // end point of cylinder axis
// end point of cylinder axis radius1 0.03; // radius at p1
p2 (0.0 0.0 0.02);
radius2 0.03; // radius at p2
// radius at p1
radius1 0.03; resolution 36; // number of divisions
// radius at p2 material solidProperty; // material name of this wall
radius2 0.03;
motion axisOfRotation; // motion component name
// number of divisions
resolution 36;
// material name of this wall
material solidProperty;
// motion component name
motion axisOfRotation;
} }
exitGate exitGate
{ {
type cylinderWall; // other options: cuboidWall and planeWall
// type of the wall
type cylinderWall; p1 (0.0 0.0 -0.001); // begin point of cylinder axis
// begin point of cylinder axis p2 (0.0 0.0 0.0); // end point of cylinder axis
p1 (0.0 0.0 -0.001);
radius1 0.03; // radius at p1
// end point of cylinder axis
p2 (0.0 0.0 0.0); radius2 0.0001; // radius at p2
// radius at p1 resolution 36; // number of divisions
radius1 0.03;
material solidProperty; // material name of this wall
// radius at p2
radius2 0.0001; motion axisOfRotation; // motion component name
}
// number of divisions
resolution 36;
// material name of this wall
material solidProperty;
// motion component name
motion axisOfRotation;
}
} }

View File

@ -6,7 +6,6 @@ objectName particlesDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
setFields setFields
{ {
/* /*
@ -14,58 +13,51 @@ setFields
These fields should always be defined for simulations with These fields should always be defined for simulations with
spherical particles. spherical particles.
*/ */
defaultValue defaultValue
{ {
// linear velocity (m/s) velocity realx3 (0 0 0); // linear velocity (m/s)
velocity realx3 (0 0 0);
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
// linear acceleration (m/s2)
acceleration realx3 (0 0 0); rVelocity realx3 (0 0 0); // rotational velocity (rad/s)
// rotational velocity (rad/s) shapeName word sphere1; // name of the particle shape
rVelocity realx3 (0 0 0);
// name of the particle shape
shapeName word sphere1;
} }
selectors selectors
{} {}
} }
// positions particles positionParticles // positions particles
positionParticles
{ {
// ordered positioning method ordered; // other options: random and empty
method positionOrdered;
// maximum number of particles in the simulation orderedInfo
maxNumberOfParticles 25001;
// perform initial sorting based on morton code?
mortonSorting Yes;
// cylinder for positioning particles
cylinder
{ {
// Coordinates of top cylinderRegion (m,m,m)
p1 (0.0 0.0 0.09);
p2 (0.0 0.0 0.21); diameter 0.005; // diameter of particles
// radius of cylinder numPoints 24000; // number of particles in the simulation
radius 0.09;
axisOrder (x y z); // axis order for filling the space with particles
} }
positionOrderedInfo maxNumberOfParticles 25001; // maximum number of particles in the simulation
{
// minimum space between centers of particles regionType cylinder; // other options: box and sphere
diameter 0.005;
// number of particles in the simulation
numPoints 24000;
// axis order for filling the space with particles cylinderInfo // cylinder for positioning particles
axisOrder (x y z); {
} p1 (0.0 0.0 0.09); // Coordinates of top cylinderRegion (m,m,m)
p2 (0.0 0.0 0.21); // Coordinates of bottom cylinderRegion (m,m,m)
radius 0.09; // radius of cylinder
}
} }

View File

@ -6,42 +6,34 @@ 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.0; // start time for simulation
dt 0.00004;
// start time for simulation endTime 10.0; // 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;
g (0 0 -9.8); // gravity vector (m/s2)
// maximum number of digits for time folder // save necessary (i.e., required) data on disk
timePrecision 3; includeObjects (diameter);
// exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
// gravity vector (m/s2) integrationMethod AdamsBashforth2; // integration method
g (0 0 -9.8);
writeFormat ascii; // data writting format (ascii or binary)
timersReport Yes; // report timers
timersReportInterval 0.02; // time interval for reporting timers
/* Simulation domain */
/* every particles that goes outside this domain is deleted. */
domain
{
min (-0.3 -0.3 -0.3);
max (0.5 0.5 0.5);
}
// integration method
integrationMethod AdamsMoulton4;
writeFormat ascii;
// report timers?
timersReport Yes;
// time interval for reporting timers
timersReportInterval 0.02;