Ejemplo n.º 1
0
def main():

    print("Parsing input arguments...")
    parser = argparse.ArgumentParser(description="Parse input parameters.")
    parser.add_argument('sims', nargs='+',
                    help='Simulation inde(x/ices) or name(s) to analyse')
    parser.add_argument('list_file', help='Output list file name')
    parser.add_argument('--base_dir', default=local.BASE_DIR,
                        help='Simulation base directory (default: '
                             f'{local.BASE_DIR})')
    parser.add_argument('--snapshot_type',
                        help='Type code for full snapshots (default: 1)',
                        default='1')
    parser.add_argument('--output_names',
                        help='Prefix of existing outputs (default: "output")',
                        default='output')
    parser.add_argument('--link_names', help='Prefix of links (default: "eagle")',
                        default='eagle')

    args = parser.parse_args()

    if args.sims[0].lower() == 'all':
        args.sims = xl.get_all_sims(args.base_dir)
        have_full_sim_dir = True
    else:
        have_full_sim_dir = False

    for isim in args.sims:
        process_sim(args, isim, have_full_sim_dir)
Ejemplo n.º 2
0
def main():
    """Main loop over simulations and snapshots."""

    if args.sims[0].lower() == 'all':
        args.sims = xl.get_all_sims(args.base_dir)
        have_full_sim_dir = True
    else:
        have_full_sim_dir = False

    for isim in args.sims:

        if have_full_sim_dir:
            wdir = isim
        else:
            wdir = xl.get_sim_dir(args.base_dir, isim)

        print("")
        print(
            "===================================================================="
        )
        print(f"=== Processing {wdir} ===")
        print(
            "===================================================================="
        )
        print("")

        for iisnap, isnap in enumerate(args.snaps):

            # Account for possibly different VR numbering than (desired) output
            if args.vr_snaps is None:
                ivsnap = isnap
            else:
                ivsnap = args.vr_snaps[iisnap]

            process_snap(wdir, args.out_file, isnap, ivsnap)
Ejemplo n.º 3
0
def get_args(argv=None):
    """Parse input arguments."""

    print("Parsing input arguments...")
    parser = argparse.ArgumentParser(description="Parse input parameters.")

    parser.add_argument('sims', nargs='+',
                        help='Simulation index/name to analyse ("all" to '
                             'process all simulations in base_dir.')
    parser.add_argument('--base_dir', default=local.BASE_DIR,
                        help='Base directory of the simulation, default: '
                             f'{local.BASE_DIR}')
    parser.add_argument('--dmo_sim',
                        help='Directory of the DM-only simulation to match '
                             'to. This must be identical for all sims '
                             'processed here.')
    parser.add_argument('--snapshots', type=int, nargs='+',
                        help='Snapshots to match.')
    parser.add_argument('--vr_name', default='vr',
                        help='Name prefix of VR catalogue (default: "vr").')

    args = parser.parse_args(argv)

    if args.sims[0].lower() == 'all':
        args.sims = xl.get_all_sims(args.base_dir)
        args.have_full_sim_dir = True
    else:
        args.have_full_sim_dir = False

    return args
Ejemplo n.º 4
0
def main():

    global num_repos_name

    argvals = None
    args = get_args(argvals)

    # Follow immediate instructions from args
    mpl.rcParams['lines.linewidth'] = args.plot_linewidth

    if args.plot_mass_range is not None:
        yranges['Masses'] = args.plot_mass_range

    if args.sims[0].lower() == 'all':

        if args.bh_bid is not None:
            print("It does not make sense to analyse the same BH BIDs "
                  "in different simulations.")
            return

        args.sims = xl.get_all_sims(args.base_dir)
        args.have_full_sim_dir = True
    else:
        args.have_full_sim_dir = False

    print(f"Processing {len(args.sims)} simulations")
    if args.use_old_names:
        num_repos_name = 'NumberOfRepositionings'

    for isim in args.sims:
        process_sim(isim, args)
Ejemplo n.º 5
0
def main():
    """Main program."""

    argvals = None
    args = get_args(argvals)
    args.dmo_dir = f'{args.base_dir}{args.dmo_sim}'

    if args.sims[0].lower() == 'all':
        args.sims = xl.get_all_sims(args.base_dir)
        args.have_full_sim_dir = True
    else:
        args.have_full_sim_dir = False

    print(f"Processing {len(args.sims)} simulations")

    for isim in args.sims:
        process_sim(isim, args)
Ejemplo n.º 6
0
def main():
    """Main program loop."""

    # Parse input parameters
    argvals = None
    args = get_args(argvals)

    # Deal with request for all-sim-batch
    if args.sims[0].lower() == 'all':

        if args.bh_bid is not None:
            print("It does not make sense to analyse the same BH BIDs "
                  "in different simulations.")
            return

        args.sims = xl.get_all_sims(args.base_dir)
        args.have_full_sim_dir = True
    else:
        args.have_full_sim_dir = False

    print(f"Processing {len(args.sims)} simulations")

    for isim in args.sims:
        process_sim(isim, args)
Ejemplo n.º 7
0
def main():

    print("Parsing input arguments...")
    parser = argparse.ArgumentParser(description="Parse input parameters.")
    parser.add_argument('sims',
                        nargs='+',
                        help='Simulation inde(x/ices) or names to '
                        'analyse ("all" for all in base_dir).')
    parser.add_argument('--snap_name',
                        default='output',
                        help='Name prefix of simulation outputs '
                        '(default: "output").')
    parser.add_argument('--snapshots',
                        type=int,
                        nargs='+',
                        help='Snapshots for which to create plots.')
    parser.add_argument('--base_dir',
                        default=local.BASE_DIR,
                        help='Base directory of simulations (default: '
                        f'{local.BASE_DIR}).')
    parser.add_argument('--vr_file',
                        default="vr",
                        help='File of (transcribed) VR catalogue '
                        '(default: vr).')
    parser.add_argument('--bh_file',
                        default="black_hole_data.hdf5",
                        help='Combine BH data file, default: '
                        'black_hole_data.hdf5')
    parser.add_argument('--plot_prefix',
                        default='gallery/vr-plots',
                        help='Prefix of output files, default: '
                        '"gallery/vr_plots')
    parser.add_argument('--bh_mass_range',
                        type=float,
                        nargs='+',
                        help='Min and max BH mass for selection, at target z '
                        '[M_Sun], default: no selection.')
    parser.add_argument('--bh_selection_redshift',
                        type=float,
                        default=0.0,
                        help='Redshift at which to make BH mass selection '
                        '(default: 0.0)')
    parser.add_argument('--include_subdominant_bhs',
                        action='store_true',
                        help='Only show black holes that are the most massive '
                        'in their galaxy, at the linked snapshot.')
    parser.add_argument('--halo_mstar_range',
                        default=[3e10, 4e11],
                        type=float,
                        help='Min and max stellar mass of host galaxy '
                        '[M_Sun], default: 3e10 4e11.',
                        nargs='+')
    parser.add_argument('--halo_m200_range',
                        type=float,
                        nargs='+',
                        help='Min and max M200 of host galaxy '
                        '[M_Sun], default: 0 1e16.',
                        default=[0, 1e16])
    parser.add_argument(
        '--include_satellites',
        action='store_true',
        help='Only show BHs in central haloes, not satellites.')
    parser.add_argument('--show_target_only',
                        action='store_true',
                        help='Show only the target BH, not possible others '
                        'that also match the selection criteria.')
    parser.add_argument('--show_median',
                        action='store_true',
                        help='Add the median for all selected BHs.')
    parser.add_argument('--alpha_others',
                        type=float,
                        default=1.0,
                        help='Alpha value for non-target BHs, default: 1.0')
    parser.add_argument('--summary_only',
                        action='store_true',
                        help='Only generate summary plots, not those '
                        'highlighting each invididual BH.')
    args = parser.parse_args()

    # Resolve (possible) placeholder for all simulations
    if args.sims[0].lower() == 'all':
        args.sims = xl.get_all_sims(args.base_dir)
        have_full_sim_dir = True
    else:
        have_full_sim_dir = False

    # Process each simulation in turn
    for isim in args.sims:
        process_sim(args, isim, have_full_sim_dir)
Ejemplo n.º 8
0
def main():
    """Main program"""

    print("Parsing input arguments...")
    parser = argparse.ArgumentParser(description="Parse input parameters.")
    parser.add_argument('sims',
                        help='Simulation inde(x/ices) or names to analyse',
                        nargs='+')
    parser.add_argument('--snap_name',
                        help='Name prefix of simulation outputs '
                        '(default: "output")',
                        default='output')
    parser.add_argument('--max_snap',
                        type=int,
                        help='Maximum number of outputs (default: 3000)',
                        default=3000)
    parser.add_argument('--base_dir',
                        help='Base directory of simulations '
                        f'(default: {local.BASE_DIR})',
                        default=local.BASE_DIR)
    parser.add_argument('--full_dir', action='store_true')
    parser.add_argument('--out_file',
                        help='File to store output in (default: '
                        '"black_hole_data.hdf5")',
                        default='black_hole_data.hdf5')
    parser.add_argument('--include',
                        help='Only include the listed data sets',
                        nargs='+')
    parser.add_argument('--exclude',
                        help='Exclude the listed data sets',
                        nargs='+')
    parser.add_argument('--vr_snap',
                        default=36,
                        type=int,
                        help='Link to VR catalogue in this snapshot '
                        '(default: 36). Set to -1 to disable VR linking.')
    parser.add_argument(
        '--vr_file',
        default='vr',
        help='Base name of VR catalogue to use (default: "vr")')
    parser.add_argument('--out_dir')
    args = parser.parse_args()

    # Sanity checks on input arguments
    if not args.base_dir.endswith('/'):
        args.base_dir = args.base_dir + '/'

    if args.vr_snap < 0:
        args.vr_snap = None

    if args.sims[0].lower() == 'all':
        args.sims = xl.get_all_sims(args.base_dir)
        have_full_sim_dir = True
    elif args.full_dir:
        have_full_sim_dir = True
    else:
        have_full_sim_dir = False

    args.combined_vr = True

    for isim in args.sims:
        process_sim(args, isim, have_full_sim_dir)