Saved in:
Bibliographic Details
Main Author: Strachota, Pavel
Format: Recurso digital
Language:
Published: Zenodo 2025
Online Access:https://doi.org/10.5281/zenodo.16364924
Tags: Add Tag
No Tags, Be the first to tag this record!
Table of Contents:
  • <div dir="auto"> <h1>PorousFreezeThaw</h1> <p>A snapshot of the GitHub repository <a href="https://github.com/radixsorth/PorousFreezeThaw">https://github.com/radixsorth/PorousFreezeThaw</a></p> Numerical solvers for:</div> <ul> <li>simulation of freezing and thawing of water in porous media at pore scale</li> <li>DEM simulation of spherical particle dynamics (for creating a porous bed of particles at the bottom of a container)</li> </ul> <p dir="auto">This repository contains supplementary materials for the manuscripts</p> <p dir="auto"><strong>Pavel Strachota - Three-dimensional phase-field simulations of water freezing and thawing at pore-scale</strong></p> <p dir="auto">and</p> <p dir="auto"><strong>Pavel Strachota - DEM Simulations of Settling of Spherical Particles using a Soft Contact Model and Adaptive Time Stepping</strong></p> <p dir="auto">The directory structure is as follows:</p> <div> <pre>── apps<br>│   ├── intertrack-hybrid-S-freezing                # C source code of the freezing/thawing simulator<br>│   │   ├── data<br>│   │   ├── OUTPUT<br>│   │   └── results                                 # results (case settings files "Params", log files, visualizations)<br>│   │       ├── 100_low-resolution<br>│   │       ├── 200_medium-resolution<br>│   │       │   └── Movies-with-temperature-field<br>│   │       ├── 400_high-resolution<br>│   │       │   ├── Movies-without-temperature-field<br>│   │       │   └── Movies-with-temperature-field<br>│   │       └── PhysRevE-2025<br>│   │           └── 200_medium-resolution<br>│   │               └── Movies-with-temperature-field<br>│   ├── sphere-collider                             # C source code of the full DEM simulator<br>│   │   └── OUTPUT<br>│   └── sphere-collider-MATLAB                      # MATLAB code of the basic DEM simulator (more cases)<br>│       ├── results                                 # results produced in MATLAB (workspace snapshots, videos, logs)<br>│       │   ├── 100-spheres-for-porous-bed<br>│       │   ├── 100-spheres-high_elevation<br>│       │   ├── 200-spheres-for-porous-bed-1<br>│       │   └── 200-spheres-for-porous-bed-2<br>│       └── source-code<br>│           └── plots</pre> <div> </div> </div> <p dir="auto"><em>(software infrastructure and modules needed to build the apps are below)</em></p> <div> <pre><code>├── include ├── lib ├── libsource │   ├── dataIO │   ├── exprsion │   ├── screen │   └── strings ├── modules │   ├── cparser │   ├── evsubst │   ├── mprintf │   ├── pparser │   ├── RK_Asolver │   ├── RK_csolver │   ├── RK_MPI_Asolver │   ├── RK_MPI_SAsolver │   ├── RK_MPI_SAsolver_hybrid │   ├── RK_MPI_SAsolver_hybrid2 │   └── RK_solver ├── _settings └── _template └── AVS </code></pre> <div> </div> </div> <div dir="auto"> <h2>DEM simulator of spherical particle dynamics (MATLAB)</h2> </div> <p dir="auto">Run the <code>spheres.m</code> script using a recent MATLAB distribution (anything newer than R2020a will do). The source code is heavily commented. The script requires that a <code>plots</code> directory exists in its path where the visualization of the simulation is stored in the form of a series of images.</p> <div dir="auto"> <h2>Building the binaries of the simulators written in C</h2> </div> <p dir="auto">The code of the simulators is written in C and C++. For easy compilation, the following software environment is required:</p> <ul> <li>Linux operating system</li> <li>any recent <code>gcc</code> compiler with OpenMP support</li> <li>an MPI library with development files, such as OpenMPI</li> <li><code>make</code></li> </ul> <p dir="auto">To build the software, run <code>make_all</code> in the <code>porous-freeze-thaw-simulator</code> directory.</p> <div dir="auto"> <h2>Freezing and thawing simulations in porous media</h2> </div> <p dir="auto">The binaries of the simulator will be placed in</p> <p dir="auto"><code>porous-freeze-thaw-simulator/apps/intertrack-hybrid-S-freezing</code></p> <p dir="auto">To run the simulation of with the default parameters settings (the <code>Params</code> file), issue the command</p> <div> <pre><code>./Run M N </code></pre> <div> </div> </div> <p dir="auto">where <code>M</code> is the number of MPI ranks and <code>N</code> is the number of OpenMP threads. If <code>N</code> is omitted, it defaults to 1. If both <code>M</code> and <code>N</code> are omitted, one single-threaded process is launched.</p> <p dir="auto">The positions of the sphere centers are contained in the <code>data/spheres_positions.txt</code> file. This path is currently hardcoded in <code>equation.c</code></p> <div dir="auto"> <h2>DEM simulations of spherical particle settling</h2> </div> <p dir="auto">The binaries of the simulator will be placed in</p> <p dir="auto"><code>porous-freeze-thaw-simulator/apps/sphere-collider</code></p> <p dir="auto">All parameters are contained in the source file <code>spheres.c</code>. This file is a symlink to one of the version of the simulator:</p> <ul> <li><code>spheres_basic.c</code> ... the basic version with repulsive forces only</li> <li><code>spheres_friction.c</code> ... the version with friction</li> <li><code>spheres_friction_angular.c</code> ... the version with friction and rotation</li> </ul> <p dir="auto">To select one of the versions for compilation (point the symlink to one of the source code variants), one may type e.g.:</p> <p dir="auto"><code>./Select.sh spheres_basic.c</code></p> <p dir="auto">Then modify the source file and run <code>make</code> again.</p>