qualia_core_db/specialized_libs/chemistry_modeling/
metrics.rs1use super::*;
2
3pub struct ChemistryPerformanceMonitor {
5 simulation_metrics: SimulationMetrics,
6 quantum_metrics: QuantumMetrics,
7 reaction_metrics: ReactionMetrics,
8 property_metrics: PropertyMetrics,
9}
10
11#[derive(Debug, Clone)]
13pub struct SimulationMetrics {
14 pub total_simulations: u64,
15 pub average_simulation_time: f64,
16 pub energy_conservation: f64,
17 pub temperature_stability: f64,
18 pub computational_efficiency: f64,
19}
20
21#[derive(Debug, Clone)]
23pub struct QuantumMetrics {
24 pub total_calculations: u64,
25 pub average_convergence_time: f64,
26 pub scf_convergence_rate: f64,
27 pub basis_set_efficiency: f64,
28}
29
30#[derive(Debug, Clone)]
32pub struct ReactionMetrics {
33 pub total_reactions: u64,
34 pub average_calculation_time: f64,
35 pub rate_constant_accuracy: f64,
36 pub thermodynamic_accuracy: f64,
37}
38
39#[derive(Debug, Clone)]
41pub struct PropertyMetrics {
42 pub total_predictions: u64,
43 pub average_prediction_time: f64,
44 pub prediction_accuracy: f64,
45 pub model_coverage: f64,
46}
47
48impl ChemistryPerformanceMonitor {
49 pub fn new() -> Self {
50 Self {
51 simulation_metrics: SimulationMetrics::new(),
52 quantum_metrics: QuantumMetrics::new(),
53 reaction_metrics: ReactionMetrics::new(),
54 property_metrics: PropertyMetrics::new(),
55 }
56 }
57
58 pub fn get_metrics(&self) -> ChemistryPerformanceMetrics {
59 ChemistryPerformanceMetrics {
60 simulation_metrics: self.simulation_metrics.clone(),
61 quantum_metrics: self.quantum_metrics.clone(),
62 reaction_metrics: self.reaction_metrics.clone(),
63 property_metrics: self.property_metrics.clone(),
64 total_simulations: self.simulation_metrics.total_simulations,
65 average_computation_time: self.simulation_metrics.average_simulation_time,
66 average_accuracy: self.simulation_metrics.computational_efficiency,
67 convergence_rate: 0.0,
68 }
69 }
70}
71
72impl SimulationMetrics {
73 pub fn new() -> Self {
74 Self {
75 total_simulations: 0,
76 average_simulation_time: 0.0,
77 energy_conservation: 0.99,
78 temperature_stability: 0.95,
79 computational_efficiency: 0.85,
80 }
81 }
82}
83
84impl QuantumMetrics {
85 pub fn new() -> Self {
86 Self {
87 total_calculations: 0,
88 average_convergence_time: 0.0,
89 scf_convergence_rate: 0.0,
91 basis_set_efficiency: 0.0,
92 }
93 }
94}
95
96impl ReactionMetrics {
97 pub fn new() -> Self {
98 Self {
99 total_reactions: 0,
100 average_calculation_time: 0.0,
101 rate_constant_accuracy: 0.0, thermodynamic_accuracy: 0.0,
103 }
104 }
105}
106
107impl PropertyMetrics {
108 pub fn new() -> Self {
109 Self {
110 total_predictions: 0,
111 average_prediction_time: 0.0,
112 prediction_accuracy: 0.0, model_coverage: 0.75,
114 }
115 }
116}