PixelFlow
December 27, 2024 · View on GitHub
PixelFlow
Overview
This implementation is based on the papers.
This code addresses incompressible fluid dynamics using the collocated grid Marker-and-Cell (MAC) method on a Cartesian grid. Spatial discretization is performed with second-order central differencing, while temporal discretization employs a first-order explicit Euler method. For pressure calculations, the Red-Black Successive Over-Relaxation (SOR) method is implemented.
Table of Contents
- PixelFlow
Requirements
To build and run this project, you will need the following tools and libraries installed on a Linux environment:
- CMake: A cross-platform build system generator.
- Make: A build automation tool.
- GCC: The GNU Compiler Collection, including the C compiler.
- G++: The GNU C++ Compiler.
- GFortran: The GNU Fortran Compiler.
Prerequisites
Make sure you have the required tools and libraries installed. You can install them using the package manager of your Linux distribution. For example, on Debian-based systems like Ubuntu, you can use apt-get:
sudo apt-get update
sudo apt-get install -y cmake make gcc g++ gfortran
Installation
-
Open a terminal and navigate to the desired working directory.
-
Clone the repository from GitHub:
git clone https://github.com/nobu-n2002/PixelFlow.git -
Move into the application directory:
cd PixelFlow -
Build all sources:
make build -
Create working directory:
make project f=<your_project_name>The usage of
makeis as follows:Usage: make [OPTIONS] options build Build all source codes project f=<folder_name> Create a new folder with the specified name help Display Usage -
Check the
binFolder:-
Upon a successful build, executable files are generated in the
binfolder. -
Open a terminal or command prompt and run the following command to verify the presence of the generated executable file(s) in the
binfolder.ls bin -
Ensure that the application's executable file is present in the
binfolder.
-
-
Grant execution permissions to the executable files in the
binfolder:chmod +x bin/* -
Verify the
configFolder:-
Proper configuration is crucial for the application. During the build, a configuration file named
controlDict.txtshould be created in theconfigfolder. -
Open a terminal or command prompt and run the following command to confirm the existence of the
controlDict.txtfile in theconfigfolder.cd projects/<folder_name> ls config -
Confirm that the
controlDict.txtfile is present in theconfigfolder.
-
-
Follow the steps in the Getting Started section to set up the environment and configure the simulation.
-
Proceed to the Running Simulations section to execute the simulation.
Getting Started
Setting up the Environment
- Place the solid boundary information file (
.csv) in thedata/directory.
Editing Configuration
-
Open the
config/controlDict.txtfile in a text editor. For detailed information on each parameter and how to configure your simulations, refer to the Configuring Simulations section. -
Edit the variables according to your simulation requirements.
!******************************************** &physical !--- Kinematic viscosity coefficient [m2/s] xnue = 0.001000 !--- Second viscosity coefficient [m2/s] xlambda = 0.000000 !--- Fluid density [kg/m3] density = 1.000000 !--- Domein [m] width = 1.0000000 height = 1.0000000 depth = 1.0000000 !--- Simulation time [s] time = 1.000000 ... !******************************************** &solver_control !--- SOR max iteration steps iter_max = 100 !--- SOR reluxation factor (1<w<2) relux_factor = 1.700000 / !******************************************** -
Save the changes and close the file.
Running Simulations
-
Run the simulation script:
make runYou will be prompted to select an executable file. If you are using OpenMP parallelization code, please set parallel threads in
config/omp_config.conf.Available executable files: 0: ibm2_drag_omp 1: ibm2_omp 2: ibm3_air_condition_omp 3: ibm3_omp Using OMP_NUM_THREADS = ${$OMP_NUM_THREADS} Running ibm2_omp... -
The processes are output to
runlog_*.logfiles inside thelogs/folder. Additionally, execution information is output toprocess.loginside thelogs/folder. -
The output in the
{output_folder}/directory. -
If you need to forcibly terminate the process during computation, please enter the following command. You will receive the process ID and a confirmation message. Input 'yes' followed by pressing enter to forcibly terminate the running process.
make quit
Configuring Simulations
The config/controlDict.txt file contains parameters that define the properties of the simulation. Here's a breakdown of the important parameters:
&physical Section
xnue: Kinematic viscosity of the fluid, ) [m^2/s].xlambda: Second Kinematic viscosity of the fluid, () [m^2/s].density: Density of the fluid, [kg/m^3].width,height,depth: The simulation domain, [m].time: Total simulation time, [s].inlet_velocity: Inlet velocity of the fluid, [m/s].outlet_pressure: Outlet pressure, [Pa].AoA: Angle of Attack, [degree].
&file_control Section
istep_out: Output interval for saving results, specified as the number of time steps.
&grid_control Section
istep_max: Maximum number of time steps for the simulation.
&porosity_control Section
thickness: Thickness of boundary region, ).
&calculation_method Section
nonslip: Specify.true.for no-slip conditions or.false.for slip conditions.
&directory_control Section
output_folder: Name of the folder where simulation results will be stored.csv_file: Path to the solid boundary information file in CSV format.
Adjust these parameters according to your simulation requirements. The output_folder will be created to store the simulation results, and the csv_file should point to the CSV file containing solid boundary information.
Running a Test Case
References
[1] Oshima, N., A novel approach for wall-boundary immersed flow simulation (proposal of modified Navier-Stokes equation), Journal of Fluid Science and Technology, Vol.18, No.4 (2023), https://doi.org/10.1299/jfst.2023jfst0034
[2] Oshima, N., A novel approach for wall-boundary immersed flow simulation (part 2: modeling of wall shear stress), Journal of Fluid Science and Technology, Vol.19, No.3 (2024), https://doi.org/10.1299/jfst.2024jfst0026
[3] Oshima, N., Program for flow simulation immersing wall boundary, Hokkaido university collection of scholarly and academic papers. http://hdl.handle.net/2115/89344
[4] Nakamichi, N., Cho, Y. and Oshima, N., Image-data-driven simulation of fluid dynamics (proposal and evaluation), Mechanical Engineering Journal, Vol.11, No.6 (2024), https://doi.org/10.1299/mej.24-00196
[5] Nakamichi, N., Laeron, E., Cho, Y. and Oshima, N., Moving boundary flow simulation using immersed boundary Navier–Stokes equation, The 38th Computational Fluid Dynamics Symposium (in Japanese), http://hdl.handle.net/2115/93762
[6] Nakamichi, N., Cho, Y. and Oshima, N., Fluid Simulation directly Driven by 3D image data, The 52th Visualization Symposium (in Japanese), http://hdl.handle.net/2115/93764