v/examples/pendulum-simulation/sequential.v

31 lines
655 B
V

module main
import benchmark
import sim
import sim.args as simargs
import sim.img
fn main() {
args := simargs.parse_args(sequential: true)? as simargs.SequentialArgs
mut bmark := benchmark.start()
defer {
bmark.measure(@FN)
}
mut writer := img.ppm_writer_for_fname(args.filename, img.image_settings_from_grid(args.grid))?
defer {
writer.close()
}
handle_request := fn [mut writer] (request &sim.SimRequest) ? {
result := sim.compute_result(request)
pixel := img.compute_pixel(result)
return writer.handle_pixel(pixel)
}
sim.run(args.params, grid: args.grid, on_request: sim.SimRequestHandler(handle_request))
writer.write()?
}