From 37c86b732836b3425fc44f1a3840d86b98685b77 Mon Sep 17 00:00:00 2001
From: cemf4 <homa.farahani94.com>
Date: Sun, 8 Jun 2025 12:29:33 +0330
Subject: [PATCH] READMEPostprocess.md

---
 READMEPostprocess.md | 208 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 208 insertions(+)
 create mode 100644 READMEPostprocess.md

diff --git a/READMEPostprocess.md b/READMEPostprocess.md
new file mode 100644
index 00000000..941f973a
--- /dev/null
+++ b/READMEPostprocess.md
@@ -0,0 +1,208 @@
+# phasicFlow `processDataDict` File Explanation
+## Problem definition 
+ There is a rotating drum with the diameter 0.24 m and the length 0.1 m rotating at 11.6 rpm. It is filled with 30,000 4-mm spherical particles. The timestep for integration is 0.00001 s.The problem is to postprocessing some data such as velocity, position, one, mass. 
+
+
+
+## Setting up the case 
+ 
+  To postprocess these data, we should configurate `processDataDict`  file. The code is divided into the following two main parts: 1. Time Control Configuration 2. Components. 
+
+## Time Control Configuration
+
+### `defaultTimeControl`
+Defines default time management for processing tasks:
+
+
+```cpp
+   defaultTimeControl
+
+   {
+    timeControl           timeStep;    //Time stepping mode
+	startTime             0;           //Start time for post-processing
+	executionInterval     10000;        //Interval between processing events
+    }
+ ```
+
+
+
+## Components
+
+Each entry in the `components` section specifies a different post-processing task as shown below. After running the code, a file with the same name is generated in the simulation folder, containing the data.
+
+### 1. `velocityProb`
+- **Purpose**: Probe the y-component of velocity for specific particles.
+
+
+```cpp
+velocityProb
+    {
+        processMethod   particleProbe;              //probes at selected particles
+        processRegion   centerPoints;               //at particle centers
+
+        timeControl     default;                   //Uses default time control.
+        
+        selector        id;                        //selected particles by particle ID
+        
+        ids             (0 10 20 100 1000);        //list of particle IDs that has beeen selected arbitrarily.
+
+        field           component(velocity,y);    //y-component of velocity
+        
+    }
+
+```
+
+### 2. `positionProb`
+- **Purpose**: Probe positions at randomly selected points.
+
+```cpp
+positionProb
+    {
+        processMethod   particleProbe;
+        processRegion   centerPoints;
+        
+        timeControl     settingsDict;            //Uses `settingsDict` time control.
+        
+        selector        randomPoints;           //selects by random points.
+                
+        randomPointsInfo
+        {
+            begin        0;                          //start of rang
+            end          20000;                      //end of rang
+            number       20;                         //number of points
+        }
+
+        field             position;             
+        
+    }
+    
+
+```
+
+### 3. `alongALine`
+- **Purpose**: Compute statistics along a line, dividing it into spheres (probes).
+
+```cpp
+alongALine
+    {
+        processMethod    arithmetic; 
+        processRegion    line;
+
+        // 10 spheres with radius 0.01 along the straight line defined by p1 and  p2 
+        lineInfo
+        {
+            p1             ( 0     0     0.05);      
+            p2             (0.084 -0.084 0.05);      
+            nSpheres        10;                      
+            radius          0.01;
+        }
+
+        timeControl         simulationTime;         //custom time control.
+        
+        executionInterval   0.1;
+          
+        startTime           0.4;
+
+        operations
+        (
+            avVelocity1                             //   Average velocity magnitude (mass-weighted, with fluctuation)
+            {
+                function        average;            
+                field           mag(velocity);
+                fluctuation2    yes;
+                phi             mass;
+            }
+
+            numberDensity1                         //Number density (normalized by volume, threshold 10)
+            {
+                function        sum;
+                field           one;
+                divideByVolume  yes;
+                threshold       10;
+            }
+
+            parCount1                              //Particle count (sum)
+            {
+                function       sum;
+                field          one;
+            }
+
+            volFrac1                              //Volume fraction (normalized by volume, threshold 4)
+            {
+                function         sum;
+                field            volume;
+                divideByVolume   yes;
+                threshold        4;
+            }
+        );
+    }
+
+
+```
+
+### 4. `alongALine2`
+- **Purpose**: Compute Gaussian-distributed statistics along a line.
+
+
+
+```cpp
+alongALine2
+    {
+        processMethod    GaussianDistribution; 
+        processRegion    line;
+
+        // 10 spheres with radius 0.01 along the straight line defined by p1 and  p2 
+        lineInfo
+        {
+            p1             ( 0     0     0.05);
+            p2             (0.084 -0.084 0.05);
+            nSpheres        10;
+            radius          0.01;
+        }
+
+        timeControl         timeStep;
+
+        executionInterval   100;
+          
+        startTime            0;
+
+        operations
+        (
+            avVelocity                       //Average velocity magnitude (mass-weighted)
+            {
+                function    average;
+                field       mag(velocity);
+                phi         mass;
+            }
+
+            bulkDensity                      //Bulk density (sum of mass, volume-normalized, threshold 5)
+            {
+                function              sum;
+                field                 mass;
+                phi                   one;
+                divideByVolume        yes;
+                threshold             5;
+            }
+
+            parCount                       //Particle count
+            {
+                function    sum;
+                field       one;
+            }
+
+            volFrac                       //Volume fraction (volume-normalized, threshold 4)
+
+            {
+                function             sum;
+                field                volume;
+                divideByVolume       yes;
+                threshold            4;
+            }
+        );
+    }
+    
+
+
+
+
+```
\ No newline at end of file