Apply initial conditions to distributed

This commit is contained in:
Magnus Ulimoen 2021-08-17 12:42:24 +00:00
parent 1bfd37b164
commit 05cb455108
1 changed files with 16 additions and 1 deletions

View File

@ -250,11 +250,26 @@ impl BaseSystem {
let output = self.output.clone(); let output = self.output.clone();
let initial = self.initial_conditions.clone();
tids.push( tids.push(
builder builder
.spawn(move || { .spawn(move || {
let (ny, nx) = (grid.ny(), grid.nx()); let (ny, nx) = (grid.ny(), grid.nx());
let current = Field::new(ny, nx); let mut current = Field::new(ny, nx);
match &initial {
parsing::InitialConditions::Vortex(vortexparams) => {
current.vortex(grid.x(), grid.y(), time, vortexparams)
}
parsing::InitialConditions::Expressions(expr) => {
// Evaluate the expressions on all variables
let x = grid.x();
let y = grid.y();
let (rho, rhou, rhov, e) = current.components_mut();
(*expr).evaluate(time, x, y, rho, rhou, rhov, e);
}
}
let fut = current.clone(); let fut = current.clone();
let k = [ let k = [
Diff::zeros((ny, nx)), Diff::zeros((ny, nx)),