int main(){ int number_blocks, number_cycles, max_variations, thermalization; int dimension, number_particles; double initial_correlation, delta_correlation, lowest_correlation; double *cumulative_e, *cumulative_e2; dimension = 3; /* Read in data */ initialise(/*&dimension,*/ &number_blocks, &number_particles, &max_variations, &number_cycles, &thermalization, &initial_correlation, &delta_correlation) ; cumulative_e = (double *) malloc((max_variations+1)*sizeof(double)); cumulative_e2 = (double *) malloc((max_variations+1)*sizeof(double)); /* Do the mc sampling */ mc_sampling(dimension, number_blocks, number_particles, max_variations, thermalization, number_cycles, initial_correlation, delta_correlation, &lowest_correlation, cumulative_e, cumulative_e2); /* Print out results */ output(max_variations, number_cycles, delta_correlation, lowest_correlation, cumulative_e, cumulative_e2); return 0; }
/******************************************************************* * * NAME : difference( double step_length ) * * DESCRIPTION : Coming */ double MC_Brute_Force::difference(double step_length) { double tmp1, tmp2; double tot_energy, tot_energy_sq; int accepted, mc_samples_sl; //mc_samples_sl = (int) 1e4; mc_samples_sl = (int) 1e4/4; tot_energy = tot_energy_sq = 0; accepted = 0; mc_sampling(mc_samples_sl, step_length, accepted, tmp1, tmp2); return (double) accepted / mc_samples_sl - 0.5; }
/******************************************************************* * * NAME : mc_sampling( int cycles, double step_length, * int& accepted, double& total_energy, * double& total_energy_sq) * * DESCRIPTION : Coming */ void MC_Brute_Force::solve() { double step_length, energy, energy_sq; int accepted; energy = 0; energy_sq = 0; step_length = optimal_step_length(); mc_sampling(mc_cycles, step_length, accepted, energy, energy_sq); // Storing results this->energy = energy; this->energy_sq = energy_sq; this->step_length = step_length; this->accepted = accepted; }