AMReX-Astro / AMReX-Astro/Castro

new method for temporary FABs

Open
#3,319 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
340
Forks
105
Avg merge
3d 8h
Merged PRs (30d)
8

Description

Originally we used Elixirs for temporary FABs.

Then we switched to doing a resize, like:

FArrayBox  tmp;

...

     // inside the MFIter loop
    tmp.resize(bx, 1, The_Async_Arena());

Now AMReX can do something like:

auto tmp_fab = amrex::FArrayBox{bx, ncomps, amrex::The_Async_Arena()};

This is the new stream-ordered allocator.

We can should look into updating the code with time.

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

The issue names no files or tests. Search the codebase for temporary FArrayBox objects and resize calls using The_Async_Arena(), then compare those sites with the stream-ordered construction shown here. Done means the applicable temporary-FAB code uses the newer approach and the relevant validation still passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
performance
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.