aboutsummaryrefslogtreecommitdiff
path: root/Source/Utils (follow)
AgeCommit message (Collapse)AuthorFilesLines
2022-01-12Don't attempt to use costs when working on PML grids. (#2737)Gravatar Andrew Myers 2-0/+29
2022-01-04Allow Dirichlet BCs on r boundaries in RZ (electrostatic) (#2714)Gravatar Roelof Groenewald 1-5/+0
* allow Dirichlet BCs in r when r_min != 0 with ES RZ simulations * handle the rmax boundary condition setting properly when rmin == 0 * add ability to specify rmin and rmax potentials through picmi
2021-12-21pre-commit: Python imports (#2686)Gravatar Axel Huebl 2-2/+6
* pre-commit: Python imports Add two new Python rules to: - remove unused imports - sort imports according to PEP8 * pre-commit: Python imports Add two new Python rules to: - remove unused imports - sort imports according to PEP8 `.editorconfig`: isort options https://github.com/PyCQA/isort/wiki/isort-Settings * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * move import os (mpl) * move import yt (mpl) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Cleanup around matplotlib.use * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Cleaning: double np and lib Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-12-21Inputs: `geometry.dims` option (#2685)Gravatar Axel Huebl 2-18/+43
* Docs: `geometry.dims` option Add a new, required option to specify the geometry of an inputs file at runtime. * Check & Report Runtime Dims Mismatch * Examples: add `geometry.dims` * Deprecation Warning: `geometry.coord_sys` * PICMI: `geometry.dims` * Improve error message sounds a bit better * Improve Doc Description Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com> Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com>
2021-12-16AMREX_SPACEDIM : EB, Filter, Laser, Utils, and Diagnostics (#2677)Gravatar Prabhat Kumar 6-42/+42
* AMREX_SPACEDIM : EB and Filter * AMREX_SPACEDIM : Laser * AMREX_SPACEDIM : Utils * AMREX_SPACEDIM : Diagnostics * Fix Typo * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * AMREX_SPACEDIM : Warpx.cpp * Update Source/Diagnostics/FlushFormats/FlushFormatPlotfile.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Diagnostics/FlushFormats/FlushFormatPlotfile.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-12-15ABLASTR: Cleanups & Particle Moments (#2675)Gravatar Axel Huebl 1-1/+1
* ABLASTR: Cleanups - lowercase dir - nested directories - nested namespaces - functions: lowercase and snake_case - templates: prefix with `T_` - profiler: doc strings * Add: Particle Moments Co-authored-by: Remi Lehe <rlehe@lbl.gov> Co-authored-by: Remi Lehe <rlehe@lbl.gov>
2021-12-14Refactor DepositCharge so it can be called from ImpactX. (#2652)Gravatar Andrew Myers 1-33/+9
* Refactor DepositCharge so it can be called from ImpactX. * change thread_num * Fix namespace * remove all static WarpX:: members and methods from DepositChargeDoIt. * fix unused * Don't access ref_ratio unless lev != depos_lev * more unused * remove function to its own file / namespace * don't need a CMakeLists.txt for this * lower case namespace, rename file * Refactor: Profiler Wrapper Explicit control for synchronization instead of global state. Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-12-11ABLASTR Library (#2263)Gravatar Axel Huebl 1-1/+5
* [Draft] ABLASTR Library - CMake object library - include FFTW wrappers to start with * Add: MPIInitHelpers * Enable ABLASTR-only builds * Add alias WarpX::ablastr * ABLASTR: openPMD forwarding * make_third_party_includes_system: Avoid Collision * WarpX: depend on `ablastr` * Definitions: WarpX -> ablastr * CMake: Reduce build objects for ABLASTR Skip all object files that we do not use in builds. * CMake: app/shared links all object targets Our `PRIVATE` source/objects are not PUBLICly propagated themselves.
2021-12-10use if constexpr to replace template specialization (#2660)Gravatar Luca Fedeli 1-106/+67
2021-12-09C++17: structured bindings to replace "std::tie(x,y,z) = f()" (#2644)Gravatar Luca Fedeli 1-6/+2
* use structured bindings * std::ignore equivalent in structured bindings Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-11-19RZ PSATD, make blocking_factor a power of 2 (#2572)Gravatar David Grote 1-3/+9
* With RZ PSATD, make blocking_factor a power of 2 * Fix typo Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2021-11-191D3V Cartesian Support (#2307)Gravatar Prabhat Kumar 5-13/+73
* Build System: Add 1D Geometry * test PR * test PR * 1D cartesian yee algorithm * fixed typo * Fixes for PML * 1D support related multiple changes * Fix compilation * change 1D to 1D_Z * 1D Field Gather and typo fix * 1D Charge Deposition * Particle Pusher * multiple changes related to 1D * 1D diagnostics and initialization * PlasmaInjector and PEC fixes for 1D * clean-up delete diags file * mobility 1D laser particle and bilinear filter * deleted diags files * update laser particle weight formula * delete diags files * Azure: Add 1D Cartesian Runner * 1D fixes for FieldProbe * Update Docs/source/developers/dimensionality.rst Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * 1d laser injection and langmuir test input files * 1d tests * clean up : delete print statements * analyse simulation result for laser injection and Langmuir tests * EOL * delete input files for which there are no automated tests * delete input files for which there are no automated tests * add ignore_unused to remove warnings * remove space * Fix compilation issues * fix error : macro name must be an identifier * Small bug fix * cleanup Python script for analysis * bug fix * bug fix * Update ParticleProbe: Check 1D in-domain * Update Source/Make.WarpX * Update .azure-pipelines.yml * Add USE_OPENPMD=FALSE to .azure-pipeline.yml * resolve conflict * resolve conflict * fix typo * Correct out-of-bound access * Fix Particle BC in WarpXParticleContainer and correct path to checksumAPI in python analysis scripts * EOL * Fix bug : accessing out of bound index of cell in 1D * remove 1d test for cartesian3d * Fix CI check * Slight style change * Address review comments * Fix GPU compilation Filter.cpp * Fix CI * Fix Indentation * Address review comments * More consistent ifdef for dimension bigger than 1 * Update Examples/Tests/Langmuir/analysis_langmuir_multi_1d.py Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update GNUmakefile Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Regression/prepare_file_ci.py Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianCKCAlgorithm.H Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/FieldSolver/FiniteDifferenceSolver/FiniteDifferenceAlgorithms/CartesianNodalAlgorithm.H Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Filter/Filter.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Initialization/PlasmaInjector.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Initialization/PlasmaInjector.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * add comment inline to explain twice push_back * Add amrex::Abort for NCIGodfreyFilter Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Prabhat Kumar <prabhatkumar@kraken.dhcp.lbl.gov> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Remi Lehe <rlehe@lbl.gov>
2021-11-18WarpXMovingWindow.cpp: Add `amrex::` Prefix (#2579)Gravatar Edoardo Zoni 1-63/+63
2021-11-12Add Ar and Xe to pre-defined particle types. (#2549)Gravatar Kevin Z. Zhu 1-0/+1
* Added Ar and Xe to pre-defined particle types * Added Boltzmann's constant to warpx parser * Updated documentation
2021-11-08Install pre-commit (#2532)Gravatar Axel Huebl 1-1/+0
* Add pre-commit Add basis for automated pre-commit checks. Install locally via: ```bash python3 -m pip install -U pre-commit pre-commit install ``` See: https://pre-commit.com * Cleanup: Whitespaces * Cleanup: requirements.txt order
2021-10-27Fix Doxygen: Utilities (#2485)Gravatar Axel Huebl 1-10/+31
* Fix Doxygen: Utilities Fix doxygen errors & warnings. * Review: Add doxygen title & brief body
2021-10-25Bugfixes for ref_ratio = 4 in the moving window direction. (#2452)Gravatar Andrew Myers 1-1/+1
* Bugfixes for ref_ratio = 4 in the moving window direction. * == should be <= * only adjust guard cells for moving window by ref_ratio if nlevs > 1 * restore logic to always have at least 2 grow cells if moving window is on * remove comment about this not being needed on level 0 - it does.
2021-10-20⚠️ Add warning logger (#2113)Gravatar Luca Fedeli 12-4/+1574
* improve error msg * eliminate final dot * initial layout of the main classes * progress * progress with warnings * print local errors * progress with warning logger * improved MsgLogger * added file to test warnings * added method to read debug warnings from inputfile * progress towards collective gather of warnings * add missing blank line in warning message * move misplaced file * refactoring * fixed bugs * progress * fixed bugs * fixed some bugs * it finally works! * add comments in WarpX.H * add missing comment * added comments to WarpX.cpp * add profiler to WarpX.cpp * expose option to enable 'warn immediately' feature in cmake * Add comment to main.cpp * add missing comment in WarpX.cpp * add copyright and include guards to WarnManager_fwd.H * cleaning and added comments to WarnManager.H * updated test * added fwd file for MsgLogger * cleaning * Added copyright in WarnManager.cpp * Cleaning * cleaning * Add missing copyright * cleaning * clean and add comments to MsgLoggerSerialization.H * cleaning MsgLogger_fwd.H * cleaning * continue cleaning MsgLogger * added comments & bugfixing * removed test file * fixed bugs * Update Source/Utils/MsgLogger/MsgLogger.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/WarpX.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/MsgLogger/MsgLogger.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/MsgLogger/MsgLogger.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/MsgLogger/MsgLogger.cpp Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/MsgLogger/MsgLoggerSerialization.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/MsgLogger/MsgLoggerSerialization.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/MsgLogger/MsgLoggerSerialization.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/MsgLogger/MsgLoggerSerialization.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/MsgLogger/MsgLoggerSerialization.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/WarnManager.cpp Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/WarnManager.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/WarnManager.H Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Utils/WarnManager.cpp Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * fixed bugs * Update Source/Utils/MsgLogger/MsgLogger.cpp Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> * Added comment to explain rotation * use last value computed by partial_sum * fix bug * now use error stream * using anonymous namespace for helper functions * print on both stderr and stdout * now using runtime parameter to always print warnings * added documentation * using long int for counter * sort affected warnings list * add doc entry * removed doc * added documentation * fixed bug * fixed bug * removing unnecessary text * reformatting * reformatting * fixed bug * fixed bug * correction * add warning_logger.rst to toctree in developers.rst Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
2021-10-18Option to do single precision mesh communication. (#2294)Gravatar Andrew Myers 1-2/+3
* option to use single precision guard cell exhanges * add missing files * fix namespace issue * change precision of comms to float * ParmParse the single_precision_comms flag * set back to real * test * make sure dst is filled * nGrow -> nGrowVect * restore float * don't override valid cells * single precision mesh * whitespace * wrap SumBoundary * Wrap additional uses of FillBoundary. * catch missing copies of ParallelCopy * missing OverrideSyncs * add wrapper for iMultifab * fix typo * moar typos * typo * strip single_precision_mesh option * fix original copy * update fusible syntax Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> * Fix: Single Precision Builds Should not copy around data for `do_single_precision_comms` * Docs: warpx.do_single_precision_comms * initialize this tmp multifab to 0.0 * fix tiny profile label * remove orig copies, they are only correct for FillBoundary * loosen tolerance for space charge tests for single precision * missing some setVal * another missing setVal * missing setVal * add wrapper for new version of sumboundary * add explicit cast to silence compiler warning * add a test for single precision comms * revert change to test precision * add benchmark for single precision comms test * restore tolerance I removed by mistake * tolerance * copyright headers * drop tolerance for single precision tests in default analysis script * missing python module * bump tol again * fix bad merge * Apply suggestions from code review Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
2021-10-18move kinetic energy calculation into Particles/Algorithms (#2441)Gravatar Luca Fedeli 1-5/+0
2021-10-15Made explicit several casts (#2431)Gravatar David Grote 1-2/+2
2021-10-15Synchronize GPU before stopping profile timer (#2415)Gravatar AlexanderSinn 1-8/+27
* synchronize device before ending profile * fix shadowing issue * add comment
2021-10-11Use parser for more input parameters (#2386)Gravatar Neïl Zaim 2-38/+22
* Use parser for more input parameters * Fix PSATD compilation and apply suggestions from code review * Avoid out of bound array access for num_particles_per_cell_each_dim * Fix few input files with respect to num_particles_per_cell_each_dim * Fix get that incorrectly became query
2021-10-11Reduced diagnostics: fix calculation of particle energy in single precision ↵Gravatar Luca Fedeli 1-0/+5
(#2397) * fix kinetic energy calculation in single precision * really fix the issue... * add missing _rt * we don't need m2 now * remove unused variable * always perform kinetic energy calculation in double precision * put w where it was * fixed bug * fixed bug * use threshold for kinetic energy * fix bug * increase order of Taylor expansion * increase order of Taylor expansion * reduce classical/relativistic threshold for kinetic energy * reset threshold to 1.005 * improve test
2021-10-07Interpolate mu to B-location when computing H (#2252)Gravatar Revathi Jambunathan 1-0/+33
* interpolate mu to B-location when computing H * add comments * modify comment to reflect interpolation * eol * add struct to compute macroparameters at x,y,z, and util function to compute cellcoordinates * fix eol * remove unused variables, multifabs, and initialization of macro multifabs * host device function * fix typo * doxygen comments
2021-10-04Fix my_constants being cast to float in single precision (#2369)Gravatar AlexanderSinn 2-8/+42
* Parse my_constants always as double * remove debug print out * add comment * fix comment * add additional comment
2021-09-22Move RandomizeVelocity to ParticleUtils (#2326)Gravatar Neïl Zaim 1-10/+58
2021-08-30Added parsing in intervals (#2246)Gravatar David Grote 3-24/+49
* Added parsing in intervals, minor clean up of querywithparser routines * Split up documentation * Added documentation * Added tests to inputs_2d_multi_rz_rt Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-08-30ECT conformal solver (#1923)Gravatar Lorenzo Giacomel 2-1/+3
* adding base implementation of the conformal solver * adding some preprocessor directives * qualifying the isnan's correctly * getting rid of some unused fields * computing S_stab on the fly * using empty in length check * Source/FieldSolver/FiniteDifferenceSolver/EvolveB.cpp * replaced a looponcpu with a parallelfor * trying to not pass lending/borrowing info by reference in evolveB * passing data using dataPtr * converting inds into a device vector * simplifying some += * extracting the inds BaseFabs as DataPtr * Revert "extracting the inds BaseFabs as DataPtr" This reverts commit bc709d2fcaa347c119514de79a3f57169a05af65. * implementing new way ogf handling cell extensions (gpu compatible) * fixing some white spaces * removed a typo * made a function static * tidying up * tidying up * getting rid of the rho vector * moving the rho update to evolveE * refectoring the cell extension * small chenge in input parameters * updating WarpX.H * bug fix * fixing another bug * rotating the cube * updated gitignore * using the conformal soler in the cube test * fixing the signature of a function * trying to fix the setVal problem * Revert "trying to fix the setVal problem" This reverts commit c7d0e5e3709b730ff570183b2a6df5f587ca4640. * trying to fix the setVal problem * cleaning some comments * removing an abort in device code * Including geometric information in the external field initializer * cleaned up the test * moving the geometric data initialization before the external fields initialization * changing way of saving info about intruded cells * fixed some white spaces * Using S_mod instead of S_red and S_enl * substituting a std::vector with amrex::Array1D * bug fix in the uint8_t -> coords maps * Condensed ect cell info into one single MultiFab * fixing some includes * fixing some more includes * fixed a typo * making some functions available in gpu code * using tilebox instead of validbox for the geometry initialization * communicating the geometric info in the guard cells * fixing the guard cells initialization for ect * fixing an unused parameter * fixing an unused parameter * ignored some unused variables when EB is not supported * cleaning up * cleaning up * ignored some unused variables when EB is not supported * evolving rho just for ect * handling some more unused variables * removing some white spaces * adding the rotated cube test * removed some white spaces * change cells into faces * small fix in unused parameters * fixed a comment * for safety for now just initialize the geometric data when lev==maxLevel * adding some preprocessor directives to isolate EB code * updating Makefile stuff * Improving the rotated cube test * bug fix in mesh refinement * fixing boundary conditions in rotated cube test * deactivating MPI in rotated cube test * activating mpi in test * improving outputs of cells extension * improved the documentation * Update Source/EmbeddedBoundary/WarpXInitEB.cpp Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> * Update Source/EmbeddedBoundary/WarpXInitEB.cpp Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> * Removed some obsolete isnan's * undone change to gitignore * adding some missing AMREX_GPU_DEVICEs * Changing some amrex::Real(0) into 0. Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Making some variables const Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Adding amrex:: to some ignore_unused Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Enhancing readability of some parallelfor's Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Removed some unecessary includes * Fixing some tags Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Fixing the function CountExtFaces * added a comment for Rhofield * Fixed a typo in CountExtCells * trying to remove accesses to private members in ComputeEdgeLengths * making some functions public * undoing some useless changes * undoing some useless changes * adding some AMREX_GPU_DEVICEs * adding some unused variables * adding some AMREX_GPU_DEVICEs to fix warnings * fixing relative error * Making several variables const Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Fixed a comment Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * changing some double to amrex::Real * removing commented lines * changing some double to amrex::Real * removing commented lines * inizialing nelems_x,y,z to avoid a warning * Fixing number of cells * Adding missing analysis routine in rotated cube test Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Making some variables constexpr Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> * Improving some reduce operations Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> * reading time directly from the output * fixed a few data types * fixing another int * Replacing or->||, and->&&, not->! * Adding license info * Adding a white space Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * removed some unused imports * Moving the doxygen documentation * Including AMReX_LayoutData.H * removing some useless parameters * adding ect solver to the doc * Removing some useless reductions * Small change for consistency * Handling the resizing of arrays * Handling correctly the resing of arrays * Fixing some whitespaces * Fixing an indentation * Improving a comment * Removed a useless initialization * Renamed Rhofield to ECTRhofield * Renamed Rhofield to ECTRhofield * Added some if conditions to isolate some EB related code * Improved some comments Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * Made some functions not member of WarpX anymore * Isolated some EB-only code * Isolated some EB-only code * Using the square brackets to access vectors * Ignoring some unused variables * Bug fix in initialization * Removed a redundant if * Using enumeration for connectivity and improved names * Added a comment * added a few comments * Removed some useless template parameters * Printing some info only in verbose mode * Revert "Removed some useless template parameters" This reverts commit 2c527980e6872c0212767c27f00e2b53ecbcfd0a. * Fixed a bug with the neighbours enumeration * Initializing geom data alsoo in the ghost cells Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
2021-08-20Allow Silver-Mueller boundary conditions to only be applied in certain ↵Gravatar Remi Lehe 1-32/+0
directions (#2220) * Apply Silver-Mueller boundary only in requested direction * Include a test with independent Silver-Mueller boundary conditions * Correct typo in implementation
2021-08-19Implemented the parsing of integer input parameters (#2138)Gravatar David Grote 2-3/+129
* Implemented the integer parser * Updated comment * Updated documentation * Fixed unused parameters * Added some additional documentation * Reworked the implementation so that expressions are evaluated as real and rounded to the nearest integer * Fixed loop type * Copied over initial value of variable to the real instance * Update Source/Utils/WarpXUtil.cpp make result const * Update Source/Utils/WarpXUtil.cpp make result const * Update Source/Utils/WarpXUtil.cpp Fix comment * Added safeCastToInt * Fixed adding of safeCastToInt * Cleaned up safe casting routine * Added parsing of more integer inputs * Cleaned up the integer parser, removing unneeded cast from int to real * Made x a const in safeCastToInt Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-08-06Shift parsing of physical/mathematical constants from hard-coding to table ↵Gravatar Phil Miller 2-27/+43
lookup (#2128) * Shift parsing of physical/mathematical constants from hard-coding to table lookup * Make constants map local and static for now, until there's a reason for it to be accessible/modifiable * Accept rewording * Accept rewording Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-07-26Fix: CUDA C++17 Builds (ParticleBins) (#2129)Gravatar Axel Huebl 1-1/+1
Seen with CUDA 11.2.0 in C++17 build: ``` nvcc_internal_extended_lambda_implementation: In instantiation of ‘struct __nv_hdl_helper_trait_outer<false, false, const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3>::__nv_hdl_helper_trait<__nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>, amrex::IntVect (ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)::<lambda(const ParticleType&)>::*)(const amrex::Particle<0, 0>&) const noexcept>’: nvcc_internal_extended_lambda_implementation:677:8: required from ‘struct __nv_hdl_helper_trait_outer<false, false, const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3>::__nv_hdl_helper_trait<__nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>, ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)::<lambda(const ParticleType&)> >’ nvcc_internal_extended_lambda_implementation:696:204: required by substitution of ‘template<class Lambda> static decltype (__nv_hdl_helper_trait_outer<false, false, const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3>::__nv_hdl_helper_trait<__nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>, Lambda>::get(lam, args#0, args#1, args#2)) __nv_hdl_create_wrapper_t<false, false, __nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>, const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3>::__nv_hdl_create_wrapper<Lambda>(Lambda&&, amrex::GpuArray<double, 3>, amrex::GpuArray<double, 3>, amrex::Dim3) [with Lambda = ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)::<lambda(const ParticleType&)>]’ /home/axel/src/warpx/Source/Utils/ParticleUtils.cpp:62:17: required from here nvcc_internal_extended_lambda_implementation:677:77: error: ‘operator()’ is not a member of ‘amrex::IntVect (ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)::<lambda(const ParticleType&)>::*)(const amrex::Particle<0, 0>&) const noexcept’ /home/axel/src/warpx/Source/Utils/ParticleUtils.cpp: In function ‘ParticleUtils::ParticleBins ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)’: /home/axel/src/warpx/Source/Utils/ParticleUtils.cpp:62:17: error: no matching function for call to ‘__nv_hdl_create_wrapper_t<false, false, __nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>, const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3>::__nv_hdl_create_wrapper(ParticleUtils::findParticlesInEachCell(int, const amrex::MFIter&, const ParticleTileType&)::<lambda(const ParticleType&)>, const amrex::GpuArray<double, 3>&, const amrex::GpuArray<double, 3>&, const amrex::Dim3&)’ 62 | }); | ^ nvcc_internal_extended_lambda_implementation:696:13: note: candidate: ‘template<class Lambda> static decltype (typename __nv_hdl_helper_trait_outer<IsMutable, HasFuncPtrConv, CaptureArgs ...>::__nv_hdl_helper_trait<Tag, Lambda>::get(lam, __nv_hdl_create_wrapper_t::__nv_hdl_create_wrapper::args ...)) __nv_hdl_create_wrapper_t<IsMutable, HasFuncPtrConv, Tag, CaptureArgs>::__nv_hdl_create_wrapper(Lambda&&, CaptureArgs ...) [with Lambda = Lambda; bool IsMutable = false; bool HasFuncPtrConv = false; Tag = __nv_dl_tag<amrex::DenseBins<amrex::Particle<0, 0> > (*)(int, const amrex::MFIter&, const amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&), ParticleUtils::findParticlesInEachCell, 1>; CaptureArgs = {const amrex::GpuArray<double, 3>, const amrex::GpuArray<double, 3>, const amrex::Dim3}]’ nvcc_internal_extended_lambda_implementation:696:13: note: substitution of deduced template arguments resulted in errors seen above ``` Since this lambda is only needed on device, we can relax the qualifier.
2021-07-21Use new boundary input (#2110)Gravatar Revathi Jambunathan 1-47/+5
* support only new boundary interface. set pml flags to 0 as default * use new boundary interface in Examples/Modules/ * use new boundary interface in the input for tests in Examples/Physical_applications * use new boundary interface in the input for tests in Examples/Tests * use new bc * fix typo * fix typo * Update Examples/Tests/SingleParticle/inputs_2d * fix bc in input * specific bc for electrostatic inputs * resetting benchmark for PEC particle CI test after fixing the default pml flags from 1 to 0 * Update Examples/Physics_applications/laser_acceleration/inputs_2d_rz * remove documentation on previous boundary input * Comment to clarify where in the code is_periodic is appended and how it is defined * add default parameters for BC in doc
2021-07-13amrex::Parser (#2063)Gravatar Weiqun Zhang 3-23/+39
* amrex::Parser Replace WarpXParser with amrex::Parser. Roundoff errors are expected because of additional optimization in amrex::Parser. * Reset the Langmuir_multi_psatd_single_precision benchmark due to change in single precision parser * enable Intel oneAPI CI again * Update Source/EmbeddedBoundary/WarpXInitEB.cpp * Replace hard-coded number in ParticleDiag with a constexpr
2021-07-13RZ: Add ASSERT for Lower Bound of Radial Coordinate (#2082)Gravatar Edoardo Zoni 1-0/+15
* RZ FDTD: Add ASSERT for Lower Bound of Radial Coordinate * RZ PSATD: Add ASSERT for Lower Bound of Radial Coordinate
2021-07-13Feature - Monte Carlo Collisions with static background neutrals (#1857)Gravatar Roelof Groenewald 1-0/+2
* Update copyright notices * allow specification of boundary potentials at runtime when using Dirichlet boundary conditions in the electrostatic solver (labframe) * added parsing to boundary potentials specified at runtime to allow time dependence through a mathematical expression with t (time) * updated to picmistandard 0.0.14 in order to set the electrostatic solver convergence threshold * update docs * various changes requested during PR review * fixed issue causing old tests to break and added a new test for time varying boundary potentials * possibly a fix for the failed time varying boundary condition test * changed permission on the analysis file for the time varying BCs test * switched to using yt for data analysis since h5py is not available * made changes compatible with PR#1730; changed potential boundary setting routine to use the ParallelFor construct and set all boundaries in a single call * fixed typo in computePhiRZ * updated docs and fixed other minor typos * fixed bug in returning from loop over dimensions when setting boundary potentials rather than continuing * changed to setting potentials on domain boundaries rather than tilebox boundaries and changed picmi.py to accept boundary potentials * now using domain.surroundingNodes() to get the proper boundary cells for the physical domain * fixed typo in variable name specifying z-boundary potential * Initial commit of MCC development. Collision type background_mcc handles collisions with a neutral background species * added back scattering and started expanding the multiple scattering processes functionality some * added charge exchange collision handling * added CrossSectionHandler class to install collision process cross-section calculators * added file reading for cross-section data * added input parameter for energy lost during inelastic collisions and changed how secondary species are passed for ionization events * added ionization - requires work to add to the amrex::ParallelForRNG loop * switched the MCC ionization handling to use the same workflow as other particle creation processes i.e. using the FilterCopyTransform functionality * updated the docs with the input parameters needed to include MCC in a run * added test for MCC and a function to ensure that cross-section data is provided with equal energy steps * fixed issue with build failing when USE_OMP=TRUE and some of the naming issues in Examples/Physics_applications/capacitive_discharge but I am not sure what to do about the other files in that directory * Improve file name construction to be strictly C++ compliant * WIP GPU Support * Fix QED Build (CUDA 10.0) Replace capture of a host-side array with unnamed members for E & B field transport with a nicely named struct that transports the Array4's as members. This is harder to mix up and thus more self-documenting and solves an issue with NVCC 10.0 of the form: ``` nvcc_internal_extended_lambda_implementation: In instantiation of '__nv_dl_wrapper_t<Tag, F1, F2, F3, F4, F5>::__nv_dl_wrapper_t(F1, F2, F3, F4, F5) [with Tag = __nv_dl_tag<int (*)(amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&, amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&, amrex::Box, const amrex::Array4<const double> (&)[6], int, int, const SchwingerFilterFunc&, const SmartCreate&, const SmartCreate&, const SchwingerTransformFunc&), filterCreateTransformFromFAB<1, amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>, amrex::Array4<const double> [6], int, const SchwingerFilterFunc&, const SmartCreate&, const SmartCreate&, const SchwingerTransformFunc&>, 1>; F1 = amrex::Array4<double>; F2 = const SchwingerFilterFunc; F3 = const amrex::Array4<const double> [6]; F4 = const amrex::Box; F5 = int*]': /home/ubuntu/repos/WarpX/Source/Particles/ParticleCreation/FilterCreateTransformFromFAB.H:174:28: required from 'Index filterCreateTransformFromFAB(DstTile&, DstTile&, amrex::Box, const FABs&, Index, Index, FilterFunc&&, CreateFunc1&&, CreateFunc2&&, TransFunc&&) [with int N = 1; DstTile = amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>; FABs = amrex::Array4<const double> [6]; Index = int; FilterFunc = const SchwingerFilterFunc&; CreateFunc1 = const SmartCreate&; CreateFunc2 = const SmartCreate&; TransFunc = const SchwingerTransformFunc&]' /home/ubuntu/repos/WarpX/Source/Particles/MultiParticleContainer.cpp:1169:167: required from here nvcc_internal_extended_lambda_implementation:70:103: error: invalid initializer for array member 'const amrex::Array4<const double> __nv_dl_wrapper_t<__nv_dl_tag<int (*)(amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&, amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>&, amrex::Box, const amrex::Array4<const double> (&)[6], int, int, const SchwingerFilterFunc&, const SmartCreate&, const SmartCreate&, const SchwingerTransformFunc&), filterCreateTransformFromFAB<1, amrex::ParticleTile<0, 0, 4, 0, amrex::ArenaAllocator>, amrex::Array4<const double> [6], int, const SchwingerFilterFunc&, const SmartCreate&, const SmartCreate&, const SchwingerTransformFunc&>, 1>, amrex::Array4<double>, const SchwingerFilterFunc, const amrex::Array4<const double> [6], const amrex::Box, int*>::f3 [6]' ``` * CUDA: Quiet numerous warnings about unused-variable-warning suppressions being unreachable statements * Compiles on GPU; may even run as intended * Delete overwrought attempt at polymorphic implementation * Fix compilation error from nvcc being stupid * fixed improper input file for MCC test and updated reference results - a statistical test of the MCC routine would be better so that reference results should not change with changes in the RNG * Runs on CPU and GPU now * Clean up GPU-related memory/allocation management and function usage * Try inlining MCCProcess::getCrossSection to appease HIP and SYCL compilers * Fix up style/formatting issues * Typedef to make stuff cleaner and simpler * MCC: Make helper functions static * MCC: Pull parsing out to a helper * MCC: Name member variables according to convention * MCC: Pull out part of constructor * MCC: Add constructor that will take any iterable source for energies/cross sections * MCC: Overload operator new/delete to allocate in managed memory, to make later use more straightforward * MCC: Add process type for ionization * MCC: Expose a method for adding processes programmatically * MCC: Follow convention of all types being 'class', which keeps grep easy * MCC: Fix a formatting silliness * added a check that the collision cross-section is zero at the energy penalty for the collision to ensure that no collision will happen with a particle with insufficient energy to pay the energy cost * updated MCC input files to new standard inputs * reverted incorrect changes that was messed up during various upstream and branch merges * moved the MCC benchmark results to the Examples section in the documentation, which allows us to meet the style requirements - the tests are ongoing and the results will be provided in a following commit * Add GPU synchronization after collisions * added benchmark results and updated test results with the refined cross-sections needed to accurately calculate the benchmark cases * removed example input files for benchmarks since the style requirement prohibits input files not included in an automated test; also updated the reference results for the MCC test which changed slightly after merging upstream development and updated amrex * CLean up indentation and bit of commented out code * Inline addProcess method and refactor * Apply suggestions from code review Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * switched MCC files copyright to Modern Electron * Remove sync calls, which are unnecessary on support modern hardware * removed He collision cross-sections and instead the new warpx-data repository to access those files; also added a call in run_test.sh to clone the new repository during tests * Apply suggestions from code review Co-authored-by: David Grote <dpgrote@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * cleaned up the MCC documentation a bit * added include statements now needed by the MCC (after recent PR merges) and updated the MCC test reference values which changed slightly due to changing the value of Boltzmann's constant * added plot results for 3rd benchmark case from literature and changed documentation to reference uploaded image rather than local image in repo * updated MCC test file to match earlier execution which changed due to the new warpx use_filter default value being 1 * Apply suggestions from code review Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * Apply suggestions from code review Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * added warp-data repository clone command to docs * fix breaking change from earlier commit Co-authored-by: Peter Scherpelz <peter.scherpelz@modernelectron.com> Co-authored-by: Phil Miller <phil@intensecomputing.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Phil Miller <phil.miller@intensecomputing.com> Co-authored-by: Ubuntu <ubuntu@ip-172-31-31-245.us-east-2.compute.internal> Co-authored-by: David Grote <dpgrote@lbl.gov> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
2021-07-13Interface silver mueller (#2051)Gravatar Revathi Jambunathan 3-1/+35
* interface silvermueller with refactored boundary interface * add interface in silver mueller input files * define first and second half for EvolveB * add do_pml parse snce RZ needs do_pml to be st to false * Silver-Mueller boundary condition in docs * add firsthalf in ApplyBfieldBoundary within PushPSATD as only first first half is used to apply silvermueller * CallSilverMueller once for all boundaries * remove unused do silvermueller flag * fix typo in input file * Apply suggestions from code review Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * abort message if silver-mueller is not selected on all valid boundaries * fix typo * fix eol * remove ifdef from inside the Assert message * check silver-mueller selection after reading all boundaries Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
2021-07-06Add possibility to start and stop moving window (#2027)Gravatar thomas clark 1-2/+8
* Add possibility to start and stop moving window * Update Benchmark laserInjection_2d * Update Source/Diagnostics/BTDiagnostics.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * modification of the MoveWindow function in the python interface * False to True for move j in python function Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-07-06Reflective particle boundary condition (#1728)Gravatar David Grote 3-17/+33
* Added ParticleBoundaries and reflecting boundary conditions * Added ParticleBoundaries::AllNone * Allowed different particle boundary conditions on each side of the domain * Updated the documentation for particle boundaries * Fix end of line space in Docs/source/running_cpp/parameters.rst * Updated the reflecting BC to use boundary input group * Fixes to reflective boundary conditions * Bug fix in AsStored * Added particle boundaries regression test particle_boundaries_3d * Fixed particle_boundaries_3d.json * Minor updates * Added algo.particle_shape to test case * Remove do_pml from test case Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com> * Need to explicitly turn off pml in CI test * Re-add include * Fixed includes Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-06-24Use "Include What You Use" on WarpX (#1947)Gravatar Luca Fedeli 23-29/+185
* initial tests with IWYU * added a couple of forward declarations * used iwyu on more files * progress * used iwyu on more files * progress with iwyu * progress with iwyu * fixed bug * progress with iwyu * progress with IWYU * progress with IWYU * fixed bug * fixed bug * progress with IWYU * progress with IWYU + use forward declarations in WarpX.H * first try with .def files * fix bugs * progress with IWYU * progress with IWYU * progress with iwyu * correct copyright * fixed bug * fixed bugs * fix missing include * fixed bug * fix bug * fix bug introduced during last bugfix * use iwyu on newly added files * add space * fix bug * fix missing include * fix missing include * fix missing include * fixed bugs * fixed bug * attempt at fixing issue with math functions * added missing include * fixed missing include * using _fwd.H * fixed bug * progress with iwyu * update AMReX branch * enforce alphabetic order * progress with iwyu * use right version of amrex * use right version of amrex for tests * fixed bug * fix another bug * fix missing include * fix missing include * fix missing include * updated amrex * initial work to document new include strategy * updated documentation * Fix rst & private includes * Remove accidentially added files * Fix rst code blocks * one more rst block Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-06-09ion_map_ids: static & const access (#2010)Gravatar Axel Huebl 2-5/+8
This fixes the `ion_map_ids` atom-to-number object: - declare static, so the file can be included in multiple translation units - use `.at()`: - missing entries do not cause an insertion - missing entries will throw - access is `const`, so we can declare the whole object `static const` as well.
2021-06-07add m_u (#2003)Gravatar Luca Fedeli 2-0/+4
2021-06-01CoarsenIO: Replace Copy with ParallelCopy (#1992)Gravatar Axel Huebl 1-1/+1
Fix a warning from AMReX by migrating to the newer, recommended interface.
2021-05-24Add generic field reduction reduced diag (#1944)Gravatar Neïl Zaim 3-0/+21
* Add generic field reduction reduced diag * Make ComputeFieldReduction public * Apply suggestions from code review * Apply suggestions from Luca and Edoardo * Fix syntax error * Fix typo in example input file Co-authored-by: Luca Fedeli <luca.fedeli@for.unipi.it>
2021-05-21Boundary Condition : PEC (#1767)Gravatar Revathi Jambunathan 3-7/+30
* Read boundary and set periodicity, enumerate BC types, added support for periodic * separate particle and field boudnary structs * PEC Etangential Bnormal and setting default pml=0 * eol * add PEC and FieldBoundary routines * eol * remove duplicate struct * update guard cells for PEC * host device functions * remove duplicate function * fix compilation error by adding ; * temporary logic to set PEC boundary * eol * add documentation for PEC and abort if PEC is used for RZ * documentation for PEC functions * remove print statements * Adding field CI test for PEC for 3D with and without MR * fix eol * Apply suggestions from code review * Update Docs/source/usage/parameters.rst * Update Source/BoundaryConditions/WarpX_PEC.cpp * particle PEC CI test * rename analysis scripts for PEC * use iside == 0 as condition * ParallelFor over guard cells. Set field values on boundary and guard in the kernel * ijk_guard not needed anymore * remove unnecessary nbody generated by yt * pi and clight are built-in * cleanup * eol * fix bug in computing ig and ijk_valid * bug fix in guard-cell update in PEC changes benchmark for particles * fix bug in the ig compute * reset particle PEC benchmark * fix logic to set PEC with current interface * adding a none type for RZ * reset benchmarks for 2dLaserInjection, 2dgalilean_hybrid and 2dcomoving CI tests due to differences in PEC reflection * ensure noz shape factor is used for RZ and k=0 for RZ * fix XZ/RZ logic for Ey,Etheta,By,Btheta. Add ncomponent for RZ, generically. * fix the field update for corner cases and mixed boundaries. rename ijk_valid to ijk_mirror since ijk_mirror need not be in valid region * set GuardCell and Boundary cell flags * fix compilation bug * suppress unused variable warning * eol whitespace * fix doc * Apply suggestions from code review Co-authored-by: Andy Nonaka <AJNonaka@lbl.gov> * RZ abort message * reset benchmark after fixing guard-cell updates * fix typo * RZ doc * Update Source/Utils/WarpXUtil.cpp * Update Examples/Tests/PEC/inputs_particle_PEC_3d * changes suggested from code-review * set Enormal and Btangential in guard cell across PEC boundary * add more info about guard cell update in the docs * fix typo * ijk mirror only if ig>0 * update benchmarks * ignore unused k * temporarily revert guardcell damping for Cartesian * fix typo * dont set Etangential and Bnormal to zero if field is not nodal on boundary * set bindary int as boolean * fix high to hi * set default nox to 1 * particle shape for PEC test * update benchmarks for 2D comoving and galilean * reset benchmark for RZ test-cases * Add in benchmarks generated by @EZoni * Changing transverse boundaries to periodic for psatd galilean cases * resetting benchmark for comoving_hybrid_2d and galilean_hybrid_2d * at-least one guard cell must be filled for PEC * abort if PEC is used for PSATD * use new boundary interface to set none for rmin and rmax, since pec does not work for psatd * Update Source/WarpX.cpp * add doc mentioning PEC does not work for PSATD * missing semicolon * Update Source/BoundaryConditions/WarpX_PEC.H Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Update Source/BoundaryConditions/WarpX_PEC.H * lengthy comment for normal and tangential components at domain boundaries * eol fix * grammar * field_hi * reset benchmarks Co-authored-by: Andy Nonaka <AJNonaka@lbl.gov> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
2021-05-13Implemented query and getArrWithParser (#1936)Gravatar David Grote 2-8/+80
* Implemented query and getArrWithParser * Updated parameters.rst regarding expressions for multiple floats
2021-05-12BC : Interface for damping EB fields in guard cells in z-direction (#1953)Gravatar Revathi Jambunathan 3-1/+22
2021-04-27Ensure the geometry.coord_sys == 1 for RZ (#1918)Gravatar David Grote 1-0/+7
* Ensure the geometry.coord_sys == 1 for RZ * Fixed Examples/Tests/ElectrostaticSphere/inputs_rz
2021-04-15Boundary Condition : Interface with existing PML (#1768)Gravatar Revathi Jambunathan 3-5/+24
* Read boundary and set periodicity, enumerate BC types, added support for periodic * separate particle and field boudnary structs * Update comment for particle struct * default pml is 0, and reset lo, hi, and do_pml to 1 * turn on pml for MR * eol * remove duplication * resolving commit conflict * explicitly setting pml_HI_MR * default pml lo and hi to 0, and set MR pml lo and hi to the domain values if fine patch coincides with domain boundary * set lo and hi flag for pml when do pml = 1 and domain is non-periodic * remove commented line * add doc * Update Source/Utils/WarpXUtil.cpp remove empty line * Apply suggestions from code review Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Docs/source/usage/parameters.rst lower case for input * add do_pml flags for IonAcc2d and PlasmaMirror * add pml = true in PICMI for gaussian beam and plasma acceleration * pml is the default field BC * adding temporary defaults for field and particle BC using periodicity * fix temp initialization * set default to pec if input sets pml to 0 * fix typo * logic for both old and new pml interface * fix eol * change examples to original pml input with default values * Update Docs/source/usage/parameters.rst Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * fix comments Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Docs: fix .rst list Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>