int main(int argc, char* argv[])
{
Pooma::initialize(argc,argv);
int n, nuDiffusions;
double alpha;
const double beta =
2.0 /* 2 created */ - 1.0 /* one consumed */;
if (!processCommandLine(argc, argv, n, nuDiffusions, alpha))
return EXIT_FAILURE;
Interval<2> interiorDomain(Interval<1>(1,n-2),
Interval<1>(1,n-2));
Array<2> Na(n,n), Nb(n,n);
Na = Nb = 0.0;
Nb(n/2,n/2) = 1.0e+7;
Fisher fisher(alpha, beta);
Stencil<Fisher> stencil(fisher);
for (int k = 0; k < nuDiffusions; k += 2) {
Na(interiorDomain) = stencil(Nb, interiorDomain);
Nb(interiorDomain) = stencil(Na, interiorDomain);
}
std::cout << (nuDiffusions % 2 ? Na(n/2,n/2) : Nb(n/2,n/2))
<< std::endl;
Pooma::finalize();
return EXIT_SUCCESS;
}
End of Listing