aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/PhysicalParticleContainer.cpp (follow)
AgeCommit message (Collapse)AuthorFilesLines
2021-02-08Fix: Missing Geometry Includes (#1690)Gravatar Axel Huebl 1-0/+1
2021-02-01Remove redundant "do_qed" option in inputfile (#1667)Gravatar Luca Fedeli 1-12/+7
* removed redundant do_qed option in inputfile * fixed bug
2021-01-22Add parameter for default galilean velocity (#1097)Gravatar Remi Lehe 1-4/+10
* Add parameter for default galilean velocity * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Fix bug in constructor of PhysicalParticleContainer * Use new input parameter in CI test Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <ezoni@lbl.gov>
2021-01-22Remove unused lines about particle filters (#1646)Gravatar NeilZaim 1-13/+0
2021-01-21Define: _OPENMP -> AMREX_USE_OMP (#1520)Gravatar Axel Huebl 1-6/+6
* Define: _OPENMP -> AMREX_USE_OMP Replace the define check of `_OPENMP` with the explicit backend control of `AMREX_USE_OMP` for parallel constructs. Doing so avoids that we accidentially turn on OpenMP, e.g. if a dependency pulls it in for linear algebra, I/O, etc. This can led to confusion if the user explicitly requested a serial build. Also, we might want to use OpenMP functionality here and there for auxiliary functions w/o having to use the AMReX OpenMP backend, i.e. because we compile for GPUs. * Add missing amrex::Gpu::notInLaunchRegion
2021-01-12Fix some other warnings (#1618)Gravatar Luca Fedeli 1-7/+9
* fix warnings * fixed bug
2020-12-14Made sure that n_rz_azimuthal_modes is declared int everywhere (#1571)Gravatar David Grote 1-1/+1
2020-12-09Use new parser for more real input parameters (#1564)Gravatar NeilZaim 1-2/+2
2020-11-30Electrostatic lab frame (#1531)Gravatar David Grote 1-3/+3
* Implemented lab frame electrostatic model * Small clean up of ComputeSpaceChargeField * Added ElectrostaticSphereLabFrame regression test
2020-11-02fixed calls to amrex::Random() to enable HIP compilation (#1487)Gravatar Luca Fedeli 1-1/+1
2020-10-26Explicit choice of `max_iters` for MLMG solver (#1471)Gravatar Igor Andriyash 1-0/+1
* added an option to set explicitely `max_iters` for MLMG solver * fix EOL white spaces * fix EOL white spaces 2
2020-10-19Replace wherever possible '.reset(new' with '= make_unique' (#1429)Gravatar Luca Fedeli 1-4/+4
* replace wherever possible .reset(new with = make_unique * fixed bug * fixed bug * revert WarpXOpenPMD.cpp to the original version * removed another .reset(new
2020-10-02Split resampling TinyProfiler entry into 2 (#1390)Gravatar NeilZaim 1-0/+13
2020-09-25Use amrex::ParallelForRNG for random number generation (#1373)Gravatar Weiqun Zhang 1-6/+7
* Use amrex::ParallelForRNG for random number generation In order to support RNG on non-Nvidia GPUs, we need to use amrex::ParallelForRNG for kernels with calls to AMReX random number generation functions. * missing a RandomEngine argument
2020-09-25Add CI test and documentation for leveling thinning algorithm (#1327)Gravatar NeilZaim 1-3/+4
* First working version of tests * Add comments to test * Add test in WarpX-test.ini and initial checksum json file * Add resampling to input parameters doc * Uncomment lines about checksum in analysis script + Fix minor typos * Add momentum in plotfiles (for checksum) + Fix minor typoes * Remove particle_theta from checksum json file * Remove rho from checksum json file * Fix syntax error in checksum json file * Add benchmark values * Update Docs/source/running_cpp/parameters.rst Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Have one Resampling object per species Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-09-21Coupling WarpX with an ✨improved✨ version of the QED library (#1198)Gravatar Luca Fedeli 1-16/+12
* Initial work to couple improved QED module to WarpX * WIP to couple with WarpX the new QED library * Continuing work to couple the new version of the QED library with WarpX * progress towards completing coupling with new version of QED library * WarpX coupled with new version of QED library * default behavior is to display table generation progress * some host device functions are now device only * fixed bug * bugfixing * updating tests * updated test * updated test * added initial version of tests (not working) * added check and updated a comment * fixed bug * added inputfiles and analysis script for new BW tests * test for BW process are ready * modified test * make lgtm happy * removed TABs * initial work to add QS tests (not working) * removed old tests * fixed bug in script * changed position of evolution of optical depth * progress with QSR tests * improved test * very low energy photons are always eliminated * added tests to regression suite * improved test * improved tests * removed redundant parameter * removed trailing white space * updated documentation * fix lgtm warnings * fixed missing check on chi parameter * fixed missing check on chi parameter & bugfixing * improved comments * increased tolerance in tests * updated units in test * now test succeds if the error is extremely small * updated checksums * fixed bug * fixed some unused or uninitialized variables warnings * now using ignore_unused instead of commenting out some variables * fixed warnings * partial fix of a test * fixed test * fixed test * added checksums * fixed tests * fixed benchmark for qed_schwinger2 * removed checksums for tests which do no exist anymore * fixed checksums for several qed tests * fixed checksums for several qed tests * fixed checksums * removed unwanted checksum * fixed checksum * removed files which should have been deleted * add some const * [skip ci] added some docstrings and some const * Update Source/Particles/ElementaryProcess/QEDInternals/BreitWheelerEngineWrapper.H Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/ElementaryProcess/QEDInternals/BreitWheelerEngineWrapper.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/ElementaryProcess/QEDInternals/QuantumSyncEngineWrapper.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * added some docstrings and some const * replaced ManagedVectors with DeviceVectors * Update Source/Particles/ElementaryProcess/QEDInternals/QedWrapperCommons.H Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * added some const * removed unwanted assert * updated comment * changed position of GPU synchronization directive * Update Docs/source/running_cpp/parameters.rst Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Examples/Modules/qed/quantum_synchrotron/analysis.py Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Examples/Modules/qed/quantum_synchrotron/analysis.py Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Examples/Modules/qed/breit_wheeler/analysis.py Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Examples/Modules/qed/breit_wheeler/analysis.py Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * add do_plot option to some analysis scripts * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * uncomment a line * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * simplified input scripts for BW tests * simplified input scripts for QS tests * removed unwanted files * simplified analysis script * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * reverted modification to schwinger analysis script * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * remove outdated comment * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * fix warnings * made test more robust * reset benchmark for qed_breit_wheeler_2d * fixed bug in test * make test more robust * made test more robust * Update Examples/Modules/qed/quantum_synchrotron/analysis.py Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update Examples/Modules/qed/quantum_synchrotron/analysis.py Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> * Update run_test.sh Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Tools <warpx@lbl.gov> Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-09-17Fix few compilation warnings (shift) (#1310)Gravatar Luca Fedeli 1-5/+8
* fix << declaration of galilean_shift shadows a member of WarpX >> * fix << unused mu_stag >> * fix << unused uxp, uyp, uzp >> * renamed galilean_shift (member variable of WarpX class) into m_galilean_shift * renamed v_galilean to m_v_galilean when appropriate * fixed bug introduced in latest commit * fix <<comparison of integer expressions of different signedness>> * Update Source/FieldSolver/FiniteDifferenceSolver/MacroscopicEvolveE.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-09-14Implement leveling thinning algorithm (#1283)Gravatar NeilZaim 1-1/+2
* Initial commit (not working) * First working version * Cleaning and adding Doxygen comments * Apply suggestions from code review * Move findParticlesInEachCell to Utils/ParticleUtils Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-09-14Clean up profiling labels (#1320)Gravatar Edoardo Zoni 1-8/+8
2020-09-08Remove ManagedVector from Particles/ (#1273)Gravatar WeiqunZhang 1-28/+35
2020-09-03Add structure for resampling algorithms (#1265)Gravatar NeilZaim 1-0/+20
* First version of resampling structure * Remove new warnings * Added Doxygen comments * Minor modifications * Add do_resampling() in OneStep_sub1 * Apply suggestions from code review Co-authored-by: Luca Fedeli <luca.fedeli.88@gmail.com> * Use mutable in ResamplingTrigger and replace run with operator() * Apply suggestions from code review Co-authored-by: MaxThevenet <maxence.thevenet@desy.de> * Make LevelingThinning operator() final Co-authored-by: Luca Fedeli <luca.fedeli.88@gmail.com> Co-authored-by: MaxThevenet <maxence.thevenet@desy.de>
2020-09-01 Fix 🩹(almost) all warnings ⚠️ with default configuration in 2D ↵Gravatar Luca Fedeli 1-0/+8
(DIM=2, openMP+MPI, double precision, no advanced solvers, no QED, native output) (#1264) Depends on #1263
2020-08-31Fix 🩹 (almost) all warnings ⚠️ with default configuration (DIM=3, ↵Gravatar Luca Fedeli 1-1/+4
openMP+MPI, double precision, no advanced solvers, no QED, native output) (#1263) This PR should fix almost all the compilation warnings in the default configuration (DIM=3, openMP+MPI, double precision, no advanced solvers, no QED, native output...). Or at least it does that on my system (my compiler is `g++ (Ubuntu 9.3.0-10ubuntu2) 9.3.0` ). I have just two residual warnings: ### 1 ``` [ 89%] Building CXX object CMakeFiles/WarpX.dir/Source/Parser/wp_parser.lex.cpp.o wp_parser.lex.c:1356:17: warning: ‘void yyunput(int, char*)’ defined but not used [-Wunused-function] ``` I don't know if `yyunput(int, char*)` is there for a reason, even if it is not used. So I didn't do anything. ### 2 ``` [ 96%] Building CXX object CMakeFiles/WarpX.dir/Source/Utils/CoarsenIO.cpp.o /home/luca/Projects/warpx_dir/WarpX/Source/Particles/WarpXParticleContainer.cpp: In member function ‘void WarpXParticleContainer::AddNParticles(int, int, const ParticleReal*, const ParticleReal*, const ParticleReal*, const ParticleReal*, const ParticleReal*, const ParticleReal*, int, const ParticleReal*, int, int)’: /home/luca/Projects/warpx_dir/WarpX/Source/Particles/WarpXParticleContainer.cpp:102:44: warning: unused parameter ‘nattr’ [-Wunused-parameter] 102 | int nattr, const ParticleReal* attr, int uniqueparticles, int id) ``` The first line of `AddNParticles` is `BL_ASSERT(nattr == 1); //! @fixme nattr is unused below: false sense of safety` . So I thought that there might be something to fix here and I didn't do anything.
2020-08-27Use Long to store pid (#1266)Gravatar Andrew Myers 1-2/+2
2020-08-24Fix some warnings (#1239)Gravatar Luca Fedeli 1-1/+1
This PR fixes the source of several compilation warnings. Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-08-06swap fieldGather and external fields (#1235)Gravatar Revathi Jambunathan 1-6/+8
* swap fieldGather and external fields * clarify EB external on particle for RZ * swap order and initialize Exp-Bzp for Photons
2020-07-30Add input parameter to control Galerkin-scheme gather (#1191)Gravatar danielbelkin 1-4/+4
* Rename l_lower_order_in_v to galerkin_interpolation * Changed galerkin_interpolation from int to bool * ... and same for member versions. * Add input parameter to control galerkin_interpolation * Update documentation * semicolon * Update Docs/source/running_cpp/parameters.rst Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Docs/source/running_cpp/parameters.rst Resolve ambiguity Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Fix doc * Add references to documentation Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-07-28[tiny] Avoid particles with do_not_gather=1 be pushed in the last half step ↵Gravatar Luca Fedeli 1-14/+21
(#1210) * species with do_not_gather=1 are not anymore pushed in the last halft step * now do_not_gather is used just to avoid doing doGatherShapeN * Minor fix * fix involuntary capture of *this in lambda
2020-07-24do not directly access the particle id and cpu in favor of going through the ↵Gravatar Andrew Myers 1-1/+1
getter / setter methods. These members are implemented using an anonymous struct that will be going away soon in amrex, so this type of access is deprecated. (#1208)
2020-07-24fix bug which prevented evolution of optical depth (#1205)Gravatar Luca Fedeli 1-1/+1
2020-07-14make fft_do_time_averaging a member of class WarpX (#1165)Gravatar MaxThevenet 1-10/+6
2020-07-08Averaged Galilean PSATD (#869)Gravatar Olga Shapoval 1-6/+13
* Read Galilean velocity * Prepare structures for Galilean solver * Started implementing Galilean equations * Analytical limits for X1, X2, X3, X4 coefficients added * Slight changes added * Added Galilean position pusher * Scale galilean velocity * Remove unneeded Abort * Fix Galilean pusher * Allocate Theta2 array * Fix definition of coefficients * Increase guard cells for Galilean * Add guard cell in particle exchange * Added modifications for PICSAR galilean branch * Averaged coefficients added * Type corrected * v_gal added to warpx_current_deposition * v_gal added to WarpXParticleContainer.H * Bug fixed - update particle x-position over one time step * Fix issues with merge from dev * Averaged fileds allocated on fine patch (Ex) * Preparation for merging dev into galilean. * remove TABs by hand * Removed a tab. * Redeclared v_galilean as a vector & related changed * Added an automated test * Moved v_galilean inside WarpX constructor * Added analysis script for the automated test * Changed name of the automated test to galilean_psatd * Added InitializeSpectralCoefficients method * Removed temporary comments * Averaged fields added to FiledGather * Added infinite order k[i] * Setting kx_mod( kz_mod) = 0 for index = nx/2(-nz/2) * Adding galilean shift * Implemented galilean shift * Changed method's name from GalileanShift to ShiftGalileanBoundary * Added doxygen string for ShiftGalileanBoundary * Removed never used method LowerCornerWithCentering * Removed temporary comments * Removed dt as a variable from DepositCharge method and its dependencies * Changing type of v_galilean from amrex::Vector to amrex::Array * Changed back ng_fft to be equal nox_fft * Changed v_galilean's type from amrex::vector to amrex::array * Removed type * Removed temporary comments * Added flag 'do_time_averaging' to swith from unaveraged to averaged Galilean PSATD * Updated doxygen * Small fix on using 'do_time_averaging' flag * Remove some commented Print statements * [skip ci] Further cleanup * Fix compilation * Guard cells update of the averaged E,B fields * Corrected included header file accordingly * Removed EOL * Removed EOL * Corrected path of the included header file * Updated choice of the spectral solver. * Cleanup. * use amrex::exp instead of std::exp * no backward FFT for avg fields if avg is off * Need to shift avg fields in MoveWindow * Further cleaning * Added 2D automated test for averaged PSATD * Added automated 2D and 3D tests for averaged PSATD * Removed comments * Added specifications for averaged Galilean PSATD tests. * Bug fixed - do FillBoundary of the averaged fields only if averaged is activated * Do shiftMF of the averaged fields only if fft_do_time_averaging=true * Add checksum json benchmarks for averaged Galilean PSATD * Add missing indentation * Add missing indentation * Updated automated analysis script * Updated diags period * Fixed bug: no backtransform of the averaged fields when WARPX_DIM_RZ is set * Fixed an uninitialized variable * Clean-up * Changed permissions for analysis_avg_*d.py * Compactified variables initialization via conditional assignment * Initialized averaged E_avg, B_avg fields * Updated automated test for 2D averaged galilean PSATD * Updated benchmark for 2D averaged galilean PSATD * Updated automated 2D averaged PSATD test & benchmark * Updated automated 3D averaged PSATD test & benchmark * Fixed typo * Updated benchmark averaged_galilean_3d_psatd * Initialize the averaged fields only if the averaged Galilean PSATD algorithm is enabled * Encreased time step for automated 3D averaged Galilean PSATD (to be equal c*dt=dz while dz/dx=3) * Updated 3D automated test: specified standard deviations `.ux_th, .uy_th, .uz_th` along each direction * Typo from the previous commit: enabled the averaged algorithm * Trying out another input parameters for 3D averaged automated test with v_gal = v_plasma * Update benchmark for previously added 3D averaged automated test * Update 2D averaged automated test and corresponding benchmark * Revert "Updated diags period" This reverts commit 7334729b05e96589e020c981efdb430ca095991d. * Cleanup: removed unwanted comment. * Added descriptions of the 2D and 3D automated tests for the averaged Galilean PSATD. * Updated value calculated via standard Galilean PSATD. * Encreased relative error tolerance for 3D automated test for the averaged Galilean PSATD. * Removed to avoid duplication since it already specified in the corresponding 2D/3D input scripts. * Removed unwanted empty lines * Added spaces after function's names * Removed unwanted empty line * Removed * Fixed indentation * Cleanup: removed #include <math.h> * Cleanup: removed empty lines and fixed indentation * Added 'AvgGalileanAlgorithm.cpp' to 'CMakeLists.txt' Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
2020-07-03assert the particles are positive to check for overflow (#1142)Gravatar Andrew Myers 1-0/+3
2020-06-29Add plasma refactor (#830)Gravatar Andrew Myers 1-198/+222
* add 'overlapsWith' methods to InjectorPosition and PlasmaInjector * add helper routine for computing positions within a cell * use new function in AddPlasma * use the XDim3 directly * refactor add plasma to only add particles in cells that could overlap with the plasma region * handle refined injection * account for lorentz tranform in first pass * can't capture statics in device lambda like that * eol * fix logic error * fix RZ compilation * eol * a few docstrings * missed a spot * include the bulk momentum in the first pass * reuse applyBallisticCorrection function where we can * simplify the applyBallisticCorrection function * eol * fix equation for ballistic correction in the gamma_boost > 1 case * need a sync here now * fix typo in docstring * use _rt * add _rt * add some _rt * update the benchmarks because the particle id / cpu numbers (and occassionally the momenta, when that is random) are different now
2020-06-25[small] Inject Particles from openPMD in RZ (#1113)Gravatar L. Diana Amorim 1-5/+5
* Added description of singleparticle particle injection style * Revert "Added description of singleparticle particle injection style" This reverts commit f02d842c935311458024da6e661950742de24f63. * Tried to inject particles only in simulation Box * Added Todo for multiple levels of mesh refinement * Explain todo better * Added x and y_shifts and replaced cascading ifs by bools and continue * Replaced cascading ifs by bools and continue * Replaced TODO by FIXME as reviewer suggested * Made the insidebounds function use box limits as defaults * Fixed identation issue * Fixed identation issue * Fixed identation issue * Added to Docs the default for xmin,xmax and other dirs * Fix missing y and z dirs * Update Source/Initialization/PlasmaInjector.cpp * Fixed PlasmaInjector limits with periodic condition * Removed check if 3D because now ylims are +/-inf * Restored if to check for y velocity also in 2D/RZ * Fixed Docs to recent changes * Update Source/Initialization/PlasmaInjector.cpp * Fix extra bracket * Added information about RZ geometry for openPMD external file * Fix to issue without periodic boundaries * Added variable rz_take_absolute, to allow to inject x<0 particles in RZ * Fix to declaration of addplasmafromfile rz_take_absolute * Fix to declaration of addplasmafromfile rz_take_absolute * Fixed documentation to include rz_take_absolute option * Fix merging conflict * Final fix to xmax=inf in RZ * In RZ particles are injected in x,y,z * Fixed remaining rz_take_absolute * Converted (x,y,z) to (r,0,z) * Fixed bounds limits (r,z) but injection is in 3D * Re-fix to insideBounds() * AMReX assert of periodic in RZ * Removed Assert -> went to PR 1115 by @dpgrote * Fixed issues pointed out by reviewer @dpgrote * Undo changes for future PR * Undo changes for future PR
2020-06-25Moved doxygen to header file for consistency (#1116)Gravatar L. Diana Amorim 1-10/+0
2020-06-22Remove persistent E+B (#1050)Gravatar Andrew Myers 1-370/+232
* add functor for doing the tmp particles copy for the back-transformed diagnosti * merge the particle push options into one kernel * EOL * fix assertion * add a FieldGatherandPushPX method to PhysicalParticleContainer * handle offset in copyAttribs * allow this functor to be constructed even it we aren't doing the back transformed diagnostics * EOL * update the overloads of PushPX for the Photon and RigidInjected ParticleContainers * function for dispatching the right field gather * init this val to 0.0 * fix some typos * handle scaling the fields for rigid injection * EOL * don't need to get pointers to E and B arrays in PushPX any more. * actually I can't remove these yet * EOL * variable order bug * move the QED stuff to the proper place * EOL * make sure we don't build these functors unless the runtime options are toggled * EOL * perform the field gather prior to the photon particle push * remove E and B components and FieldGather methods. Reimplement PushP for rigid injected and physical particles * update ionization to do field gather inline * remove E and B from the particle diagnostics * don't write E or B in these tests for particles * add missing files * remove EB from the Regtest ini file too * no need to do this twice * important typo * also do the gather inline for the QED processes that need to * move these sources inside ifdef for QED * fix bug in RZ * remove some fields from the Python tests. * remove all particle E and B comps from json benchmarks * don't assert that Ey is the langmuir output * remove uy from this output * update test * restore the mesh fields I turned off by mistake * turn off field IO for a few python tests I missed * fix typo * reset Langmuir_multi benchmark * update Langmuir_multi_nodal benchmark * update single precision langmuir bench * update psatd single precision languir one too * also do ionization_lab * finally, ionizaiton_boost * update benchmarks_json/Langmuir_multi_psatd.json * update benchmarks_json/Langmuir_multi_psatd_current_correction.json * update benchmarks_json/Langmuir_multi_psatd_momentum_conserving.json * update benchmarks_json/Langmuir_multi_psatd_nodal.json * remove the particle E and B from the choices in the docs * fix offset bug * also add the Gather subdirectory * Update Source/WarpX.H Co-authored-by: MaxThevenet <mthevenet@lbl.gov> * add docstring for LowerCornerWithGalilean * add new source files to CMakeLists.txt * also need to update the GPU regression tests * update the name of the output file for this python test * remove field gather call from FieldDiagnostics * fix typo in docstring * init fields to 0 * add docstring to the CopyParticleAttribs constructor * some explicit amrex::namepace Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
2020-06-22AddPlasmaFromFile fix for periodic boundaries (#1089)Gravatar L. Diana Amorim 1-3/+3
* Added description of singleparticle particle injection style * Revert "Added description of singleparticle particle injection style" This reverts commit f02d842c935311458024da6e661950742de24f63. * Tried to inject particles only in simulation Box * Added Todo for multiple levels of mesh refinement * Explain todo better * Added x and y_shifts and replaced cascading ifs by bools and continue * Replaced cascading ifs by bools and continue * Replaced TODO by FIXME as reviewer suggested * Made the insidebounds function use box limits as defaults * Fixed identation issue * Fixed identation issue * Fixed identation issue * Added to Docs the default for xmin,xmax and other dirs * Fix missing y and z dirs * Update Source/Initialization/PlasmaInjector.cpp * Fixed PlasmaInjector limits with periodic condition * Removed check if 3D because now ylims are +/-inf * Restored if to check for y velocity also in 2D/RZ * Fixed Docs to recent changes * Update Source/Initialization/PlasmaInjector.cpp * Fix extra bracket * Tiny bool cleanup Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-06-19Fix Race condition in GetParticleSlice for BTD (#1105)Gravatar Revathi Jambunathan 1-4/+10
* define temp array outside the ParIter loop for GetParticleSlice * Moving definition of temp arrays closer to the ParIter loop where used with comments
2020-06-10[Mini] Z Offset to loaded openPMD particles (#1070)Gravatar L. Diana Amorim 1-3/+5
* Added description of singleparticle particle injection style * Revert "Added description of singleparticle particle injection style" This reverts commit f02d842c935311458024da6e661950742de24f63. * Added use_q_shift and q_shift variables * Removed use_q_shift * Added description of q_shift to the Docs * Replaced q_shift by z_shift as suggested by @ax3l * Added recommendation to PWFA example * z_shift should be optional (used query instead of get) * Fix compile problem Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-05-25Merge particle push (#1036)Gravatar Andrew Myers 1-150/+26
* add functor for doing the tmp particles copy for the back-transformed diagnosti * merge the particle push options into one kernel * EOL * fix assertion * allow this functor to be constructed even it we aren't doing the back transformed diagnostics * EOL * init this val to 0.0 * put the push type selection in a device function so it can be reused * EOL * add docstring for the pusher selector function * EOL
2020-05-19Assign the external E and B inside the field gather kernel (#1029)Gravatar Andrew Myers 1-75/+11
* Assign the external E and B inside the field gather kernel * EOL * actually add new file * EOL * cannot do this yet * update comments * put shared code in base class * EOL * make clear in the name that these are external fields
2020-05-15Crash if deprecated input parameters are used. (#981)Gravatar MaxThevenet 1-0/+19
* crash for deprecated input parameters * typo
2020-05-06Load Particles: external_file MPI Support (#956)Gravatar Axel Huebl 1-64/+70
* Load Particles: external_file MPI Support Split and add MPI support for particle loading from an openPMD file. Changes input file to allow overwriting the charge and mass by user input (with a warning). Allows to add "weighting" to files as constant record (ED-PIC extension). Co-Authored-By: Ligia Diana Amorim <ldianaamorim@lbl.gov> Co-Authored-By: Maxence Thevenet <mthevenet@lbl.gov> * Remove RZ guard. Particles are 3D, if this is not yet working we can fix it later. Co-authored-by: Ligia Diana Amorim <ldianaamorim@lbl.gov> Co-authored-by: Maxence Thevenet <mthevenet@lbl.gov>
2020-05-05Switch costs to LayoutData (#970)Gravatar Michael E Rowan 1-3/+3
Cleanup Cleanup
2020-05-04Fix some tests on Battra (#976)Gravatar MaxThevenet 1-53/+0
* fix some tests on Battra * Fix arguments for tests to pass
2020-04-30Fix bug when compiling OpenPMD + 2D (#963)Gravatar MaxThevenet 1-4/+4
* WARPX_DIM_2D doesn't exist, this should be WARPX_DIM_RZ * Update Source/Particles/PhysicalParticleContainer.cpp Co-Authored-By: L. Diana Amorim <LDianaAmorim@lbl.gov> Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov>
2020-04-28Style change to match the standard (#957)Gravatar Michael E Rowan 1-2/+2
2020-04-24Read species distribution from OPMD - part 3 (#883)Gravatar L. Diana Amorim 1-28/+93
* Added <species>.profile=external_file and .profile_file * Added description of input parameters to Docs * Changed from profile to injection option for external file * Fix typo in amrex abort message (due to copy paste) * Added the OpenPMD use amrex abort message * Minor fix - not sure how to remove EOL issue * Tried to add AddExternalFileBeam functon to PhysicalParticleContainer * Trued to fix EOL white space issue * Added read/print species name from OPMD file * Fixed OpenPMD charge and mass read * Added number of particles in species * Added nparts and converted charge/mass units to SI * Fix to nr of particles * Added q_tot parameter to determine part weight * Added macroparticle's weight * Fixed std::int typo - use only int * Added read x,y and z + ifdef 3D * Added velocity of particles and stored in container * Converted velocities to SI * No need to specfy momentum distribution if external file is used * Update Source/Initialization/PlasmaInjector.cpp Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Particles/PhysicalParticleContainer.cpp Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Particles/PhysicalParticleContainer.cpp Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Particles/PhysicalParticleContainer.H Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Particles/PhysicalParticleContainer.cpp Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * No need to include openPMD header yet * Fixed const in AddExternalFileBeam * Fix compatibility with read_opmd and read_opmd_2 * Corrected position and charge units/sign * Added Doc note and abort message for RZ * Fix typo and EOL * Minor fixes * Fixed details. Added fix to EOL - testing * Changed to physical_charge and explained it in Docs * Fix header extra openPMD include files * Removed additional debugging comments * Try doxygen again * Fix plasmainjector physical_q_tot * Change apart to auto (not long as in gaussian beam injection style) Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Correct for new type of npart Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> * Removed Geant4 renormalization * Read openPMD file and checked its units * Trying to correct momentum information in plotfiles * Compilation error - > SegFault 11 * Added unitSI() to each position/momentum direction. Compilation SegFault * Re-structured code to use only once series.flush() * Commented out amrex::Print() s * Path to fix issue * Update after review * Chanegd <physical_q_tot> to <q_tot> and made it optional * Fixed documentation typo and re-organized it * Added const to npart as per reviewer recommendation * Fixed issue with velocity - which became momentum * Fixed 2D and 3D options + documentation * Implemented fixes from past reviewsand fixed duplicate entry in Docs * Fix auto in iterator in for loop * Added fixes according to reviewer * Revert "Added fixes according to reviewer" This reverts commit 0a485d83c28014c8b6f53a30f26719f23f89bad5. * Fixed IO block and reordered logic with Axel * Fix spaces Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-04-23New diags also handle particle (#938)Gravatar MaxThevenet 1-2/+2
* new class for particle diagnostics * copy all diag properties from WarpXParticleContainer to ParticleDiag * revert change of input example * add some comments * eol * OpenPMD flush format for new diags * eol * fix compilation for new diags with QED * fix bug when QED off * fix typo and include suggestion from review * Remove Dead Code, Add TODO Co-Authored-By: MaxThevenet <mthevenet@lbl.gov> * changes due to code review Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>