pub struct PipeFlow {
pub area: f64,
pub velocity: f64,
}Expand description
A simple cross-sectional pipe flow with area and scalar velocity.
Fields§
§area: f64§velocity: f64Implementations§
Source§impl PipeFlow
impl PipeFlow
Sourcepub fn new(area: f64, velocity: f64) -> Option<Self>
pub fn new(area: f64, velocity: f64) -> Option<Self>
Creates a pipe flow when area is non-negative and both values are finite.
Examples found in repository?
examples/basic_usage.rs (line 9)
5fn main() {
6 let Some(water) = Fluid::with_dynamic_viscosity(1000.0, 0.001) else {
7 unreachable!("valid fluid inputs")
8 };
9 let Some(flow) = PipeFlow::new(2.0, 3.0) else {
10 unreachable!("valid pipe-flow inputs")
11 };
12
13 assert_eq!(flow.volumetric_flow_rate(), Some(6.0));
14 assert_eq!(flow.mass_flow_rate(water.density), Some(6000.0));
15 assert!(
16 water
17 .reynolds_number(2.0, 0.1)
18 .is_some_and(|reynolds| (reynolds - 200_000.0).abs() < 1.0e-9)
19 );
20 assert!(
21 drag_force(1.225, 10.0, 0.47, 1.0).is_some_and(|force| (force - 28.7875).abs() < 1.0e-9)
22 );
23}Sourcepub fn volumetric_flow_rate(&self) -> Option<f64>
pub fn volumetric_flow_rate(&self) -> Option<f64>
Computes volumetric flow rate for this pipe flow.
§Examples
use use_fluid::PipeFlow;
let flow = PipeFlow::new(2.0, 3.0).unwrap();
assert_eq!(flow.volumetric_flow_rate(), Some(6.0));Examples found in repository?
examples/basic_usage.rs (line 13)
5fn main() {
6 let Some(water) = Fluid::with_dynamic_viscosity(1000.0, 0.001) else {
7 unreachable!("valid fluid inputs")
8 };
9 let Some(flow) = PipeFlow::new(2.0, 3.0) else {
10 unreachable!("valid pipe-flow inputs")
11 };
12
13 assert_eq!(flow.volumetric_flow_rate(), Some(6.0));
14 assert_eq!(flow.mass_flow_rate(water.density), Some(6000.0));
15 assert!(
16 water
17 .reynolds_number(2.0, 0.1)
18 .is_some_and(|reynolds| (reynolds - 200_000.0).abs() < 1.0e-9)
19 );
20 assert!(
21 drag_force(1.225, 10.0, 0.47, 1.0).is_some_and(|force| (force - 28.7875).abs() < 1.0e-9)
22 );
23}Sourcepub fn mass_flow_rate(&self, density: f64) -> Option<f64>
pub fn mass_flow_rate(&self, density: f64) -> Option<f64>
Computes mass flow rate for this pipe flow with a provided density.
Examples found in repository?
examples/basic_usage.rs (line 14)
5fn main() {
6 let Some(water) = Fluid::with_dynamic_viscosity(1000.0, 0.001) else {
7 unreachable!("valid fluid inputs")
8 };
9 let Some(flow) = PipeFlow::new(2.0, 3.0) else {
10 unreachable!("valid pipe-flow inputs")
11 };
12
13 assert_eq!(flow.volumetric_flow_rate(), Some(6.0));
14 assert_eq!(flow.mass_flow_rate(water.density), Some(6000.0));
15 assert!(
16 water
17 .reynolds_number(2.0, 0.1)
18 .is_some_and(|reynolds| (reynolds - 200_000.0).abs() < 1.0e-9)
19 );
20 assert!(
21 drag_force(1.225, 10.0, 0.47, 1.0).is_some_and(|force| (force - 28.7875).abs() < 1.0e-9)
22 );
23}Trait Implementations§
impl Copy for PipeFlow
impl StructuralPartialEq for PipeFlow
Auto Trait Implementations§
impl Freeze for PipeFlow
impl RefUnwindSafe for PipeFlow
impl Send for PipeFlow
impl Sync for PipeFlow
impl Unpin for PipeFlow
impl UnsafeUnpin for PipeFlow
impl UnwindSafe for PipeFlow
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more