From fb8b0080c25fba6b224fc188ece89f962a34cc7f Mon Sep 17 00:00:00 2001 From: Piyush Sharda <34922596+psharda@users.noreply.github.com> Date: Thu, 29 Aug 2024 19:30:29 +0200 Subject: [PATCH] Remove hardcoded charge balance in primordial chemistry (#1646) We now use a function that does the charge balance for primordial chemistry, similar to that done for metal chemistry in #1642 --- CMakeLists.txt | 1 + networks/primordial_chem/actual_network.H | 3 +++ networks/primordial_chem/actual_network_data.cpp | 9 +++++++++ unit_test/burn_cell_primordial_chem/burn_cell.H | 4 ++-- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7768e23793..f4eb5cc45b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,6 +85,7 @@ function(setup_target_for_microphysics_compilation network_name output_dir) set(primordial_chem_sources ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/interfaces/eos_data.cpp ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/interfaces/network_initialization.cpp ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/EOS/primordial_chem/actual_eos_data.cpp + ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/networks/primordial_chem/actual_network_data.cpp ${output_dir}/extern_parameters.cpp PARENT_SCOPE) diff --git a/networks/primordial_chem/actual_network.H b/networks/primordial_chem/actual_network.H index 9c01915759..7f0f573b67 100644 --- a/networks/primordial_chem/actual_network.H +++ b/networks/primordial_chem/actual_network.H @@ -6,6 +6,7 @@ #include #include +#include using namespace amrex; @@ -26,4 +27,6 @@ namespace Rates } +void balance_charge(burn_t& state); + #endif diff --git a/networks/primordial_chem/actual_network_data.cpp b/networks/primordial_chem/actual_network_data.cpp index 4d65a7996a..5c4665a6c2 100644 --- a/networks/primordial_chem/actual_network_data.cpp +++ b/networks/primordial_chem/actual_network_data.cpp @@ -10,3 +10,12 @@ void actual_network_init() { } + +void balance_charge(burn_t& state) +{ + + // update the number density of electrons due to charge conservation + state.xn[0] = -state.xn[3] - state.xn[7] + state.xn[1] + state.xn[12] + + state.xn[6] + state.xn[4] + state.xn[9] + 2.0 * state.xn[11]; + +} diff --git a/unit_test/burn_cell_primordial_chem/burn_cell.H b/unit_test/burn_cell_primordial_chem/burn_cell.H index f878546823..794601d35b 100644 --- a/unit_test/burn_cell_primordial_chem/burn_cell.H +++ b/unit_test/burn_cell_primordial_chem/burn_cell.H @@ -8,6 +8,7 @@ #include #include #include +#include amrex::Real grav_constant = 6.674e-8; @@ -209,8 +210,7 @@ auto burn_cell_c() -> int { } // update the number density of electrons due to charge conservation - state.xn[0] = -state.xn[3] - state.xn[7] + state.xn[1] + state.xn[12] + - state.xn[6] + state.xn[4] + state.xn[9] + 2.0 * state.xn[11]; + balance_charge(state); // reconserve mass fractions post charge conservation insum = 0;