Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add feature projection div cleaner (#4944)
* Commit of initial projection based divergence cleaner to be called from Python callbacks. * Mvinf Div Cleaner into Initialization directory. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Adjusting div cleaner tolerance for single precision runs to allow convergence. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Reducing single precision default tolerance further. * Disabling div cleaner in single precision for now. Changed number of ghost cells. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Using existing ComputeDivB in WarpX. Updated to pull BCs from WarpX. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Removing dirichlet flag from RZ div cleaner. * Changing kernel invocation for RZ. Does not work with multiple modes currently. * Adding hook to call when loading B field from external file. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fixed a couple RZ compile issues. * Adding defines for RZ. Removing hardcoded number of ghost cells in ProjectionDivCleaner. * Cleaning up a few items for clang-tidy CI tests for div cleaner. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Source/Initialization/WarpXInitData.cpp Co-authored-by: Roelof Groenewald <[email protected]> * Rafactoring helper execution function in pyWarpX and placing ProjectionDivCleaner into warpx::initialization namespace. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Removing extraneous semicolon * Updating a call to be static for clang-tidy passage. * Adding DivCleaner into GNUmake build system. * Switching to include guards from pragma once in ProjectionDiveCleaner.H * Lowering warning priority to low for launching div cleaner after loading external B field from file. ALso removing extra include. * Disabling div_cleaner in RZ mode for now until further testing is done. * Update Source/Initialization/DivCleaner/ProjectionDivCleaner.cpp Co-authored-by: Roelof Groenewald <[email protected]> * Moving logic into WarpX class dic cleaner launching function so it will check when called via Python as well. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Adding CI tests and fixing a few bugs for external field loading. Exposing Bfield_dp_external to Python for loading external fields. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Added support for single precision and RZ div cleaners. Exposed external fields to python. Updated benchmarks and adding RZ CI test. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Adding CI test for laoding fields from Python. Updated documentation. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fixing CI test. * Updating flags in PICMI to conform to current standards. Fixing some RZ compilation issues. * Fixing clang-tidy const issue. * Fixing previous merge error for multifab allocations of external fields. * Update Source/WarpX.H Fix typo in comment. Co-authored-by: Roelof Groenewald <[email protected]> * Adjusting bc mapping in projection div cleaner to use std::map for assignment instead of if statements. Signed-off-by: S. Eric Clark <[email protected]> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Changing default behavior for externally loaded fields to automatically scrub b field divergence. * Update Python/pywarpx/picmi.py fixing typo in comment. Co-authored-by: Roelof Groenewald <[email protected]> * Update Python/pywarpx/picmi.py Co-authored-by: Roelof Groenewald <[email protected]> * Update Python/pywarpx/picmi.py Co-authored-by: Roelof Groenewald <[email protected]> * Update Python/pywarpx/picmi.py Co-authored-by: Roelof Groenewald <[email protected]> * Adding more requirements to enable divergence cleaner by default. * Changed location of initialization logic for external divb cleaning to be after grid_type is initialized. * Disabling projection div cleaner when diffusion div cleaner is enabled for Yee algorithm. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Source/Python/WarpX.cpp Co-authored-by: Roelof Groenewald <[email protected]> * Throw low priority warning when cleaning MR saying that only level 0 was cleaned. * Update Regression/WarpX-tests.ini Co-authored-by: Roelof Groenewald <[email protected]> * Update Regression/WarpX-tests.ini Co-authored-by: Roelof Groenewald <[email protected]> * Update Regression/WarpX-tests.ini Co-authored-by: Roelof Groenewald <[email protected]> * Updating picmi to use new callback loaction for loading external fields. * Update WarpXInitData.cpp changing to execute callback at finest level when loading external fields so all levels are accessible * Loosened default tolerance slightly on rtol for projection div cleaner. Updated failing test benchmarks. Adding input parameters to control tolerance on command line or through python. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fixing clang-tidy initialization issue. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Cleaning up style errors. Signed-off-by: S. Eric Clark <[email protected]> --------- Signed-off-by: S. Eric Clark <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Roelof Groenewald <[email protected]>
- Loading branch information