Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
78487a4
start of support for reduced precision Jacobian
zingale Oct 19, 2025
13d0b7b
fix some types
zingale Oct 19, 2025
4c2e7d8
add control
zingale Oct 19, 2025
cb600d6
update defines
zingale Oct 19, 2025
f16ee32
add docs
zingale Oct 20, 2025
678b067
Merge branch 'development' into single_precision_jac
zingale Oct 20, 2025
ceceb51
add AGENTS
BenWibking Oct 24, 2025
4aa8806
one-zone ParallelFor
BenWibking Oct 24, 2025
140b4a7
add multi-zone burn
BenWibking Oct 24, 2025
3bb5898
fix multi-zone burn
BenWibking Oct 24, 2025
002ff37
suppress verbosity
BenWibking Oct 24, 2025
0459efd
suppress more verbosity
BenWibking Oct 24, 2025
1bd729e
formatting
BenWibking Oct 24, 2025
7cb6281
remove verbosity
BenWibking Oct 24, 2025
f73248e
adjust inputs
BenWibking Oct 24, 2025
4e67db2
do burn retries on GPU
BenWibking Oct 24, 2025
141e251
compare CPU/GPU runs
BenWibking Oct 24, 2025
e2d0ad0
summary statistics
BenWibking Oct 24, 2025
77b6d79
compute diff norms
BenWibking Oct 24, 2025
0262669
remove single-zone burn
BenWibking Oct 24, 2025
ee66b58
report relative norms
BenWibking Oct 24, 2025
319610c
report timings
BenWibking Oct 24, 2025
d0337fd
turn off debug
BenWibking Oct 24, 2025
01b4c78
add n_zones parameter
BenWibking Oct 24, 2025
8d221e6
add OMP on CPU
BenWibking Oct 24, 2025
7640e16
Merge branch 'development' into multizone-rocm-test
BenWibking Oct 24, 2025
a708853
Merge branch 'single_precision_jac' into multizone-rocm-test
BenWibking Oct 25, 2025
8323fb2
Merge branch 'development' into multizone-rocm-test
BenWibking Jan 16, 2026
544d884
Merge branch 'development' into multizone-rocm-test
BenWibking Jan 17, 2026
2b50afd
avoid warnings on aarch64
BenWibking Jan 17, 2026
fded6dd
add interactive plot of solution
BenWibking Jan 17, 2026
8fa8558
only run GPU test if GPU enabled
BenWibking Jan 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Repository Guidelines

## Project Structure & Module Organization
The repository is organized around modular physics kernels in `EOS/`, `networks/`, `integration/`, and companion directories such as `conductivity/`, `neutrinos/`, `opacity/`, and `rates/`. Shared math utilities and build scripts remain in `util/`, while reusable constants sit in `constants/`. Interfaces consumed by AMReX-based application codes are in `interfaces/`. Unit regression assets reside under `unit_test/`, and Sphinx documentation sources are in `Docs/` with release history tracked in `CHANGES.md`.

## Build, Test, and Development Commands
Export `AMREX_HOME` and `MICROPHYSICS_HOME` before building so the GNU make stubs locate AMReX sources. Build a standalone unit test in place, e.g. `cd unit_test/burn_cell && make -j4`, which yields `main3d.gnu.ex`. Select physics at compile time with flags like `make NETWORK_DIR=aprox19 EOS_DIR=helmholtz`, and reset a directory via `make clean`.

## Coding Style & Naming Conventions
C++ sources follow `.editorconfig`: four-space indentation, LF line endings, and tabs only inside Makefiles. Headers keep the uppercase `.H` suffix and implementations use `.cpp`. Favor the existing snake_case routine pattern (`nse_check`, `burn_cell`) and guard autogenerated directories such as `util/autodiff`. Run `.clang-tidy` with `make USE_CLANG_TIDY=TRUE` on significant changes.

## Testing Guidelines
Each directory beneath `unit_test/` ships a `GNUmakefile`, `inputs_*` controls, and README notes; run the built binary with the matching inputs file (for example `./main3d.gnu.ex inputs_aprox13`). For new coverage, clone an existing `test_*` layout, describe the scenario, and rerun the most relevant case before posting. Capture scratch artifacts via `.gitignore` rather than committing them.

## Commit & Pull Request Guidelines
Develop on topic branches and open pull requests against `development`; merges to `main` occur monthly. Keep commit subjects concise and imperative, mirroring history such as `add NSE network compatibility docs (#1852)`. Update `CHANGES.md` for user-facing fixes, link issues, and note required AMReX revisions. PRs should summarize physics choices, list tests run, and attach plots or logs when behavior shifts.

## Documentation & Automation
Sphinx sources in `Docs/` back the published guide; update them with code changes and ensure `make -C Docs html` finishes cleanly. GitHub Actions publishes the result and exercises unit tests, so keep workflows green by limiting optional dependencies and recording new Python requirements in `requirements.txt`.
14 changes: 11 additions & 3 deletions integration/VODE/vode_dvode.H
Original file line number Diff line number Diff line change
Expand Up @@ -170,14 +170,18 @@ int dvode (BurnT& state, DvodeT& vstate)

if (vstate.n_step == 0) {
#ifndef AMREX_USE_GPU
if (!state.suppress_failure_output) {
std::cout << amrex::Font::Bold << amrex::FGColor::Red << "DVODE: too much accuracy requested at start of integration" << amrex::ResetDisplay << std::endl;
}
#endif
return IERR_TOO_MUCH_ACCURACY_REQUESTED;
}

// Too much accuracy requested for machine precision.
#ifndef AMREX_USE_GPU
std::cout << "DVODE: too much accuracy requested" << std::endl;
if (!state.suppress_failure_output) {
std::cout << "DVODE: too much accuracy requested" << std::endl;
}
#endif
for (int i = 1; i <= int_neqs; ++i) {
vstate.y(i) = vstate.yh(i,1);
Expand All @@ -197,7 +201,9 @@ int dvode (BurnT& state, DvodeT& vstate)
if (kflag == -1) {
// Error test failed repeatedly or with ABS(H) = HMIN.
#ifndef AMREX_USE_GPU
std::cout << amrex::Font::Bold << amrex::FGColor::Red << "DVODE: error test failed repeatedly or with abs(H) = HMIN" << amrex::ResetDisplay << std::endl;
if (!state.suppress_failure_output) {
std::cout << amrex::Font::Bold << amrex::FGColor::Red << "DVODE: error test failed repeatedly or with abs(H) = HMIN" << amrex::ResetDisplay << std::endl;
}
#endif
// Set Y array, T, and optional output.
for (int i = 1; i <= int_neqs; ++i) {
Expand All @@ -211,7 +217,9 @@ int dvode (BurnT& state, DvodeT& vstate)
else if (kflag == -2) {
// Convergence failed repeatedly or with ABS(H) = HMIN.
#ifndef AMREX_USE_GPU
std::cout << amrex::Font::Bold << amrex::FGColor::Red << "DVODE: corrector convergence failed repeatedly or with abs(H) = HMIN" << amrex::ResetDisplay << std::endl;
if (!state.suppress_failure_output) {
std::cout << amrex::Font::Bold << amrex::FGColor::Red << "DVODE: corrector convergence failed repeatedly or with abs(H) = HMIN" << amrex::ResetDisplay << std::endl;
}
#endif
// Set Y array, T, and optional output.
for (int i = 1; i <= int_neqs; ++i) {
Expand Down
2 changes: 1 addition & 1 deletion integration/integrator_setup_strang.H
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ void integrator_cleanup (IntegratorT& int_state, BurnT& state,

// If we failed, print out the current state of the integration.

if (! state.success) {
if (! state.success && !state.suppress_failure_output) {
#ifndef AMREX_USE_GPU
std::cout << amrex::Font::Bold << amrex::FGColor::Red << "[ERROR] integration failed in net" << amrex::ResetDisplay << std::endl;
std::cout << "istate = " << istate << std::endl;
Expand Down
3 changes: 3 additions & 0 deletions interfaces/burn_type.H
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,9 @@ struct burn_t
// integrator error code
short error_code{};

// suppress verbose failure diagnostics (useful for GPU retries)
bool suppress_failure_output{};

};


Expand Down
7 changes: 5 additions & 2 deletions unit_test/burn_cell_primordial_chem/GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ PRECISION = DOUBLE
PROFILE = FALSE

# Set DEBUG to TRUE if debugging
DEBUG = TRUE
DEBUG = FALSE

DIM = 1

COMP = gnu
EXTRACXXFLAGS += -Wno-psabi

USE_MPI = FALSE
USE_OMP = FALSE
Expand All @@ -15,7 +16,7 @@ USE_CUDA = FALSE
USE_REACT = TRUE

# Set USE_MICROPHYSICS_DEBUG to TRUE if debugging
USE_MICROPHYSICS_DEBUG = TRUE
USE_MICROPHYSICS_DEBUG = FALSE

EBASE = main

Expand All @@ -38,3 +39,5 @@ Bpack := ./Make.package
Blocs := .

include $(MICROPHYSICS_HOME)/unit_test/Make.unit_test


Loading
Loading