From a5b2e5c8a7dcf3c8fe1109fdd62d3bcbcc5a7bdb Mon Sep 17 00:00:00 2001
From: Robert Izzard <r.izzard@surrey.ac.uk>
Date: Sat, 10 Jul 2021 17:21:28 +0100
Subject: [PATCH] fix errors in he-burning jacobian: works up to 1e9K now

---
 src/nucsyn/nucsyn_burn_helium.c | 12 ++++++------
 src/nucsyn/nucsyn_hbb.c         |  8 ++++----
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/nucsyn/nucsyn_burn_helium.c b/src/nucsyn/nucsyn_burn_helium.c
index 99466f496..e0ba2a650 100644
--- a/src/nucsyn/nucsyn_burn_helium.c
+++ b/src/nucsyn/nucsyn_burn_helium.c
@@ -109,7 +109,7 @@ static void helium_Jacobian(double *const*const RESTRICT J,
                             const double * RESTRICT const N,
                             const double * RESTRICT const sigmav)
 {
-    const double y2 = 3.0 * Pow2(N[XHe4]) * sigmav[SIGMAV_3He4];
+    const double dummy0 = 3.0 * Pow2(N[XHe4]) * sigmav[SIGMAV_3He4];
     const double dummy1 = sigmav[SIGMAV_C12_He4] * N[XC12];
     const double dummy2 = sigmav[SIGMAV_O16_He4] * N[XO16];
     const double dummy3 = sigmav[SIGMAV_Ne20_He4] * N[XNe20];
@@ -118,7 +118,7 @@ static void helium_Jacobian(double *const*const RESTRICT J,
     const double dummy6 = sigmav[SIGMAV_Ne20_He4] * N[XHe4];
 
     J[1][1] =
-        -3.0 * y2
+        -3.0 * dummy0
         -dummy1
         -dummy2
         -dummy3;
@@ -128,10 +128,10 @@ static void helium_Jacobian(double *const*const RESTRICT J,
     J[1][5] = 0.0;
 
     J[2][1] =
-        + y2
+        + dummy0
         - dummy1;
     J[2][2] = - dummy4;
-    J[2][3] = - dummy5;
+    J[2][3] = 0.0;
     J[2][4] = 0.0;
     J[2][5] = 0.0;
 
@@ -150,9 +150,9 @@ static void helium_Jacobian(double *const*const RESTRICT J,
         - dummy3;
     J[4][2] = 0.0;
     J[4][3] =
-        - dummy5;
+        + dummy5;
     J[4][4] =
-        + dummy6;
+        - dummy6;
     J[4][5] = 0.0;
 
     J[5][1] = dummy3;
diff --git a/src/nucsyn/nucsyn_hbb.c b/src/nucsyn/nucsyn_hbb.c
index f7972f4ed..2a9bf9e55 100644
--- a/src/nucsyn/nucsyn_hbb.c
+++ b/src/nucsyn/nucsyn_hbb.c
@@ -29,7 +29,7 @@ void nucsyn_hbb(const double T, /* (log10) temperature */
     const Nuclear_mass * mnuc = stardata->store->mnuc;
     const Nuclear_mass *imnuc = stardata->store->imnuc;
 
-
+//#define __TEST_HE_BURN
 #ifdef __TEST_HE_BURN
     Abundance * X = New_clear_isotope_array;
     Number_density * N = New_isotope_array;
@@ -39,10 +39,10 @@ void nucsyn_hbb(const double T, /* (log10) temperature */
     X[XHe4] = 1.0;
     X_to_N(imnuc,testrho,N,X,ISOTOPE_ARRAY_SIZE);
 
-    const double timemax = 1000;
+    const double timemax = 100;
     double time = 0.0;
-    double dtime = timemax/1000.0;
-    double logtemp = log10(3e8);
+    double dtime = timemax/100.0;
+    double logtemp = log10(1e9);
 
     while(time < timemax)
     {
-- 
GitLab