This is a python package which simulates the Ising model on complex networks.
Given any network built using the networkx package as input, this package runs Monte Carlo simulations on random source nodes and evaluates the model according to the Metropolis algorithm, and returns the magnetization and the energy of the system.
Version 1.0.2: This has an added visualizer to plot the output graphs.
Version 1.0.4: The Github repo has an added ipynb that can be referred to for instructions about usage.
Version 1.0.10: A new parallel implementation has been added.
Version 1.1.1: Two much faster functions have been added for both serial and parallel simulations.
Version 1.1.3: Added functions to calculate Curie temperature and decay time.
Version 1.1.4: Added a function to compute average degree
Run the following to install:
pip install isingnetworks
Additional packages required:
pip install joblib
Import the class:
from isingnetworks import IsingModel
Create a graph (g) using networkx.
Create an instance of the IsingModel class:
model = IsingModel(g)
Using the viz function:
model.set_J(val_of_J)
model.set_iterations(no_of_iterations)
model.set_initial_state(0) # 0 or 1
# Serial Implementation
model.viz(temperature_array)
# Parallel Implementation
model.viz_parallel(temperature_array)
# Faster Implementations
model.viz_fast(temperature_array)
model.viz_fast_parallel(temperature_array)