IPPL tagshttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags2023-05-07T14:54:27+02:00https://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/IPPL-3.0.1IPPL-3.0.1<p data-sourcepos="1:1-1:334" dir="auto">Fixes 1D ALPINE and a bug in the CG solver and adds the ability to create copies of fields without going through expressions (<a href="/OPAL/Libraries/ippl/-/merge_requests/171" data-reference-type="merge_request" data-original="!171" data-link="false" data-link-reference="false" data-project="709" data-merge-request="2940" data-project-path="OPAL/Libraries/ippl" data-iid="171" data-container="body" data-placement="top" title="Bug fixes" class="gfm gfm-merge_request">!171</a>). ALPINE now lets the user choose CG or FFT for any dimensionality, where supported. Fixes CPU-build detection and uses C++20 accordingly. Buffer overallocation is now an IPPL-wide command line argument.</p>2023-05-07T14:54:27+02:00vinciguerra_aalessandro.vinciguerra@psi.chhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/IPPL-3.0.0IPPL-3.0.0<p data-sourcepos="1:1-1:547" dir="auto">IPPL's 3.0.0 release introduces rank independence. All IPPL entities and operations now support an arbitrary<sup data-sourcepos="1:109-1:112" class="footnote-ref"><a href="#fn-1-691" id="fnref-1-691" data-footnote-ref>1</a></sup> number of dimensions, where meaningful. FFTs are externally handled and only support 2D and 3D fields. Curl and the cross product remain exclusive to 3D entities for this release. Unit tests verify functionality for entities in 1D up to 6D<sup data-sourcepos="1:353-1:356"><a href="#fn-1" id="fnref-1-2" data-footnote-ref>1</a></sup>. This release also adds wrapper functions for Kokkos' parallel dispatch, allowing the user to write rank independent kernels as well by taking advantage of IPPL's new functor wrapper object.</p>
<p data-sourcepos="3:1-3:23" dir="auto"><strong data-sourcepos="3:1-3:22">Additional changes</strong>:</p>
<ul data-sourcepos="4:1-7:0" dir="auto">
<li data-sourcepos="4:1-4:26">Adds unit tests for FFTs</li>
<li data-sourcepos="5:1-5:62">Adds ranged iteration for <code data-sourcepos="5:30-5:41">ippl::Vector</code> and <code data-sourcepos="5:49-5:61">ippl::NDIndex</code>
</li>
<li data-sourcepos="6:1-7:0">Buffer overallocation factor is now an IPPL-wide command line argument</li>
</ul>
<section data-sourcepos="8:1-8:110" data-footnotes class="footnotes">
<ol>
<li data-sourcepos="8:1-8:110" id="fn-1-691">
<p data-sourcepos="8:7-8:110">Kokkos only supports up to 6D range policies, so IPPL entities can be 1-dimensional up to 6-dimensional. <a href="#fnref-1-691" data-footnote-backref data-footnote-backref-idx="1" aria-label="Back to reference 1" class="footnote-backref"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji></a> <a href="#fnref-1-2" data-footnote-backref data-footnote-backref-idx="1-2" aria-label="Back to reference 1-2"><gl-emoji title="leftwards arrow with hook" data-name="leftwards_arrow_with_hook" data-unicode-version="1.1">↩</gl-emoji><sup>2</sup></a></p>
</li>
</ol>
</section>2023-05-03T21:57:34+02:00vinciguerra_aalessandro.vinciguerra@psi.chhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/IPPL-2.4.0IPPL-2.4.0<p data-sourcepos="1:1-1:17" dir="auto"><strong data-sourcepos="1:1-1:17">Major changes</strong></p>
<ul data-sourcepos="2:1-8:0" dir="auto">
<li data-sourcepos="2:1-2:47">Use Kokkos::complex directly in Heffte (<a href="/OPAL/Libraries/ippl/-/issues/115" data-reference-type="issue" data-original="#115" data-link="false" data-link-reference="false" data-project="709" data-issue="2758" data-project-path="OPAL/Libraries/ippl" data-iid="115" data-issue-type="issue" data-container="body" data-placement="top" title="Use Kokkos::complex as data type for heffte calls" class="gfm gfm-issue">#115</a>)</li>
<li data-sourcepos="3:1-3:28">Added curl operator (<a href="/OPAL/Libraries/ippl/-/issues/124" data-reference-type="issue" data-original="#124" data-link="false" data-link-reference="false" data-project="709" data-issue="3078" data-project-path="OPAL/Libraries/ippl" data-iid="124" data-issue-type="issue" data-container="body" data-placement="top" title="Add curl operator" class="gfm gfm-issue">#124</a>)</li>
<li data-sourcepos="4:1-4:40">Added clang format (<a href="/OPAL/Libraries/ippl/-/merge_requests/155" data-reference-type="merge_request" data-original="!155" data-link="false" data-link-reference="false" data-project="709" data-merge-request="2817" data-project-path="OPAL/Libraries/ippl" data-iid="155" data-container="body" data-placement="top" title="Reformat code" class="gfm gfm-merge_request">!155</a>, <a href="/OPAL/Libraries/ippl/-/merge_requests/159" data-reference-type="merge_request" data-original="!159" data-link="false" data-link-reference="false" data-project="709" data-merge-request="2844" data-project-path="OPAL/Libraries/ippl" data-iid="159" data-container="body" data-placement="top" title="Reformat reduction macros" class="gfm gfm-merge_request">!159</a>, <a href="/OPAL/Libraries/ippl/-/merge_requests/160" data-reference-type="merge_request" data-original="!160" data-link="false" data-link-reference="false" data-project="709" data-merge-request="2847" data-project-path="OPAL/Libraries/ippl" data-iid="160" data-container="body" data-placement="top" title="Reorder #include directives" class="gfm gfm-merge_request">!160</a>)</li>
<li data-sourcepos="5:1-5:33">Removed hard-coded types (<a href="/OPAL/Libraries/ippl/-/issues/142" data-reference-type="issue" data-original="#142" data-link="false" data-link-reference="false" data-project="709" data-issue="3481" data-project-path="OPAL/Libraries/ippl" data-iid="142" data-issue-type="issue" data-container="body" data-placement="top" title="Remove hard-coded types" class="gfm gfm-issue">#142</a>)</li>
<li data-sourcepos="6:1-6:31">Added Hessian operator (<a href="/OPAL/Libraries/ippl/-/issues/135" data-reference-type="issue" data-original="#135" data-link="false" data-link-reference="false" data-project="709" data-issue="3321" data-project-path="OPAL/Libraries/ippl" data-iid="135" data-issue-type="issue" data-container="body" data-placement="top" title="Hessian operator" class="gfm gfm-issue">#135</a>)</li>
<li data-sourcepos="7:1-8:0">Added Bi-harmonic solver (<a href="/OPAL/Libraries/ippl/-/issues/137" data-reference-type="issue" data-original="#137" data-link="false" data-link-reference="false" data-project="709" data-issue="3459" data-project-path="OPAL/Libraries/ippl" data-iid="137" data-issue-type="issue" data-container="body" data-placement="top" title="add biharmonic solver" class="gfm gfm-issue">#137</a>)</li>
</ul>
<p data-sourcepos="9:1-9:17" dir="auto"><strong data-sourcepos="9:1-9:17">Minor changes</strong></p>
<ul data-sourcepos="10:1-10:104" dir="auto">
<li data-sourcepos="10:1-10:104">Various bug fixes and minor changes (<a href="/OPAL/Libraries/ippl/-/issues/117" data-reference-type="issue" data-original="#117" data-link="false" data-link-reference="false" data-project="709" data-issue="2997" data-project-path="OPAL/Libraries/ippl" data-iid="117" data-issue-type="issue" data-container="body" data-placement="top" title="clang has problems with int64_t in combination with Kokkos" class="gfm gfm-issue">#117</a>, <a href="/OPAL/Libraries/ippl/-/issues/120" data-reference-type="issue" data-original="#120" data-link="false" data-link-reference="false" data-project="709" data-issue="3021" data-project-path="OPAL/Libraries/ippl" data-iid="120" data-issue-type="issue" data-container="body" data-placement="top" title="Origin check in FFTPoissonSolver.hpp is wrong" class="gfm gfm-issue">#120</a>, <a href="/OPAL/Libraries/ippl/-/issues/130" data-reference-type="issue" data-original="#130" data-link="false" data-link-reference="false" data-project="709" data-issue="3248" data-project-path="OPAL/Libraries/ippl" data-iid="130" data-issue-type="issue" data-container="body" data-placement="top" title="Fix exit and cleanup error" class="gfm gfm-issue">#130</a>, <a href="/OPAL/Libraries/ippl/-/issues/132" data-reference-type="issue" data-original="#132" data-link="false" data-link-reference="false" data-project="709" data-issue="3258" data-project-path="OPAL/Libraries/ippl" data-iid="132" data-issue-type="issue" data-container="body" data-placement="top" title="kernel-renaming" class="gfm gfm-issue">#132</a>, <a href="/OPAL/Libraries/ippl/-/issues/140" data-reference-type="issue" data-original="#140" data-link="false" data-link-reference="false" data-project="709" data-issue="3475" data-project-path="OPAL/Libraries/ippl" data-iid="140" data-issue-type="issue" data-container="body" data-placement="top" title="fix bug in Field.cpp in unit_tests/Field" class="gfm gfm-issue">#140</a>, <a href="/OPAL/Libraries/ippl/-/issues/141" data-reference-type="issue" data-original="#141" data-link="false" data-link-reference="false" data-project="709" data-issue="3480" data-project-path="OPAL/Libraries/ippl" data-iid="141" data-issue-type="issue" data-container="body" data-placement="top" title="Pass mesh as parameter in FFT and Field to avoid defaulting to double uniform cartesian" class="gfm gfm-issue">#141</a>, <a href="/OPAL/Libraries/ippl/-/issues/143" data-reference-type="issue" data-original="#143" data-link="false" data-link-reference="false" data-project="709" data-issue="3529" data-project-path="OPAL/Libraries/ippl" data-iid="143" data-issue-type="issue" data-container="body" data-placement="top" title="add Efield check in biharmonic test" class="gfm gfm-issue">#143</a>, <a href="/OPAL/Libraries/ippl/-/issues/144" data-reference-type="issue" data-original="#144" data-link="false" data-link-reference="false" data-project="709" data-issue="3531" data-project-path="OPAL/Libraries/ippl" data-iid="144" data-issue-type="issue" data-container="body" data-placement="top" title="remove"if" in origin check in FFTPoissonSolver green's function" class="gfm gfm-issue">#144</a>, <a href="/OPAL/Libraries/ippl/-/issues/145" data-reference-type="issue" data-original="#145" data-link="false" data-link-reference="false" data-project="709" data-issue="3534" data-project-path="OPAL/Libraries/ippl" data-iid="145" data-issue-type="issue" data-container="body" data-placement="top" title='fix "unused variable" in ParameterList unit test' class="gfm gfm-issue">#145</a>, <a href="/OPAL/Libraries/ippl/-/issues/147" data-reference-type="issue" data-original="#147" data-link="false" data-link-reference="false" data-project="709" data-issue="3537" data-project-path="OPAL/Libraries/ippl" data-iid="147" data-issue-type="issue" data-container="body" data-placement="top" title="Confusion about what type of error is used in Hessian Operator Test Case" class="gfm gfm-issue">#147</a>, <a href="/OPAL/Libraries/ippl/-/merge_requests/125" data-reference-type="merge_request" data-original="!125" data-link="false" data-link-reference="false" data-project="709" data-merge-request="2241" data-project-path="OPAL/Libraries/ippl" data-iid="125" data-container="body" data-placement="top" title="Intel compiler 2021.3.0 fixes" class="gfm gfm-merge_request">!125</a>)</li>
</ul>2023-05-03T14:24:44+02:00frey_mhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/Scaling_study_for_Alpine_paperScaling_study_for_Alpine_paper<p data-sourcepos="1:1-1:86" dir="auto">This is the version used for the scaling study. It uses Kokkos 3.5.00 and Heffte 2.2.0</p>2022-02-23T18:07:11+01:00Sriramkrishnan Muralikrishnanhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/IPPL-2.3.1IPPL-2.3.1<p data-sourcepos="1:1-1:27" dir="auto"><strong data-sourcepos="1:1-1:27">Minor changes/Bug-fixes</strong></p>
<ul data-sourcepos="2:1-2:92" dir="auto">
<li data-sourcepos="2:1-2:92">Removed some left over boost calls and directory inclusions in test programs of IPPL-2.3.0</li>
</ul>2021-12-25T12:39:24+01:00muralikrishnanhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/IPPL-2.3.0IPPL-2.3.0<p data-sourcepos="1:1-1:17" dir="auto"><strong data-sourcepos="1:1-1:17">Major Changes</strong></p>
<ul data-sourcepos="2:1-8:0" dir="auto">
<li data-sourcepos="2:1-3:25">Boost dependency is removed and we use std::chrono for the timers instead of boost timers. Only the wall time
is measured and reported.</li>
<li data-sourcepos="4:1-5:11">FFT interface updated to include new options from heffte v 2.2.0. Also, the updated interface can do Sine and Cosine
transforms.</li>
<li data-sourcepos="6:1-6:173">Solvers submodule is merged in to the IPPL repo itself. This is for simplicity. Consequently a new cmake flag <code data-sourcepos="6:114-6:127">ENABLE_SOLVERS</code> has to be turned on to compile the solvers.</li>
<li data-sourcepos="7:1-8:0">The plasma physics mini-apps from the ALPINE project has been moved to a separate directory named <code data-sourcepos="7:102-7:107">alpine</code>. The idea behind this is test directory is supposed to be a playground for testing things and ALPINE is an application based on IPPL. A new cmake flag <code data-sourcepos="7:262-7:274">ENABLE_ALPINE</code> needs to be turned on for compiling these mini-apps which in turn requires <code data-sourcepos="7:353-7:369">ENABLE_SOLVERS=ON</code> and <code data-sourcepos="7:377-7:389">ENABLE_FFT=ON</code>.</li>
</ul>
<p data-sourcepos="9:1-9:17" dir="auto"><strong data-sourcepos="9:1-9:17">Minor Changes</strong></p>
<ul data-sourcepos="10:1-10:144" dir="auto">
<li data-sourcepos="10:1-10:144">The cmake flags <code data-sourcepos="10:20-10:35">ENABLE_IPPLTESTS</code> and <code data-sourcepos="10:43-10:58">BUILD_UNIT_TESTS</code> have been changed to <code data-sourcepos="10:83-10:94">ENABLE_TESTS</code> and <code data-sourcepos="10:102-10:118">ENABLE_UNIT_TESTS</code> for consistency reasons.</li>
</ul>2021-12-24T10:27:34+01:00frey_mhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/IPPL-2.2.0IPPL-2.2.0Version used to obtain CPU and GPU benchmark results on Piz Daint for Alpine. Requires the specific heFFTe commit e08e630 in the master (almost similar to heffte v 2.1.0 or less with a bug fix).<p data-sourcepos="1:1-1:194" dir="auto">Version used to obtain CPU and GPU benchmark results on Piz Daint for Alpine. Requires the specific heFFTe commit e08e630 in the master (almost similar to heffte v 2.1.0 or less with a bug fix).</p>
<p data-sourcepos="3:1-3:17" dir="auto"><strong data-sourcepos="3:1-3:17">Major changes</strong></p>
<ul data-sourcepos="4:1-9:0" dir="auto">
<li data-sourcepos="4:1-4:102">Particle load balancing using orthogonal recursive bisection added (semester project of M. Ligotino)</li>
<li data-sourcepos="5:1-5:64">All periodic BCs for scatter and gather operations implemented</li>
<li data-sourcepos="6:1-7:93">In the solvers submodule, CG solver (Bachelors' thesis of A. Vinciguerra) and FFT-based free space Poisson
solvers such as Hockney-Eastwood and Vico-Greengard (Masters' thesis of S. Mayani) integrated</li>
<li data-sourcepos="8:1-9:0">More mini-apps such as Landau damping and two-stream/bump-on-tail instability added</li>
</ul>
<p data-sourcepos="10:1-10:27" dir="auto"><strong data-sourcepos="10:1-10:27">Minor changes/bug-fixes</strong></p>
<ul data-sourcepos="11:1-13:49" dir="auto">
<li data-sourcepos="11:1-11:64">BC application for particles made faster by avoiding branching</li>
<li data-sourcepos="12:1-12:55">Bug in the time integration of Penning trap corrected</li>
<li data-sourcepos="13:1-13:49">Host/device warnings for GPU compilations fixed</li>
</ul>2021-12-14T12:02:57+01:00muralikrishnanhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/mpich-error-cscs-supportmpich-error-cscs-supportSnapshot of codebase that produces the MPI memory errorSriramkrishnan Muralikrishnanhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/IPPL-2.1.0IPPL-2.1.0<p data-sourcepos="1:1-1:287" dir="auto">Memory optimizations: Introduce the buffer factory interface, allowing MPI communication buffers to be allocated a single time. Redesign particle deletion to work in-place. Kokkos buffer resizing no longer unnecessarily preserves old data. Reduce host-space allocations for MPI requests.</p>
<p data-sourcepos="3:1-3:118" dir="auto">Structural changes: Add the plasma mini-apps and remove or redesign redundant test programs. Introduce the FFT solver.</p>2021-09-01T17:23:50+02:00vinciguerra_aalessandro.vinciguerra@psi.chhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/IPPL-2.0.0IPPL-2.0.0<p data-sourcepos="1:1-1:39" dir="auto">First IPPL release with Kokkos support.</p>2021-09-01T16:57:48+02:00vinciguerra_aalessandro.vinciguerra@psi.chhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/Multiple-LFieldsMultiple-LFieldsLast IPPL version allowing multiple LFields. According to some benchmarks we realized that only a single LField is used per MPI rank in our PIC applications. Hence, we remove this feature.frey_mhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/IPPL-02-11-2020IPPL-02-11-2020Updated IPPL 1.0 version with fixed PIC3d testSriramkrishnan Muralikrishnanhttps://gitlab.psi.ch/OPAL/Libraries/ippl/-/tags/IPPL-1.0IPPL-1.0Original IPPL versionMatthias Frey