I might be wrong, but shouldn’t that be a power of 1./2. instead of 1./3. in 2 dimensions?
[code=“cpp”]
void SparseBlockStructure2D::defaultGridN()
{
double uniformGridN = std::pow( (double)defaultMultiBlockPolicy2D().getNumGridPoints(), 1./3. );
double uniformNcell = std::pow ( (double)(boundingBox.nCells()), 1./3. );
gridNx = (plint)(0.5+(double)boundingBox.getNx()/uniformNcelluniformGridN);
if (gridNx < 1) gridNx = 1;
gridNy = (plint)(0.5+(double)boundingBox.getNy()/uniformNcelluniformGridN);
if (gridNy < 1) gridNy = 1;
}