示例#1
0
def run_chi_scan_1d():
    extra_model_kwargs = {
        'rho_0': 0.5,
        'onesided_flag': True,
        'origin_flag': True,
    }
    model_kwargs = dict(default_model_1d_kwargs, **extra_model_kwargs)

    t_output_every = 1000.0
    t_upto = 4e4
    chis = np.linspace(0.0, 6.0, 28)
    force_resume = True
    parallel = True

    model_kwarg_sets = []

    origin_flags = [True, False]
    onesided_flags = [True, False]
    for origin_flag, onesided_flag, chi in product(origin_flags,
                                                   onesided_flags, chis):
        model_kwargs_cur = model_kwargs.copy()
        model_kwargs_cur['onesided_flag'] = onesided_flag
        model_kwargs_cur['origin_flag'] = origin_flag
        model_kwargs_cur['chi'] = chi
        model_kwarg_sets.append(model_kwargs_cur)
    run_kwarg_scan(model.Model1D, model_kwarg_sets,
                   t_output_every, t_upto, force_resume, parallel)
示例#2
0
def run_chi_scan_2d_uniform():
    extra_model_kwargs = {
        'rho_0': 1e-3,
        'walls': walls.Walls(L, dim=2, dx=dx),
    }
    model_kwargs = dict(default_model_2d_kwargs, **extra_model_kwargs)

    t_output_every = 1000.0
    t_upto = 8e4
    chis = np.linspace(0.0, 800.0, 22)
    force_resume = True
    parallel = True

    model_kwarg_sets = []

    origin_flags = [True, False]
    onesided_flags = [True, False]
    for origin_flag, onesided_flag, chi in product(origin_flags,
                                                   onesided_flags, chis):
        model_kwargs_cur = model_kwargs.copy()
        model_kwargs_cur['onesided_flag'] = onesided_flag
        model_kwargs_cur['origin_flag'] = origin_flag
        model_kwargs_cur['chi'] = chi
        model_kwarg_sets.append(model_kwargs_cur)
    run_kwarg_scan(model.Model2D, model_kwarg_sets,
                   t_output_every, t_upto, force_resume, parallel)
示例#3
0
def run_trap_s_scan():
    extra_model_kwargs = {
        # Quarter dt to keep diffusion stable.
        'dt': 0.025,
        # Halve dx to let us do finer increments in `s`.
        'dx': 20.0,
        'origin_flag': True,
        'rho_0': 1e-3,
        'chi': None,
        'onesided_flag': True,
    }
    model_kwargs = dict(default_model_2d_kwargs, **extra_model_kwargs)

    t_output_every = 2000.0
    t_upto = 16e4
    chis = np.linspace(200.0, 600.0, 22)
    force_resume = True
    parallel = True

    model_kwarg_sets = []
    for s in [20.0, 60.0, 100.0, 140.0, 180.0]:
        walls_cur = walls.Traps(L, dx, n=1, d=trap_d, w=trap_w, s=trap_s)
        for chi in chis:
            model_kwargs_cur = model_kwargs.copy()
            model_kwargs_cur['walls'] = walls_cur
            model_kwargs_cur['chis'] = chi
        model_kwarg_sets.append(model_kwargs_cur)
    run_kwarg_scan(model.Model2D, model_kwarg_sets,
                   t_output_every, t_upto, force_resume, parallel)
def run_Dr_scan_uniform():
    extra_model_kwargs = {
        'spatial_flag': True,
    }
    model_kwargs = dict(default_model_kwargs, **extra_model_kwargs)

    t_output_every = 50.0
    t_upto = 1000.0
    noise_0s = np.logspace(-3, 2, 22)
    force_resume = True
    parallel = True

    model_kwarg_sets = []

    dims = [1, 2]
    noise_vars = ['Dr_0', 'p_0']
    for noise_var, dim, noise_0 in product(noise_vars, dims, noise_0s):
        model_kwargs_cur = model_kwargs.copy()
        if noise_var == 'Dr_0':
            if dim == 1:
                continue
            model_kwargs_cur['rotation_flag'] = True
            model_kwargs_cur['tumble_flag'] = False
            model_kwargs_cur['Dr_0'] = noise_0
        else:
            model_kwargs_cur['rotation_flag'] = False
            model_kwargs_cur['tumble_flag'] = True
            model_kwargs_cur['p_0'] = noise_0
        model_kwargs_cur['dim'] = dim
        model_kwarg_sets.append(model_kwargs_cur)
    run_utils.run_kwarg_scan(Model, model_kwarg_sets,
                             t_output_every, t_upto,
                             force_resume=force_resume, parallel=parallel)
def run_Dr_scan_porous():
    extra_model_kwargs = {
        'spatial_flag': True,
        'periodic_flag': True,
        'pore_flag': True,
        'pore_pf': 0.5,
    }
    model_kwargs = dict(default_model_kwargs, **extra_model_kwargs)

    t_output_every = 50.0
    t_upto = 1000.0
    noise_0s = np.logspace(-3, 2, 22)
    force_resume = True
    parallel = True

    model_kwarg_sets = []

    pore_turners = ['stall', 'bounce_back', 'reflect', 'align']
    noise_vars = ['Dr_0', 'p_0']
    for noise_var, pore_turner, noise_0 in product(noise_vars, pore_turners,
                                                   noise_0s):
        model_kwargs_cur = model_kwargs.copy()
        if noise_var == 'Dr_0':
            model_kwargs_cur['rotation_flag'] = True
            model_kwargs_cur['tumble_flag'] = False
            model_kwargs_cur['Dr_0'] = noise_0
        else:
            model_kwargs_cur['rotation_flag'] = False
            model_kwargs_cur['tumble_flag'] = True
            model_kwargs_cur['p_0'] = noise_0
        model_kwargs_cur['pore_turner'] = pore_turner
        model_kwarg_sets.append(model_kwargs_cur)
    run_utils.run_kwarg_scan(Model, model_kwarg_sets,
                             t_output_every, t_upto,
                             force_resume=force_resume, parallel=parallel)
def run_pf_scan_drift():
    extra_model_kwargs = {
        'spatial_flag': True,
        'periodic_flag': True,
        'pore_flag': True,
    }
    model_kwargs = dict(default_model_kwargs, **extra_model_kwargs)

    t_output_every = 50.0
    t_upto = 1000.0
    pore_pfs = np.linspace(0.0, 0.8, 22)
    force_resume = True
    parallel = True

    model_kwarg_sets = []

    noise_vars = ['Dr_0', 'p_0']
    onesided_flags = [True, False]
    temporal_chemo_flags = [True, False]
    combos = product(noise_vars, onesided_flags, temporal_chemo_flags,
                     pore_pfs)
    for noise_var, onesided_flag, temporal_chemo_flag, pore_pf in combos:
        model_kwargs_cur = model_kwargs.copy()

        if noise_var == 'Dr_0':
            model_kwargs_cur['rotation_flag'] = True
            model_kwargs_cur['rotation_chemo_flag'] = True
            model_kwargs_cur['tumble_flag'] = False
            model_kwargs_cur['tumble_chemo_flag'] = False
        else:
            model_kwargs_cur['rotation_flag'] = False
            model_kwargs_cur['rotation_chemo_flag'] = False
            model_kwargs_cur['tumble_flag'] = True
            model_kwargs_cur['tumble_chemo_flag'] = True
        model_kwargs_cur['onesided_flag'] = onesided_flag
        model_kwargs_cur['temporal_chemo_flag'] = temporal_chemo_flag
        key = noise_var, onesided_flag, temporal_chemo_flag
        model_kwargs_cur['chi'] = combo_to_chi[key]
        model_kwargs_cur['pore_pf'] = pore_pf
        model_kwarg_sets.append(model_kwargs_cur)

    run_utils.run_kwarg_scan(Model, model_kwarg_sets,
                             t_output_every, t_upto,
                             force_resume=force_resume, parallel=parallel)
def run_chi_scan():
    extra_model_kwargs = {
        'spatial_flag': True,
    }
    model_kwargs = dict(default_model_kwargs, **extra_model_kwargs)

    t_output_every = 50.0
    t_upto = 300.0
    chis = np.linspace(0.0, 0.99, 22)
    force_resume = True
    parallel = True

    model_kwarg_sets = []

    dims = [1, 2]
    noise_vars = ['Dr_0', 'p_0']
    onesided_flags = [True, False]
    temporal_chemo_flags = [True, False]
    combos = product(noise_vars, dims, onesided_flags, temporal_chemo_flags,
                     chis)
    for noise_var, dim, onesided_flag, temporal_chemo_flag, chi in combos:
        model_kwargs_cur = model_kwargs.copy()
        if noise_var == 'Dr_0':
            if dim == 1:
                continue
            model_kwargs_cur['rotation_flag'] = True
            model_kwargs_cur['rotation_chemo_flag'] = True
            model_kwargs_cur['tumble_flag'] = False
            model_kwargs_cur['tumble_chemo_flag'] = False
        else:
            model_kwargs_cur['rotation_flag'] = False
            model_kwargs_cur['rotation_chemo_flag'] = False
            model_kwargs_cur['tumble_flag'] = True
            model_kwargs_cur['tumble_chemo_flag'] = True
        model_kwargs_cur['dim'] = dim
        model_kwargs_cur['onesided_flag'] = onesided_flag
        model_kwargs_cur['temporal_chemo_flag'] = temporal_chemo_flag
        model_kwargs_cur['chi'] = chi
        model_kwarg_sets.append(model_kwargs_cur)

    run_utils.run_kwarg_scan(Model, model_kwarg_sets,
                             t_output_every, t_upto,
                             force_resume=force_resume, parallel=parallel)
示例#8
0
def run_chi_scan_traps():
    extra_model_kwargs = {
        'rho_0': 1e-3,
        'onesided_flag': True,
        'origin_flag': False,
        'walls': walls.Traps(L, dx=dx, n=5, d=trap_d, w=trap_w, s=trap_s),
    }
    model_kwargs = dict(default_model_2d_kwargs, **extra_model_kwargs)

    t_output_every = 1000.0
    t_upto = 8e4
    chis = np.linspace(0.0, 800.0, 22)
    force_resume = True
    parallel = True

    model_kwarg_sets = []

    for chi in chis:
        model_kwargs_cur = model_kwargs.copy()
        model_kwargs_cur['chi'] = chi
        model_kwarg_sets.append(model_kwargs_cur)
    run_kwarg_scan(model.Model2D, model_kwarg_sets,
                   t_output_every, t_upto, force_resume, parallel)