Skip to content

Commit ddae6a0

Browse files
committed
rust - put less in prelude
1 parent e036be4 commit ddae6a0

File tree

15 files changed

+241
-208
lines changed

15 files changed

+241
-208
lines changed

examples/rust/ex1-volume/src/main.rs

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
// line argument (-ceed).
2020

2121
use clap::Parser;
22-
use libceed::{prelude::*, Ceed};
22+
use libceed::{
23+
BasisOpt, Ceed, ElemRestrictionOpt, QFunctionInputs, QFunctionOpt, QFunctionOutputs, VectorOpt,
24+
};
2325
mod opt;
2426
mod transform;
2527

@@ -75,10 +77,20 @@ fn example_1(options: opt::Opt) -> libceed::Result<()> {
7577
let ceed = Ceed::init(&ceed_spec);
7678

7779
// Mesh and solution bases
78-
let basis_mesh =
79-
ceed.basis_tensor_H1_Lagrange(dim, ncomp_x, mesh_degree + 1, num_qpts, QuadMode::Gauss)?;
80-
let basis_solution =
81-
ceed.basis_tensor_H1_Lagrange(dim, 1, solution_degree + 1, num_qpts, QuadMode::Gauss)?;
80+
let basis_mesh = ceed.basis_tensor_H1_Lagrange(
81+
dim,
82+
ncomp_x,
83+
mesh_degree + 1,
84+
num_qpts,
85+
libceed::QuadMode::Gauss,
86+
)?;
87+
let basis_solution = ceed.basis_tensor_H1_Lagrange(
88+
dim,
89+
1,
90+
solution_degree + 1,
91+
num_qpts,
92+
libceed::QuadMode::Gauss,
93+
)?;
8294

8395
// Determine mesh size from approximate problem size
8496
let num_xyz = mesh::cartesian_mesh_size(dim, solution_degree, problem_size);
@@ -157,9 +169,9 @@ fn example_1(options: opt::Opt) -> libceed::Result<()> {
157169
};
158170
let qf_build_closure = ceed
159171
.q_function_interior(1, Box::new(build_mass))?
160-
.input("dx", ncomp_x * dim, EvalMode::Grad)?
161-
.input("weights", 1, EvalMode::Weight)?
162-
.output("qdata", 1, EvalMode::None)?;
172+
.input("dx", ncomp_x * dim, libceed::EvalMode::Grad)?
173+
.input("weights", 1, libceed::EvalMode::Weight)?
174+
.output("qdata", 1, libceed::EvalMode::None)?;
163175
// -- QFunction from gallery
164176
let qf_build_named = {
165177
let name = format!("Mass{}DBuild", dim);
@@ -204,9 +216,9 @@ fn example_1(options: opt::Opt) -> libceed::Result<()> {
204216
};
205217
let qf_mass_closure = ceed
206218
.q_function_interior(1, Box::new(apply_mass))?
207-
.input("u", 1, EvalMode::Interp)?
208-
.input("qdata", 1, EvalMode::None)?
209-
.output("v", 1, EvalMode::Interp)?;
219+
.input("u", 1, libceed::EvalMode::Interp)?
220+
.input("qdata", 1, libceed::EvalMode::None)?
221+
.output("v", 1, libceed::EvalMode::Interp)?;
210222
// -- QFunction from gallery
211223
let qf_mass_named = ceed.q_function_interior_by_name("MassApply")?;
212224
// -- QFunction for use with Operator
@@ -233,7 +245,7 @@ fn example_1(options: opt::Opt) -> libceed::Result<()> {
233245
op_mass.apply(&u, &mut v)?;
234246

235247
// Compute the mesh volume
236-
let volume: Scalar = v.view()?.iter().sum();
248+
let volume: libceed::Scalar = v.view()?.iter().sum();
237249

238250
// Output results
239251
if !quiet {

examples/rust/ex1-volume/src/transform.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,21 @@
55
//
66
// This file is part of CEED: http://github.com/ceed
77

8-
use libceed::prelude::*;
9-
108
// ----------------------------------------------------------------------------
119
// Transform mesh coordinates
1210
// ----------------------------------------------------------------------------
1311
pub(crate) fn transform_mesh_coordinates(
1412
dim: usize,
1513
mesh_size: usize,
16-
mesh_coords: &mut Vector,
17-
) -> libceed::Result<Scalar> {
14+
mesh_coords: &mut libceed::Vector,
15+
) -> libceed::Result<libceed::Scalar> {
1816
// Transform coordinates
1917
if dim == 1 {
2018
for coord in mesh_coords.view_mut()?.iter_mut() {
2119
// map [0,1] to [0,1] varying the mesh density
2220
*coord = 0.5
23-
+ 1.0 / (3.0 as Scalar).sqrt()
24-
* ((2.0 / 3.0) * std::f64::consts::PI as Scalar * (*coord - 0.5)).sin()
21+
+ 1.0 / (3.0 as libceed::Scalar).sqrt()
22+
* ((2.0 / 3.0) * std::f64::consts::PI as libceed::Scalar * (*coord - 0.5)).sin()
2523
}
2624
} else {
2725
let mut coords = mesh_coords.view_mut()?;
@@ -30,7 +28,7 @@ pub(crate) fn transform_mesh_coordinates(
3028
// map (x,y) from [0,1]x[0,1] to the quarter annulus with polar
3129
// coordinates, (r,phi) in [1,2]x[0,pi/2] with area = 3/4*pi
3230
let u = 1.0 + coords[i];
33-
let v = std::f64::consts::PI as Scalar / 2.0 * coords[i + num_nodes];
31+
let v = std::f64::consts::PI as libceed::Scalar / 2.0 * coords[i + num_nodes];
3432
coords[i] = u * v.cos();
3533
coords[i + num_nodes] = u * v.sin();
3634
}
@@ -39,7 +37,7 @@ pub(crate) fn transform_mesh_coordinates(
3937
// Exact volume of transformed region
4038
let exact_volume = match dim {
4139
1 => 1.0,
42-
_ => 3.0 / 4.0 * std::f64::consts::PI as Scalar,
40+
_ => 3.0 / 4.0 * std::f64::consts::PI as libceed::Scalar,
4341
};
4442
Ok(exact_volume)
4543
}

examples/rust/ex2-surface/src/main.rs

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
// line argument (-ceed).
2121

2222
use clap::Parser;
23-
use libceed::{prelude::*, Ceed};
23+
use libceed::{
24+
BasisOpt, Ceed, ElemRestrictionOpt, QFunctionInputs, QFunctionOpt, QFunctionOutputs, VectorOpt,
25+
};
2426
mod opt;
2527
mod transform;
2628

@@ -80,10 +82,20 @@ fn example_2(options: opt::Opt) -> libceed::Result<()> {
8082
let ceed = Ceed::init(&ceed_spec);
8183

8284
// Mesh and solution bases
83-
let basis_mesh =
84-
ceed.basis_tensor_H1_Lagrange(dim, ncomp_x, mesh_degree + 1, num_qpts, QuadMode::Gauss)?;
85-
let basis_solution =
86-
ceed.basis_tensor_H1_Lagrange(dim, 1, solution_degree + 1, num_qpts, QuadMode::Gauss)?;
85+
let basis_mesh = ceed.basis_tensor_H1_Lagrange(
86+
dim,
87+
ncomp_x,
88+
mesh_degree + 1,
89+
num_qpts,
90+
libceed::QuadMode::Gauss,
91+
)?;
92+
let basis_solution = ceed.basis_tensor_H1_Lagrange(
93+
dim,
94+
1,
95+
solution_degree + 1,
96+
num_qpts,
97+
libceed::QuadMode::Gauss,
98+
)?;
8799

88100
// Determine mesh size from approximate problem size
89101
let num_xyz = mesh::cartesian_mesh_size(dim, solution_degree, problem_size);
@@ -199,9 +211,9 @@ fn example_2(options: opt::Opt) -> libceed::Result<()> {
199211
};
200212
let qf_build_closure = ceed
201213
.q_function_interior(1, Box::new(build_diff))?
202-
.input("dx", ncomp_x * dim, EvalMode::Grad)?
203-
.input("weights", 1, EvalMode::Weight)?
204-
.output("qdata", dim * (dim + 1) / 2, EvalMode::None)?;
214+
.input("dx", ncomp_x * dim, libceed::EvalMode::Grad)?
215+
.input("weights", 1, libceed::EvalMode::Weight)?
216+
.output("qdata", dim * (dim + 1) / 2, libceed::EvalMode::None)?;
205217
// -- QFunction from gallery
206218
let qf_build_named = {
207219
let name = format!("Poisson{}DBuild", dim);
@@ -280,9 +292,9 @@ fn example_2(options: opt::Opt) -> libceed::Result<()> {
280292
};
281293
let qf_diff_closure = ceed
282294
.q_function_interior(1, Box::new(apply_diff))?
283-
.input("du", dim, EvalMode::Grad)?
284-
.input("qdata", dim * (dim + 1) / 2, EvalMode::None)?
285-
.output("dv", dim, EvalMode::Grad)?;
295+
.input("du", dim, libceed::EvalMode::Grad)?
296+
.input("qdata", dim * (dim + 1) / 2, libceed::EvalMode::None)?
297+
.output("dv", dim, libceed::EvalMode::Grad)?;
286298
// -- QFunction from gallery
287299
let qf_diff_named = {
288300
let name = format!("Poisson{}DApply", dim);
@@ -319,7 +331,7 @@ fn example_2(options: opt::Opt) -> libceed::Result<()> {
319331
op_diff.apply(&u, &mut v)?;
320332

321333
// Compute the mesh surface area
322-
let area: Scalar = v.view()?.iter().map(|v| (*v).abs()).sum();
334+
let area: libceed::Scalar = v.view()?.iter().map(|v| (*v).abs()).sum();
323335

324336
// Output results
325337
if !quiet {

examples/rust/ex2-surface/src/transform.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,19 @@
55
//
66
// This file is part of CEED: http://github.com/ceed
77

8-
use libceed::prelude::*;
9-
108
// ----------------------------------------------------------------------------
119
// Transform mesh coordinates
1210
// ----------------------------------------------------------------------------
1311
pub(crate) fn transform_mesh_coordinates(
1412
dim: usize,
15-
mesh_coords: &mut Vector,
16-
) -> libceed::Result<Scalar> {
13+
mesh_coords: &mut libceed::Vector,
14+
) -> libceed::Result<libceed::Scalar> {
1715
// Transform coordinates
1816
for coord in mesh_coords.view_mut()?.iter_mut() {
1917
// map [0,1] to [0,1] varying the mesh density
2018
*coord = 0.5
21-
+ 1.0 / (3.0 as Scalar).sqrt()
22-
* ((2.0 / 3.0) * std::f64::consts::PI as Scalar * (*coord - 0.5)).sin()
19+
+ 1.0 / (3.0 as libceed::Scalar).sqrt()
20+
* ((2.0 / 3.0) * std::f64::consts::PI as libceed::Scalar * (*coord - 0.5)).sin()
2321
}
2422

2523
// Exact surface area of transformed region

examples/rust/ex3-vector-volume/src/main.rs

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
// line argument (-ceed).
2121

2222
use clap::Parser;
23-
use libceed::{prelude::*, Ceed};
23+
use libceed::{
24+
BasisOpt, Ceed, ElemRestrictionOpt, QFunctionInputs, QFunctionOpt, QFunctionOutputs, VectorOpt,
25+
};
2426
mod opt;
2527
mod transform;
2628

@@ -77,14 +79,19 @@ fn example_3(options: opt::Opt) -> libceed::Result<()> {
7779
let ceed = Ceed::init(&ceed_spec);
7880

7981
// Mesh and solution bases
80-
let basis_mesh =
81-
ceed.basis_tensor_H1_Lagrange(dim, ncomp_x, mesh_degree + 1, num_qpts, QuadMode::Gauss)?;
82+
let basis_mesh = ceed.basis_tensor_H1_Lagrange(
83+
dim,
84+
ncomp_x,
85+
mesh_degree + 1,
86+
num_qpts,
87+
libceed::QuadMode::Gauss,
88+
)?;
8289
let basis_solution = ceed.basis_tensor_H1_Lagrange(
8390
dim,
8491
ncomp_u,
8592
solution_degree + 1,
8693
num_qpts,
87-
QuadMode::Gauss,
94+
libceed::QuadMode::Gauss,
8895
)?;
8996

9097
// Determine mesh size from approximate problem size
@@ -166,9 +173,9 @@ fn example_3(options: opt::Opt) -> libceed::Result<()> {
166173
};
167174
let qf_build_closure = ceed
168175
.q_function_interior(1, Box::new(build_mass))?
169-
.input("dx", ncomp_x * dim, EvalMode::Grad)?
170-
.input("weights", 1, EvalMode::Weight)?
171-
.output("qdata", 1, EvalMode::None)?;
176+
.input("dx", ncomp_x * dim, libceed::EvalMode::Grad)?
177+
.input("weights", 1, libceed::EvalMode::Weight)?
178+
.output("qdata", 1, libceed::EvalMode::None)?;
172179
// -- QFunction from gallery
173180
let qf_build_named = {
174181
let name = format!("Mass{}DBuild", dim);
@@ -217,9 +224,9 @@ fn example_3(options: opt::Opt) -> libceed::Result<()> {
217224
};
218225
let qf_mass_closure = ceed
219226
.q_function_interior(1, Box::new(apply_mass))?
220-
.input("u", ncomp_u, EvalMode::Interp)?
221-
.input("qdata", 1, EvalMode::None)?
222-
.output("v", ncomp_u, EvalMode::Interp)?;
227+
.input("u", ncomp_u, libceed::EvalMode::Interp)?
228+
.input("qdata", 1, libceed::EvalMode::None)?
229+
.output("v", ncomp_u, libceed::EvalMode::Interp)?;
223230
// -- QFunction from gallery
224231
let qf_mass_named = ceed.q_function_interior_by_name("Vector3MassApply")?;
225232
// -- QFunction for use with Operator
@@ -255,7 +262,7 @@ fn example_3(options: opt::Opt) -> libceed::Result<()> {
255262
op_mass.apply(&u, &mut v)?;
256263

257264
// Compute the mesh volume
258-
let volume: Scalar = v.view()?.iter().sum::<libceed::Scalar>()
265+
let volume: libceed::Scalar = v.view()?.iter().sum::<libceed::Scalar>()
259266
/ ((ncomp_u * (ncomp_u + 1)) / 2) as libceed::Scalar;
260267

261268
// Output results

examples/rust/ex3-vector-volume/src/transform.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,21 @@
55
//
66
// This file is part of CEED: http://github.com/ceed
77

8-
use libceed::prelude::*;
9-
108
// ----------------------------------------------------------------------------
119
// Transform mesh coordinates
1210
// ----------------------------------------------------------------------------
1311
pub(crate) fn transform_mesh_coordinates(
1412
dim: usize,
1513
mesh_size: usize,
16-
mesh_coords: &mut Vector,
17-
) -> libceed::Result<Scalar> {
14+
mesh_coords: &mut libceed::Vector,
15+
) -> libceed::Result<libceed::Scalar> {
1816
// Transform coordinates
1917
if dim == 1 {
2018
for coord in mesh_coords.view_mut()?.iter_mut() {
2119
// map [0,1] to [0,1] varying the mesh density
2220
*coord = 0.5
23-
+ 1.0 / (3.0 as Scalar).sqrt()
24-
* ((2.0 / 3.0) * std::f64::consts::PI as Scalar * (*coord - 0.5)).sin()
21+
+ 1.0 / (3.0 as libceed::Scalar).sqrt()
22+
* ((2.0 / 3.0) * std::f64::consts::PI as libceed::Scalar * (*coord - 0.5)).sin()
2523
}
2624
} else {
2725
let mut coords = mesh_coords.view_mut()?;
@@ -30,7 +28,7 @@ pub(crate) fn transform_mesh_coordinates(
3028
// map (x,y) from [0,1]x[0,1] to the quarter annulus with polar
3129
// coordinates, (r,phi) in [1,2]x[0,pi/2] with area = 3/4*pi
3230
let u = 1.0 + coords[i];
33-
let v = std::f64::consts::PI as Scalar / 2.0 * coords[i + num_nodes];
31+
let v = std::f64::consts::PI as libceed::Scalar / 2.0 * coords[i + num_nodes];
3432
coords[i] = u * v.cos();
3533
coords[i + num_nodes] = u * v.sin();
3634
}
@@ -39,7 +37,7 @@ pub(crate) fn transform_mesh_coordinates(
3937
// Exact volume of transformed region
4038
let exact_volume = match dim {
4139
1 => 1.0,
42-
_ => 3.0 / 4.0 * std::f64::consts::PI as Scalar,
40+
_ => 3.0 / 4.0 * std::f64::consts::PI as libceed::Scalar,
4341
};
4442
Ok(exact_volume)
4543
}

examples/rust/ex4-vector-surface/src/main.rs

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
// line argument (-ceed).
2222

2323
use clap::Parser;
24-
use libceed::{prelude::*, Ceed};
24+
use libceed::{
25+
BasisOpt, Ceed, ElemRestrictionOpt, QFunctionInputs, QFunctionOpt, QFunctionOutputs, VectorOpt,
26+
};
2527
mod opt;
2628
mod transform;
2729

@@ -82,14 +84,19 @@ fn example_4(options: opt::Opt) -> libceed::Result<()> {
8284
let ceed = Ceed::init(&ceed_spec);
8385

8486
// Mesh and solution bases
85-
let basis_mesh =
86-
ceed.basis_tensor_H1_Lagrange(dim, ncomp_x, mesh_degree + 1, num_qpts, QuadMode::Gauss)?;
87+
let basis_mesh = ceed.basis_tensor_H1_Lagrange(
88+
dim,
89+
ncomp_x,
90+
mesh_degree + 1,
91+
num_qpts,
92+
libceed::QuadMode::Gauss,
93+
)?;
8794
let basis_solution = ceed.basis_tensor_H1_Lagrange(
8895
dim,
8996
ncomp_u,
9097
solution_degree + 1,
9198
num_qpts,
92-
QuadMode::Gauss,
99+
libceed::QuadMode::Gauss,
93100
)?;
94101

95102
// Determine mesh size from approximate problem size
@@ -206,9 +213,9 @@ fn example_4(options: opt::Opt) -> libceed::Result<()> {
206213
};
207214
let qf_build_closure = ceed
208215
.q_function_interior(1, Box::new(build_diff))?
209-
.input("dx", ncomp_x * dim, EvalMode::Grad)?
210-
.input("weights", 1, EvalMode::Weight)?
211-
.output("qdata", dim * (dim + 1) / 2, EvalMode::None)?;
216+
.input("dx", ncomp_x * dim, libceed::EvalMode::Grad)?
217+
.input("weights", 1, libceed::EvalMode::Weight)?
218+
.output("qdata", dim * (dim + 1) / 2, libceed::EvalMode::None)?;
212219
// -- QFunction from gallery
213220
let qf_build_named = {
214221
let name = format!("Poisson{}DBuild", dim);
@@ -301,9 +308,9 @@ fn example_4(options: opt::Opt) -> libceed::Result<()> {
301308
};
302309
let qf_diff_closure = ceed
303310
.q_function_interior(1, Box::new(apply_diff))?
304-
.input("du", dim * ncomp_u, EvalMode::Grad)?
305-
.input("qdata", dim * (dim + 1) / 2, EvalMode::None)?
306-
.output("dv", dim * ncomp_u, EvalMode::Grad)?;
311+
.input("du", dim * ncomp_u, libceed::EvalMode::Grad)?
312+
.input("qdata", dim * (dim + 1) / 2, libceed::EvalMode::None)?
313+
.output("dv", dim * ncomp_u, libceed::EvalMode::Grad)?;
307314
// -- QFunction from gallery
308315
let qf_diff_named = {
309316
let name = format!("Vector3Poisson{}DApply", dim);
@@ -349,7 +356,7 @@ fn example_4(options: opt::Opt) -> libceed::Result<()> {
349356
op_diff.apply(&u, &mut v)?;
350357

351358
// Compute the mesh surface area
352-
let area: Scalar = v
359+
let area: libceed::Scalar = v
353360
.view()?
354361
.iter()
355362
.map(|v| (*v).abs())

0 commit comments

Comments
 (0)