def METHOD_NAME(c, radius, origin, outputFile, bounds):
    shell = c.meshes().extractShell()
    if shell.size() != 1:
        raise RuntimeError('Shell # mismatch (%d vs 1)' % shell.size())
    ymin = bounds[2]
    filter_ = CoolingPlateFilter(ymin, radius, origin, True)
    labelIntersection(c, shell, filter_)
    ymax = bounds[3]
    filter_ = CoolingPlateFilter(ymax, radius, origin, True)
    labelIntersection(c, shell, filter_)
    center = [origin[0], origin[1] + (ymax + ymin) * .5, origin[2]]
    filter_ = OuterEdgeFilter(origin, radius * 2)
    labelIntersection(c, shell, filter_)
    breakMaterialsByCellType(c)
    if len(c.domains()) != 5:
        raise RuntimeError('Domain # mismatch (%d vs 5)' % len(c.domains()))
    if len(c.dirichlets()) != 3:
        raise RuntimeError('Dirichlet # mismatch (%d vs 3)' %
                           len(c.dirichlets()))