Giter VIP home page Giter VIP logo

sphcontact's Introduction

SPHContact

Smoothed Particle Hydrodynamics (SPH) code with a model for contact detection and accurate force calculation.

Lead developer: Dr. Raihan Tayeb, University of Missouri-Columbia and Dr. Yijin Mao (co-author of the paper).

Overview

A software package for low and high velocity impact simulation developed using the open-sourced program LAMMPS 2015.

It is employed to investigate the cyclic isotropic jamming of 2d granular material.

The software includes

  • A boundary particle detection model
  • A contact force model based on the boundary particles
  • A elasto-plastic model based on Johnson-Cook model
  • Several different equation of state models exist for the pressure calculation
  • Multi-component liquids (and gases) model following the work of Hu and Adams is available
  • Fluid-particle interaction
  • Heat conduction and phase change
  • Parallel processing

If you use this solver in a project or scholarly work, please include the following citation, Tayeb et. al. (2019).

Installation

The current version of the code uses the LAMMPS 2015. The USER-SPH package also requires the GNU Scientific Library (GSL). After downloading and installing GSL from the link given please change the GSL_INC and GSL_PATH in the Makefile.mpi file in the MAKE folder as required. The main part of the code resides in the USER-SPH package. The USER-SPH package is modified to incorporate the new contact force model. The atom style is also changed from meso to meso/multiphase for handling multiple phases. The default integrator is also changed from meso to meso/PEC/solidMech.

To Install: Navigate to a working folder in a shell terminal, clone the git code repository, and build.

$ git clone https://github.com/rtyme14/SPHContact.git SPHContact
$ cd SPHContact/SPHContact/src
$ make clean-all
$ make yes-user-sph
$ make mpi

Several example cases are provided in the examples. The gif animation files for additional cases are provided in the allGifs.

Plastic loading test (plasticityJC)

A point load is applied to a sphere to demonstrate the elasto-plastic model based on Johnson-Cook. The gif illustrates the stress propagating through the sphere. The local stress and strain at a point in the sphere is saved in the se.lammpstrj file during runtime. By running the plotSE.sh bash script a data file se.dat is created and a plot of stress against strain is made and saved as sigmaVsStrain.jpg image file. The plot clearly demonstrates both the elastic and plastic loading condition of the sphere.

Cyclic granular jamming (jamming)

This is the case used for studying cyclic isotropic jamming of 2d granular material in the paper. There are 2400 granular disk each with 61 SPH particles arranged in an optimum packing configuration. The initial particle configuration are read from the leadCircleOnly.dat file. A sample animated gif of the simulation is also included.

To run the case do the following

$ change line 6 in the run.sh file. The path should be where you compiled the LAMMPS
$ change the number of processor if needed
$ chmod +x run.sh
$ ./run.sh
$ alternatively you can run the following command from terminal
$ mpirun -np ${no. of processors} lmp_mpi -in packingCircleFinalLead2.lmp 

2d elastic disk colliding (diskColliding)

Two elastic 2d disk of diameter 50 mm colliding at 10 m/s from opposite direction. The force and the velocity during impact are presented. The model demonstrates the capabilities of the developed SPHContact code by accurately identifying the boundary particles and calculate the contact force from a kinematic contact algorithm. As a comparison the same case is run using the default USER-SMD package using the same material parameters. The contact stiffness is one-tenth of the Elastic Modulus as recommended by the user guide. In comparison the SPHContact code does not require explicit mention of contact stiffness. The initial contact radius is half of the lattice constant. The disks in the USER-SMD case explodes in an unnatural way. The disks in the SPHContact case collides and move away in opposite direction in approximately equal initial velocities (see the figure below).

Poiseuille flow (poiseuille)

Poiseuille flow through a horizontal pipe is simulated in this case. Periodic boundary conditions are used. The velocity profile is stored at runtime in the vy.profile file. To plot the data the data for the last timestep need to be used. The result for two flow profile at Re = 0.06 (left) and Re = 6 (right) are shown. Please follow the instructions of the Readme file before proceeding to run the case.

Other cases

Four other case results are shown below: two rubber rings colliding, a rubber bullet penetrating a soft membrane, flow through a porous material and some elliptic particles colliding.

Contribute

Open to collaboration with other investigators studying SPH and granular materials. Please contact us if you are interested in expanding the solver or find bugs to correct. Limited support (on a case-by-case basis) or consulting servies can also be provided.

Acknowledgements

This research was generously supported by the U.S. National Science Foundation.

References

sphcontact's People

Contributors

rtymea14 avatar

Stargazers

 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.