add tsection type interfaces

This interface combines grids which do not have clean interfaces.

The type of interface has not been tested or verified here.
This commit is contained in:
Magnus Ulimoen
2020-04-19 18:49:43 +02:00
parent 297e295532
commit ed0f0e4a20
3 changed files with 170 additions and 16 deletions

View File

@@ -143,6 +143,27 @@ pub fn json_to_grids(
names.iter().position(|other| other == grid).unwrap(),
int_op,
)
} else if let Some(multigrid) = dir.strip_prefix("multi:") {
let grids = multigrid.split(":");
sbp::euler::BoundaryCharacteristic::MultiGrid(
grids
.map(|g| {
let rparen = g.find('(').unwrap();
let gridname = &g[..rparen];
let gridnumber =
names.iter().position(|other| other == gridname).unwrap();
let paren = &g[rparen + 1..];
let paren = &paren[..paren.len() - 1];
let mut pareni = paren.split(',');
let start = pareni.next().unwrap().parse::<usize>().unwrap();
let end = pareni.next().unwrap().parse::<usize>().unwrap();
(gridnumber, start, end)
})
.collect::<Vec<_>>(),
)
} else {
sbp::euler::BoundaryCharacteristic::Grid(
names.iter().position(|other| other == dir).unwrap(),