Skip to content

QinyiLiao/ParticleSpringSim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ParticleSpringsSim

A comprehensive Fortran library for simulating particle systems and spring networks with molecular dynamics (MD) techniques. This package implements various MD methodologies and analytical tools for studying structural and dynamic properties of particle-based systems.

Features

  • Multiple Simulation Methodologies: Support for NVT, NPT, and custom boundary condition simulations
  • Energy Minimization: FIRE algorithm for constant volume and pressure minimization
  • Spring Network Analysis: Tools for constructing and analyzing network properties
  • Dynamical Analysis: Calculations for mean squared displacement, velocity autocorrelation, and intermediate scattering functions
  • Structural Analysis: Structure factors, radial distribution functions, and Voronoi tessellation
  • Vibrational Analysis: Dynamic matrix computation and eigenmode analysis

Project Structure

The codebase is organized in modules with specific responsibilities:

  • System Definition (01-syst.f90): Core system parameters and dimensional settings
  • Configuration (02-config.f90): Particle position, velocity and system state management
  • List Management (03-list.f90): Neighbor list implementation and maintenance
  • FIRE Algorithm (04-fire.f90): Energy minimization implementations
  • Force Calculation (05-force.f90): Interaction force computations
  • Molecular Dynamics (06-md.f90): MD integration algorithms
  • Network Analysis (07-network.f90): Spring network construction and analysis
  • Dynamic Properties (08-dynamic.f90): Time-dependent property calculations
  • Disorder Analysis (09-disorder.f90): Tools for analyzing disordered systems
  • Matrix Operations (10-matrix.f90): Dynamic matrix and eigenvalue/eigenvector calculation
  • Correlation Analysis (11-corr.f90): Correlation function implementations
  • Structure Analysis (12-structure.f90): Local and global structural properties
  • Field Analysis (19-field.f90): Field-based calculations
  • Mathematical Utilities (91-math.f90): Random number generation, sorting, and other utilities

Getting Started

Prerequisites

  • Fortran compiler (gfortran, ifort)
  • CMake (version 3.0 or higher)
  • LAPACK libraries

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/ParticleSpringsSim.git
    cd ParticleSpringsSim
  2. Create a build directory and compile:

    mkdir build && cd build
    source /opt/rh/devtoolset-3/enable  # Optional: use newer gfortran versions
    export FC=ifort                     # Optional: specify Intel Fortran compiler
    cmake ..                            # Use cmake3 if cmake fails
    make

Note: Ubuntu users might experience issues with LAPACK linking. RedHat-based Linux distributions are recommended for optimal compatibility.

Usage

  1. Copy a template from the templates directory to use as your main program:

    cp templates/calc-msd.f90 main.f90
  2. Recompile and run:

    make
    ./main

Available Templates

The templates directory provides example programs demonstrating key functionalities:

  • calc-energy-barrier.f90: Energy barrier calculations
  • calc-msd.f90: Mean squared displacement analysis
  • calc-net-modulus.f90: Network modulus calculation
  • calc-network-mode.f90: Network mode analysis
  • generate-random-config-cv.f90: Random configuration generation
  • template-12-calc-sk.f90: Structure factor calculation
  • Various test templates: For force calculations, integration, and correlation functions

Module Descriptions

System (syst)

Defines system dimensions and particle size ratios.

Configuration (config)

Manages particle configurations, including positions, velocities, and system properties. Provides routines for initialization, random configuration generation, and lattice-based configurations.

List (list)

Neighbor list implementation with routines for allocation, updating, and verification. Includes tools for rattler detection and coordination number calculations.

FIRE (fire)

Implementation of the Fast Inertial Relaxation Engine for energy minimization under constant volume or pressure conditions.

Molecular Dynamics (md)

Core MD integration schemes for NVT and NPT ensembles, with optional Monte Carlo particle swap moves.

Force (force)

Force calculation routines for various interaction potentials.

Network (network)

Spring network construction and analysis, with tools for calculating bond lengths and network properties.

Dynamic (dynamic)

Time-dependent property calculations, including mean squared displacement, intermediate scattering functions, and velocity autocorrelation functions.

Structure (struc)

Structural analysis tools, including Fourier-space correlations (structure factors), real-space correlations (radial distribution functions), and Voronoi cell analysis.

Matrix (matrix)

Dynamic matrix construction and eigenvalue/eigenvector analysis. Includes participation ratio calculations for vibrational modes.

Math (math)

General mathematical utilities, including random number generation, sorting, and numerical integration.

License

MIT license

About

Molecular dynamics simulations of particle systems and spring network with analysis tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors