Skip to content

Develop a Monte Carlo simulation framework to study phase transitions in a solid-state physics system, such as the Ising model or lattice gas model. This project combines statistical physics with computational tools to simulate and visualize thermodynamic properties, such as magnetization.

Notifications You must be signed in to change notification settings

davidomanovic/mcmc-solid-state

Repository files navigation

Markov Chain Monte Carlo for Solid State Physics

This project implements Markov Chain Monte Carlo (MCMC) methods to simulate and study systems in solid-state physics using statistical physics principles. The project focuses on modeling and analyzing the behavior of physical systems, such as the Ising model, and provides tools to integrate machine learning algorithms for extracting insights from simulation data.

SpinLattice

Overview

The project is designed to:

  • Simulate physical phenomena using Monte Carlo methods.
  • Model systems like the Ising model on a lattice to study magnetism and phase transitions.
  • Visualize lattice configurations and statistical quantities like magnetization and energy in Python.
  • Provide a flexible platform for extending simulations with machine learning algorithms for predictive and exploratory analysis.

Features

  • C++ Backend: Computationally efficient implementation of simulation algorithms for lattice models.
  • Python Integration: Use pybind11 to expose C++ functionality for Python users.
  • Visualization: Easy-to-use tools in Python for visualizing lattice configurations and statistical properties.
  • Future Machine Learning Integration: Framework for training models on simulation results.

Project Goals

  1. Simulate Physical Systems:

    • Implement MCMC algorithms for models like the Ising model to explore phase transitions, magnetization, and energy fluctuations.
    • Support for lattice-based statistical physics models.
  2. Machine Learning for Physics (Planned):

    • Train models to learn properties of physical systems from simulation data.
    • Predict behaviors like critical temperatures or classify phases of matter.
  3. Visualization:

    • Visualize lattice configurations (e.g., spin alignment in the Ising model).
    • Plot statistical quantities (e.g., magnetization vs. temperature).

Installation

Prerequisites

  • C++ Compiler:
    • GCC, Clang, or MSVC with support for C++17 or higher.
  • CMake (3.14 or higher)
  • Python (3.8 or higher)
  • Required Python libraries: matplotlib, numpy, pybind11.

Setup Instructions

  1. Clone the repository:
    git clone https://github.com/yourusername/mcmc-solid-state.git
    cd mcmc-solid-state
    
  2. Configure and build the project:
    mkdir build
    cd build
    cmake .. -DPYTHON_EXECUTABLE=$(which python3)
    cmake --build .
    
  3. Install dependencies for Python and my C++ compiled library (root directory)
    pip install -r requirements.txt
    pip install -e .
    

About

Develop a Monte Carlo simulation framework to study phase transitions in a solid-state physics system, such as the Ising model or lattice gas model. This project combines statistical physics with computational tools to simulate and visualize thermodynamic properties, such as magnetization.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published