move boundary extraction into parallel section
This commit is contained in:
parent
dd7edd46d5
commit
35c4b25be3
|
@ -81,27 +81,32 @@ impl System {
|
||||||
let grids = &self.grids;
|
let grids = &self.grids;
|
||||||
let bt = &self.bt;
|
let bt = &self.bt;
|
||||||
let wb = &mut self.wb;
|
let wb = &mut self.wb;
|
||||||
let mut eb = &mut self.eb;
|
let eb = &mut self.eb;
|
||||||
let operators = &self.operators;
|
let operators = &self.operators;
|
||||||
|
|
||||||
let rhs = move |fut: &mut [euler::Field], prev: &[euler::Field], time: Float| {
|
let rhs = move |fut: &mut [euler::Field], prev: &[euler::Field], time: Float| {
|
||||||
let bc = euler::extract_boundaries(prev, &bt, &mut eb, &grids, time);
|
let prev_all = &prev;
|
||||||
pool.scope(|s| {
|
pool.scope(|s| {
|
||||||
for (((((fut, prev), bc), wb), metrics), op) in fut
|
for (((((((fut, prev), wb), grid), metrics), op), bt), eb) in fut
|
||||||
.iter_mut()
|
.iter_mut()
|
||||||
.zip(prev.iter())
|
.zip(prev.iter())
|
||||||
.zip(bc)
|
|
||||||
.zip(wb.iter_mut())
|
.zip(wb.iter_mut())
|
||||||
|
.zip(grids)
|
||||||
.zip(metrics.iter())
|
.zip(metrics.iter())
|
||||||
.zip(operators.iter())
|
.zip(operators.iter())
|
||||||
|
.zip(bt.iter())
|
||||||
|
.zip(eb.iter_mut())
|
||||||
{
|
{
|
||||||
s.spawn(move |_| match op.as_ref() {
|
s.spawn(move |_| {
|
||||||
|
let bc = euler::boundary_extracts(prev_all, bt, prev, grid, eb, time);
|
||||||
|
match op.as_ref() {
|
||||||
Left(sbp) => {
|
Left(sbp) => {
|
||||||
euler::RHS_trad(&**sbp, fut, prev, metrics, &bc, &mut wb.0);
|
euler::RHS_trad(&**sbp, fut, prev, metrics, &bc, &mut wb.0);
|
||||||
}
|
}
|
||||||
Right(uo) => {
|
Right(uo) => {
|
||||||
euler::RHS_upwind(&**uo, fut, prev, metrics, &bc, &mut wb.0);
|
euler::RHS_upwind(&**uo, fut, prev, metrics, &bc, &mut wb.0);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -694,7 +694,7 @@ fn boundary_extractor<'a>(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn boundary_extract<'a>(
|
fn boundary_extract<'a>(
|
||||||
fields: &'a [Field],
|
fields: &'a [Field],
|
||||||
bc: &BoundaryCharacteristic,
|
bc: &BoundaryCharacteristic,
|
||||||
field: &'a Field,
|
field: &'a Field,
|
||||||
|
|
Loading…
Reference in New Issue