forked from 1b-agent/fieldcraft-upstream
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e19ba9bcd |
No files matched your search
@@ -332,8 +332,9 @@ pub enum Quantity {
|
|||||||
|
|
||||||
impl Quantity {
|
impl Quantity {
|
||||||
/// Its unit in `system` (`mm`, `MPa`, `N·mm`, `mW`…), or `None` (no unit, or the system is
|
/// Its unit in `system` (`mm`, `MPa`, `N·mm`, `mW`…), or `None` (no unit, or the system is
|
||||||
/// unspecified). The model never converts, so this only names the system's own unit; a
|
/// unspecified). The model never converts, so this only names the system's own unit. A
|
||||||
/// temperature is in whatever scale its values were entered in.
|
/// temperature is named in the scale that goes with the system: °C for the metric systems,
|
||||||
|
/// °F for inch–pound-force–second.
|
||||||
pub fn unit(self, system: UnitSystem) -> Option<String> {
|
pub fn unit(self, system: UnitSystem) -> Option<String> {
|
||||||
let dim = match self {
|
let dim = match self {
|
||||||
Quantity::None => return None,
|
Quantity::None => return None,
|
||||||
@@ -359,7 +360,8 @@ impl Quantity {
|
|||||||
Quantity::Energy => energy,
|
Quantity::Energy => energy,
|
||||||
Quantity::HeatFlow => power,
|
Quantity::HeatFlow => power,
|
||||||
Quantity::HeatFlux => flux,
|
Quantity::HeatFlux => flux,
|
||||||
_ => "°C or K",
|
_ if system == UnitSystem::InLbfS => "°F",
|
||||||
|
_ => "°C",
|
||||||
}
|
}
|
||||||
.into(),
|
.into(),
|
||||||
);
|
);
|
||||||
@@ -874,6 +876,9 @@ mod tests {
|
|||||||
assert_eq!(unit(Quantity::Moment, mm).as_deref(), Some("N·mm"));
|
assert_eq!(unit(Quantity::Moment, mm).as_deref(), Some("N·mm"));
|
||||||
assert_eq!(unit(Quantity::Energy, UnitSystem::MKgS).as_deref(), Some("J"));
|
assert_eq!(unit(Quantity::Energy, UnitSystem::MKgS).as_deref(), Some("J"));
|
||||||
assert_eq!(unit(Quantity::Temperature, UnitSystem::Unspecified), None);
|
assert_eq!(unit(Quantity::Temperature, UnitSystem::Unspecified), None);
|
||||||
|
assert_eq!(unit(Quantity::Temperature, mm).as_deref(), Some("°C"));
|
||||||
|
assert_eq!(unit(Quantity::Temperature, UnitSystem::MKgS).as_deref(), Some("°C"));
|
||||||
|
assert_eq!(unit(Quantity::Temperature, UnitSystem::InLbfS).as_deref(), Some("°F"));
|
||||||
assert_eq!(unit(Quantity::None, mm), None);
|
assert_eq!(unit(Quantity::None, mm), None);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -494,7 +494,7 @@ pub(crate) mod tests {
|
|||||||
s.execute("results.slice", &json!({"field": "temperature"})).unwrap();
|
s.execute("results.slice", &json!({"field": "temperature"})).unwrap();
|
||||||
let p = plot_at(&s, &base, None).unwrap();
|
let p = plot_at(&s, &base, None).unwrap();
|
||||||
assert_eq!(p.contour.as_ref().unwrap().field, Field::Temperature);
|
assert_eq!(p.contour.as_ref().unwrap().field, Field::Temperature);
|
||||||
assert!(Field::Temperature.title(&p.result, p.units).contains("°C or K"));
|
assert!(Field::Temperature.title(&p.result, p.units).ends_with("[°C]"));
|
||||||
assert!(Field::available(&p.result).any(|f| f == Field::Temperature));
|
assert!(Field::available(&p.result).any(|f| f == Field::Temperature));
|
||||||
assert!(p.contour.as_ref().unwrap().max.1 > 20.0);
|
assert!(p.contour.as_ref().unwrap().max.1 > 20.0);
|
||||||
let last = p.frame().unwrap().2 - 1;
|
let last = p.frame().unwrap().2 - 1;
|
||||||
|
|||||||
@@ -146,7 +146,8 @@ A solved fluid step with temperature in every saved frame offers `temperature` i
|
|||||||
Results field list and through `results.contour`, `results.slice`, `results.surface` and
|
Results field list and through `results.contour`, `results.slice`, `results.surface` and
|
||||||
`results.streamlines` (`{"field":"temperature"}`). Slices and obstacle surfaces sample
|
`results.streamlines` (`{"field":"temperature"}`). Slices and obstacle surfaces sample
|
||||||
fluid-cell temperature; streamline colours sample temperature along the velocity traces.
|
fluid-cell temperature; streamline colours sample temperature along the velocity traces.
|
||||||
The legend and existing `solve.probe` use the model's temperature scale, without conversion.
|
The legend and `solve.probe` name the temperature unit that goes with the model's unit system
|
||||||
|
(°C for the metric systems, °F for in-lbf-s-psi); values are shown as entered, never converted.
|
||||||
An isothermal step hides the field and rejects an explicit request with an explanation.
|
An isothermal step hides the field and rejects an explicit request with an explanation.
|
||||||
The frame slider and `results.frame` select the field's time, including the initial frame.
|
The frame slider and `results.frame` select the field's time, including the initial frame.
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user