def METHOD_NAME(**kwargs):
    """ Launch VisIt compute engine on the current host.
    Example usage:
    Launch engine with 36 MPI tasks using default options for this host:
      engine.open(nprocs=36)
    Launch engine with 36 MPI tasks using a specific partition:
      engine.open(nprocs=36, part="pbatch")
    Launch engine with 36 MPI tasks, ask for 60 minute time limit:
      engine.open(nprocs=36, rtime=60)
    If you already have a slurm batch allocation, you can use:
      engine.open(method="slurm")
    This reads the SLURM_JOB_NUM_NODES and SLURM_CPUS_ON_NODE 
    env vars and uses these values to launch with srun.
    If you already have a lsf batch allocation, you can use:
      engine.open(method="lsf")
    This reads the LSB_DJOB_NUMPROC env var and uses it
    the to launch with mpirun.
    """
    args = {"ppn":1,"part":None,"bank":None,"rtime":None,"vdir":None}
    if "method" not in kwargs:
        hname = hostname(False)
        # when the visit module is imported (vs used in the CLI), 
        # VISITHOME won't be set, allow user to pass vdir argument 
        # here to locate the host profiles
        vdir = None
        if "vdir" in kwargs:
            vdir = kwargs["vdir"]
        if hname not in hosts(vdir=vdir):
            raise VisItException("Unsupported host: '%s'" % hname)
        host = hosts(vdir=vdir)[hname]
        # prep args for launch
        args["host"] = host.name
        args.update(host.defaults)
        args.update(host.params)
        args["method"] = host.launch_method(args["part"])
    elif kwargs["method"] == "slurm":
        args["host"] = hostname(False)
        if "SLURM_JOB_NUM_NODES" in os.environ:
            nnodes = int(os.environ["SLURM_JOB_NUM_NODES"])
            ppn    = int(os.environ["SLURM_CPUS_ON_NODE"])
            nprocs = ppn * nnodes
        else:
            raise VisItException("engine.open(method='slurm') requires "
                                 "SLURM_JOB_NUM_NODES and SLURM_CPUS_ON_NODE env vars")
        args["nprocs"]   = nprocs
        args["ppn"]      = ppn
        kwargs["method"] = "srun"
    elif kwargs["method"] == "lsf":
        args["host"] = hostname(False)
        if "LSB_DJOB_NUMPROC" in os.environ:
            nprocs = int(os.environ["LSB_DJOB_NUMPROC"])
        else:
            raise VisItException("engine.open(method='lsf') requires "
                                 "LSB_DJOB_NUMPROC env vars")
        args["nprocs"]   = nprocs
        kwargs["method"] = "mpirun"
    else:
        args["host"] = hostname(False)
    args.update(kwargs)
    return launch(**args)