Add back tsection

This commit is contained in:
2020-09-04 17:19:36 +02:00
parent aa40eb7339
commit d5b1daa413
2 changed files with 75 additions and 24 deletions

View File

@@ -106,6 +106,14 @@ pub struct Interpolate {
neighbour: String,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct Multi {
#[serde(alias = "neighbor")]
neighbour: String,
start: usize,
end: usize,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum BoundaryType {
@@ -114,6 +122,7 @@ pub enum BoundaryType {
#[serde(alias = "neighbor")]
Neighbour(String),
Vortex,
Multi(Vec<Multi>),
}
pub type BoundaryDescriptors = sbp::utils::Direction<Option<BoundaryType>>;
@@ -269,6 +278,18 @@ impl Configuration {
inp.operator.unwrap().into(),
)
}
Some(BoundaryType::Multi(multi)) => {
euler::BoundaryCharacteristic::MultiGrid(
multi
.iter()
.map(|m| {
let ineighbour =
self.grids.get_index_of(&m.neighbour).unwrap();
(ineighbour, m.start, m.end)
})
.collect(),
)
}
})
})
.collect();
@@ -436,6 +457,35 @@ fn output_configuration() {
operators: None,
},
);
grids.insert(
"boundary_conditions_multigrid".to_string(),
GridConfig {
boundary_conditions: Some(BoundaryDescriptors {
north: Some(BoundaryType::Multi(vec![Multi {
neighbour: "name_of_grid".to_string(),
start: 4,
end: 7,
}])),
south: Some(BoundaryType::Multi(vec![
Multi {
neighbour: "name_of_grid".to_string(),
start: 4,
end: 7,
},
Multi {
neighbour: "name_of_grid".to_string(),
start: 41,
end: 912,
},
])),
east: None,
west: None,
}),
x: None,
y: None,
operators: None,
},
);
let configuration = Configuration {
grids,
integration_time: 2.0,