From 53f0e959b0b67af75119bd10188c2d1011800137 Mon Sep 17 00:00:00 2001 From: Hamidreza Date: Fri, 25 Apr 2025 21:04:18 +0330 Subject: [PATCH] readme.md for geometryPhasicFlow --- utilities/geometryPhasicFlow/README.md | 149 +++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 utilities/geometryPhasicFlow/README.md diff --git a/utilities/geometryPhasicFlow/README.md b/utilities/geometryPhasicFlow/README.md new file mode 100644 index 00000000..46c23a15 --- /dev/null +++ b/utilities/geometryPhasicFlow/README.md @@ -0,0 +1,149 @@ +# geometryPhasicFlow Utility + +## Overview + +`geometryPhasicFlow` is a preprocessing utility for Discrete Element Method (DEM) simulations in phasicFlow. It converts wall geometry definitions from the `geometryDict` file into the internal geometry data structures used by the phasicFlow simulation engine. + +This utility reads geometry definitions including wall types, material properties, and motion models from the `geometryDict` file located in the `settings` folder of your simulation case directory. It then processes these definitions to create the necessary triangulated surfaces and motion models that will be used during the simulation. + +## Usage + +Run the utility from your case directory containing the `settings` folder: + +```bash +geometryPhasicFlow +``` + +For fluid-particle coupling simulations: + +```bash +geometryPhasicFlow -c +``` + +## Wall Types + +phasicFlow supports several built-in wall types that can be defined in the `geometryDict`: + +1. **planeWall** - Flat wall defined by four points (p1, p2, p3, p4) +2. **cylinderWall** - Cylindrical wall defined by two axis points and radius +3. **cuboidWall** - Box-shaped wall defined by center point and dimensions +4. **stlWall** - Complex geometry imported from an STL file + +## Motion Models + +Walls can be associated with different motion models: + +1. **stationary** - Fixed walls (no movement) +2. **rotatingAxis** - Rotation around a specified axis +3. **multiRotatingAxis** - Multiple rotations (for complex motions) +4. **vibrating** - Oscillating motion with specified frequency and amplitude +5. **conveyorBelt** - Creates a conveyor belt effect with constant tangential velocity + +## geometryDict File Structure + +The geometryDict file requires the following structure: + +```C++ + +// Motion model selection +motionModel ; + +// Motion model specific information +Info +{ + // Motion model parameters + // ... +} + +// Wall surfaces definitions +surfaces +{ + + { + type ; // Wall type (planeWall, cylinderWall, etc.) + // Wall type specific parameters + // ... + material ; // Material name for this wall + motion ; // Motion component name + } + + + { + // Another wall definition + // ... + } + + // Additional walls as needed +} +``` + +## Example + +Here's a simple example of a `geometryDict` file for a rotating drum: + +```C++ + +// Rotation around an axis +motionModel rotatingAxis; + +rotatingAxisInfo +{ + rotAxis + { + p1 (0.0 0.0 0.0); // First point for axis of rotation + p2 (0.0 0.0 1.0); // Second point for axis of rotation + omega 1.214; // Rotation speed (rad/s) + } +} + +surfaces +{ + cylinder + { + type cylinderWall; // Type of wall + p1 (0.0 0.0 0.0); // Begin point of cylinder axis + p2 (0.0 0.0 0.1); // End point of cylinder axis + radius1 0.12; // Radius at p1 + radius2 0.12; // Radius at p2 + resolution 24; // Number of divisions + material prop1; // Material name + motion rotAxis; // Motion component name + } + + wall1 + { + type planeWall; // Type of wall + p1 (-0.12 -0.12 0.0); // First point + p2 ( 0.12 -0.12 0.0); // Second point + p3 ( 0.12 0.12 0.0); // Third point + p4 (-0.12 0.12 0.0); // Fourth point + material prop1; // Material name + motion rotAxis; // Motion component name + } +} +``` + +## STL File Support + +For complex geometries, you can use STL files: + +```C++ +wallName +{ + type stlWall; // Type is STL wall + file filename.stl; // File name in ./stl folder + scale 1.0; // Optional scale for changing the size of surface + transform (0 0 0); // Optional translation vector + scaleFirst Yes; // Scale first or translate first + material wallMat; // Material name + motion rotAxis; // Motion component name +} +``` + +STL files should be placed in an `stl` folder in your case directory. + +## See Also + +- [particlesPhasicFlow](../particlesPhasicFlow) - Utility for creating initial particle configurations +- [pFlowToVTK](../pFlowToVTK) - Utility for converting simulation results to VTK format +- [Tutorials](../../tutorials) - Example cases demonstrating phasicFlow capabilities \ No newline at end of file