Skip to main content

quantrs2_sim/quantum_gravity_simulation/
quantumgravitysimulator_calculate_beta_function_group.rs

1//! # QuantumGravitySimulator - calculate_beta_function_group Methods
2//!
3//! This module contains method implementations for `QuantumGravitySimulator`.
4//!
5//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
6
7use crate::error::{Result, SimulatorError};
8use scirs2_core::random::prelude::*;
9
10use super::quantumgravitysimulator_type::QuantumGravitySimulator;
11
12impl QuantumGravitySimulator {
13    /// Calculate beta function for RG flow
14    pub(super) fn calculate_beta_function(
15        &self,
16        coupling: &str,
17        value: f64,
18        energy_scale: &f64,
19    ) -> Result<f64> {
20        match coupling {
21            "newton_constant" => Ok(2.0f64.mul_add(value, 0.1 * value.powi(2) * energy_scale.ln())),
22            "cosmological_constant" => Ok((-2.0f64).mul_add(value, 0.01 * value.powi(2))),
23            "r_squared" => Ok((-2.0f64).mul_add(value, 0.001 * value.powi(3))),
24            _ => Ok(0.0),
25        }
26    }
27}