From 9abcc85a384d4c51dac246679bc3a8270b98fb87 Mon Sep 17 00:00:00 2001 From: MaxThevenet Date: Thu, 19 Mar 2020 18:44:54 -0700 Subject: Add capability to select fields to dump (#819) * Start implementation of new averaging with staggering: - face-to-cell-center and edge-to-cell-center replaced so far; - TODO: node-to-cell-center and 1D behavior (AMREX_SPACEDIM=1). * first implementation of Diags base classes * add example, temporarily * Continue implementation of new averaging with staggering: - new function takes reference to single MultiFab (no vector); - TODO: node-to-cell-center still in progress. * Fix small bug and clean up * Fix bug in loop over n=0,...,ncomp-1 and clean up * add more functions * Add Doxygen documentation and clean up * Small clean-up in Doxygen documentation * Compile in single precision: add _rt suffix to avoid unnecessary conversions * Avoid accessing staggering index directly from IntVect in innermost loops * Replace do-while loop with for loop (default ncomp=1) * Remove temporary pointer and pass reference to MultiFab (instead of MultiFab*) * Replace AMREX_LAUNCH_HOST_DEVICE_LAMBDA with ParallelFor * cleaning and initialize output mf * use general average routine * move flush in new class, and implemented the Plotfile derived class * add comments * eol * free memory in destructor * typo * typo * no need to clear MF pointers there * though shalt not break existing tests * FlushRaw doesnt have to be virtual for now * The importance of being constant * Capability to select fields in output files * EOL * revert to old inputs * const in right place * avoid brace initializer there * oops, fix logic error in is_in * pass by const ref, as suggested by Andrew's review Co-authored-by: Edoardo Zoni --- Source/Utils/WarpXUtil.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'Source/Utils/WarpXUtil.cpp') diff --git a/Source/Utils/WarpXUtil.cpp b/Source/Utils/WarpXUtil.cpp index ddd3cf4b6..7340056fc 100644 --- a/Source/Utils/WarpXUtil.cpp +++ b/Source/Utils/WarpXUtil.cpp @@ -224,3 +224,26 @@ void AlwaysAssert(bool is_expression_true, const std::string& msg = "ERROR!") } } + +namespace WarpXUtilStr +{ + bool is_in(const std::vector& vect, + const std::string& elem) + { + bool value = false; + if (std::find(vect.begin(), vect.end(), elem) != vect.end()){ + value = true; + } + return value; + } + + bool is_in(const std::vector& vect, + const std::vector& elems) + { + bool value = false; + for (auto elem : elems){ + if (is_in(vect, elem)) value = true; + } + return value; + } +} -- cgit v1.2.3