Merge pull request #165 from ramin1728/main
binarySystemOfParticles is Updated.
This commit is contained in:
commit
191801b344
|
@ -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.
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue