2 Dimensional Ising Model
Simulate the change in energy and magnetization in a ferro magnet
Loading...
Searching...
No Matches
monte_carlo.cpp File Reference

Implementation of the monte carlo functions. More...

#include "monte_carlo.hpp"
#include <cmath>
#include <cstdint>

Go to the source code of this file.

Functions

void monte_carlo_progression (double T, int L, int cycles, const std::string filename)
 Write the expected values for each Monte Carlo cycles to file.
 
void monte_carlo_progression (double T, int L, int cycles, int value, const std::string filename)
 Write the expected values for each Monte Carlo cycles to file.
 
void pd_estimate (double T, int L, int cycles, const std::string filename)
 Estimate the probability distribution for the energy.
 
data_t monte_carlo_serial (int L, double T, int cycles)
 Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles.
 
data_t monte_carlo_parallel (int L, double T, int cycles)
 Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.
 
void phase_transition (int L, double start, double end, int points, std::function< data_t(int, double, int)> monte_carlo, std::string outfile)
 Perform the MCMC algorithm using a range of temperatures.
 

Detailed Description

Implementation of the monte carlo functions.

Author
Cory Alexander Balaton (coryab)
Janita Ovidie Sandtrøen Willumsen (janitaws)
Version
1.0
Bug:
No known bugs

Definition in file monte_carlo.cpp.

Function Documentation

◆ monte_carlo_parallel()

data_t monte_carlo_parallel ( int  L,
double  T,
int  cycles 
)

Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.

Parameters
LThe size of the lattice
TThe Temperature for the Ising model
cyclesThe amount of Monte Carlo cycles to do
Returns
data_t

Definition at line 128 of file monte_carlo.cpp.

◆ monte_carlo_progression() [1/2]

void monte_carlo_progression ( double  T,
int  L,
int  cycles,
const std::string  filename 
)

Write the expected values for each Monte Carlo cycles to file.

Parameters
TTemperature
LThe size of the lattice
cyclesThe amount of Monte Carlo cycles to do
filenameThe file to write to

Definition at line 17 of file monte_carlo.cpp.

◆ monte_carlo_progression() [2/2]

void monte_carlo_progression ( double  T,
int  L,
int  cycles,
int  value,
const std::string  filename 
)

Write the expected values for each Monte Carlo cycles to file.

Parameters
TTemperature
LThe size of the lattice
cyclesThe amount of Monte Carlo cycles to do
valueThe value to set the elements in the lattice
filenameThe file to write to

Definition at line 51 of file monte_carlo.cpp.

◆ monte_carlo_serial()

data_t monte_carlo_serial ( int  L,
double  T,
int  cycles 
)

Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles.

Parameters
LThe size of the lattice
TThe Temperature for the Ising model
cyclesThe amount of Monte Carlo cycles to do
Returns
data_t

Definition at line 111 of file monte_carlo.cpp.

◆ pd_estimate()

void pd_estimate ( double  T,
int  L,
int  cycles,
const std::string  filename 
)

Estimate the probability distribution for the energy.

Parameters
TThe temperature of the Ising model
LThe size of the lattice
cyclesThe amount of Monte Carlo cycles to do
filenameThe file to write to

Definition at line 85 of file monte_carlo.cpp.

◆ phase_transition()

void phase_transition ( int  L,
double  start_T,
double  end_T,
int  points_T,
std::function< data_t(int, double, int)>  monte_carlo,
std::string  outfile 
)

Perform the MCMC algorithm using a range of temperatures.

Parameters
LThe size of the lattice
start_TThe start temperature
end_TThe end temperature
point_TThe amount of point to measure
monte_carloWhich Monte Carlo implementation to use
outfileThe file to write the data to

Definition at line 156 of file monte_carlo.cpp.