Merge pull request #165 from ramin1728/main

binarySystemOfParticles is Updated.
This commit is contained in:
PhasicFlow 2025-02-14 20:42:14 +03:30 committed by GitHub
commit 191801b344
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 71 additions and 66 deletions

View File

@ -28,8 +28,8 @@ in <b>caseSetup/sphereShape</b> file
```C++ ```C++
names (smallSphere largeSphere); // names of shapes names (smallSphere largeSphere); // names of shapes
diameters (0.003 0.005); // diameter of shapes (m) diameters (0.003 0.005); // diameter of shapes (m)
materials (prop1 prop1); // material names for shapes materials (prop1 prop1); // material names for shapes
``` ```
### Positioning and initial mixture ### Positioning and initial mixture
@ -44,18 +44,17 @@ in <b>settings/particlesDict</b> file
// positions particles // positions particles
positionParticles positionParticles
{ {
method ordered; // other options: random or empty method ordered; // other options: random or empty
orderedInfo orderedInfo
{ {
diameter 0.005; // minimum space between centers of particles diameter 0.005; // minimum space between centers of particles
numPoints 30000; // number of particles in the simulation numPoints 30000; // number of particles in the simulation
axisOrder (z x y); // axis order for filling the space with particles axisOrder (z x y); // axis order for filling the space with particles
} }
regionType cylinder; // other options: box and sphere regionType cylinder; // other options: box and sphere
cylinder // cylinder region for positioning particles cylinder // cylinder region for positioning particles
{ {
p1 (0.0 0.0 0.003); // begin point of cylinder axis (m m m) p1 (0.0 0.0 0.003); // begin point of cylinder axis (m m m)
p2 (0.0 0.0 0.097); // end point of cylinder axis (m m m) p2 (0.0 0.0 0.097); // end point of cylinder axis (m m m)
@ -76,9 +75,9 @@ 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
{ {
@ -87,20 +86,21 @@ setFields
rotVelocity realx3 (0 0 0); // rotational velocity (rad/s) rotVelocity 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
{ {
shapeAssigne shapeAssigne
{ {
selector stridedRange; // other options: box, cylinder, sphere, randomPoints selector stridedRange; // other options: box, cylinder, sphere, randomPoints
stridedRangeInfo stridedRangeInfo
{ {
begin 0; // begin index of points begin 0; // begin index of points
end 30000; // end index of points end 30000; // end index of points
stride 3; // stride for selector stride 3; // stride for selector
} }
fieldValue // fields that the selector is applied to
fieldValue // fields that the selector is applied to
{ {
/* /*
sets shapeName of the selected points to largeSphere sets shapeName of the selected points to largeSphere
@ -139,4 +139,4 @@ Options:
--setFields-only Exectue the setFields part only. Read the pointStructure from time folder and setFields and save the result in the same time folder. --setFields-only Exectue the setFields part only. Read the pointStructure from time folder and setFields and save the result in the same time folder.
``` ```
so, with flag `--setFields-only`, you can execute the `setFields` part of `particlesDict`. Now suppose that you have a simulation case which proceeded up to 2 seconds and for any reason you want to change some field value at time 3 s and continue the simulation from 3 s. To this end, you need to change `startTime` in settings dictionary to 3, execute `particlesPhasicFlow --setFields-only`, and start the simulation. so, with flag `--setFields-only`, you can execute the `setFields` part of `particlesDict`. Now suppose that you have a simulation case which proceeded up to 2 seconds and for any reason you want to change some field value at time 3 s and continue the simulation from 3 s. To this end, you need to change `startTime` in settings dictionary to 3, execute `particlesPhasicFlow --setFields-only`, and start the simulation.

View File

@ -6,9 +6,9 @@ objectName interaction;
objectType dicrionary; objectType dicrionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
materials (prop1); // properties of material materials (prop1); // properties of material
densities (1000.0); // density of materials [kg/m3] densities (1000.0); // density of materials [kg/m3]
contactListType sortedContactList; contactListType sortedContactList;
@ -38,14 +38,14 @@ model
Geff (0.8e6); // Shear modulus [Pa] Geff (0.8e6); // Shear modulus [Pa]
nu (0.25); // Poisson's ratio [-] nu (0.25); // Poisson's ratio [-]
en (0.7); // coefficient of normal restitution en (0.7); // coefficient of normal restitution
et (1.0); // coefficient of tangential restitution et (1.0); // coefficient of tangential restitution
mu (0.3); // dynamic friction mu (0.3); // dynamic friction
mur (0.1); // rolling friction mur (0.1); // rolling friction
} }

View File

@ -26,19 +26,19 @@ surfaces
{ {
type cylinderWall; // other options: cuboidWall and planeWall type cylinderWall; // other options: cuboidWall and planeWall
p1 (0.0 0.0 0.0); // begin point of cylinder axis p1 (0.0 0.0 0.0); // begin point of cylinder axis
p2 (0.0 0.0 0.1); // end point of cylinder axis p2 (0.0 0.0 0.1); // end point of cylinder axis
radius1 0.12; // radius at p1 radius1 0.12; // radius at p1
radius2 0.12; // radius at p2 radius2 0.12; // radius at p2
resolution 24; // number of divisions resolution 24; // number of divisions
material prop1; // material name of this wall material prop1; // material name of this wall
motion rotAxis; // motion component name motion rotAxis; // motion component name
} }
/* /*

View File

@ -29,20 +29,20 @@ setFields
{ {
shapeAssigne shapeAssigne
{ {
selector stridedRange; // other options: box, cylinder, sphere, randomPoints selector stridedRange; // other options: box, cylinder, sphere, randomPoints
stridedRangeInfo stridedRangeInfo
{ {
begin 0; // begin index of points begin 0; // begin index of points
end 30000; // end index of points end 30000; // end index of points
stride 3; // stride for selector stride 3; // stride for selector
} }
fieldValue // fields that the selector is applied to fieldValue // fields that the selector is applied to
{ {
shapeName word largeSphere; // sets shapeName of the selected points to largeSphere shapeName word largeSphere; // sets shapeName of the selected points to largeSphere
} }
} }
} }
@ -50,13 +50,13 @@ setFields
positionParticles // positions particles positionParticles // positions particles
{ {
method ordered; // other options: random and empty method ordered; // other options: random and empty
orderedInfo orderedInfo
{ {
diameter 0.005; // diameter of particles diameter 0.005; // diameter of particles
numPoints 30000; // number of particles in the simulation numPoints 30000; // number of particles in the simulation
axisOrder (z x y); // axis order for filling the space with particles axisOrder (z x y); // axis order for filling the space with particles
} }
@ -69,6 +69,6 @@ positionParticles // positions particles
p2 (0.0 0.0 0.097); // end point of cylinder axis p2 (0.0 0.0 0.097); // end point of cylinder axis
radius 0.117; // radius of cylinder radius 0.117; // radius of cylinder
} }
} }

View File

@ -16,13 +16,13 @@ contactSearch
{ {
method NBS; // method for broad search particle-particle method NBS; // method for broad search particle-particle
updateInterval 10; updateInterval 10;
sizeRatio 1.1; sizeRatio 1.1;
cellExtent 0.55; cellExtent 0.55;
adjustableBox No; adjustableBox No;
} }
model model
@ -46,25 +46,25 @@ model
0.8e6 0.8e6 0.8e6 0.8e6
0.8e6); 0.8e6);
nu (0.25 0.25 0.25 // Poisson's ratio [-] nu (0.25 0.25 0.25 // Poisson's ratio [-]
0.25 0.25 0.25 0.25
0.25); 0.25);
en (0.97 0.97 0.85 // coefficient of normal restitution en (0.97 0.97 0.85 // coefficient of normal restitution
0.97 0.85 0.97 0.85
1.00); 1.00);
et (1.0 1.0 1.0 // coefficient of tangential restitution et (1.0 1.0 1.0 // coefficient of tangential restitution
1.0 1.0 1.0 1.0
1.0); 1.0);
mu (0.65 0.65 0.35 // dynamic friction mu (0.65 0.65 0.35 // dynamic friction
0.65 0.35 0.65 0.35
0.35); 0.35);
mur (0.1 0.1 0.1 // rolling friction mur (0.1 0.1 0.1 // rolling friction
0.1 0.1 0.1 0.1
0.1); 0.1);
} }

View File

@ -6,7 +6,7 @@ objectName geometryDict;
objectType dictionary; objectType dictionary;
fileFormat ASCII; fileFormat ASCII;
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
motionModel conveyorBelt; // motion model can be rotatingAxis or stationary or vibrating motionModel conveyorBelt; // motion model can be rotatingAxis or stationary or vibrating
conveyorBeltInfo conveyorBeltInfo
{ {
@ -54,17 +54,22 @@ surfaces
belt belt
{ {
type stlWall; // type of the wall type stlWall; // type of the wall
file belt.stl; // file name in stl folder
material wallMat; // material name of this wall file belt.stl; // file name in stl folder
motion conveyorBelt1; // motion component name
material wallMat; // material name of this wall
motion conveyorBelt1; // motion component name
} }
box box
{ {
type stlWall; // type of the wall type stlWall; // type of the wall
file box.stl; // file name in stl folder
material wallMat; // material name of this wall file box.stl; // file name in stl folder
material wallMat; // material name of this wall
} }
} }