// Return the face point index
inline label facePoint
(
    const int facei,
    const block& block,
    const label i,
    const label j
)
{
    switch (facei)
    {
        case 0:
            return block.vtxLabel(0, i, j);
        case 1:
            return block.vtxLabel(block.meshDensity().x(), i, j);
        case 2:
            return block.vtxLabel(i, 0, j);
        case 3:
            return block.vtxLabel(i, block.meshDensity().y(), j);
        case 4:
            return block.vtxLabel(i, j, 0);
        case 5:
            return block.vtxLabel(i, j, block.meshDensity().z());
        default:
            return -1;
    }
}
// Return the neighbour face point from the signed indices
inline label facePointN
(
    const block& block,
    const label i,
    const label j,
    const label k
)
{
    return block.vtxLabel
    (
        unsignIndex(i, block.meshDensity().x()),
        unsignIndex(j, block.meshDensity().y()),
        unsignIndex(k, block.meshDensity().z())
    );
}