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.
- 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
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
- Fortran compiler (gfortran, ifort)
- CMake (version 3.0 or higher)
- LAPACK libraries
-
Clone the repository:
git clone https://github.com/yourusername/ParticleSpringsSim.git cd ParticleSpringsSim -
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.
-
Copy a template from the templates directory to use as your main program:
cp templates/calc-msd.f90 main.f90
-
Recompile and run:
make ./main
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
Defines system dimensions and particle size ratios.
Manages particle configurations, including positions, velocities, and system properties. Provides routines for initialization, random configuration generation, and lattice-based configurations.
Neighbor list implementation with routines for allocation, updating, and verification. Includes tools for rattler detection and coordination number calculations.
Implementation of the Fast Inertial Relaxation Engine for energy minimization under constant volume or pressure conditions.
Core MD integration schemes for NVT and NPT ensembles, with optional Monte Carlo particle swap moves.
Force calculation routines for various interaction potentials.
Spring network construction and analysis, with tools for calculating bond lengths and network properties.
Time-dependent property calculations, including mean squared displacement, intermediate scattering functions, and velocity autocorrelation functions.
Structural analysis tools, including Fourier-space correlations (structure factors), real-space correlations (radial distribution functions), and Voronoi cell analysis.
Dynamic matrix construction and eigenvalue/eigenvector analysis. Includes participation ratio calculations for vibrational modes.
General mathematical utilities, including random number generation, sorting, and numerical integration.
MIT license