From 99da1d5a209b25264762a34f1985f7dae9174f6f Mon Sep 17 00:00:00 2001
From: Omid Khosravi <123903048+omid-khosravi@users.noreply.github.com>
Date: Sun, 26 Mar 2023 18:47:19 +0330
Subject: [PATCH 01/24] Create toteblender folder
---
tutorials/sphereGranFlow/toteblender/toteblender | 1 +
1 file changed, 1 insertion(+)
create mode 100644 tutorials/sphereGranFlow/toteblender/toteblender
diff --git a/tutorials/sphereGranFlow/toteblender/toteblender b/tutorials/sphereGranFlow/toteblender/toteblender
new file mode 100644
index 00000000..e8689b24
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/toteblender
@@ -0,0 +1 @@
+hh
From 46385b695315db53133ff2ec81f88bf17931ac1c Mon Sep 17 00:00:00 2001
From: Omid Khosravi <123903048+omid-khosravi@users.noreply.github.com>
Date: Sun, 26 Mar 2023 18:53:46 +0330
Subject: [PATCH 02/24] Add tote blender files via Upload
---
.../sphereGranFlow/toteblender/cleanThisCase | 7 +++++++
.../sphereGranFlow/toteblender/runThisCase | 21 +++++++++++++++++++
2 files changed, 28 insertions(+)
create mode 100644 tutorials/sphereGranFlow/toteblender/cleanThisCase
create mode 100644 tutorials/sphereGranFlow/toteblender/runThisCase
diff --git a/tutorials/sphereGranFlow/toteblender/cleanThisCase b/tutorials/sphereGranFlow/toteblender/cleanThisCase
new file mode 100644
index 00000000..8a0ab919
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/cleanThisCase
@@ -0,0 +1,7 @@
+#!/bin/sh
+cd ${0%/*} || exit 1 # Run from this directory
+
+ls | grep -P "^(([0-9]+\.?[0-9]*)|(\.[0-9]+))$" | xargs -d"\n" rm -rf
+rm -rf VTK
+
+#------------------------------------------------------------------------------
diff --git a/tutorials/sphereGranFlow/toteblender/runThisCase b/tutorials/sphereGranFlow/toteblender/runThisCase
new file mode 100644
index 00000000..c48d71fe
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/runThisCase
@@ -0,0 +1,21 @@
+#!/bin/sh
+cd ${0%/*} || exit 1 # Run from this directory
+echo "\n<--------------------------------------------------------------------->"
+echo "1) Creating particles"
+echo "<--------------------------------------------------------------------->\n"
+particlesPhasicFlow
+
+echo "\n<--------------------------------------------------------------------->"
+echo "2) Creating geometry"
+echo "<--------------------------------------------------------------------->\n"
+geometryPhasicFlow
+
+echo "\n<--------------------------------------------------------------------->"
+echo "3) Running the case"
+echo "<--------------------------------------------------------------------->\n"
+sphereGranFlow
+
+
+
+
+#------------------------------------------------------------------------------
From 8666e87f83ef00fb86acbca990dc05a528b78bb9 Mon Sep 17 00:00:00 2001
From: Omid Khosravi <123903048+omid-khosravi@users.noreply.github.com>
Date: Sun, 26 Mar 2023 18:54:33 +0330
Subject: [PATCH 03/24] Delete test file
---
tutorials/sphereGranFlow/toteblender/toteblender | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 tutorials/sphereGranFlow/toteblender/toteblender
diff --git a/tutorials/sphereGranFlow/toteblender/toteblender b/tutorials/sphereGranFlow/toteblender/toteblender
deleted file mode 100644
index e8689b24..00000000
--- a/tutorials/sphereGranFlow/toteblender/toteblender
+++ /dev/null
@@ -1 +0,0 @@
-hh
From bc3409d1540d75386833a31880d189ad14520052 Mon Sep 17 00:00:00 2001
From: Omid Khosravi <123903048+omid-khosravi@users.noreply.github.com>
Date: Sun, 26 Mar 2023 18:55:33 +0330
Subject: [PATCH 04/24] create test
---
tutorials/sphereGranFlow/toteblender/caseSetup/test | 1 +
1 file changed, 1 insertion(+)
create mode 100644 tutorials/sphereGranFlow/toteblender/caseSetup/test
diff --git a/tutorials/sphereGranFlow/toteblender/caseSetup/test b/tutorials/sphereGranFlow/toteblender/caseSetup/test
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/caseSetup/test
@@ -0,0 +1 @@
+
From 1b0667576bde9bb0bc2e5042c0f997bb4e011a26 Mon Sep 17 00:00:00 2001
From: Omid Khosravi <123903048+omid-khosravi@users.noreply.github.com>
Date: Sun, 26 Mar 2023 18:56:03 +0330
Subject: [PATCH 05/24] Add caseSetup files via Upload
---
.../toteblender/caseSetup/interaction | 61 +++++++++++++++++++
.../toteblender/caseSetup/particleInsertion | 13 ++++
.../toteblender/caseSetup/sphereShape | 13 ++++
3 files changed, 87 insertions(+)
create mode 100644 tutorials/sphereGranFlow/toteblender/caseSetup/interaction
create mode 100644 tutorials/sphereGranFlow/toteblender/caseSetup/particleInsertion
create mode 100644 tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape
diff --git a/tutorials/sphereGranFlow/toteblender/caseSetup/interaction b/tutorials/sphereGranFlow/toteblender/caseSetup/interaction
new file mode 100644
index 00000000..f97d2f4f
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/caseSetup/interaction
@@ -0,0 +1,61 @@
+/* -------------------------------*- C++ -*--------------------------------- *\
+| phasicFlow File |
+| copyright: www.cemf.ir |
+\* ------------------------------------------------------------------------- */
+objectName interaction;
+objectType dicrionary;
+/* ------------------------------------------------------------------------- */
+// a list of materials names
+materials (prop1);
+// density of materials [kg/m3]
+densities (1000.0);
+
+contactListType sortedContactList;
+
+model
+{
+ contactForceModel nonLinearNonLimited;
+ rollingFrictionModel normal;
+ /*
+ Property (prop1-prop1);
+ */
+// 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
+{
+// 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;
+ }
+
+}
\ No newline at end of file
diff --git a/tutorials/sphereGranFlow/toteblender/caseSetup/particleInsertion b/tutorials/sphereGranFlow/toteblender/caseSetup/particleInsertion
new file mode 100644
index 00000000..d8f022c6
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/caseSetup/particleInsertion
@@ -0,0 +1,13 @@
+/* -------------------------------*- C++ -*--------------------------------- *\
+| phasicFlow File |
+| copyright: www.cemf.ir |
+\* ------------------------------------------------------------------------- */
+objectName particleInsertion;
+objectType dicrionary;
+/* ------------------------------------------------------------------------- */
+// is insertion active?
+active no;
+// not implemented for yes
+collisionCheck No;
+
+
diff --git a/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape b/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape
new file mode 100644
index 00000000..ff2df8d1
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape
@@ -0,0 +1,13 @@
+/* -------------------------------*- C++ -*--------------------------------- *\
+| phasicFlow File |
+| copyright: www.cemf.ir |
+\* ------------------------------------------------------------------------- */
+objectName sphereDict;
+objectType sphereShape;
+/* ------------------------------------------------------------------------- */
+// names of shapes
+names (sphere1);
+// diameter of shapes (m)
+diameters (0.004);
+// material names for shapes
+materials (prop1);
\ No newline at end of file
From 4ecc667a10ad36fd72dd44ad15cd493c54bb53af Mon Sep 17 00:00:00 2001
From: Omid Khosravi <123903048+omid-khosravi@users.noreply.github.com>
Date: Sun, 26 Mar 2023 18:56:41 +0330
Subject: [PATCH 06/24] Delete test
---
tutorials/sphereGranFlow/toteblender/caseSetup/test | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 tutorials/sphereGranFlow/toteblender/caseSetup/test
diff --git a/tutorials/sphereGranFlow/toteblender/caseSetup/test b/tutorials/sphereGranFlow/toteblender/caseSetup/test
deleted file mode 100644
index 8b137891..00000000
--- a/tutorials/sphereGranFlow/toteblender/caseSetup/test
+++ /dev/null
@@ -1 +0,0 @@
-
From 05328a395171d805e57c20194d8caf2e1cc5e406 Mon Sep 17 00:00:00 2001
From: Omid Khosravi <123903048+omid-khosravi@users.noreply.github.com>
Date: Sun, 26 Mar 2023 18:57:13 +0330
Subject: [PATCH 07/24] Create test
---
tutorials/sphereGranFlow/toteblender/settings/test | 1 +
1 file changed, 1 insertion(+)
create mode 100644 tutorials/sphereGranFlow/toteblender/settings/test
diff --git a/tutorials/sphereGranFlow/toteblender/settings/test b/tutorials/sphereGranFlow/toteblender/settings/test
new file mode 100644
index 00000000..6a69f920
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/settings/test
@@ -0,0 +1 @@
+f
From 0dcff307a6181f3b64f0f6834a2c9aca4443c95a Mon Sep 17 00:00:00 2001
From: Omid Khosravi <123903048+omid-khosravi@users.noreply.github.com>
Date: Sun, 26 Mar 2023 18:57:44 +0330
Subject: [PATCH 08/24] Add settings files via Upload
---
.../toteblender/settings/geometryDict | 151 ++++++++++++++++++
.../toteblender/settings/particlesDict | 59 +++++++
.../toteblender/settings/settingsDict | 34 ++++
3 files changed, 244 insertions(+)
create mode 100644 tutorials/sphereGranFlow/toteblender/settings/geometryDict
create mode 100644 tutorials/sphereGranFlow/toteblender/settings/particlesDict
create mode 100644 tutorials/sphereGranFlow/toteblender/settings/settingsDict
diff --git a/tutorials/sphereGranFlow/toteblender/settings/geometryDict b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
new file mode 100644
index 00000000..49d486bd
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
@@ -0,0 +1,151 @@
+/* -------------------------------*- C++ -*--------------------------------- *\
+| phasicFlow File |
+| copyright: www.cemf.ir |
+\* ------------------------------------------------------------------------- */
+objectName geometryDict;
+objectType dictionary;
+/* ------------------------------------------------------------------------- */
+// motion model: rotating object around an axis
+motionModel rotatingAxisMotion;
+
+surfaces
+{
+ enterGate
+ {
+ // type of wall
+ type planeWall;
+ // coords of wall
+ p1 (-0.05 -0.05 0.3);
+ p2 (-0.05 0.05 0.3);
+ p3 ( 0.05 0.05 0.3);
+ p4 (0.05 -0.05 0.3);
+ // material of wall
+ material prop1;
+ // motion component name
+ motion rotAxis;
+ }
+
+ cylinderinlet
+ {
+ // type of the wall
+ type cylinderWall;
+ // begin point of cylinder axis
+ p1 (0.0 0.0 0.28);
+ // end point of cylinder axis
+ p2 (0.0 0.0 0.3);
+ // radius at p1
+ radius1 0.03;
+ // radius at p2
+ radius2 0.03;
+ // number of divisions
+ resolution 36;
+ // material name of this wall
+ material prop1;
+ // motion component name
+ motion rotAxis;
+ }
+
+ coneShelltop
+ {
+ // type of the wall
+ type cylinderWall;
+ // begin point of cylinder axis
+ p1 (0.0 0.0 0.2);
+ // end point of cylinder axis
+ p2 (0.0 0.0 0.28);
+ // radius at p1
+ radius1 0.1;
+ // radius at p2
+ radius2 0.03;
+ // number of divisions
+ resolution 36;
+ // material name of this wall
+ material prop1;
+ // motion component name
+ motion rotAxis;
+ }
+
+ cylinderShell
+ {
+ // type of the wall
+ type cylinderWall;
+ // begin point of cylinder axis
+ p1 (0.0 0.0 0.1);
+ // end point of cylinder axis
+ p2 (0.0 0.0 0.2);
+ // radius at p1
+ radius1 0.1;
+ // radius at p2
+ radius2 0.1;
+ // number of divisions
+ resolution 36;
+ // material name of this wall
+ material prop1;
+ // motion component name
+ motion rotAxis;
+ }
+
+ 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 prop1;
+ // motion component name
+ motion rotAxis;
+ }
+ /*
+ This is a plane wall at the exit of silo
+ */
+
+ cylinderoutlet
+ {
+ // 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 prop1;
+ // motion component name
+ motion rotAxis;
+ }
+ exitGate
+ {
+ type planeWall;
+ p1 (-0.05 -0.05 0);
+ p2 (-0.05 0.05 0);
+ p3 ( 0.05 0.05 0);
+ p4 (0.05 -0.05 0);
+ material prop1;
+ motion rotAxis;
+ }
+
+}
+// information for rotatingAxisMotion motion model
+rotatingAxisMotionInfo
+{
+ rotAxis
+ {
+ 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 3; // rotation speed (rad/s)
+ }
+}
diff --git a/tutorials/sphereGranFlow/toteblender/settings/particlesDict b/tutorials/sphereGranFlow/toteblender/settings/particlesDict
new file mode 100644
index 00000000..49a26e76
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/settings/particlesDict
@@ -0,0 +1,59 @@
+/* -------------------------------*- C++ -*--------------------------------- *\
+| phasicFlow File |
+| copyright: www.cemf.ir |
+\* ------------------------------------------------------------------------- */
+objectName particlesDict;
+objectType dictionary;
+/* ------------------------------------------------------------------------- */
+setFields
+{
+ /*
+ Default value for fields defined for particles
+ These fields should always be defined for simulations with
+ spherical particles.
+ */
+
+ defaultValue
+ {
+// linear velocity (m/s)
+ velocity realx3 (0 0 0);
+// linear acceleration (m/s2)
+ acceleration realx3 (0 0 0);
+// rotational velocity (rad/s)
+ rotVelocity realx3 (0 0 0);
+// name of the particle shape
+ shapeName word sphere1;
+ }
+
+ selectors
+ {}
+}
+
+// positions particles
+positionParticles
+{
+// ordered positioning
+ method positionOrdered;
+// maximum number of particles in the simulation
+ maxNumberOfParticles 40000;
+// perform initial sorting based on morton code?
+ mortonSorting Yes;
+// box for positioning particles
+ box
+ {
+// lower corner point of the box
+ min (-0.06 -0.06 0.08);
+// upper corner point of the box
+ max (0.06 0.06 0.18);
+ }
+
+ positionOrderedInfo
+ {
+// minimum space between centers of particles
+ diameter 0.004;
+// number of particles in the simulation
+ numPoints 20000;
+// axis order for filling the space with particles
+ axisOrder (z y x);
+ }
+}
diff --git a/tutorials/sphereGranFlow/toteblender/settings/settingsDict b/tutorials/sphereGranFlow/toteblender/settings/settingsDict
new file mode 100644
index 00000000..28b9a552
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/settings/settingsDict
@@ -0,0 +1,34 @@
+/* -------------------------------*- C++ -*--------------------------------- *\
+| phasicFlow File |
+| copyright: www.cemf.ir |
+\* ------------------------------------------------------------------------- */
+objectName settingsDict;
+objectType dictionary;;
+/*---------------------------------------------------------------------------*/
+run toteBlender;
+// time step for integration (s)
+dt 0.00001;
+// start time for simulation
+startTime 0;
+// end time for simulation
+endTime 10;
+// time interval for saving the simulation
+saveInterval 0.1;
+// maximum number of digits for time folder
+timePrecision 6;
+// gravity vector (m/s2)
+g (0 0 -9.8);
+
+/* Simulation domain */
+/* every particles that goes outside this domain is deleted. */
+domain
+{
+ min (-0.5 -0.5 -0.5);
+ max (0.5 0.5 0.5);
+}
+// integration method
+integrationMethod AdamsBashforth2;
+// report timers?
+timersReport Yes;
+// time interval for reporting timers
+timersReportInterval 0.01;
From d4dc0d7e80663a3a3d7de210ce800ffdc1da1710 Mon Sep 17 00:00:00 2001
From: Omid Khosravi <123903048+omid-khosravi@users.noreply.github.com>
Date: Sun, 26 Mar 2023 18:58:15 +0330
Subject: [PATCH 09/24] Delete test
---
tutorials/sphereGranFlow/toteblender/settings/test | 1 -
1 file changed, 1 deletion(-)
delete mode 100644 tutorials/sphereGranFlow/toteblender/settings/test
diff --git a/tutorials/sphereGranFlow/toteblender/settings/test b/tutorials/sphereGranFlow/toteblender/settings/test
deleted file mode 100644
index 6a69f920..00000000
--- a/tutorials/sphereGranFlow/toteblender/settings/test
+++ /dev/null
@@ -1 +0,0 @@
-f
From 04d7ecfe9e91155945c541ec28ef6fae0bb746f9 Mon Sep 17 00:00:00 2001
From: Omid Khosravi <123903048+omid-khosravi@users.noreply.github.com>
Date: Sun, 26 Mar 2023 18:58:42 +0330
Subject: [PATCH 10/24] Add ReadMe file via Upload
---
.../sphereGranFlow/toteblender/ReadMe.md | 244 ++++++++++++++++++
1 file changed, 244 insertions(+)
create mode 100644 tutorials/sphereGranFlow/toteblender/ReadMe.md
diff --git a/tutorials/sphereGranFlow/toteblender/ReadMe.md b/tutorials/sphereGranFlow/toteblender/ReadMe.md
new file mode 100644
index 00000000..4a9ff9bf
--- /dev/null
+++ b/tutorials/sphereGranFlow/toteblender/ReadMe.md
@@ -0,0 +1,244 @@
+# Problem Definition
+The problem is to simulate a double pedestal tote blender with the diameter **0.03 m** and **0.1 m** respectively, the length **0.3 m**, rotating at **28 rpm**. This blender is filled with **20000** Particles. The timestep for integration is **0.00001 s**. There is one type of Particle in this blender that are being inserted during simulation to fill the drum.
+* **20000** particles with **4 mm** diameter, at the rate of 20000 particles/s for 1 sec.
+
+
+
+
+ a view of the tote-blender while rotating
+
+
+

+
+
+
+
+# Setting up the Case
+As it has been explained in the previous cases, the simulation case setup is based on text-based scripts. Here, the simulation case setup are sotred in two folders: `caseSetup`, `setting`. (see the above folders). Unlike the previous cases, this case does not have the `stl` file. and the geometry is described in the `geometryDict` file.
+
+## Defining particles
+Then in the `caseSetup/sphereShape` the diameter and the material name of the particles are defined.
+```C++
+// names of shapes
+names (sphere1);
+// diameter of shapes (m)
+diameters (0.004);
+// material names for shapes
+materials (prop1);
+```
+## Particle Insertion
+In this case we have a region for ordering particles. These particles are placed in this blender. For example the script for the inserted particles is shown below.
+
+
+in caseSetup/particleInsertion file
+
+
+```C++
+// positions particles
+positionParticles
+{
+// ordered positioning
+ method positionOrdered;
+// maximum number of particles in the simulation
+ maxNumberOfParticles 40000;
+// perform initial sorting based on morton code?
+ mortonSorting Yes;
+// box for positioning particles
+ box
+ {
+// lower corner point of the box
+ min (-0.06 -0.06 0.08);
+// upper corner point of the box
+ max (0.06 0.06 0.18);
+ }
+```
+ ## Interaction between particles
+ In `caseSetup/interaction` file, material names and properties and interaction parameters are defined: interaction between the particles of rotating drum. Since we are defining 1 material for simulation, the interaction matrix is 1x1 (interactions are symetric).
+```C++
+ // a list of materials names
+materials (prop1);
+// density of materials [kg/m3]
+densities (1000.0);
+
+contactListType sortedContactList;
+
+model
+{
+ contactForceModel nonLinearNonLimited;
+ rollingFrictionModel normal;
+ /*
+ Property (prop1-prop1);
+ */
+// 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);
+
+}
+```
+## Settings
+### Geometry
+In the `settings/geometryDict` file, the geometry and axis of rotation is defined for the drum. The geometry is composed of a cylinder inlet and outlet, cone shell top and down, a cylinder shell and enter and exit Gate.
+```C++
+surfaces
+{
+ enterGate
+ {
+ // type of wall
+ type planeWall;
+ // coords of wall
+ p1 (-0.05 -0.05 0.3);
+ p2 (-0.05 0.05 0.3);
+ p3 ( 0.05 0.05 0.3);
+ p4 (0.05 -0.05 0.3);
+ // material of wall
+ material prop1;
+ // motion component name
+ motion rotAxis;
+ }
+
+ cylinderinlet
+ {
+ // type of the wall
+ type cylinderWall;
+ // begin point of cylinder axis
+ p1 (0.0 0.0 0.28);
+ // end point of cylinder axis
+ p2 (0.0 0.0 0.3);
+ // radius at p1
+ radius1 0.03;
+ // radius at p2
+ radius2 0.03;
+ // number of divisions
+ resolution 36;
+ // material name of this wall
+ material prop1;
+ // motion component name
+ motion rotAxis;
+ }
+
+ coneShelltop
+ {
+ // type of the wall
+ type cylinderWall;
+ // begin point of cylinder axis
+ p1 (0.0 0.0 0.2);
+ // end point of cylinder axis
+ p2 (0.0 0.0 0.28);
+ // radius at p1
+ radius1 0.1;
+ // radius at p2
+ radius2 0.03;
+ // number of divisions
+ resolution 36;
+ // material name of this wall
+ material prop1;
+ // motion component name
+ motion rotAxis;
+ }
+
+ cylinderShell
+ {
+ // type of the wall
+ type cylinderWall;
+ // begin point of cylinder axis
+ p1 (0.0 0.0 0.1);
+ // end point of cylinder axis
+ p2 (0.0 0.0 0.2);
+ // radius at p1
+ radius1 0.1;
+ // radius at p2
+ radius2 0.1;
+ // number of divisions
+ resolution 36;
+ // material name of this wall
+ material prop1;
+ // motion component name
+ motion rotAxis;
+ }
+
+ 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 prop1;
+ // motion component name
+ motion rotAxis;
+ }
+ /*
+ This is a plane wall at the exit of silo
+ */
+
+ cylinderoutlet
+ {
+ // 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 prop1;
+ // motion component name
+ motion rotAxis;
+ }
+ exitGate
+ {
+ type planeWall;
+ p1 (-0.05 -0.05 0);
+ p2 (-0.05 0.05 0);
+ p3 ( 0.05 0.05 0);
+ p4 (0.05 -0.05 0);
+ material prop1;
+ motion rotAxis;
+ }
+
+}
+```
+### Rotating Axis Info
+In this part of `geometryDict` the information of rotating axis and speed of rotation are defined. Unlike the previous cases, the rotation of this blender starts at time=**0 s**.
+```C++
+rotatingAxisMotionInfo
+{
+ rotAxis
+ {
+ 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 3; // rotation speed (rad/s)
+ }
+}
+```
+## Performing Simulation
+To perform simulations, enter the following commands one after another in the terminal.
+
+Enter `$ particlesPhasicFlow` command to create the initial fields for particles.
+Enter `$ geometryPhasicFlow` command to create the Geometry.
+At last, enter `$ sphereGranFlow` command to start the simulation.
+After finishing the simulation, you can use `$ pFlowtoVTK` to convert the results into vtk format storred in ./VTK folder.
\ No newline at end of file
From 7dee94e29787b200083dd2291525ebd98e783c7c Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Sun, 26 Mar 2023 22:23:50 +0430
Subject: [PATCH 11/24] Update settingsDict
Efficient domain
---
tutorials/sphereGranFlow/toteblender/settings/settingsDict | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/settingsDict b/tutorials/sphereGranFlow/toteblender/settings/settingsDict
index 28b9a552..d5a05a48 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/settingsDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/settingsDict
@@ -23,7 +23,7 @@ g (0 0 -9.8);
/* every particles that goes outside this domain is deleted. */
domain
{
- min (-0.5 -0.5 -0.5);
+ min (-0.3 -0.3 -0.3);
max (0.5 0.5 0.5);
}
// integration method
From 55f0b6c0c1c38dad4da80696160df94f3cc2c2e7 Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Sun, 26 Mar 2023 23:04:39 +0430
Subject: [PATCH 12/24] Update geometryDict
Rotation Speed
rotating axis instead of rot axis
move rotating axis info to motion model
---
.../toteblender/settings/geometryDict | 23 +++++++++----------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/geometryDict b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
index 49d486bd..bb045806 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/geometryDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
@@ -7,7 +7,16 @@ objectType dictionary;
/* ------------------------------------------------------------------------- */
// motion model: rotating object around an axis
motionModel rotatingAxisMotion;
-
+// information for rotatingAxisMotion motion model
+rotatingAxisMotionInfo
+{
+ axisOfRotation
+ {
+ 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
+ }
+}
surfaces
{
enterGate
@@ -22,7 +31,7 @@ surfaces
// material of wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
cylinderinlet
@@ -139,13 +148,3 @@ surfaces
}
}
-// information for rotatingAxisMotion motion model
-rotatingAxisMotionInfo
-{
- rotAxis
- {
- 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 3; // rotation speed (rad/s)
- }
-}
From 013764669bddd242e226b7c167cc9f840f1eadcf Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Sun, 26 Mar 2023 23:20:30 +0430
Subject: [PATCH 13/24] Update geometryDict
axisOfRotation instead of rotAxis
---
.../sphereGranFlow/toteblender/settings/geometryDict | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/geometryDict b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
index bb045806..5ca048c8 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/geometryDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
@@ -51,7 +51,7 @@ surfaces
// material name of this wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
coneShelltop
@@ -71,7 +71,7 @@ surfaces
// material name of this wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
cylinderShell
@@ -91,7 +91,7 @@ surfaces
// material name of this wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
coneShelldown
@@ -111,7 +111,7 @@ surfaces
// material name of this wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
/*
This is a plane wall at the exit of silo
@@ -134,7 +134,7 @@ surfaces
// material name of this wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
exitGate
{
@@ -144,7 +144,7 @@ surfaces
p3 ( 0.05 0.05 0);
p4 (0.05 -0.05 0);
material prop1;
- motion rotAxis;
+ motion axisOfRotation;
}
}
From e504606a05cf737d27c1e5da13987af7e88a44f7 Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Sun, 26 Mar 2023 23:26:17 +0430
Subject: [PATCH 14/24] Update particlesDict
Particles order changed from (z y x) to (x y z)
---
tutorials/sphereGranFlow/toteblender/settings/particlesDict | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/particlesDict b/tutorials/sphereGranFlow/toteblender/settings/particlesDict
index 49a26e76..4b2ef43e 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/particlesDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/particlesDict
@@ -54,6 +54,6 @@ positionParticles
// number of particles in the simulation
numPoints 20000;
// axis order for filling the space with particles
- axisOrder (z y x);
+ axisOrder (x y z);
}
}
From 55085648e6d175a005c33c4cdca35099ae3ee63d Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Sun, 26 Mar 2023 23:33:07 +0430
Subject: [PATCH 15/24] Update geometryDict
Added start and end time of rotation.
first phase settling of particles and then rotation
---
tutorials/sphereGranFlow/toteblender/settings/geometryDict | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/geometryDict b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
index 5ca048c8..b30e9a0e 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/geometryDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
@@ -15,6 +15,10 @@ rotatingAxisMotionInfo
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
+ // Start time of Geometry Rotating (s)
+ startTime 1;
+ // End time of Geometry Rotating (s)
+ endTime 9.5;
}
}
surfaces
From 9580c4cdcd15d159c8123d0e5ebc74891d7b9921 Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Tue, 28 Mar 2023 02:06:40 +0430
Subject: [PATCH 16/24] Update particlesDict
change the insert region from box to cylinder
---
.../sphereGranFlow/toteblender/settings/particlesDict | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/particlesDict b/tutorials/sphereGranFlow/toteblender/settings/particlesDict
index 4b2ef43e..f78dc644 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/particlesDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/particlesDict
@@ -39,12 +39,13 @@ positionParticles
// perform initial sorting based on morton code?
mortonSorting Yes;
// box for positioning particles
- box
+ cylinder
{
-// lower corner point of the box
- min (-0.06 -0.06 0.08);
-// upper corner point of the box
- max (0.06 0.06 0.18);
+// Coordinates of cylinderRegion (m,m,m)x
+ p1 (0.03 0.06 0.08);
+ p2 (0.03 0.06 0.18);
+// radius of cylinder
+ radius 0.035;
}
positionOrderedInfo
From b9d8aab1afaaa1fc4d6d3d78e4b19745b4930a2b Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Tue, 28 Mar 2023 16:53:07 +0430
Subject: [PATCH 17/24] Update tote blender
Changed the particle insert region from box to cylinder
---
.../toteblender/settings/particlesDict | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/particlesDict b/tutorials/sphereGranFlow/toteblender/settings/particlesDict
index f78dc644..8cccaabf 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/particlesDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/particlesDict
@@ -38,23 +38,23 @@ positionParticles
maxNumberOfParticles 40000;
// perform initial sorting based on morton code?
mortonSorting Yes;
-// box for positioning particles
- cylinder
+// cylinder for positioning particles
+ cylinder
{
-// Coordinates of cylinderRegion (m,m,m)x
- p1 (0.03 0.06 0.08);
- p2 (0.03 0.06 0.18);
+// Coordinates of top cylinderRegion (m,m,m)
+ p1 (0.05 0.0 0.12);
+ p2 (0.05 0.0 0.22);
// radius of cylinder
- radius 0.035;
+ radius 0.066;
}
positionOrderedInfo
{
// minimum space between centers of particles
- diameter 0.004;
+ diameter 0.003;
// number of particles in the simulation
numPoints 20000;
// axis order for filling the space with particles
- axisOrder (x y z);
+ axisOrder (z y x);
}
}
From 1d61b87ad4ccd490e6efa890721f3bb0a7e644ea Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Tue, 28 Mar 2023 16:56:41 +0430
Subject: [PATCH 18/24] Update particlesDict
Changed the rotVelocity to rVelocity.
---
tutorials/sphereGranFlow/toteblender/settings/particlesDict | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/particlesDict b/tutorials/sphereGranFlow/toteblender/settings/particlesDict
index 8cccaabf..f7e291c4 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/particlesDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/particlesDict
@@ -20,7 +20,7 @@ setFields
// linear acceleration (m/s2)
acceleration realx3 (0 0 0);
// rotational velocity (rad/s)
- rotVelocity realx3 (0 0 0);
+ rVelocity realx3 (0 0 0);
// name of the particle shape
shapeName word sphere1;
}
From fc37e7042deb9cf3cbc676666f14e2ce9d0f2a63 Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Tue, 28 Mar 2023 17:02:29 +0430
Subject: [PATCH 19/24] Update geometryDict
the names of some geometries were fixed
---
.../sphereGranFlow/toteblender/settings/geometryDict | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/geometryDict b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
index b30e9a0e..246c7c30 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/geometryDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
@@ -23,7 +23,7 @@ rotatingAxisMotionInfo
}
surfaces
{
- enterGate
+ topGate
{
// type of wall
type planeWall;
@@ -38,7 +38,7 @@ surfaces
motion axisOfRotation;
}
- cylinderinlet
+ topCylinder
{
// type of the wall
type cylinderWall;
@@ -98,7 +98,7 @@ surfaces
motion axisOfRotation;
}
- coneShelldown
+ coneShellbottom
{
// type of the wall
type cylinderWall;
@@ -121,7 +121,7 @@ surfaces
This is a plane wall at the exit of silo
*/
- cylinderoutlet
+ bottomCylinder
{
// type of the wall
type cylinderWall;
@@ -140,7 +140,7 @@ surfaces
// motion component name
motion axisOfRotation;
}
- exitGate
+ bottomGate
{
type planeWall;
p1 (-0.05 -0.05 0);
From 8f2749d599ae12ebe5a1bb62765d18b6dfa5383d Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Tue, 28 Mar 2023 17:50:59 +0430
Subject: [PATCH 20/24] Update tote blender ReadMe
fixed some misspellings and code blocks.
---
.../sphereGranFlow/toteblender/ReadMe.md | 61 ++++++++++++-------
1 file changed, 39 insertions(+), 22 deletions(-)
diff --git a/tutorials/sphereGranFlow/toteblender/ReadMe.md b/tutorials/sphereGranFlow/toteblender/ReadMe.md
index 4a9ff9bf..6a423f66 100644
--- a/tutorials/sphereGranFlow/toteblender/ReadMe.md
+++ b/tutorials/sphereGranFlow/toteblender/ReadMe.md
@@ -1,6 +1,6 @@
# Problem Definition
-The problem is to simulate a double pedestal tote blender with the diameter **0.03 m** and **0.1 m** respectively, the length **0.3 m**, rotating at **28 rpm**. This blender is filled with **20000** Particles. The timestep for integration is **0.00001 s**. There is one type of Particle in this blender that are being inserted during simulation to fill the drum.
-* **20000** particles with **4 mm** diameter, at the rate of 20000 particles/s for 1 sec.
+The problem is to simulate a double pedestal tote blender with the diameter **0.03 m** and **0.1 m** respectively, the length **0.3 m**, rotating at **28 rpm**. This blender is filled with **20000** Particles. The timestep for integration is **0.00001 s**. There is one type of Particle in this blender that are being inserted during simulation to fill the blender.
+* **20000** particles with **4 mm** diameter, at the rate of 20000 particles/s for 1 sec. ŮŽAfter settling particles, this blender starts to rotate at t=**1s**.
@@ -43,14 +43,26 @@ positionParticles
maxNumberOfParticles 40000;
// perform initial sorting based on morton code?
mortonSorting Yes;
-// box for positioning particles
- box
+// cylinder for positioning particles
+ cylinder
{
-// lower corner point of the box
- min (-0.06 -0.06 0.08);
-// upper corner point of the box
- max (0.06 0.06 0.18);
+// Coordinates of top cylinderRegion (m,m,m)
+ p1 (0.05 0.0 0.12);
+ p2 (0.05 0.0 0.22);
+// radius of cylinder
+ radius 0.066;
}
+
+ positionOrderedInfo
+ {
+// minimum space between centers of particles
+ diameter 0.003;
+// number of particles in the simulation
+ numPoints 20000;
+// axis order for filling the space with particles
+ axisOrder (z y x);
+ }
+}
```
## Interaction between particles
In `caseSetup/interaction` file, material names and properties and interaction parameters are defined: interaction between the particles of rotating drum. Since we are defining 1 material for simulation, the interaction matrix is 1x1 (interactions are symetric).
@@ -92,7 +104,7 @@ In the `settings/geometryDict` file, the geometry and axis of rotation is define
```C++
surfaces
{
- enterGate
+ topGate
{
// type of wall
type planeWall;
@@ -104,10 +116,10 @@ surfaces
// material of wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
- cylinderinlet
+ topCylinder
{
// type of the wall
type cylinderWall;
@@ -124,7 +136,7 @@ surfaces
// material name of this wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
coneShelltop
@@ -144,7 +156,7 @@ surfaces
// material name of this wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
cylinderShell
@@ -164,10 +176,10 @@ surfaces
// material name of this wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
- coneShelldown
+ coneShellbottom
{
// type of the wall
type cylinderWall;
@@ -184,13 +196,13 @@ surfaces
// material name of this wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
/*
This is a plane wall at the exit of silo
*/
- cylinderoutlet
+ bottomCylinder
{
// type of the wall
type cylinderWall;
@@ -207,9 +219,9 @@ surfaces
// material name of this wall
material prop1;
// motion component name
- motion rotAxis;
+ motion axisOfRotation;
}
- exitGate
+ bottomGate
{
type planeWall;
p1 (-0.05 -0.05 0);
@@ -217,7 +229,7 @@ surfaces
p3 ( 0.05 0.05 0);
p4 (0.05 -0.05 0);
material prop1;
- motion rotAxis;
+ motion axisOfRotation;
}
}
@@ -225,13 +237,18 @@ surfaces
### Rotating Axis Info
In this part of `geometryDict` the information of rotating axis and speed of rotation are defined. Unlike the previous cases, the rotation of this blender starts at time=**0 s**.
```C++
+// information for rotatingAxisMotion motion model
rotatingAxisMotionInfo
{
- rotAxis
+ axisOfRotation
{
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 3; // rotation speed (rad/s)
+ omega 1.5708; // rotation speed ==> 15 rad/s
+ // Start time of Geometry Rotating (s)
+ startTime 1;
+ // End time of Geometry Rotating (s)
+ endTime 9.5;
}
}
```
From 7e216f4cac34ffeec9f62cffac99c98a5c6ac920 Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Tue, 28 Mar 2023 18:11:30 +0430
Subject: [PATCH 21/24] solidProperty instead of prop1
---
.../toteblender/caseSetup/interaction | 4 ++--
.../toteblender/caseSetup/sphereShape | 2 +-
.../toteblender/settings/geometryDict | 14 +++++++-------
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/tutorials/sphereGranFlow/toteblender/caseSetup/interaction b/tutorials/sphereGranFlow/toteblender/caseSetup/interaction
index f97d2f4f..6dfdc46d 100644
--- a/tutorials/sphereGranFlow/toteblender/caseSetup/interaction
+++ b/tutorials/sphereGranFlow/toteblender/caseSetup/interaction
@@ -6,7 +6,7 @@ objectName interaction;
objectType dicrionary;
/* ------------------------------------------------------------------------- */
// a list of materials names
-materials (prop1);
+materials (solidProperty);
// density of materials [kg/m3]
densities (1000.0);
@@ -17,7 +17,7 @@ model
contactForceModel nonLinearNonLimited;
rollingFrictionModel normal;
/*
- Property (prop1-prop1);
+ Property (solidProperty-solidProperty);
*/
// Young modulus [Pa]
Yeff (1.0e6);
diff --git a/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape b/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape
index ff2df8d1..566fb339 100644
--- a/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape
+++ b/tutorials/sphereGranFlow/toteblender/caseSetup/sphereShape
@@ -10,4 +10,4 @@ names (sphere1);
// diameter of shapes (m)
diameters (0.004);
// material names for shapes
-materials (prop1);
\ No newline at end of file
+materials (solidProperty);
\ No newline at end of file
diff --git a/tutorials/sphereGranFlow/toteblender/settings/geometryDict b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
index 246c7c30..da479bac 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/geometryDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
@@ -33,7 +33,7 @@ surfaces
p3 ( 0.05 0.05 0.3);
p4 (0.05 -0.05 0.3);
// material of wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -53,7 +53,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -73,7 +73,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -93,7 +93,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -113,7 +113,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -136,7 +136,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -147,7 +147,7 @@ surfaces
p2 (-0.05 0.05 0);
p3 ( 0.05 0.05 0);
p4 (0.05 -0.05 0);
- material prop1;
+ material solidProperty;
motion axisOfRotation;
}
From 861a7a7b5d959c12d02abe5c7731ae37b36b882e Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Thu, 30 Mar 2023 22:11:30 +0430
Subject: [PATCH 22/24] Update geometryDict
Top gate was replaced from wall to cylinder.
**There is an error for bottom Gate that i couldn't solve it.**
---
.../toteblender/settings/geometryDict | 34 +++++++++++--------
1 file changed, 19 insertions(+), 15 deletions(-)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/geometryDict b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
index da479bac..d5d1df99 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/geometryDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
@@ -23,21 +23,25 @@ rotatingAxisMotionInfo
}
surfaces
{
+ topGate
topGate
{
// type of wall
- type planeWall;
- // coords of wall
- p1 (-0.05 -0.05 0.3);
- p2 (-0.05 0.05 0.3);
- p3 ( 0.05 0.05 0.3);
- p4 (0.05 -0.05 0.3);
+ type cylinderWall;
+ // begin point of cylinder axis
+ p1 (0.0 0.0 0.299);
+ // end point of cylinder axis
+ p2 (0.0 0.0 0.3);
+ // radius at p1
+ radius1 0.03;
+ // radius at p2
+ radius2 0.0001;
// material of wall
material solidProperty;
// motion component name
motion axisOfRotation;
}
-
+
topCylinder
{
// type of the wall
@@ -53,7 +57,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material solidProperty;
+ material prop1;
// motion component name
motion axisOfRotation;
}
@@ -73,7 +77,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material solidProperty;
+ material prop1;
// motion component name
motion axisOfRotation;
}
@@ -93,12 +97,12 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material solidProperty;
+ material prop1;
// motion component name
motion axisOfRotation;
}
- coneShellbottom
+ coneShelldown
{
// type of the wall
type cylinderWall;
@@ -113,7 +117,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material solidProperty;
+ material prop1;
// motion component name
motion axisOfRotation;
}
@@ -136,18 +140,18 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material solidProperty;
+ material prop1;
// motion component name
motion axisOfRotation;
}
- bottomGate
+ exitGate
{
type planeWall;
p1 (-0.05 -0.05 0);
p2 (-0.05 0.05 0);
p3 ( 0.05 0.05 0);
p4 (0.05 -0.05 0);
- material solidProperty;
+ material prop1;
motion axisOfRotation;
}
From 519ae70905d5864729656ec74bb3be50b74fbd9f Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Thu, 30 Mar 2023 22:14:48 +0430
Subject: [PATCH 23/24] Update ReadMe toteBlender
geometry code block was fixed.
---
.../sphereGranFlow/toteblender/ReadMe.md | 24 +++++++++++--------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/tutorials/sphereGranFlow/toteblender/ReadMe.md b/tutorials/sphereGranFlow/toteblender/ReadMe.md
index 6a423f66..5a6d13b5 100644
--- a/tutorials/sphereGranFlow/toteblender/ReadMe.md
+++ b/tutorials/sphereGranFlow/toteblender/ReadMe.md
@@ -104,21 +104,25 @@ In the `settings/geometryDict` file, the geometry and axis of rotation is define
```C++
surfaces
{
+ topGate
topGate
{
// type of wall
- type planeWall;
- // coords of wall
- p1 (-0.05 -0.05 0.3);
- p2 (-0.05 0.05 0.3);
- p3 ( 0.05 0.05 0.3);
- p4 (0.05 -0.05 0.3);
+ type cylinderWall;
+ // begin point of cylinder axis
+ p1 (0.0 0.0 0.299);
+ // end point of cylinder axis
+ p2 (0.0 0.0 0.3);
+ // radius at p1
+ radius1 0.03;
+ // radius at p2
+ radius2 0.0001;
// material of wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
-
+
topCylinder
{
// type of the wall
@@ -179,7 +183,7 @@ surfaces
motion axisOfRotation;
}
- coneShellbottom
+ coneShelldown
{
// type of the wall
type cylinderWall;
@@ -221,7 +225,7 @@ surfaces
// motion component name
motion axisOfRotation;
}
- bottomGate
+ exitGate
{
type planeWall;
p1 (-0.05 -0.05 0);
From f14e9169f8e6ccb6793030921d83db875096162c Mon Sep 17 00:00:00 2001
From: Omid Khosravi
Date: Thu, 30 Mar 2023 22:28:53 +0430
Subject: [PATCH 24/24] Update geometryDict
changed prop1 to solidProperty
---
.../sphereGranFlow/toteblender/settings/geometryDict | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tutorials/sphereGranFlow/toteblender/settings/geometryDict b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
index d5d1df99..da9b22e8 100644
--- a/tutorials/sphereGranFlow/toteblender/settings/geometryDict
+++ b/tutorials/sphereGranFlow/toteblender/settings/geometryDict
@@ -57,7 +57,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -77,7 +77,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -97,7 +97,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -117,7 +117,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -140,7 +140,7 @@ surfaces
// number of divisions
resolution 36;
// material name of this wall
- material prop1;
+ material solidProperty;
// motion component name
motion axisOfRotation;
}
@@ -151,7 +151,7 @@ surfaces
p2 (-0.05 0.05 0);
p3 ( 0.05 0.05 0);
p4 (0.05 -0.05 0);
- material prop1;
+ material solidProperty;
motion axisOfRotation;
}