// STRUCTS.H // Structs used // © 2021 Peter J. Meyer struct lattice_type { char id[4]; // "SQU", "TRI", etc. char name[24]; // name of lattice type int dimensionality; // number of dimensions int coord_num; // coordination number double ising_crit_temp; // pure Ising critical temperature double site_perc_thr; // site percolation threshold double bond_perc_thr; // bond percolation threshold }; struct _all_cluster_trace_data { // Input: int cluster_type; // 0 = site, 1 = spin, 2 = Swendsen-Wang virtual spin int number_clusters; // true = assign numbers to site (or spin) clusters int stop_on_spanning_cluster; // true = quit when a spanning cluster is found int get_cluster_size; // true = count cluster size // Output: int spanning_cluster_found; // is set to true if spanning cluster found int num_spanning_clusters; int num_clusters_traced; int cluster_number_overflow; // counts number of times cluster number exceeds 65,535. }; struct _perc_thr_iter { int level; double min_p; double max_p; double range; // max_p - min_p int num_configurations; double epsilon; double perc_data[NUM_CONCENTRATIONS][2]; // The first value is a concentration; // the second is the percentage of spanning clusters at that concentration, // as determined by generating many site and bond configurations and counting // how many have a spanning cluster. int repeat; int anom_code; };