updated V1.0 toteblender

This commit is contained in:
ramin1728 2024-12-28 14:09:09 +03:30
parent 0d5f8a98a2
commit 31ebc5963c
7 changed files with 272 additions and 291 deletions

View File

@ -6,72 +6,47 @@ 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;
model
{
contactForceModel nonLinearNonLimited;
rollingFrictionModel normal;
/*
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);
}
contactSearch contactSearch
{ {
method NBS; // method for broad search
// method for broad search particle-particle updateInterval 10;
method NBS;
// method for broad search particle-wall sizeRatio 1.1;
wallMapping cellMapping;
NBSInfo cellExtent 0.55;
{
// 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;
}
adjustableBox Yes;
} }
model
{
contactForceModel nonLinearNonLimited;
rollingFrictionModel normal;
/*
Property (solidProperty-solidProperty)
*/
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,11 +6,8 @@ objectName particleInsertion;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
active No; // is insertion active -> Yes or No
// is insertion active? collisionCheck No; // is checked -> Yes or No
active no;
// not implemented for yes
collisionCheck No;

View File

@ -0,0 +1,13 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName sphereDict;
objectType sphereShape;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (sphere1); // name of shapes
diameters (0.005); // diameter of shapes (m)
materials (solidProperty); // material name 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.3 -0.3 -0.3); // lower corner point of the box
max (0.5 0.5 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,217 +6,154 @@ 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 // information for rotatingAxisMotion motion model
motionModel rotatingAxisMotion;
// 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
omega 1.5708; // rotation speed ==> 15 rad/s p2 ( 0.1 0.0 0.15); // second point for the axis of rotation
// Start time of Geometry Rotating (s) omega 1.5708; // rotation speed ==> 15 rad/s
startTime 0.5;
// End time of Geometry Rotating (s) startTime 0.5; // Start time of Geometry Rotating (s)
endTime 9.5;
endTime 9.5; // End time of Geometry Rotating (s)
} }
} }
surfaces surfaces
{ {
topGate topGate
{ {
// type of wall type cylinderWall; // type of wall
type cylinderWall;
// begin point of cylinder axis p1 (0.0 0.0 0.3); // begin point of cylinder axis
p1 (0.0 0.0 0.3);
// end point of cylinder axis p2 (0.0 0.0 0.301); // end point of cylinder axis
p2 (0.0 0.0 0.301);
// radius at p1 radius1 0.03; // radius at p1
radius1 0.03;
// radius at p2 radius2 0.0001; // radius at p2
radius2 0.0001;
// material of wall material solidProperty; // material of wall
material solidProperty;
// motion component name motion axisOfRotation; // motion component name
motion axisOfRotation;
} }
topCylinder topCylinder
{ {
// type of the wall type cylinderWall; // type of the wall
type cylinderWall;
// begin point of cylinder axis p1 (0.0 0.0 0.28); // begin point of cylinder axis
p1 (0.0 0.0 0.28);
// end point of cylinder axis p2 (0.0 0.0 0.3); // end point of cylinder axis
p2 (0.0 0.0 0.3);
// radius at p1 radius1 0.03; // radius at p1
radius1 0.03;
// radius at p2 radius2 0.03; // radius at p2
radius2 0.03;
// number of divisions resolution 36; // number of divisions
resolution 36;
// material name of this wall material solidProperty; // material name of this wall
material solidProperty;
// motion component name motion axisOfRotation; // motion component name
motion axisOfRotation;
} }
coneShelltop coneShelltop
{ {
// type of the wall type cylinderWall; // type of the wall
type cylinderWall;
// begin point of cylinder axis p1 (0.0 0.0 0.2); // begin point of cylinder axis
p1 (0.0 0.0 0.2);
// end point of cylinder axis p2 (0.0 0.0 0.28); // end point of cylinder axis
p2 (0.0 0.0 0.28);
// radius at p1 radius1 0.1; // radius at p1
radius1 0.1;
// radius at p2 radius2 0.03; // radius at p2
radius2 0.03;
// number of divisions resolution 36; // number of divisions
resolution 36;
// material name of this wall material solidProperty; // material name of this wall
material solidProperty;
// motion component name motion axisOfRotation; // motion component name
motion axisOfRotation;
} }
cylinderShell cylinderShell
{ {
// type of the wall type cylinderWall; // type of the wall
type cylinderWall;
// begin point of cylinder axis p1 (0.0 0.0 0.1); // begin point of cylinder axis
p1 (0.0 0.0 0.1);
// end point of cylinder axis p2 (0.0 0.0 0.2); // end point of cylinder axis
p2 (0.0 0.0 0.2);
// radius at p1 radius1 0.1; // radius at p1
radius1 0.1;
// radius at p2 radius2 0.1; // radius at p2
radius2 0.1;
// number of divisions resolution 36; // number of divisions
resolution 36;
// material name of this wall material solidProperty; // material name of this wall
material solidProperty;
// motion component name motion axisOfRotation; // motion component name
motion axisOfRotation;
} }
coneShelldown coneShelldown
{ {
type cylinderWall; // type of the wall
// type of the wall p1 (0.0 0.0 0.02); // begin point of cylinder axis
type cylinderWall;
// begin point of cylinder axis p2 (0.0 0.0 0.1); // end point of cylinder axis
p1 (0.0 0.0 0.02);
// end point of cylinder axis radius1 0.03; // radius at p1
p2 (0.0 0.0 0.1);
// radius at p1 radius2 0.1; // radius at p2
radius1 0.03;
// radius at p2 resolution 36; // number of divisions
radius2 0.1;
// number of divisions material solidProperty; // material name of this wall
resolution 36;
// material name of this wall motion axisOfRotation; // motion component name
material solidProperty;
// motion component name
motion axisOfRotation;
} }
bottomCylinder bottomCylinder
{ {
// type of the wall type cylinderWall; // type of the wall
type cylinderWall;
// begin point of cylinder axis p1 (0.0 0.0 0.0); // begin point of cylinder axis
p1 (0.0 0.0 0.0);
// end point of cylinder axis p2 (0.0 0.0 0.02); // end point of cylinder axis
p2 (0.0 0.0 0.02);
// radius at p1 radius1 0.03; // radius at p1
radius1 0.03;
// radius at p2 radius2 0.03; // radius at p2
radius2 0.03;
// number of divisions resolution 36; // number of divisions
resolution 36;
// material name of this wall material solidProperty; // material name of this wall
material solidProperty;
// motion component name motion axisOfRotation; // motion component name
motion axisOfRotation;
} }
exitGate exitGate
{ {
type cylinderWall; // type of the wall
// type of the wall p1 (0.0 0.0 -0.001); // begin point of cylinder axis
type cylinderWall;
// begin point of cylinder axis p2 (0.0 0.0 0.0); // end point of cylinder axis
p1 (0.0 0.0 -0.001);
// end point of cylinder axis radius1 0.03; // radius at p1
p2 (0.0 0.0 0.0);
// radius at p1 radius2 0.0001; // radius at p2
radius1 0.03;
// radius at p2 resolution 36; // number of divisions
radius2 0.0001;
// number of divisions material solidProperty; // material name of this wall
resolution 36;
// material name of this wall motion axisOfRotation; // motion component name
material solidProperty;
// motion component name
motion axisOfRotation;
} }
} }

View File

@ -6,66 +6,74 @@ objectName particlesDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
setFields setFields
{ {
/* /*
Default value for fields defined for particles Default value for fields defined for particles
These fields should always be defined for simulations with
spherical 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 24000; // 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
}
}
}
} }
// positions particles positionParticles // positions particles
positionParticles
{ {
// ordered positioning
method positionOrdered;
// maximum number of particles in the simulation method ordered; // ordered positioning
maxNumberOfParticles 25001;
// perform initial sorting based on morton code? mortonSorting Yes; // perform initial sorting based on morton code?
mortonSorting Yes;
// cylinder for positioning particles orderedInfo
cylinder
{ {
// Coordinates of top cylinderRegion (m,m,m) diameter 0.005; // minimum space between centers of particles
p1 (0.0 0.0 0.09);
p2 (0.0 0.0 0.21); numPoints 24000; // number of particles in the simulation
// radius of cylinder axisOrder (x y z); // axis order for filling the space with particles
radius 0.09;
} }
positionOrderedInfo regionType cylinder; // other options: cylinder and sphere
cylinderInfo // cylinder for positioning particles
{ {
// minimum space between centers of particles p1 (0.0 0.0 0.09); // Coordinates of bottom cylinderRegion (m,m,m)
diameter 0.005;
// number of particles in the simulation p2 (0.0 0.0 0.21); // Coordinates of top cylinderRegion (m,m,m)
numPoints 24000;
// axis order for filling the space with particles radius 0.09; // radius of cylinder
axisOrder (x y z);
} }
} }

View File

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