qualia_core_db/specialized_libs/physics_simulation/
results.rs1use super::*;
2
3#[derive(Debug, Clone)]
5pub struct PhysicsSimulationResult<T> {
6 pub result: T,
7 pub simulation_time: u64,
8 pub solver_time: u64,
9 pub data_time: u64,
10 pub convergence_info: ConvergenceInfo,
11 pub performance_info: PerformanceInfo,
12}
13
14#[derive(Debug, Clone)]
16pub struct ConvergenceInfo {
17 pub converged: bool,
18 pub iterations: u32,
19 pub residual_norm: f64,
20 pub convergence_rate: f64,
21 pub final_error: f64,
22}
23
24#[derive(Debug, Clone)]
26pub struct PerformanceInfo {
27 pub cpu_utilization: f64,
28 pub memory_utilization: f64,
29 pub network_utilization: f64,
30 pub io_utilization: f64,
31 pub parallel_efficiency: f64,
32}
33
34#[derive(Debug, Clone)]
47pub struct ProjectileResult {
48 pub trajectory: Vec<[f64; 5]>,
50 pub range: f64,
52 pub max_height: f64,
54 pub time_of_flight: f64,
56 pub landed: bool,
58 pub steps_accepted: u32,
59 pub steps_rejected: u32,
60}
61
62#[derive(Debug, Clone)]
64pub struct OscillatorResult {
65 pub times: Vec<f64>,
66 pub positions: Vec<f64>,
67 pub velocities: Vec<f64>,
68 pub analytic_period: f64,
70 pub measured_period: f64,
72 pub energy_initial: f64,
73 pub energy_final: f64,
74 pub max_energy_drift: f64,
76}
77
78#[derive(Debug, Clone)]
80pub struct PendulumResult {
81 pub times: Vec<f64>,
82 pub angles: Vec<f64>,
83 pub angular_velocities: Vec<f64>,
84 pub small_angle_period: f64,
86 pub measured_period: f64,
87 pub energy_initial: f64,
88 pub energy_final: f64,
89 pub steps_accepted: u32,
90 pub steps_rejected: u32,
91}
92
93#[derive(Debug, Clone)]
95pub struct NBodyResult {
96 pub num_bodies: usize,
97 pub times: Vec<f64>,
98 pub position_snapshots: Vec<Vec<f64>>,
100 pub final_positions: Vec<f64>,
101 pub final_velocities: Vec<f64>,
102 pub energy_initial: f64,
103 pub energy_final: f64,
104 pub energy_drift_rel: f64,
106 pub angular_momentum_initial: f64,
107 pub angular_momentum_final: f64,
108 pub steps_accepted: u32,
109 pub steps_rejected: u32,
110}
111
112#[derive(Debug, Clone)]
114pub struct HeatDiffusionResult {
115 pub times: Vec<f64>,
116 pub snapshots: Vec<Vec<f64>>,
117 pub final_temperature: Vec<f64>,
118 pub initial_mean: f64,
119 pub final_mean: f64,
120 pub max_deviation_from_mean: f64,
122 pub steps_accepted: u32,
123 pub steps_rejected: u32,
124}
125
126#[derive(Debug, Clone)]
128pub struct WaveResult {
129 pub times: Vec<f64>,
130 pub snapshots: Vec<Vec<f64>>,
132 pub final_displacement: Vec<f64>,
133 pub energy_initial: f64,
134 pub energy_final: f64,
135 pub steps_accepted: u32,
136 pub steps_rejected: u32,
137}
138
139#[derive(Debug, Clone)]
141pub struct MolecularDynamicsResult {
142 pub num_particles: usize,
143 pub times: Vec<f64>,
144 pub final_positions: Vec<f64>,
145 pub final_velocities: Vec<f64>,
146 pub energy_initial: f64,
147 pub energy_final: f64,
148 pub energy_drift_rel: f64,
149 pub temperature: f64,
151 pub steps_accepted: u32,
152 pub steps_rejected: u32,
153}
154
155#[derive(Debug, Clone)]
158pub struct QuantumSpectrumResult {
159 pub eigenvalues: Vec<f64>,
161 pub num_grid_points: usize,
162 pub dx: f64,
163}
164
165#[derive(Debug, Clone)]
167pub struct PopulationDynamicsResult {
168 pub times: Vec<f64>,
169 pub population: Vec<f64>,
170 pub carrying_capacity: f64,
171 pub growth_rate: f64,
172 pub steps_accepted: u32,
173 pub steps_rejected: u32,
174}
175
176#[derive(Debug, Clone)]
178pub struct AdvectionDiffusionResult {
179 pub times: Vec<f64>,
180 pub snapshots: Vec<Vec<f64>>,
181 pub final_field: Vec<f64>,
182 pub advection_velocity: f64,
183 pub diffusion_coeff: f64,
184 pub initial_total: f64,
186 pub final_total: f64,
187 pub steps_accepted: u32,
188 pub steps_rejected: u32,
189}
190
191#[derive(Debug, Clone)]
193pub struct SimulationResult {
194 pub node_id: String,
195 pub fields: Vec<PhysicsField>,
196 pub convergence_info: ConvergenceInfo,
197 pub performance_info: PerformanceInfo,
198}