Jump to content

Percolation/Bond percolation: Difference between revisions

C++ version enhanced
(C++ version)
(C++ version enhanced)
Line 166:
#include <iostream>
#include <string>
 
// cell states:
enum {
FILL = 1,
RWALL = 2, // right wall
BWALL = 4 // bottom wall
};
 
using namespace std;
Line 186 ⟶ 179:
cells = start + m;
for (auto i = 0u; i < m; i++)
start[i] = BWALL | RWALLRBWALL;
 
end = cells;
Line 231 ⟶ 224:
 
private:
enum cell_state {
FILL = 1 << 0,
RWALL = 21 << 1, // right wall
BWALL = 41 << 2, // bottom wall
RBWALL = RWALL | BWALL // right/bottom wall
};
 
typedef unsigned int cell;
 
Line 239:
 
return (!(p[0] & BWALL) && fill(p + m)) || (!(p[0] & RWALL) && fill(p + 1)) ||
(!(p[-1] & RWALL) && fill(p - 1)) || (!(p[0 - m] & BWALL) && fill(p - m));
}
 
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.