add option to compute error at end of run
This commit is contained in:
parent
d174ac4854
commit
60f9a89e65
|
@ -278,9 +278,13 @@ struct Options {
|
||||||
/// Print the time to complete, taken in the compute loop
|
/// Print the time to complete, taken in the compute loop
|
||||||
#[structopt(long)]
|
#[structopt(long)]
|
||||||
timings: bool,
|
timings: bool,
|
||||||
|
/// Print error at the end of the run
|
||||||
|
#[structopt(long)]
|
||||||
|
error: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
type SBP = operators::Upwind4;
|
||||||
let opt = Options::from_args();
|
let opt = Options::from_args();
|
||||||
let filecontents = std::fs::read_to_string(&opt.json).unwrap();
|
let filecontents = std::fs::read_to_string(&opt.json).unwrap();
|
||||||
|
|
||||||
|
@ -316,7 +320,7 @@ fn main() {
|
||||||
|
|
||||||
let integration_time: Float = json["integration_time"].as_number().unwrap().into();
|
let integration_time: Float = json["integration_time"].as_number().unwrap().into();
|
||||||
|
|
||||||
let mut sys = System::<sbp::operators::Upwind4>::new(grids, bt);
|
let mut sys = System::<SBP>::new(grids, bt);
|
||||||
sys.vortex(0.0, vortexparams);
|
sys.vortex(0.0, vortexparams);
|
||||||
|
|
||||||
let max_n = {
|
let max_n = {
|
||||||
|
@ -379,6 +383,16 @@ fn main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
output.add_timestep(ntime, &sys.fnow);
|
output.add_timestep(ntime, &sys.fnow);
|
||||||
|
if opt.error {
|
||||||
|
let time = ntime as f64 * dt;
|
||||||
|
let mut e = 0.0;
|
||||||
|
for (fmod, grid) in sys.fnow.iter().zip(&sys.grids) {
|
||||||
|
let mut fvort = fmod.clone();
|
||||||
|
fvort.vortex(grid.x(), grid.y(), time, vortexparams);
|
||||||
|
e += fmod.h2_err::<SBP>(&fvort);
|
||||||
|
}
|
||||||
|
println!("Total error: {:e}", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn progressbar(dummy: bool, ntime: u64) -> indicatif::ProgressBar {
|
fn progressbar(dummy: bool, ntime: u64) -> indicatif::ProgressBar {
|
||||||
|
|
Loading…
Reference in New Issue