aboutsummaryrefslogtreecommitdiff
path: root/Python/setup.py (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2021-08-05BinaryCollision: use more general particle data structure (#2137)Gravatar Neïl Zaim 4-36/+35
2021-08-05PEC Analysis: Remove Unused Imports (#2165)Gravatar Axel Huebl 2-2/+0
Fix a LGTM warning on unused imports in our PEC analysis scripts.
2021-08-04openPMD: Missing Include (#2162)Gravatar Axel Huebl 1-0/+1
Fix compile issue on Conda-Forge (Windows with Clang).
2021-08-04openPMD: Use Steps if != BTD (#2157)Gravatar Axel Huebl 8-19/+36
* openPMD: Use Steps if != BTD For all but back-transformed diagnostics, we can use efficient, temporally sequentially increasing writes to iteration numbers for iterations. This allows us to give a guarantee to HPC I/O libraries on how to arrange data, e.g., we can use ADIOS2 BeginStep() and EndStep(). This enables paths to: - streaming workflows, such as ADIOS2 SST or SSC, where we stage data over the network instead of using files https://openpmd-api.readthedocs.io/en/0.14.0/usage/streaming.html This mitigates: - host-side memory aggregation for ADIOS2 with openPMD `groupBased` iteration encoding https://openpmd-api.readthedocs.io/en/0.14.0/backends/adios2.html#memory-usage * openPMD: Open Iterations Explicitly Explicitly open iterations. Usually, file-open operations are delayed until the first load/storeChunk operation is flush-ed. In parallel contexts where we might want to do only particle writes from a few ranks but no field wries in the future, this will avoid that we run into hangs from the non-collective nature of the first flush. The Streaming API (i.e., Series::writeIterations()) will call this method implicitly as well, but back-transformed diags (particles) might still need this. * openPMD: 0.13.0+ Needed for streaming API and collective open.
2021-08-03openPMD: Style Cleaning (Dec/Def) (#2160)Gravatar Axel Huebl 2-33/+39
In our code base, definitions and declarations of functions need a space after their name. This makes them easy to search for. Ref.: https://warpx.readthedocs.io/en/21.08/developers/contributing.html#style-and-conventions
2021-08-03initialize guard cells for macroscopic properties (#2159)Gravatar Revathi Jambunathan 1-2/+2
2021-08-03Release 21.08 (#2158)Gravatar Axel Huebl 8-10/+10
* AMReX/PICSAR: 21.08 * WarpX: 21.08
2021-08-02Add predefined density profile to parameters documentation (#2155)Gravatar Neïl Zaim 1-1/+5
2021-08-02Allow extra particle attributes (besides ux, uy, uz and w) to be set at ↵Gravatar Roelof Groenewald 8-27/+257
particle creation in AddNParticles() (#2115) * exposes AddRealComp to Python to allow extra particle attributes to be added at runtime; also includes a new function to grab a particle data array from the name of the component rather than the index * added functionality to AddNParticles() to allow extra particle attributes to also be set during particle creation * added function to get index of a particle component given the PID name * changed new get component index and get_particle_arrays_from_comp_name functions to take species name as argument rather than species id * changed warpx_addRealComp to accept a species name as input and only add the new component for that species * added a test of the pywarpx bridge to get particle data and add new particle attributes at runtime * changed all particle interacting functions in libwarpx to use the species name rather than id, also changed the functions to get particle array data to use the component name rather than index * updated test according to PR #2119 changes * removed unneeded BL_ASSERT(nattr == 1) statement * fixed bug in add_particles to correctly determine the number of extra attributes * fixed bug in AddNParticles if fewer attribute values are passed than the number of extra arrays for the species * use isinstance(attr, ndarray) rather than type(attr) is np.ndarray * generalize_runtime_comps_io * fix OpenPMD * fix OpenPMD * fix plot flags in WritePlotFile * fix offset and comment * changed extra pid test to not use an underscore in the pid name * switched _libwarpx.py::add_particles to use kwargs to accept the weight and extra attribute arrays * License update in test file Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * fix typo * added a test with unique_particles=False * Apply suggestions from code review Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * updated docstring and comments Co-authored-by: atmyers <atmyers2@gmail.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-08-02BTD_ReducedSliceDiag: BTD Plotfiles (#2152)Gravatar Axel Huebl 1-1/+1
By accident, the 2nd test did not use plotfile output.
2021-08-02Remove predefined constants from example input files (#2153)Gravatar Neïl Zaim 7-16/+5
2021-08-02openPMD: `groupBased` Option Missing (#2149)Gravatar Axel Huebl 2-5/+8
The `groupBased` iteration encoding (input: `g`) was not parsed.
2021-07-30BTD: Don't Flush If Written (#2148)Gravatar Axel Huebl 1-5/+12
Written BTD buffers for lab snapshot data are reset to zero size (count). When we do the final write of all partly filled buffers in `FilterComputePackFlushLastTimestep`, we should not write such already completed backtransformed lab snapshots again.
2021-07-29PSATD: div Cleaning Implemented only with psatd.J_linear_in_time=1 (#2142)Gravatar Edoardo Zoni 1-0/+10
2021-07-29a few _rt (#2146)Gravatar MaxThevenet 1-15/+15
2021-07-29CI: Add Missing Python Analysis for EB Test (#2147)Gravatar Edoardo Zoni 1-1/+2
* CI: Add Missing Python Analysis for EB Test * Use 1 MPI Process for Azure
2021-07-27CI: Any yt works (#2066)Gravatar Axel Huebl 1-1/+1
Did not intent to commit that into mainline.
2021-07-27Rename: Optical Depths QED (#2140)Gravatar Axel Huebl 10-57/+57
This is renaming the runtime added optical depth scalars for QED physics just to create the same names in plotfile and openPMD output.
2021-07-26Removed n_buffer (#2139)Gravatar David Grote 2-2/+0
2021-07-26RZ PSATD: Multi-J Algorithm (#2111)Gravatar Edoardo Zoni 11-32/+392
* RZ PSATD: Implement Multi-J Algorithm * Implement J_linear_in_time Option * Reduce Style Changes * Move Copy/Zero/Scale Functions to SpectralFieldDataRZ * Remove Unused Member m_n_rz_azimuthal_modes from SpectralSolverRZ * Fix CI -Werror Warnings * Implement Same Changes of #2116, Cleaning * Fix Bug: Pass Correct dt to SpectralSolverRZ * Add CI Test * CI Test: Set random_theta = 0, Update Benchmark * Remove random_theta from Inputs * Update Benchmark of multi_J_rz_psatd
2021-07-26Generalize the way we handle runtime components when writing diagnostics (#2126)Gravatar Andrew Myers 2-39/+85
* generalize_runtime_comps_io * fix OpenPMD * fix OpenPMD * fix plot flags in WritePlotFile * fix offset and comment * fix regression
2021-07-26AMReX/PICSAR: Weekly Update (#2134)Gravatar Axel Huebl 2-2/+2
Update AMReX to AMReX-Codes/amrex@3181f76910e6ac28ec5e099cba3e192bfdbf9076 No changes im PICSAR since last update. ``` ./Tools/Release/updatePICSAR.py ./Tools/Release/updateAMReX.py ```
2021-07-26Docs: Update JSC Juwels-Booster (#2133)Gravatar Axel Huebl 2-3/+5
Update CUDA from 11.0 (default) to 11.3.
2021-07-26Docs: Update NERSC Cori (#2131)Gravatar Axel Huebl 1-8/+20
Update modules to latest CMake and CUDA. Make sure MPI is compatible and recommended. Link docs (https://docs-dev.nersc.gov/cgpu/).
2021-07-26Docs: Update LLNL Lassen/Quartz (#2130)Gravatar Axel Huebl 2-3/+3
Use latest CMake and latest C++17 capable CUDA.
2021-07-26Embedded Boundaries not Implemented in RZ (#2125)Gravatar Edoardo Zoni 1-0/+4
Fix #2099. This location for the abort message seemed appropriate to me, please feel free to suggest other locations, if necessary.
2021-07-26Ascent: Fixing shadowing warning (#2135)Gravatar Luca Fedeli 1-2/+2
2021-07-26PICMI inputs for MCC (#2098)Gravatar Roelof Groenewald 7-0/+282
* added functionality to picmi.py to initialize MCC collisions from python runscripts * bug fix and copyright declaration change * add Boltzmann's constant to picmi.py * added test for picmi MCC setup * set diagnostic output name for test and cleaned up analysis.py * fixed style issue with EOL white space after merge
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-24clean up documentation (#2127)Gravatar Revathi Jambunathan 2-49/+34
* clean up documentation * remove left-over function declaration not used or defined
2021-07-23Multi-J Algo: Remove Unnecessary Operations on F,G (#2122)Gravatar Edoardo Zoni 1-6/+6
2021-07-23Fix missing header file (#2123)Gravatar gpotter2 1-0/+2
2021-07-21PICMI - Embedded boundary (#2104)Gravatar Roelof Groenewald 6-0/+159
* added functionality to picmi.py to allow an embedded boundary to be set from a python run script * added test: embedded sphere run from python (the test is the same as ElectrostaticSphereEB) * added a line to prepare_file_travis.py so that tests with USE_EB=True are not included in Python CI test list * fixed import path in analysis.py file for new test * added WarpX_EB flag to setup.py so that embedded boundary functionality can be included in pip installs of pywarpx
2021-07-21Particle injection callback for ElectrostaticSolver (#2096)Gravatar nruof 1-1/+1
* Particle injection callback for ElectrostaticSolver * Move warpx_py_particleinjection to line 162, removed from OneStep_nosub * Space above particleinjection callback
2021-07-22Use IntVect Flags for F and G Index Types (#2118)Gravatar Edoardo Zoni 1-11/+6
2021-07-21Multi-J Algo: Make div(E)/div(B) Cleaning Optional (#2116)Gravatar Edoardo Zoni 5-42/+81
* Multi-J Algo: Make div(E)/div(B) Cleaning Optional * Remove Unnecessary Newlines
2021-07-21AMReX: ROCMClang CMake (#2120)Gravatar Axel Huebl 4-5/+9
* AMReX: 91fa2b7e6ff33117bd537635c8c55192359863a2 Include HIP ROCMClang recog. in AMReX: https://github.com/AMReX-Codes/amrex/pull/2184 * HIP CI: Use clang++ directly Looks like the C++14 flags are missing
2021-07-21Update picmi.py for new injection_style default (#2109)Gravatar Peter Scherpelz 1-1/+1
2021-07-20assert that the NCI corrector is used with Esirkepov only (#2114)Gravatar MaxThevenet 1-0/+6
2021-07-20simplify code (#2108)Gravatar Luca Fedeli 1-8/+3
2021-07-20ChecksumAPI: yt 4+ ds.force_periodicity() (#2117)Gravatar Axel Huebl 5-8/+32
* ChecksumAPI: yt 4+ ds.force_periodicity() Mitigate issues of the form ``` RuntimeError: yt attempted to read outside the boundaries of a non-periodic domain along dimension 0. Region left edge = -7.5e-06 code_length, Region right edge = 7.500000000000002e-06 code_length Dataset left edge = -7.5e-06 code_length, Dataset right edge = 7.5e-06 code_length This commonly happens when trying to compute ghost cells up to the domain boundary. Two possible solutions are to select a smaller region that does not border domain edge (see https://yt-project.org/docs/analyzing/objects.html?highlight=region) or override the periodicity with ds.force_periodicity() ``` * make yt3 compatible
2021-07-20AMReX/PICSAR: Weekly Update (#2107)Gravatar Axel Huebl 2-2/+2
Update AMReX to AMReX-Codes/amrex@ee8facf7e09d0b40af1fe680665660c24a19d32a No changes im PICSAR since last update. ``` ./Tools/Release/updatePICSAR.py ./Tools/Release/updateAMReX.py ```
2021-07-21Use only species name in libwarpx (#2119)Gravatar Roelof Groenewald 3-115/+75
* changed all particle interacting functions in libwarpx to use the species name rather than id, also changed the functions to get particle array data to use the component name rather than index * removed unneeded function declaration
2021-07-21Implements a periodically repeating plasma lenses (#2080)Gravatar David Grote 9-2/+300
* Implements a periodically repeating plasma lens * Added documentation for plasma lenses * Added m_n_lenses to avoid use of size in device code * Change arrays to device arrays * Put DeviceVectors in the MultiParticleContainer * Update Source/Particles/MultiParticleContainer.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Particles/Gather/GetExternalFields.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Added CI test * Updated CI test * LGTM clean up * Moved literal namespace inside the routine Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-07-21Use new boundary input (#2110)Gravatar Revathi Jambunathan 69-225/+335
* 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-20Python - add new particle attributes at runtime (#2112)Gravatar Roelof Groenewald 3-0/+156
* exposes AddRealComp to Python to allow extra particle attributes to be added at runtime; also includes a new function to grab a particle data array from the name of the component rather than the index * added function to get index of a particle component given the PID name * changed new get component index and get_particle_arrays_from_comp_name functions to take species name as argument rather than species id * changed warpx_addRealComp to accept a species name as input and only add the new component for that species
2021-07-19moved ScrapeParticles() out of a #ifdef WARPX_QED block (#2103)Gravatar Roelof Groenewald 1-11/+11
2021-07-19Docs: Dev Envs Update (RZ/openPMD) (#2101)Gravatar Axel Huebl 1-9/+26
- keep openPMD explicitly in the list as long GNUmake is used for `run_tests.sh` CI - add more info on BLAS++/LAPACK++ with Brew (manual)
2021-07-19added error message for invalid cross-section files in MCC setup (#2105)Gravatar Roelof Groenewald 1-0/+3
2021-07-19Fix Bug in Multi-J PSATD Equations (#2106)Gravatar Edoardo Zoni 1-3/+3