Bump sprs to 0.10

This commit is contained in:
Magnus Ulimoen 2021-03-18 23:27:03 +01:00
parent 550b43b4cd
commit be984fbdac
6 changed files with 14 additions and 12 deletions

View File

@ -9,7 +9,7 @@ edition = "2018"
sbp = { path = "../sbp", features = ["sparse"] }
ndarray = "0.14.0"
plotters = { version = "0.3.0", default-features = false, features = ["bitmap_gif", "bitmap_backend", "line_series"] }
sprs = { version = "0.9.0", default-features = false }
sprs = { version = "0.10.0", default-features = false }
[dev-dependencies]
arpack = { git = "https://github.com/mulimoen/arpack-rs", branch = "main" }

View File

@ -204,10 +204,11 @@ fn dual_dirichlet_sparse(v: ArrayView1<Float>, v0: Float, vn: Float) {
let rhs = move |fut: &mut Array1<Float>, prev: &Array1<Float>, _t: Float| {
fut.fill(0.0);
let prev = prev.as_slice().unwrap();
{
let fut = fut.as_slice_mut().unwrap();
sprs::prod::mul_acc_mat_vec_csr(system.view(), prev, fut);
}
let fut = fut.as_slice_mut().unwrap();
sprs::prod::mul_acc_mat_vec_csr(system.view(), prev, fut);
sprs::prod::mul_acc_mat_vec_csr(bc.view(), &[v0, vn][..], fut);
};

View File

@ -10,7 +10,7 @@ sparse = ["sbp/sparse", "sprs"]
[dependencies]
ndarray = "0.14.0"
sbp = { path = "../sbp" }
sprs = { version = "0.9.0", optional = true, default-features = false }
sprs = { version = "0.10.0", optional = true, default-features = false }
[dev-dependencies]
criterion = "0.3.2"

View File

@ -236,11 +236,11 @@ pub fn rhs_matrix(op: &dyn SbpOperator2d, grid: &super::Grid) -> Implicit {
/// RHS with some additional dissipation from the upwind operator
pub fn rhs_matrix_with_upwind_dissipation(
op: &dyn UpwindOperator2d,
op: impl UpwindOperator2d + SbpOperator2d,
grid: &super::Grid,
) -> sprs::CsMat<Float> {
let rhs = rhs_matrix(op.as_sbp(), grid).rhs;
let metrics = grid.metrics(op.as_sbp()).unwrap();
let rhs = rhs_matrix(&op, grid).rhs;
let metrics = grid.metrics(&op).unwrap();
let nx = grid.nx();
let ny = grid.ny();
@ -262,14 +262,14 @@ pub fn rhs_matrix_with_upwind_dissipation(
};
let diss_x = {
let diss_x = UpwindOperator2d::op_xi(op).diss_matrix(nx);
let diss_x = UpwindOperator2d::op_xi(&op).diss_matrix(nx);
let diss_x = kronecker_product(eye(ny).view(), diss_x.view());
let met = diss(metrics.detj_dxi_dx(), metrics.detj_dxi_dy());
&met * &kronecker_product(eye(3).view(), diss_x.view())
};
let diss_y = {
let diss_y = UpwindOperator2d::op_eta(op).diss_matrix(ny);
let diss_y = UpwindOperator2d::op_eta(&op).diss_matrix(ny);
let diss_y = kronecker_product(diss_y.view(), eye(nx).view());
let met = diss(metrics.detj_deta_dx(), metrics.detj_deta_dy());
&met * &kronecker_product(eye(3).view(), diss_y.view())

View File

@ -9,7 +9,7 @@ ndarray = { version = "0.14.0", features = ["approx"] }
approx = "0.4.0"
packed_simd = { version = "0.3.3", package = "packed_simd_2" }
rayon = { version = "1.3.0", optional = true }
sprs = { version = "0.9.0", optional = true, default-features = false }
sprs = { version = "0.10.0", optional = true, default-features = false }
serde = { version = "1.0.115", optional = true, default-features = false, features = ["derive"] }
num-traits = "0.2.14"

View File

@ -111,12 +111,13 @@ impl super::SbpOperator1d2 for SBP4 {
// d_x => -d_x when reversed
d1.iter_mut().for_each(|v| *v *= -1.0);
// Indices are now in reverse order
sprs::CsMat::new(
sprs::CsMat::new_from_unsorted(
(1, n),
vec![0, d1.len()],
(0..n).rev().take(d1.len()).collect(),
d1,
)
.unwrap()
}
}
}