run_dataset
Run a declared plan of runs on one card, or of solves of one solver, and seal the rows under one root. Same bytes as POST /run_dataset. The seal shows the dataset was not altered after it was sealed. It does not show the engine made it: send a row's request to run_trajectory and compare run seals. A plan is a list of runs, a grid over a base run, or a seeded sample over a base run; a run is a run_trajectory request without domain and card. A path names one number: initial., dt_s, or segments[0].load., with the segment's number in square brackets and [0], [1] or [2] after a 3-vector field for one of its components. steps and record_every are not paths and cannot vary: every row of a grid or a sample takes them from the base run. A value an axis or a draw sets replaces the base's value of that field, and the answer's base_replaced names each field replaced; a 3-vector the base sets whole is replaced only when the paths set all three of its components. Two paths may not set one number. One worked plan of each kind, each a whole request: list: {"domain":"energy","card":"thermal","plan":{"kind":"list","runs":[{"initial":{"temperature_k":293.15},"dt_s":1.0,"segments":[{"steps":60,"load":{"heat_power_w":5.0,"ambient_k":293.15}}],"record_every":60}]},"store":"none","return":"inline"} grid: {"domain":"energy","card":"thermal","plan":{"kind":"grid","base":{"initial":{},"dt_s":1.0,"segments":[{"steps":60,"load":{"ambient_k":293.15}}],"record_every":60},"axes":[{"path":"initial.temperature_k","values":[283.15,293.15]},{"path":"segments[0].load.heat_power_w","values":[0.0,5.0,10.0]}]},"store":"none","return":"inline"} sample: {"domain":"energy","card":"thermal","plan":{"kind":"sample","base":{"initial":{},"dt_s":1.0,"segments":[{"steps":60,"load":{"ambient_k":293.15}}],"record_every":60},"rows":4,"generator":"splitmix64_counter_v1","seed_hex":"0000000000000001","draws":[{"path":"initial.temperature_k","choice":[283.15,293.15]},{"path":"segments[0].load.heat_power_w","uniform":{"low":0.0,"high":10.0}}]},"store":"none","return":"inline"}. The answer is small by default: the head, which holds the request, the counts and the dataset_seal, and one summary row per run with row, set (the values a grid's or a sample's row sets), outcome, steps_landed, reject and run_seal. With "answer": "states" each summary row also holds final_state in decimals; with "answer": "full" the answer is the head, every row whole and frames_hex. The head and the dataset_seal are the same in all three forms, and answer is not part of the sealed request. To read quantities of one row, send its request to run_trajectory with a readout. An inline answer is counted from the plan before anything runs, and one above 40000 characters is refused with what to change: a summary row counts 220 characters and the values it sets; with states, each number of the final state adds its name and 28 characters (84 for a 3-vector, 9 for a flag); a whole row counts its own request and 1900 characters, and for each number twice its name and 60 characters (150 for a 3-vector, 9 for a flag); store "frames" adds 128 characters for each recorded state to a full answer; the head repeats the request. return "file" stores the rows and answers with the head and the names of the files, whatever the plan's size and whatever answer says; verify_dataset checks it by its dataset_seal. A row is completed, ended, refused or unadmitted. An ended row is a run that stopped at an end its card declares: it has a run seal, the end's reject name in reject and the sentence naming the end in reject_detail. A refused row is a run the card refused part way: it has a run seal, the refusal's name in reject and its sentence in reject_detail. An unadmitted row is a request the door turned away before computing: it has no run seal, and its sentence, with the refusal's name in round brackets when the sentence gives one, is its reject_detail; its summary row gives that name in reject. Each row of a grid is held to the card's bounds alone, as each run of a list is: a value outside a bound makes that row unadmitted and the other rows run. A sample's interval or choice outside a bound refuses the plan. What a sentence that begins "Physical Failure" or "Physical Violation" means is in the description of run_trajectory. A plan of solves names solver in place of domain and card, takes no store and no return, and is answered inline: a list, {"kind":"list","solves":[{"parameters":{...}}]}, or a grid, {"kind":"grid","base":{"parameters":{...}},"axes":[{"path":"parameters.","values":[...]}]}, of at most 64 solves. Each row is a solve request, solved as solve solves it and carrying the solution_seal solve gives it; a request the door or the solver turns away without a seal is an unadmitted row. The rows are sealed under one dataset_seal by the rules of a plan of runs, with solution_seal in the leaf in the place of run_seal, and completed in the counts counts the solves that converged. A summary row has row, set, outcome, reject, solution_seal and every single number of the result in decimals; answer "full" gives every solution whole, and is refused when it comes to more than 40000 characters. verify_dataset checks a plan of solves by its request and dataset_seal, and validate_series compares one number of its results with measurements. Worked plan of solves: {"solver":"atom_dft","plan":{"kind":"list","solves":[{"parameters":{"atomic_number":10}}]}}. On this open connection a dataset is smaller than the engine's own limits allow: runs <= 300 (OPEN_MAX_DATASET_ROWS), steps in total <= 1000000 (OPEN_MAX_DATASET_STEPS), recorded states <= 10000, an answer counted from the plan at no more than 4194304 bytes (OPEN_MAX_DATASET_ANSWER_BYTES), and return "inline" only: no dataset is stored here, so return "file" is refused, and verify_dataset takes the request with its dataset_seal, or head, rows and frames_hex, not dataset_seal alone. On this open connection one address holds at most 1 physics permit at a time, and a solve, a dataset job and a run of more than 10000 steps are long work, of which 1 runs at a time: a call that finds no permit or no place is answered "Too many concurrent physics tasks." and is sent again; nothing waits. An answer is waited for 60 seconds.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| card | No | ||
| plan | Yes | ||
| store | No | ||
| answer | No | Leave out, or "summary", for the head and one short summary row per row: the values it sets, outcome, steps landed, refusal name and seal; "states" adds each run's final state in decimals; "full" gives every row whole. With return "file" the answer is the head and the names of the files whatever this says. Not part of the sealed request. | |
| domain | No | ||
| return | No | ||
| solver | No | A plan of solves: the solver, in place of domain and card. It takes no store and no return. |