12#ifndef __MONTE_CARLO__
13#define __MONTE_CARLO__
24#define BURN_IN_TIME 5000
35void progression(
double T,
int L,
int cycles,
const std::string filename,
36 int burn_in_time = BURN_IN_TIME);
47void progression(
double T,
int L,
int cycles,
int value,
48 const std::string filename,
int burn_in_time = BURN_IN_TIME);
58void pd_estimate(
double T,
int L,
int cycles,
const std::string filename,
59 int burn_in_time = BURN_IN_TIME);
72 int burn_in_time = BURN_IN_TIME);
85 int burn_in_time = BURN_IN_TIME);
99 std::function<
data_t(
int,
double,
int,
int)> monte_carlo,
100 std::string outfile,
int burn_in_time = BURN_IN_TIME);
The definition of the Ising model.
Type to use with the IsingModel class and montecarlo module.
Header for the data_t type.
void phase_transition(int L, double start_T, double end_T, int points_T, int cycles, std::function< data_t(int, double, int, int)> monte_carlo, std::string outfile, int burn_in_time=BURN_IN_TIME)
Perform the MCMC algorithm using a range of temperatures.
void progression(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)
Write the expected values for each Monte Carlo cycles to file.
data_t mcmc_parallel(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)
Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles in parallel.
data_t mcmc_serial(int L, double T, int cycles, int burn_in_time=BURN_IN_TIME)
Execute the Metropolis algorithm for a certain amount of Monte Carlo cycles.
void pd_estimate(double T, int L, int cycles, const std::string filename, int burn_in_time=BURN_IN_TIME)
Estimate the probability distribution for the energy.
Function prototypes and macros that are useful.