Adaptive 2D Grid Task
The Adaptive2DGridTask adapts a supported SingleTempoTask over a 2D parameter space. It manages per-point workspaces, parameter overrides, and optional result persistence.
Supported wrapper contract:
task_copy_with(task; kwargs...)task_derive_par_output(task, tag)run_task(task_copy) -> GeneralTempoResultsave_result_jld2(result; filename=...)when per-point persistence is enabled
Workspace options
GridWorkspaceOptions controls where grid artifacts live:
grid_root::String— base directory for the grid (absolute or relative to base task work_dir)point_job_prefix::String = "grid_points"— subdir under grid_root for per-point job dirsresults_dirname::String = "results"— subdir for saved per-point results (.jld2)input_dirname::String = "input"— optional staging location for base inputs
Tagging and staging:
tag_mode::Symbol = :with_value | :hash(controls point tag format)save_results_jld2::Bool = truestage_inputs::Bool = true;stage_inputs_mode = :root | :subdir
Example
base = BasicTempoTask(TempoRunSettings(
work_dir="/abs/work",
par_input="a.par",
tim_input="a.tim",
par_output="a_out.par",
tempo_version=Tempo2("/path/to/TEMPO2"),
))
x = GridAxis(:PX; min=0.0, max=5.0, N=51, rule=LinRule())
y = GridAxis(:PY; min=1e-4, max=1e0, N=41, rule=LogRule(+1))
ref = RefinementSettings(
LocalMinimaUnit(:chi2_marginalized),
desired_refinement_level = 0,
params_to_save = (:chi2_marginalized,),
)
opts = GridWorkspaceOptions(grid_root="scan")
gtask = Adaptive2DGridTask(base_task=base, x=x, y=y, ref_settings=ref, opts=opts)
res = run_task(gtask)