use openphys::modules::heat_transfer::simulate_heat_transfer;
use openphys::utils::object::Object;
#[test]
fn test_heat_transfer_simulation() {
let mut obj1 = Object {
mass: 1.0,
temperature: 373.15,
specific_heat_capacity: 4186.0,
..Object::default()
};
let mut obj2 = Object {
mass: 1.0,
temperature: 273.15,
specific_heat_capacity: 4186.0,
..Object::default()
};
let time_step = 0.1; let equilibrium_threshold = 1e-6;
let result = simulate_heat_transfer(&mut obj1, &mut obj2, time_step, equilibrium_threshold);
println!("Time steps: {}", result.time_steps);
println!("Total time elapsed: {:.2}s", result.total_time);
println!(
"Total heat transferred: {:.2}K",
result.total_heat_transferred
);
println!("Final temp of obj1: {:.2}K", result.final_temp_obj1);
println!("Final temp of obj2: {:.2}K", result.final_temp_obj2);
}
#[test]
fn test2_heat_transfer_simulation() {
let mut obj1 = Object {
mass: 50.0,
temperature: 480.15,
specific_heat_capacity: 12049.0,
..Object::default()
};
let mut obj2 = Object {
mass: 82.0,
temperature: 582.62,
specific_heat_capacity: 12049.0,
..Object::default()
};
let time_step = 0.1; let equilibrium_threshold = 1e-6;
let result = simulate_heat_transfer(&mut obj1, &mut obj2, time_step, equilibrium_threshold);
println!("Time steps: {}", result.time_steps);
println!("Total time elapsed: {:.2}s", result.total_time);
println!(
"Total heat transferred: {:.2}K",
result.total_heat_transferred
);
println!("Final temp of obj1: {:.2}K", result.final_temp_obj1);
println!("Final temp of obj2: {:.2}K", result.final_temp_obj2);
}
#[test]
fn test3_heat_transfer_simulation_high_accuracy() {
let mut obj1 = Object {
mass: 50.0,
temperature: 480.15,
specific_heat_capacity: 12049.0,
..Object::default()
};
let mut obj2 = Object {
mass: 82.0,
temperature: 582.62,
specific_heat_capacity: 12049.0,
..Object::default()
};
let time_step = 0.1; let equilibrium_threshold = 1e-12;
let result = simulate_heat_transfer(&mut obj1, &mut obj2, time_step, equilibrium_threshold);
println!("Time steps: {}", result.time_steps);
println!("Total time elapsed: {:.2}s", result.total_time);
println!(
"Total heat transferred: {:.2}K",
result.total_heat_transferred
);
println!("Final temp of obj1: {:.2}K", result.final_temp_obj1);
println!("Final temp of obj2: {:.2}K", result.final_temp_obj2);
}