Bump sprs to 0.10
This commit is contained in:
parent
550b43b4cd
commit
be984fbdac
|
@ -9,7 +9,7 @@ edition = "2018"
|
||||||
sbp = { path = "../sbp", features = ["sparse"] }
|
sbp = { path = "../sbp", features = ["sparse"] }
|
||||||
ndarray = "0.14.0"
|
ndarray = "0.14.0"
|
||||||
plotters = { version = "0.3.0", default-features = false, features = ["bitmap_gif", "bitmap_backend", "line_series"] }
|
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]
|
[dev-dependencies]
|
||||||
arpack = { git = "https://github.com/mulimoen/arpack-rs", branch = "main" }
|
arpack = { git = "https://github.com/mulimoen/arpack-rs", branch = "main" }
|
||||||
|
|
|
@ -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| {
|
let rhs = move |fut: &mut Array1<Float>, prev: &Array1<Float>, _t: Float| {
|
||||||
fut.fill(0.0);
|
fut.fill(0.0);
|
||||||
let prev = prev.as_slice().unwrap();
|
let prev = prev.as_slice().unwrap();
|
||||||
|
{
|
||||||
let fut = fut.as_slice_mut().unwrap();
|
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(system.view(), prev, fut);
|
||||||
|
}
|
||||||
|
let fut = fut.as_slice_mut().unwrap();
|
||||||
sprs::prod::mul_acc_mat_vec_csr(bc.view(), &[v0, vn][..], fut);
|
sprs::prod::mul_acc_mat_vec_csr(bc.view(), &[v0, vn][..], fut);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ sparse = ["sbp/sparse", "sprs"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
ndarray = "0.14.0"
|
ndarray = "0.14.0"
|
||||||
sbp = { path = "../sbp" }
|
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]
|
[dev-dependencies]
|
||||||
criterion = "0.3.2"
|
criterion = "0.3.2"
|
||||||
|
|
|
@ -236,11 +236,11 @@ pub fn rhs_matrix(op: &dyn SbpOperator2d, grid: &super::Grid) -> Implicit {
|
||||||
|
|
||||||
/// RHS with some additional dissipation from the upwind operator
|
/// RHS with some additional dissipation from the upwind operator
|
||||||
pub fn rhs_matrix_with_upwind_dissipation(
|
pub fn rhs_matrix_with_upwind_dissipation(
|
||||||
op: &dyn UpwindOperator2d,
|
op: impl UpwindOperator2d + SbpOperator2d,
|
||||||
grid: &super::Grid,
|
grid: &super::Grid,
|
||||||
) -> sprs::CsMat<Float> {
|
) -> sprs::CsMat<Float> {
|
||||||
let rhs = rhs_matrix(op.as_sbp(), grid).rhs;
|
let rhs = rhs_matrix(&op, grid).rhs;
|
||||||
let metrics = grid.metrics(op.as_sbp()).unwrap();
|
let metrics = grid.metrics(&op).unwrap();
|
||||||
let nx = grid.nx();
|
let nx = grid.nx();
|
||||||
let ny = grid.ny();
|
let ny = grid.ny();
|
||||||
|
|
||||||
|
@ -262,14 +262,14 @@ pub fn rhs_matrix_with_upwind_dissipation(
|
||||||
};
|
};
|
||||||
|
|
||||||
let diss_x = {
|
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 diss_x = kronecker_product(eye(ny).view(), diss_x.view());
|
||||||
let met = diss(metrics.detj_dxi_dx(), metrics.detj_dxi_dy());
|
let met = diss(metrics.detj_dxi_dx(), metrics.detj_dxi_dy());
|
||||||
&met * &kronecker_product(eye(3).view(), diss_x.view())
|
&met * &kronecker_product(eye(3).view(), diss_x.view())
|
||||||
};
|
};
|
||||||
|
|
||||||
let diss_y = {
|
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 diss_y = kronecker_product(diss_y.view(), eye(nx).view());
|
||||||
let met = diss(metrics.detj_deta_dx(), metrics.detj_deta_dy());
|
let met = diss(metrics.detj_deta_dx(), metrics.detj_deta_dy());
|
||||||
&met * &kronecker_product(eye(3).view(), diss_y.view())
|
&met * &kronecker_product(eye(3).view(), diss_y.view())
|
||||||
|
|
|
@ -9,7 +9,7 @@ ndarray = { version = "0.14.0", features = ["approx"] }
|
||||||
approx = "0.4.0"
|
approx = "0.4.0"
|
||||||
packed_simd = { version = "0.3.3", package = "packed_simd_2" }
|
packed_simd = { version = "0.3.3", package = "packed_simd_2" }
|
||||||
rayon = { version = "1.3.0", optional = true }
|
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"] }
|
serde = { version = "1.0.115", optional = true, default-features = false, features = ["derive"] }
|
||||||
num-traits = "0.2.14"
|
num-traits = "0.2.14"
|
||||||
|
|
||||||
|
|
|
@ -111,12 +111,13 @@ impl super::SbpOperator1d2 for SBP4 {
|
||||||
// d_x => -d_x when reversed
|
// d_x => -d_x when reversed
|
||||||
d1.iter_mut().for_each(|v| *v *= -1.0);
|
d1.iter_mut().for_each(|v| *v *= -1.0);
|
||||||
// Indices are now in reverse order
|
// Indices are now in reverse order
|
||||||
sprs::CsMat::new(
|
sprs::CsMat::new_from_unsorted(
|
||||||
(1, n),
|
(1, n),
|
||||||
vec![0, d1.len()],
|
vec![0, d1.len()],
|
||||||
(0..n).rev().take(d1.len()).collect(),
|
(0..n).rev().take(d1.len()).collect(),
|
||||||
d1,
|
d1,
|
||||||
)
|
)
|
||||||
|
.unwrap()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue