AMReX-Astro / AMReX-Astro/Microphysics

regenerate the helmtable without needing std::log10

Open
#1,258 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

EOS
Dominant language
C++
Stars
43
Forks
46
Avg merge
2d 18h
Merged PRs (30d)
15

Description

One of the most expensive parts of the Helmholtz EOS (on GPUs) is taking the log to T, rho each time we need to find the index into the electron table. We should regenerate the table with a different spacing that doesn't require the log. Some ideas are contained in this paper:

https://arxiv.org/abs/2206.08957

and the code appears here:

https://github.com/lanl/singularity-eos/blob/2ea3957cc18cd4709b926f415dd68a8d4daf8821/singularity-eos/base/fast-math/logs.hpp#L38C3-L38C3

This will require us to write a standalone EOS that computes the F-D integrals to tabulate the electron-positron values. This would be nice to have in any case, because it would allow us to sync up the values of the fundamental constants.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the referenced paper and the logs.hpp fast-math implementation first. Then trace the Helmholtz EOS electron-table lookup and determine the standalone EOS and table-generation entry points needed for F-D integrals. Done means the electron-positron table uses spacing that avoids std::log10 and the standalone EOS can keep its fundamental constants synchronized.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
hpc, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.