tote blender corrected

This commit is contained in:
Hamidreza Norouzi 2023-03-31 08:21:24 -07:00
parent 7a8931ea9d
commit c3a729e2d3
6 changed files with 217 additions and 116 deletions

View File

@ -5,8 +5,10 @@
objectName interaction; objectName interaction;
objectType dicrionary; objectType dicrionary;
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
// a list of materials names // a list of materials names
materials (solidProperty); materials (solidProperty);
// density of materials [kg/m3] // density of materials [kg/m3]
densities (1000.0); densities (1000.0);
@ -14,47 +16,60 @@ contactListType sortedContactList;
model model
{ {
contactForceModel nonLinearNonLimited; contactForceModel nonLinearNonLimited;
rollingFrictionModel normal;
rollingFrictionModel normal;
/* /*
Property (solidProperty-solidProperty); 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);
// 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 for broad search particle-particle
// method for broad search particle-particle
method NBS; method NBS;
// method for broad search particle-wall
// method for broad search particle-wall
wallMapping cellMapping; wallMapping cellMapping;
NBSInfo NBSInfo
{ {
// each 20 timesteps, update neighbor list // each 20 timesteps, update neighbor list
updateFrequency 20; updateFrequency 20;
// bounding box size to particle diameter (max)
// bounding box size to particle diameter (max)
sizeRatio 1.1; sizeRatio 1.1;
} }
cellMappingInfo cellMappingInfo
{ {
// each 20 timesteps, update neighbor list // each 20 timesteps, update neighbor list
updateFrequency 20; updateFrequency 20;
// bounding box for particle-wall search (> 0.5)
// bounding box for particle-wall search (> 0.5)
cellExtent 0.7; cellExtent 0.7;
} }

View File

@ -5,8 +5,10 @@
objectName particleInsertion; objectName particleInsertion;
objectType dicrionary; objectType dicrionary;
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
// is insertion active? // is insertion active?
active no; active no;
// not implemented for yes // not implemented for yes
collisionCheck No; collisionCheck No;

View File

@ -5,9 +5,12 @@
objectName sphereDict; objectName sphereDict;
objectType sphereShape; objectType sphereShape;
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
// names of shapes
// name of shapes
names (sphere1); names (sphere1);
// diameter of shapes (m) // diameter of shapes (m)
diameters (0.004); diameters (0.005);
// material names for shapes
// material name for shapes
materials (solidProperty); materials (solidProperty);

View File

@ -5,153 +5,216 @@
objectName geometryDict; objectName geometryDict;
objectType dictionary; objectType dictionary;
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
// motion model: rotating object around an axis // motion model: rotating object around an axis
motionModel rotatingAxisMotion; motionModel rotatingAxisMotion;
// information for rotatingAxisMotion motion model // information for rotatingAxisMotion motion model
rotatingAxisMotionInfo 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 1; // Start time of Geometry Rotating (s)
// End time of Geometry Rotating (s) startTime 0.5;
// End time of Geometry Rotating (s)
endTime 9.5; endTime 9.5;
} }
} }
surfaces surfaces
{ {
topGate
topGate topGate
{ {
// type of wall // type of wall
type cylinderWall; type cylinderWall;
// begin point of cylinder axis
p1 (0.0 0.0 0.299); // begin point of cylinder axis
// end point of cylinder axis p1 (0.0 0.0 0.3);
p2 (0.0 0.0 0.3);
// radius at p1 // end point of cylinder axis
p2 (0.0 0.0 0.301);
// radius at p1
radius1 0.03; radius1 0.03;
// radius at p2
// radius at p2
radius2 0.0001; radius2 0.0001;
// material of wall
// material of wall
material solidProperty; material solidProperty;
// motion component name
// motion component name
motion axisOfRotation; motion axisOfRotation;
} }
topCylinder topCylinder
{ {
// type of the wall // type of the wall
type cylinderWall; type cylinderWall;
// begin point of cylinder axis
// begin point of cylinder axis
p1 (0.0 0.0 0.28); p1 (0.0 0.0 0.28);
// end point of cylinder axis
// end point of cylinder axis
p2 (0.0 0.0 0.3); p2 (0.0 0.0 0.3);
// radius at p1
// radius at p1
radius1 0.03; radius1 0.03;
// radius at p2
// radius at p2
radius2 0.03; radius2 0.03;
// number of divisions
// number of divisions
resolution 36; resolution 36;
// material name of this wall
// material name of this wall
material solidProperty; material solidProperty;
// motion component name
// motion component name
motion axisOfRotation; motion axisOfRotation;
} }
coneShelltop coneShelltop
{ {
// type of the wall // type of the wall
type cylinderWall; type cylinderWall;
// begin point of cylinder axis
// begin point of cylinder axis
p1 (0.0 0.0 0.2); p1 (0.0 0.0 0.2);
// end point of cylinder axis
// end point of cylinder axis
p2 (0.0 0.0 0.28); p2 (0.0 0.0 0.28);
// radius at p1
// radius at p1
radius1 0.1; radius1 0.1;
// radius at p2
// radius at p2
radius2 0.03; radius2 0.03;
// number of divisions
// number of divisions
resolution 36; resolution 36;
// material name of this wall
// material name of this wall
material solidProperty; material solidProperty;
// motion component name
// motion component name
motion axisOfRotation; motion axisOfRotation;
} }
cylinderShell cylinderShell
{ {
// type of the wall // type of the wall
type cylinderWall; type cylinderWall;
// begin point of cylinder axis
// begin point of cylinder axis
p1 (0.0 0.0 0.1); p1 (0.0 0.0 0.1);
// end point of cylinder axis
// end point of cylinder axis
p2 (0.0 0.0 0.2); p2 (0.0 0.0 0.2);
// radius at p1
// radius at p1
radius1 0.1; radius1 0.1;
// radius at p2
// radius at p2
radius2 0.1; radius2 0.1;
// number of divisions
// number of divisions
resolution 36; resolution 36;
// material name of this wall
// material name of this wall
material solidProperty; material solidProperty;
// motion component name
// motion component name
motion axisOfRotation; motion axisOfRotation;
} }
coneShelldown coneShelldown
{ {
// type of the wall
type cylinderWall;
// begin point of cylinder axis
p1 (0.0 0.0 0.02);
// end point of cylinder axis
p2 (0.0 0.0 0.1);
// radius at p1
radius1 0.03;
// radius at p2
radius2 0.1;
// number of divisions
resolution 36;
// material name of this wall
material solidProperty;
// motion component name
motion axisOfRotation;
}
/*
This is a plane wall at the exit of silo
*/
bottomCylinder // type of the wall
{
// type of the wall
type cylinderWall; type cylinderWall;
// begin point of cylinder axis
p1 (0.0 0.0 0.0); // begin point of cylinder axis
// end point of cylinder axis p1 (0.0 0.0 0.02);
p2 (0.0 0.0 0.02);
// radius at p1 // end point of cylinder axis
p2 (0.0 0.0 0.1);
// radius at p1
radius1 0.03; radius1 0.03;
// radius at p2
radius2 0.03; // radius at p2
// number of divisions radius2 0.1;
// number of divisions
resolution 36; resolution 36;
// material name of this wall
// material name of this wall
material solidProperty; material solidProperty;
// motion component name
// motion component name
motion axisOfRotation; motion axisOfRotation;
} }
bottomCylinder
{
// type of the wall
type cylinderWall;
// begin point of cylinder axis
p1 (0.0 0.0 0.0);
// end point of cylinder axis
p2 (0.0 0.0 0.02);
// radius at p1
radius1 0.03;
// radius at p2
radius2 0.03;
// number of divisions
resolution 36;
// material name of this wall
material solidProperty;
// motion component name
motion axisOfRotation;
}
exitGate exitGate
{ {
type planeWall;
p1 (-0.05 -0.05 0); // type of the wall
p2 (-0.05 0.05 0); type cylinderWall;
p3 ( 0.05 0.05 0);
p4 (0.05 -0.05 0); // begin point of cylinder axis
material solidProperty; p1 (0.0 0.0 -0.001);
// end point of cylinder axis
p2 (0.0 0.0 0.0);
// radius at p1
radius1 0.03;
// radius at p2
radius2 0.0001;
// number of divisions
resolution 36;
// material name of this wall
material solidProperty;
// motion component name
motion axisOfRotation; motion axisOfRotation;
} }

View File

@ -12,16 +12,18 @@ 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) // linear velocity (m/s)
velocity realx3 (0 0 0); velocity realx3 (0 0 0);
// linear acceleration (m/s2)
// linear acceleration (m/s2)
acceleration realx3 (0 0 0); acceleration realx3 (0 0 0);
// rotational velocity (rad/s)
rVelocity realx3 (0 0 0); // rotational velocity (rad/s)
// name of the particle shape rVelocity realx3 (0 0 0);
// name of the particle shape
shapeName word sphere1; shapeName word sphere1;
} }
@ -32,29 +34,36 @@ setFields
// positions particles // positions particles
positionParticles positionParticles
{ {
// ordered positioning // ordered positioning
method positionOrdered; method positionOrdered;
// maximum number of particles in the simulation
maxNumberOfParticles 40000; // maximum number of particles in the simulation
// perform initial sorting based on morton code? maxNumberOfParticles 25001;
mortonSorting Yes;
// cylinder for positioning particles // perform initial sorting based on morton code?
mortonSorting Yes;
// cylinder for positioning particles
cylinder cylinder
{ {
// Coordinates of top cylinderRegion (m,m,m) // Coordinates of top cylinderRegion (m,m,m)
p1 (0.05 0.0 0.12); p1 (0.0 0.0 0.09);
p2 (0.05 0.0 0.22);
// radius of cylinder p2 (0.0 0.0 0.21);
radius 0.066;
// radius of cylinder
radius 0.09;
} }
positionOrderedInfo positionOrderedInfo
{ {
// minimum space between centers of particles // minimum space between centers of particles
diameter 0.003; diameter 0.005;
// number of particles in the simulation
numPoints 20000; // number of particles in the simulation
// axis order for filling the space with particles numPoints 24000;
axisOrder (z y x);
// axis order for filling the space with particles
axisOrder (x y z);
} }
} }

View File

@ -6,16 +6,22 @@ objectName settingsDict;
objectType dictionary;; objectType dictionary;;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
run toteBlender; run toteBlender;
// time step for integration (s) // time step for integration (s)
dt 0.00001; dt 0.00004;
// start time for simulation // start time for simulation
startTime 0; startTime 0;
// end time for simulation // end time for simulation
endTime 10; endTime 10;
// time interval for saving the simulation // time interval for saving the simulation
saveInterval 0.1; saveInterval 0.05;
// maximum number of digits for time folder // maximum number of digits for time folder
timePrecision 6; timePrecision 3;
// gravity vector (m/s2) // gravity vector (m/s2)
g (0 0 -9.8); g (0 0 -9.8);
@ -26,9 +32,12 @@ domain
min (-0.3 -0.3 -0.3); min (-0.3 -0.3 -0.3);
max (0.5 0.5 0.5); max (0.5 0.5 0.5);
} }
// integration method // integration method
integrationMethod AdamsBashforth2; integrationMethod AdamsMoulton4;
// report timers? // report timers?
timersReport Yes; timersReport Yes;
// time interval for reporting timers // time interval for reporting timers
timersReportInterval 0.01; timersReportInterval 0.02;