Git Product home page Git Product logo

spherepacking's Introduction

Random Sphere Packing Simulation

This program simulates a random sphere packing in a cylinder using the Monte Carlo method. The spheres can have two ranges of sizes (with random distributions around the mean) and are randomly packed in the cylinder. The program utilizes GNU's GLPK library to identify the caged spheres, which are a subset of spheres that are confined between other ones and can move within their cage.

The packing simulation algorithm was developed as part of my MSc thesis at Isfahan University of Technology. The jammed particle identification algorithm has been implemented using the method proposed by Donev, A., Torquato, S., Stillinger, F.H. and Connelly, R. (2004) JCP 197(1).

The results from this program were intended for use in a flow solver to simulate fluid flows through packed beds. The flow solvers for the simulation of gaseous mixtures through these packed beds remain unpublished (for the time being), but can be obtained via contacting with me. "Lattice Boltzmann simulation of creeping flow through a packed bed, flow visualization using paraview, image obtained from Rastegari, S.A., 2009. Simulation of Gaseous Mixture Flows in a packed bed of unfixed particles, MSc thesis, Isfahan University of Technology"

Program Input

The program expects the input to be provided in the file info.packing. This file contains various lines that specify the parameters and settings for the random sphere packing simulation. Each line in the file is accompanied by an explanation to help understand its purpose and usage.

Program Outputs

The program outputs the locations of the sphere centers, their diameters, and marks the caged spheres.

Citation

If you use the results obtained from this program in your research or work, please cite the following reference:

Rastegari, S.A., 2009. Simulation of Gaseous Mixture Flows in a packed bed of unfixed particles, MSc thesis, Isfahan University of Technology.

Dependencies

The program relies on the GNU GLPK library for identifying caged spheres. Ensure that you have the GLPK library installed on your system before running the program.

Usage

To compile and run the program, follow the steps below:

  1. Make sure you have the GLPK library installed on your system.
  2. Set the path to GLPK directory (GLPK_DIR) at the beginning of the Makefile
  3. Compile the program using the provided Makefile. Run the following command:
make
  1. Once the compilation is successful, execute the program with the following command:
./packing

The program will perform the random sphere packing simulation according to the parameters specified in the info.packing file. The results will be displayed on the console and saved to an output file.

Verification

The program has gone through some verification studies an example of which is found in the "verification" directory of this repo.

Author

This program was developed by Amirreza Rastegari. For questions or inquiries, please contact him at "arstgri at gmail dot com".

License

This program is licensed under the GNU Affero general public License. Refer to the LICENSE file for more information.

spherepacking's People

Contributors

arstgr avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.