From d50e9c735f248189486e2990e1f8726df3a482ee Mon Sep 17 00:00:00 2001 From: tgiani Date: Wed, 20 Nov 2024 15:13:56 +0100 Subject: [PATCH] valence qed --- .../unpolarized/spacelike.rs | 20 +++++++++++++++++-- .../unpolarized/spacelike/aem1.rs | 4 ++-- .../unpolarized/spacelike/as1.rs | 9 +++++++++ .../unpolarized/spacelike/as1aem1.rs | 8 ++------ 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike.rs b/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike.rs index f41e52266..e7f94273f 100644 --- a/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike.rs +++ b/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike.rs @@ -94,14 +94,14 @@ pub fn choose_ns_as_as1aem1(mode: u16, c: &mut Cache, nf: u8) -> Complex { } } +/// Compute the grid of the QED singlet anomalous dimensions matrices pub fn gamma_singlet_qed( order_qcd: usize, order_qed: usize, - mode: u16, c: &mut Cache, nf: u8, ) -> Vec; 4]>>> { - let mut row = vec![ + let row = vec![ vec![ [ Complex::::zero(), @@ -121,3 +121,19 @@ pub fn gamma_singlet_qed( gamma_s[1][1] = as1aem1::gamma_singlet(c, nf); gamma_s } + +/// Compute the grid of the QED valence anomalous dimensions matrices +pub fn gamma_valence_qed( + order_qcd: usize, + order_qed: usize, + c: &mut Cache, + nf: u8, +) -> Vec; 2]>>> { + let row = vec![vec![[Complex::::zero(), Complex::::zero(),]; 2]; order_qcd + 1]; + + let mut gamma_v = vec![row; order_qed + 1]; + gamma_v[1][0] = as1::gamma_valence_qed(c, nf); + gamma_v[0][1] = aem1::gamma_valence(c, nf); + gamma_v[1][1] = as1aem1::gamma_valence(c, nf); + gamma_v +} diff --git a/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/aem1.rs b/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/aem1.rs index 7791d9552..ded4825d7 100644 --- a/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/aem1.rs +++ b/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/aem1.rs @@ -78,10 +78,10 @@ pub fn gamma_singlet(c: &mut Cache, nf: u8) -> Vec<[Complex; 4]> { /// Compute the leading-order valence QED anomalous dimension matrix /// /// Implements Eq. (2.5) of -pub fn gamma_valence(c: &mut Cache, nf: u8) -> [[Complex; 2]; 2] { +pub fn gamma_valence(c: &mut Cache, nf: u8) -> Vec<[Complex; 2]> { let cc = ChargeCombinations { nf }; - [ + vec![ [cc.e2avg() * gamma_ns(c, nf), cc.vue2m() * gamma_ns(c, nf)], [cc.vde2m() * gamma_ns(c, nf), cc.e2delta() * gamma_ns(c, nf)], ] diff --git a/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/as1.rs b/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/as1.rs index dad16e819..8075804de 100644 --- a/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/as1.rs +++ b/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/as1.rs @@ -84,6 +84,15 @@ pub fn gamma_singlet_qed(c: &mut Cache, nf: u8) -> Vec<[Complex; 4]> { ] } +/// Compute the leading-order valence anomalous dimension matrix +/// for the unified evolution basis. +pub fn gamma_valence_qed(c: &mut Cache, nf: u8) -> Vec<[Complex; 2]> { + vec![ + [gamma_ns(c, nf), Complex::::zero()], + [Complex::::zero(), gamma_ns(c, nf)], + ] +} + #[cfg(test)] mod tests { use super::*; diff --git a/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/as1aem1.rs b/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/as1aem1.rs index a9ae80770..a7ee20db9 100644 --- a/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/as1aem1.rs +++ b/crates/ekore/src/anomalous_dimensions/unpolarized/spacelike/as1aem1.rs @@ -197,10 +197,6 @@ pub fn gamma_nsm(c: &mut Cache, _nf: u8) -> Complex { /// Compute the $O(a_s^1a_{em}^1)$ singlet sector. pub fn gamma_singlet(c: &mut Cache, nf: u8) -> Vec<[Complex; 4]> { let cc = ChargeCombinations { nf }; - // let e2avg = cc.e2avg(); - // let vue2m = cc.vue2m(); - // let vde2m = cc.vde2m(); - // let e2delta = cc.e2delta(); let e2_tot = nf as f64 * cc.e2avg(); vec![ @@ -232,9 +228,9 @@ pub fn gamma_singlet(c: &mut Cache, nf: u8) -> Vec<[Complex; 4]> { } /// Compute the $O(a_s^1a_{em}^1)$ valence sector. -pub fn gamma_valence(c: &mut Cache, nf: u8) -> [[Complex; 2]; 2] { +pub fn gamma_valence(c: &mut Cache, nf: u8) -> Vec<[Complex; 2]> { let cc = ChargeCombinations { nf }; - [ + vec![ [cc.e2avg() * gamma_nsm(c, nf), cc.vue2m() * gamma_nsm(c, nf)], [ cc.vde2m() * gamma_nsm(c, nf) * gamma_nsm(c, nf),