Examples

1. BGK1D explicit with torch

from kineticEQ import Config, Engine, BGK1D

cfg = Config(
    model="BGK1D1V",
    scheme="explicit",
    backend="torch",
    device="cpu",
    dtype="float64",
    use_tqdm="false",
    model_cfg=BGK1D.ModelConfig(
        grid=BGK1D.Grid1D1V(nx=256, nv=128, Lx=1.0, v_max=10.0),
        time=BGK1D.TimeConfig(dt=5e-6, T_total=5e-4),
        params=BGK1D.BGK1D1VParams(tau_tilde=5e-5),
    ),
)

Engine(cfg).run()

2. BGK1D implicit with cpu_kernel

from kineticEQ import Config, Engine, BGK1D

cfg = Config(
    model="BGK1D1V",
    scheme="implicit",
    backend="cpu_kernel",
    device="cpu",
    dtype="float64",
    model_cfg=BGK1D.ModelConfig(
        grid=BGK1D.Grid1D1V(nx=257, nv=129, Lx=1.0, v_max=10.0),
        time=BGK1D.TimeConfig(dt=5e-5, T_total=5e-3),
        params=BGK1D.BGK1D1VParams(tau_tilde=5e-7),
        scheme_params=BGK1D.implicit.Params(
            picard_iter=200,
            picard_tol=1e-6,
            abs_tol=1e-13,
            conv_type="w",
            aa_enable=True,
        ),
    ),
)

Engine(cfg).run()

3. BGK1D implicit with cuda_kernel, AA, and CNN warm-start

from kineticEQ import Config, Engine, BGK1D

cfg = Config(
    model="BGK1D1V",
    scheme="implicit",
    backend="cuda_kernel",
    device="cuda",
    dtype="float64",
    model_cfg=BGK1D.ModelConfig(
        grid=BGK1D.Grid1D1V(nx=512, nv=256, Lx=1.0, v_max=10.0),
        time=BGK1D.TimeConfig(dt=5e-5, T_total=5e-3),
        params=BGK1D.BGK1D1VParams(tau_tilde=5e-7),
        scheme_params=BGK1D.implicit.Params(
            picard_iter=400,
            picard_tol=1e-7,
            abs_tol=1e-13,
            conv_type="f",
            aa_enable=True,
            aa_m=6,
            moments_cnn_modelpath="/path/to/checkpoint.pt",
            warm_delta_weight_mode="w_grad",
        ),
    ),
)

Engine(cfg).run()

4. BGK1D holo with cuda_kernel

from kineticEQ import Config, Engine, BGK1D

cfg = Config(
    model="BGK1D1V",
    scheme="holo",
    backend="cuda_kernel",
    device="cuda",
    dtype="float64",
    model_cfg=BGK1D.ModelConfig(
        grid=BGK1D.Grid1D1V(nx=257, nv=129, Lx=1.0, v_max=10.0),
        time=BGK1D.TimeConfig(dt=2e-5, T_total=2e-3),
        params=BGK1D.BGK1D1VParams(tau_tilde=1e-5),
        scheme_params=BGK1D.holo.Params(
            ho_iter=8,
            ho_tol=1e-5,
            lo_iter=16,
            lo_tol=1e-5,
            Con_Terms_do=True,
            flux_consistency_do=True,
        ),
    ),
)

Engine(cfg).run()