fix dt
This commit is contained in:
parent
19c60fb4b6
commit
7fd69d0619
16
main.js
16
main.js
|
@ -104,8 +104,8 @@ import { EulerUniverse, Universe, default as init, set_panic_hook as setPanicHoo
|
||||||
for (let j = 0; j < height; j += 1) {
|
for (let j = 0; j < height; j += 1) {
|
||||||
for (let i = 0; i < width; i += 1) {
|
for (let i = 0; i < width; i += 1) {
|
||||||
const n = width*j + i;
|
const n = width*j + i;
|
||||||
x[n] = 20.0*(i / (width - 1.0));
|
x[n] = 20.0*(i / (width - 1.0) - 0.5);
|
||||||
y[n] = 20.0*(j / (height - 1.0));
|
y[n] = 20.0*(j / (height - 1.0) - 0.5);
|
||||||
|
|
||||||
|
|
||||||
if (DIAMOND) {
|
if (DIAMOND) {
|
||||||
|
@ -181,7 +181,7 @@ import { EulerUniverse, Universe, default as init, set_panic_hook as setPanicHoo
|
||||||
}
|
}
|
||||||
|
|
||||||
const TIMEFACTOR = 10000.0;
|
const TIMEFACTOR = 10000.0;
|
||||||
const MAX_DT = 1.0/Math.max(width, height);
|
const MAX_DT = Math.min(1.0/width, 1.0/height)*0.2;
|
||||||
|
|
||||||
let t = 0;
|
let t = 0;
|
||||||
let firstDraw = true;
|
let firstDraw = true;
|
||||||
|
@ -202,7 +202,7 @@ import { EulerUniverse, Universe, default as init, set_panic_hook as setPanicHoo
|
||||||
};
|
};
|
||||||
chosenField.cycle();
|
chosenField.cycle();
|
||||||
|
|
||||||
universe.init(10, 10);
|
universe.init(0, 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Integrates and draws the next iteration
|
* Integrates and draws the next iteration
|
||||||
|
@ -236,11 +236,11 @@ import { EulerUniverse, Universe, default as init, set_panic_hook as setPanicHoo
|
||||||
}
|
}
|
||||||
|
|
||||||
if (UPWIND) {
|
if (UPWIND) {
|
||||||
universe.advance_upwind(dt/2);
|
universe.advance_upwind(MAX_DT);
|
||||||
universe.advance_upwind(dt/2);
|
universe.advance_upwind(MAX_DT);
|
||||||
} else {
|
} else {
|
||||||
universe.advance(dt/2);
|
universe.advance(MAX_DT);
|
||||||
universe.advance(dt/2);
|
universe.advance(MAX_DT);
|
||||||
}
|
}
|
||||||
|
|
||||||
window.requestAnimationFrame(drawMe);
|
window.requestAnimationFrame(drawMe);
|
||||||
|
|
|
@ -54,13 +54,13 @@ criterion_group!(benches, performance_benchmark);
|
||||||
|
|
||||||
fn advance_euler_system<SBP: SbpOperator>(universe: &mut EulerSystem<SBP>, n: usize) {
|
fn advance_euler_system<SBP: SbpOperator>(universe: &mut EulerSystem<SBP>, n: usize) {
|
||||||
for _ in 0..n {
|
for _ in 0..n {
|
||||||
universe.advance(0.01);
|
universe.advance(1.0 / 40.0 * 0.2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn advance_euler_system_upwind<UO: UpwindOperator>(universe: &mut EulerSystem<UO>, n: usize) {
|
fn advance_euler_system_upwind<UO: UpwindOperator>(universe: &mut EulerSystem<UO>, n: usize) {
|
||||||
for _ in 0..n {
|
for _ in 0..n {
|
||||||
universe.advance_upwind(0.01);
|
universe.advance_upwind(1.0 / 40.0 * 0.2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ fn euler_performance_benchmark(c: &mut Criterion) {
|
||||||
group.bench_function("advance_euler", |b| {
|
group.bench_function("advance_euler", |b| {
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
universe.vortex(0.0, 0.0);
|
universe.vortex(0.0, 0.0);
|
||||||
advance_euler_system(&mut universe, black_box(10))
|
advance_euler_system(&mut universe, black_box(20))
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ fn euler_performance_benchmark(c: &mut Criterion) {
|
||||||
group.bench_function("advance_euler_upwind", |b| {
|
group.bench_function("advance_euler_upwind", |b| {
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
universe.vortex(0.0, 0.0);
|
universe.vortex(0.0, 0.0);
|
||||||
advance_euler_system_upwind(&mut universe, black_box(10))
|
advance_euler_system_upwind(&mut universe, black_box(20))
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ fn euler_performance_benchmark(c: &mut Criterion) {
|
||||||
group.bench_function("advance_euler_trad4", |b| {
|
group.bench_function("advance_euler_trad4", |b| {
|
||||||
b.iter(|| {
|
b.iter(|| {
|
||||||
universe.vortex(0.0, 0.0);
|
universe.vortex(0.0, 0.0);
|
||||||
advance_euler_system(&mut universe, black_box(10))
|
advance_euler_system(&mut universe, black_box(20))
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue