override public void initialize() { setProblemClass(); int _num = this.Ranks.Length; // _node = this.GlobalRank; // _ndim = Constants.nodedim(_num); int ydiv = Constants.ilog2(_num) / 2; int xdiv = ydiv; if (xdiv + ydiv != Constants.ilog2(_num)) { xdiv += 1; } xdiv = Constants.ipow2(xdiv); ydiv = Constants.ipow2(ydiv); _isiz1 = _isiz01 / xdiv; if (_isiz1 * xdiv < _isiz01) { _isiz1++; } _isiz2 = _isiz01 / ydiv; if (_isiz2 * ydiv < _isiz01) { _isiz2++; } // _icommn = new bool[_nx0+_ny0+1]; // _icomms = new bool[_nx0+_ny0+1]; // _icomme = new bool[_nx0+_ny0+1]; // _icommw = new bool[_nx0+_ny0+1]; A.initialize_field("a", _isiz2, _isiz1, 5, 5); B.initialize_field("b", _isiz2, _isiz1, 5, 5); _C.initialize_field("c", _isiz2, _isiz1, 5, 5); D.initialize_field("d", _isiz2, _isiz1, 5, 5); U.initialize_field("u", _isiz3, _isiz2 + 4, _isiz1 + 4, 5); Rsd.initialize_field("rsd", _isiz3, _isiz2 + 4, _isiz1 + 4, 5); Frct.initialize_field("frct", _isiz3, _isiz2 + 4, _isiz1 + 4, 5); Flux.initialize_field("flux", _isiz3, _isiz2 + 2, _isiz1 + 2, 5); //proc_grid() // _xdim = (int)Math.Pow(2, (_ndim/2)); // if(Constants.mod(_ndim, 2)==1) // _xdim = _xdim + _xdim; // _ydim = _num/_xdim; // _row = (int)Constants.mod(_node, _xdim) + 1; // _col = _node/_xdim + 1; // Constants.setConstants(Instance.isiz01, Instance.isiz02, Instance.isiz03); }