Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

254 improve quadrature to obtain values on device #6

Closed
wants to merge 773 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
773 commits
Select commit Hold shift + click to select a range
e9e4be8
Resolve "Diagnostic for growth rate does not support LandauXYVxVy"
Geoflow Jun 12, 2024
711b6a8
Stop using the function `is_spline_interpolation_mesh_uniform`
EmilyBourne Jun 12, 2024
1ed4fe4
Reduce duplication when outputting coordinates
gdgirard Jun 13, 2024
d55dc8f
Adding of the collision/ folder with the collision operator in (speci…
gdgirard Jun 13, 2024
51dea4b
Reduce duplication in domain initialisation from splines
EmilyBourne Jun 13, 2024
9ad96a6
Reduce duplication for input of simulation configuration
EmilyBourne Jun 14, 2024
7b3930a
Reduce duplication in species initialisation
gdgirard Jun 14, 2024
2374e9d
Reduce duplication of species definition in geometries
gdgirard Jun 17, 2024
d00b9a6
Remove unnecessary internal tags in intra-collisions
EmilyBourne Jun 18, 2024
afd095c
Remove duplication when building a MaxwellianEquilibrium
gdgirard Jun 20, 2024
394fd3a
Remove duplication for perturbation initialization
gdgirard Jun 20, 2024
ace850d
"LandauXYVxVy is not numerically tested"
Geoflow Jun 20, 2024
fd45344
Templatization of functions to build GhostedVx and GhostedStaggeredVx…
yanmnc Jun 21, 2024
1213ed9
Clean geometryXYVxVY simulations
gdgirard Jun 21, 2024
5238afb
Add type to hold values and derivatives
EmilyBourne Jun 24, 2024
8f546c7
Remove duplicate continuous dimension in XVx poisson FEM
Jun 25, 2024
1c6f11a
Remove duplicate continuous dimensions in PoissonRTheta
Jun 25, 2024
303a106
LAPACKE in CI
Jun 25, 2024
1eadca0
Advection operator 1D for templated geometry
PaulineVidal Jun 26, 2024
80ba49c
Install OpenMPI to docker environment
EmilyBourne Jun 27, 2024
3b7847a
Clean up quadrature tests
EmilyBourne Jun 27, 2024
9424642
first modifications
Geoflow Jun 27, 2024
0face43
Merge branch 'main' into 254-improve-quadrature-to-obtain-values-on-d…
Geoflow Jun 27, 2024
6910052
recover lost test
Geoflow Jun 28, 2024
4b4f2ea
1d quadrature test ok on cpu, 2d still to fix
Geoflow Jun 28, 2024
b4a8c1c
quadrature 1d and splines pass test on cpu and gpu, mmultidimensional…
Geoflow Jul 2, 2024
55f573a
improve readability
Geoflow Jul 2, 2024
2ea4c4c
fix neumann quadrature issue
Geoflow Jul 2, 2024
f7e3e7f
multid attempt
Geoflow Jul 2, 2024
162d74e
gpu attemp for nuemann spline quadrature
Geoflow Jul 2, 2024
af4b6e1
Missing links to the source folder of some README
PaulineVidal Jul 8, 2024
b40b63e
tests pass on cpu, segfault on gpu
Geoflow Jul 8, 2024
d5b23be
simpson and neuman_spline to improve, 2d fail on gpu
Geoflow Jul 8, 2024
c347ef2
remove unused print
Geoflow Jul 8, 2024
c95bceb
fix neumann spline_quadrature by keeping coeff computations on cpu
Geoflow Jul 8, 2024
73ccc75
fix one test
Geoflow Jul 8, 2024
9936a6f
template return type by execspace
Geoflow Jul 8, 2024
375dbc0
Resolve "Add a Guiding Center simulation"
PaulineVidal Jul 8, 2024
f199c32
add std move
Geoflow Jul 8, 2024
89d6de5
reduce code duplication by using functions
Geoflow Jul 9, 2024
9d9d45c
homogenize use of kokkosallocator
Geoflow Jul 9, 2024
d96206d
Merge branch 'main' into 254-improve-quadrature-to-obtain-values-on-d…
Geoflow Jul 9, 2024
87d6796
Add device_t<> for VectorField too
PaulineVidal Jul 9, 2024
f4d815a
Fix quadrature tests
Jul 9, 2024
49ae08e
remove switch in tests
Geoflow Jul 9, 2024
20ec4ae
fix merge conflicts
Geoflow Jul 9, 2024
83f1ae5
Clean CMake files
EmilyBourne Jul 9, 2024
375bb47
improve doc
Geoflow Jul 9, 2024
680d60a
Clean README files
EmilyBourne Jul 9, 2024
28a9fc0
Add README in geometryRTheta/geometry/
PaulineVidal Jul 9, 2024
f2092e6
propagate templated quadrature in XVx geometry, works only on cpu, ne…
Geoflow Jul 9, 2024
f689736
Fix speciesinit
Jul 9, 2024
608f5f3
allocation space based on template parameter, does not compile
Geoflow Jul 9, 2024
abc1630
Add a spline builder on multipatch geometry
PaulineVidal Jul 9, 2024
48000ad
fix execution space
Geoflow Jul 10, 2024
27ded2a
switch to defaultexecutionspace
Geoflow Jul 10, 2024
3ba7b5f
fix allocation mismatch, improve readability
Geoflow Jul 10, 2024
03e70da
allocation depend on execspace, fix memory space mismatch
Geoflow Jul 10, 2024
1c64cdc
propagate in tests
Geoflow Jul 10, 2024
c5b0272
Merge branch 'main' into 254-improve-quadrature-to-obtain-values-on-d…
Geoflow Jul 10, 2024
925bee3
remove incorrect use of chunk
Geoflow Jul 10, 2024
28f07ec
apply MR suggestion
Geoflow Jul 10, 2024
848621e
fix computation issue, revert on host
Geoflow Jul 10, 2024
b9ad6d7
propagate modifications in XVx simulztions
Geoflow Jul 10, 2024
93dc4c4
propagate modifications in tests
Geoflow Jul 10, 2024
3aa27d9
propagate in landau 4d
Geoflow Jul 10, 2024
4697724
ddc sync
Jul 11, 2024
95ac6c2
Only run DDC GPU tests if DDC is modified
EmilyBourne Jul 11, 2024
57d4cce
Fix MomentsInitialisation tests undeterminism
Jul 11, 2024
56114aa
Neutrals realistic reaction rates
Jul 12, 2024
d5a0cf1
Fix naming conventions
EmilyBourne Jul 12, 2024
6bc1b10
Fix distribution function diagnostic XVx
Jul 12, 2024
242e7ec
Make DDC into a submodule
EmilyBourne Jul 15, 2024
46fbb30
Neutrals temperature non constant
Jul 16, 2024
e7b2f29
Fix neutrals utils post-process
Jul 16, 2024
e623b64
Decouple FEM poisson solver from QN solver
EmilyBourne Jul 16, 2024
d920489
Improve neutral density conservation plot
Jul 16, 2024
50d8e4d
merge
Geoflow Jul 17, 2024
38efc16
Update Ginkgo version
EmilyBourne Jul 17, 2024
4ba683d
Create (vpar,mu) collision simulation
gdgirard Jul 17, 2024
55fbac5
CICD toolchains
EmilyBourne Jul 17, 2024
305fc31
Charge species must be a float
gdgirard Jul 17, 2024
4c7aa69
ddc sync
Jul 17, 2024
3d016ff
Propagate more readable version of ddc::remove_dims_of
Jul 18, 2024
77318e6
Create CSR Batched solver
Geoflow Jul 18, 2024
440cd6c
cmake set BOOL used with CACHE
Jul 18, 2024
eb3d7b2
ddc sync
Jul 18, 2024
51248d3
Clean collisions interface code
EmilyBourne Jul 18, 2024
e258094
Fix and document synchronicity issues
EmilyBourne Jul 18, 2024
5ca86ec
BUGFIX: Include PDI in unit_tests_pde_solvers not required
gdgirard Jul 19, 2024
71d023e
Update spack environments on Persee
tpadioleau Jul 19, 2024
9bdd08b
Merge branch '279-update-spack-environments-on-persee' into 'main'
EmilyBourne Jul 19, 2024
227eab3
Adastra update toolchain
Jul 19, 2024
dcd181b
Merge branch 'adastra-update-toolchain' into 'main'
EmilyBourne Jul 19, 2024
e32c694
Create ScopeGuards after possible std::exit
Jul 19, 2024
118f375
Merge branch 'create-scopeguards-after-possible-stdexit' into 'main'
EmilyBourne Jul 19, 2024
e65beb4
Adapt fluid moments operators to get GPU allocated data
Geoflow Jul 19, 2024
8a074b0
Merge branch 'ak_fluid_moment_on_gpu' into 'main'
EmilyBourne Jul 19, 2024
f006e2c
Implement MPI AlltoAll transposer
EmilyBourne Jul 19, 2024
da6fffa
Merge branch 'ebourne-127-mpi-alltoall' into 'main'
EmilyBourne Jul 19, 2024
678bb40
Kokkos kernels splines backend
Jul 22, 2024
9265cdb
Merge branch 'kokkos-kernels-backend-release' into 'main'
EmilyBourne Jul 22, 2024
404f9d7
Put quadrature on GPU
EmilyBourne Jul 22, 2024
3dadf89
Merge branch 'gpu_quadrature' into 'main'
EmilyBourne Jul 22, 2024
fa69d9c
Let Quadrature integrate functions
EmilyBourne Jul 22, 2024
b791aed
Merge branch 'ebourne_quadrature_functions' into 'main'
EmilyBourne Jul 22, 2024
4878479
Add batch dimension to quadrature operator
EmilyBourne Jul 22, 2024
0771841
Merge branch 'ebourne-253-batch-quadrature' into 'main'
EmilyBourne Jul 22, 2024
406ba5a
DISCOVERY_MODE PRE_TEST in all tests
Jul 22, 2024
b2cb43c
Merge branch 'issue-280' into 'main'
EmilyBourne Jul 22, 2024
cf29251
merge main, fix quadrature tests
Geoflow Jul 23, 2024
3eec46f
fix XVx geometry tests
Geoflow Jul 23, 2024
dccbab9
collisions_interspecies must be an input
gdgirard Jul 23, 2024
492487d
Merge branch 'gdgirard-287-collisions_interspecies-must-be-an-input' …
EmilyBourne Jul 23, 2024
c44ee5d
rename to avoid multiple definition error
Geoflow Jul 23, 2024
764e693
fix quadrature on (r,theta) geometry
Geoflow Jul 23, 2024
a351758
Add better documentation and remove unnecessary templates in Collisions
EmilyBourne Jul 23, 2024
d1fefde
Merge branch 'ebourne_collision_rename' into 'main'
EmilyBourne Jul 23, 2024
89e93c1
clang format
Geoflow Jul 23, 2024
ffc41ad
use quadrature coeff on default execspace
Geoflow Jul 24, 2024
fc92faa
remove std::move from functions in order to avoid pessimizing-move issue
Geoflow Jul 24, 2024
1afb3c9
fix execution space mismatch
Geoflow Jul 24, 2024
f9d1f54
Resolve "Update koliop to 0.0.18"
etiennemlb Jul 24, 2024
0adb6d8
Merge branch '294-update-koliop-to-0-0-18' into 'main'
gdgirard Jul 24, 2024
16a666c
ddc sync
Jul 24, 2024
9621ac1
Merge branch 'ddc-sync-230724' into 'main'
gdgirard Jul 24, 2024
21dfdee
Merge branch 'main' into 254-improve-quadrature-to-obtain-values-on-d…
Geoflow Jul 25, 2024
92c5b45
Extract collisions_dimensions from CollisionSpVparMu
EmilyBourne Jul 25, 2024
71cdff1
Merge branch 'ebourne_collision_readability' into 'main'
EmilyBourne Jul 25, 2024
971af4d
Fix interpolator 2D test if KOKKOS_TOOLS_LIBS is set
Jul 25, 2024
fb5bdc5
Merge branch 'issue-185' into 'main'
EmilyBourne Jul 25, 2024
0179f78
Add compilation debugging tips to documentation
EmilyBourne Jul 25, 2024
209d4f4
Merge branch 'ebourne_compilation_tips' into 'main'
EmilyBourne Jul 25, 2024
c8d5f10
Merge branch 'main' into 254-improve-quadrature-to-obtain-values-on-d…
Geoflow Jul 25, 2024
0af491e
remove multidimensional Simpson coefficients
Geoflow Jul 25, 2024
0dbdae2
use ExecSpace to cal quadrature coeffs
Geoflow Jul 25, 2024
568508a
Compute nustar0_r from nustar0_at_rpeak
gdgirard Jul 25, 2024
adc2de0
Merge branch 'gdgirard_291-compute-nustar0_r-for-nustar0_at_rpeak' in…
EmilyBourne Jul 25, 2024
9beaf5b
Plasma-Neutral coupling GeometryXVx
Jul 25, 2024
d043a4d
Merge branch 'josub_neutralplasma_coupling' into 'main'
EmilyBourne Jul 25, 2024
e4ae94a
ddc sync
Jul 26, 2024
6464af1
Merge branch 'ddc-sync-260724' into 'main'
EmilyBourne Jul 26, 2024
ad40aea
Build derivatives out of interpolator
Jul 26, 2024
9f303ab
Merge branch 'build-derivs-out-of-interpolator' into 'main'
EmilyBourne Jul 26, 2024
4f6a4bd
Create collision test for deltat equal to 0
gdgirard Jul 26, 2024
429d609
Merge branch 'gdgirard-319-create-collision-test-for-deltat-equal-to-…
EmilyBourne Jul 26, 2024
bb21b22
Gpu polar poisson solver
Geoflow Jul 26, 2024
5387130
Merge branch 'gpu_polar_poisson_solver' into 'main'
EmilyBourne Jul 26, 2024
66c1324
Remove unnecessary use of interpolation_domain method
EmilyBourne Jul 26, 2024
fe95e8c
Merge branch 'ebourne_interpolation_domain' into 'main'
EmilyBourne Jul 26, 2024
5c9826e
Resolve "Create a Patch class and sample patch geometries"
PaulineVidal Jul 26, 2024
bcc9256
Merge branch 'pvidal_296-create-a-patch-class-and-sample-patch-geomet…
EmilyBourne Jul 26, 2024
75d3df8
Avoid renaming conflicts
EmilyBourne Jul 27, 2024
9a34108
Merge branch 'ebourne_renaming_conflict' into 'main'
gdgirard Jul 27, 2024
e5c11c8
merge main
Geoflow Jul 29, 2024
2fe7f89
use constant views
Geoflow Jul 29, 2024
1762a9b
apply MR suggestion
Geoflow Jul 29, 2024
36cc725
apply MR suggestion
Geoflow Jul 29, 2024
40f2c4d
fix test
Geoflow Jul 29, 2024
6ed60ca
"MatrixBatchCsr raising warnings"
Geoflow Jul 29, 2024
2239219
Merge branch '323-matrixbatchcsr-raising-warnings' into 'main'
EmilyBourne Jul 29, 2024
bc3a03c
Neutrals options in Yaml file
Jul 29, 2024
c3de30d
Merge branch 'josub_neutrals_yamloptions' into 'main'
EmilyBourne Jul 29, 2024
3e1b2b6
Restructure geomVparMu geometry
gdgirard Jul 29, 2024
a71c72c
Merge branch 'gdgirard-324-restructure-geomvparmu-geometry' into 'main'
EmilyBourne Jul 29, 2024
40f0bbd
Improve MatrixBatchEll/Csr logger
Jul 29, 2024
5456345
Merge branch 'improve-matrix-batch-logger' into 'main'
EmilyBourne Jul 29, 2024
47384b0
Rename aliases defined in src/speciesinfo/
EmilyBourne Jul 29, 2024
0780463
Merge branch 'renaming_species' into 'main'
EmilyBourne Jul 29, 2024
da87fe8
New ddc aliases for Gysela
EmilyBourne Jul 29, 2024
bf1c721
Merge branch 'ebourne_gysela_ddc_aliases' into 'main'
EmilyBourne Jul 29, 2024
8ae33a2
Update naming conventions in quadrature
EmilyBourne Jul 29, 2024
0a76c2e
Merge branch 'renaming_quadrature' into 'main'
EmilyBourne Jul 29, 2024
d2e3dd2
Update naming conventions in io
EmilyBourne Jul 29, 2024
7b1681e
Merge branch 'renaming_io' into 'main'
EmilyBourne Jul 29, 2024
1a50b4c
Update naming conventions in interpolation
EmilyBourne Jul 29, 2024
4f012db
Merge branch 'renaming_interpolation' into 'main'
EmilyBourne Jul 29, 2024
ebabafc
Update naming conventions in advection
EmilyBourne Jul 30, 2024
a53def9
Merge branch 'renaming_advection' into 'main'
EmilyBourne Jul 30, 2024
cb41029
Update naming conventions in Geometry class
EmilyBourne Jul 30, 2024
9321518
Merge branch 'renaming_geometry_class' into 'main'
EmilyBourne Jul 30, 2024
4e6ba69
merge main, fix naming convention conflicts
Geoflow Jul 30, 2024
712ac3c
replace span_view by get_field
Geoflow Jul 30, 2024
8040cd0
replace domain by idx_range in one file
Geoflow Jul 30, 2024
4ccefcb
replace IDimSp by Species in XVx tests
Geoflow Jul 30, 2024
1941a8b
Merge branch 'main' into 254-improve-quadrature-to-obtain-values-on-d…
Geoflow Jul 30, 2024
bf430d0
fix one conflict
Geoflow Jul 30, 2024
ef2b14b
Update Interface and Edge classes.
PaulineVidal Jul 30, 2024
1a79c46
Merge branch 'pvidal_297-update-interface-and-edge-classes' into 'main'
EmilyBourne Jul 30, 2024
eccd5ea
Update naming conventions in geometryXYVxVy
EmilyBourne Jul 30, 2024
c8175e2
Merge branch 'renaming_xyvxvy' into 'main'
EmilyBourne Jul 30, 2024
4ac138d
Update naming conventions in SLL
EmilyBourne Jul 30, 2024
a392218
Merge branch 'renaming_sll' into 'main'
EmilyBourne Jul 30, 2024
a569d4b
Remove filter on documentation errors in src
EmilyBourne Jul 30, 2024
9173ed6
Merge branch 'ebourne-268-no-doc-errors-in-src' into 'main'
EmilyBourne Jul 30, 2024
c929815
Update naming conventions in multipatch
EmilyBourne Jul 30, 2024
91754ba
Merge branch 'renaming_multipatch' into 'main'
EmilyBourne Jul 30, 2024
f5b7027
ddc sync
Jul 31, 2024
b8f4ae6
Merge branch 'ddc-sync-300724' into 'main'
EmilyBourne Jul 31, 2024
a8ef298
Remove GetBatchCsr test
Jul 31, 2024
0b6656f
Merge branch 'remove-get-batch-csr' into 'main'
EmilyBourne Jul 31, 2024
3380dcf
Update naming conventions in 5D geometry
EmilyBourne Jul 31, 2024
10d2b26
Merge branch 'renaming_5D' into 'main'
EmilyBourne Jul 31, 2024
43cb3e4
Update naming conventions for compute norms
EmilyBourne Jul 31, 2024
b0462b5
Merge branch 'renaming_compute_norms' into 'main'
EmilyBourne Jul 31, 2024
1680941
Update naming conventions in mpi_parallelisation
EmilyBourne Jul 31, 2024
2a47ece
Merge branch 'renaming_mpi' into 'main'
EmilyBourne Jul 31, 2024
6ecf47d
merge and fix conflicts
Geoflow Jul 31, 2024
59d4416
Update naming conventions for collisions and VparMu geometry
EmilyBourne Jul 31, 2024
4f34121
Merge branch 'renaming_collisions' into 'main'
EmilyBourne Jul 31, 2024
6a2bf76
Update naming conventions in timesteppers
EmilyBourne Jul 31, 2024
00973b8
Merge branch 'renaming_timestepper' into 'main'
EmilyBourne Jul 31, 2024
77eb48a
Move spline quadrature in ddc
Jul 31, 2024
ea3c420
Merge branch 'move-spline-quadrature-in-ddc' into 'main'
EmilyBourne Jul 31, 2024
3c26fa6
fix testcollisions
Geoflow Jul 31, 2024
d498929
Merge branch 'main' into 254-improve-quadrature-to-obtain-values-on-d…
Geoflow Jul 31, 2024
3c2835a
Update naming conventions in RTheta geometry
EmilyBourne Jul 31, 2024
73c2529
Merge branch 'renaming_rtheta' into 'main'
EmilyBourne Jul 31, 2024
bb81f28
Update naming conventions in geometryXVx
EmilyBourne Jul 31, 2024
4cc9a2c
Merge branch 'renaming_xvx' into 'main'
EmilyBourne Jul 31, 2024
954e237
Update naming conventions in XY geometry
EmilyBourne Jul 31, 2024
70dfe83
Merge branch 'renaming_xy' into 'main'
EmilyBourne Jul 31, 2024
fa5c414
Unbatched solvers in MatrixBatchCsr
Jul 31, 2024
4be8d88
Merge branch 'unbatched-solver-in-matrix-batch-csr' into 'main'
EmilyBourne Jul 31, 2024
267a1f5
Update naming conventions in PDE solvers
EmilyBourne Jul 31, 2024
6c9069c
Merge branch 'renaming_pde_solvers' into 'main'
EmilyBourne Jul 31, 2024
6fc41ab
Realign MatrixBatch classes on ddc::SplinesLinearSolver
Jul 31, 2024
39022a6
Merge branch 'align-matrix-batch-on-splines-linear-solver' into 'main'
EmilyBourne Jul 31, 2024
7172c8a
Merge branch 'main' into 254-improve-quadrature-to-obtain-values-on-d…
Geoflow Aug 1, 2024
c563da8
allow choice of allocation space for spline quad coeffs using ExecSpace
Geoflow Aug 1, 2024
701903e
fix conflicts, all test passon either cpu and gpu
Geoflow Aug 1, 2024
3762471
fix indentation
Geoflow Aug 1, 2024
9f9c694
Merge remote-tracking branch 'origin/main' into 254-improve-quadratur…
Geoflow Aug 1, 2024
146e159
apply MR suggestions
Geoflow Aug 2, 2024
5f9166c
modify Readme files
Geoflow Aug 2, 2024
caeec9b
replace get_domain by get_idx_range
Geoflow Aug 2, 2024
5be05fd
follow naming convention
Geoflow Aug 2, 2024
c657eb0
minor fix, remove device_t
Geoflow Aug 2, 2024
758420d
fix test, follow naming conventions
Geoflow Aug 2, 2024
c43fe51
use DField
Geoflow Aug 2, 2024
10cf39f
fix typo
Geoflow Aug 2, 2024
5bb0d05
revert irrelevant change
Geoflow Aug 2, 2024
e85ff1a
add template parameter
Geoflow Aug 2, 2024
9199ba2
apply MR suggestion
Geoflow Aug 2, 2024
865b7ac
use switch instead of if condition
Geoflow Aug 2, 2024
1f60d8e
remove device_t , clang format
Geoflow Aug 2, 2024
8ffb3e9
forgotten switch
Geoflow Aug 2, 2024
ea450be
use parenthesis for safety
Geoflow Aug 2, 2024
de15118
add forgotten speciesinfo
Geoflow Aug 2, 2024
3014109
gpu does not compile
Geoflow Aug 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
111 changes: 111 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: docker

on:
push:
branches:
- 'main'
pull_request:
jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push to tag
uses: docker/build-push-action@v3
with:
context: ./docker/gyselalibxx_env
cache-from: type=registry,ref=ghcr.io/gyselax/gyselalibxx_env:latest
pull: true
push: true
tags: ghcr.io/gyselax/gyselalibxx_env:${{ github.sha }}
-
name: Build and push latest
if: github.event_name == 'push' && github.ref_name == 'main'
uses: docker/build-push-action@v3
with:
context: ./docker/gyselalibxx_env
cache-from: type=registry,ref=ghcr.io/gyselax/gyselalibxx_env:latest
pull: true
push: true
tags: ghcr.io/gyselax/gyselalibxx_env:latest

tests:
runs-on: ubuntu-latest
needs: docker
container:
image: ghcr.io/gyselax/gyselalibxx_env:${{ github.sha }}
options: --user root
strategy:
matrix:
toolchain: [tests_toolchain.cmake, tests_release_toolchain.cmake]
steps:
-
name: Checkout gyselalibxx
uses: actions/checkout@v4
with: { submodules: recursive }
-
name: Run tests
run: |
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/docker.gyselalibxx_env/${{ matrix.toolchain }} ..
cmake --build . -j 4
ctest -j 2 --timeout 5 --output-junit tests.xml
- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: success() || failure() # always run even if the previous step fails
with:
report_paths: './build/test.xml'

Docs:
if: github.event_name == 'push' && github.ref_name == 'main'
needs: docker
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
path: code_branch
- name: Checkout documentation
uses: actions/checkout@v4
with:
ref: documentation
path: doc_branch
- name: Install doxygen
run: |
sudo apt install doxygen
shell: bash
- name: Generate docs
run: |
cmake -DGYSELALIBXX_COMPILE_SOURCE=OFF -DBUILD_DOCUMENTATION=1 -B build-docs code_branch
cmake --build build-docs
shell: bash
- name: Update documentation
run: |
cd doc_branch
git rm -r *
cp -r ../build-docs/docs/html/* .
git add .
git config --global user.name "GitHub CI Documentation builder"
git config --global user.email "username@users.noreply.github.com"
git commit -m "Update docs" || true
git push
shell: bash
env:
GH_TOKEN: ${{ github.token }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/build*/
*.pyc
/log.build.*
/log.prepare.*
168 changes: 107 additions & 61 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,81 +1,127 @@
cmake_tests_non_periodic:
only: [ main, merge_requests ]

include:
- local: 'ci_tools/reusable_ci_jobs.yml'

cmake_tests:
extends: .cmake_tests
image: ghcr.io/gyselax/gyselalibxx_env
variables:
RELATIVE_RESTART_TOLERANCE: '0.0'
ABSOLUTE_RESTART_TOLERANCE: '0.0'
TOOLCHAIN: '${CI_PROJECT_DIR}/toolchains/docker.gyselalibxx_env/tests_toolchain.cmake'

cmake_tests_Release:
extends: .cmake_tests
image: ghcr.io/gyselax/gyselalibxx_env
variables:
RELATIVE_RESTART_TOLERANCE: '0.0'
ABSOLUTE_RESTART_TOLERANCE: '0.0'
TOOLCHAIN: '${CI_PROJECT_DIR}/toolchains/docker.gyselalibxx_env/tests_release_toolchain.cmake'

cmake_tests_Release_OMP:
extends: .cmake_tests
image: ghcr.io/gyselax/gyselalibxx_env
variables:
RELATIVE_RESTART_TOLERANCE: '1e-14'
ABSOLUTE_RESTART_TOLERANCE: '1e-14'
TOOLCHAIN: '${CI_PROJECT_DIR}/toolchains/docker.gyselalibxx_env/tests_release_omp_toolchain.cmake'
before_script: |
. ${CI_PROJECT_DIR}/toolchains/docker.gyselalibxx_env/tests_omp_environment.sh

cmake_tests_Release_GPU:
extends: .cmake_tests
tags:
- persee
variables:
RELATIVE_RESTART_TOLERANCE: '1e-14'
ABSOLUTE_RESTART_TOLERANCE: '1e-14'
TOOLCHAIN: '${CI_PROJECT_DIR}/toolchains/v100.persee/toolchain.cmake'
before_script: |
. ${CI_PROJECT_DIR}/toolchains/v100.persee/environment.sh

indentation:
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
stage: test
needs: []
image: jbigot/voicexx_env
image: ghcr.io/gyselax/gyselalibxx_env
variables:
GIT_SUBMODULE_STRATEGY: recursive
script: |
rm -rf build || true
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wall -DBUILD_BENCHMARKS=ON -DVOICEXX_ENABLE_PERIODIC_RDIMX=OFF ..
make -j 4 VERBOSE=1
ctest -j 2 --output-on-failure --timeout 5 -LE test_on_Release_only --output-junit tests.xml
artifacts:
when: always
reports:
junit: ./build/tests.xml
cmake_tests:
only: [ main, merge_requests ]
./bin/indent -td
python_best_practices:
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
stage: test
needs: []
image: jbigot/voicexx_env
image: ghcr.io/gyselax/gyselalibxx_env
variables:
GIT_SUBMODULE_STRATEGY: recursive
before_script:
export PYTHONPATH="./post-process/PythonScripts"
script: |
rm -rf build || true
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wall -DBUILD_BENCHMARKS=ON ..
make -j 4 VERBOSE=1
ctest -j 2 --output-on-failure --timeout 5 -LE test_on_Release_only --output-junit tests.xml
artifacts:
when: always
reports:
junit: ./build/tests.xml
cmake_tests_Release:
only: [ main, merge_requests ]
stage: test
pylint $(find tests -iname *.py)
pylint $(find doc -iname *.py)
pylint $(find ci_tools -iname *.py)
# Find all files with no extension or a .py extension in post-process/PythonScripts/
POST_PROCESS_PYTHON_FILES=$(find post-process/PythonScripts/ -type f ! -name "*.*"; find post-process/PythonScripts -iname *.py)
# Get pylint errors without failing
pylint ${POST_PROCESS_PYTHON_FILES} > post_process_errors.txt || true
# Filter errors on changed files
git config --global --add safe.directory $(pwd)
git fetch origin main
for f in $(git diff origin/main --name-only); do grep $f post_process_errors.txt || true; done | tee filtered_errors.txt
# Raise an error if post-process in filtered errors
! grep "post-process" filtered_errors.txt >/dev/null

public_mirror:
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
tags: [ outssh ]
needs: []
image: jbigot/voicexx_env
image: ghcr.io/gyselax/gyselalibxx_env
variables:
GIT_SUBMODULE_STRATEGY: recursive
script: ./bin/public_mirror

documentation:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
stage: test
needs: []
image: ghcr.io/gyselax/gyselalibxx_env
before_script: |
git config --global --add safe.directory $CI_PROJECT_DIR
git fetch origin ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} --recurse-submodules=no
script: |
rm -rf build || true
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wall -DBUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release ..
make -j 4 VERBOSE=1
ctest -j 2 --output-on-failure --timeout 5 --output-junit tests.xml
artifacts:
when: always
paths:
- ./build/tests/landau/fft/dampingrate_t0.0to45.0.png
- ./build/tests/landau/fft/frequency_t0.0to45.0.png
reports:
junit: ./build/tests.xml
indentation:
only: [ main, merge_requests ]
# Make docs
cmake -DGYSELALIBXX_COMPILE_SOURCE=OFF -DBUILD_DOCUMENTATION=1 -B build-docs .
cmake --build build-docs
# Get files which have changed in this merge request
git diff origin/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}..HEAD --no-indent-heuristic --unified=0 --output=pull_diff.txt --no-color
# Filter documentation messages to only complain about modified files
python3 ci_tools/check_documentation.py pull_diff.txt build-docs/docs/doxygen.log
git diff origin/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}..HEAD --no-indent-heuristic --unified=0 --output=pull_new_files.txt --no-color --diff-filter=A
python3 ci_tools/check_readme_presence.py pull_new_files.txt
allow_failure: true

markdown_best_practices:
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
stage: test
needs: []
image: jbigot/voicexx_env
image: ghcr.io/gyselax/gyselalibxx_env
variables:
GIT_SUBMODULE_STRATEGY: recursive
script: |
./bin/indent -td
ddc_sync:
only: [ triggers ]
needs: []
image: jbigot/voicexx_env
script:
- git config user.email "${GITLAB_USER_EMAIL}"
- git config user.name "${GITLAB_USER_NAME}"
- git checkout "${CI_COMMIT_BRANCH}"
- ./bin/ddc_sync --commit
- git push "http://root:${SELF_COMMIT_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git" "HEAD:${CI_COMMIT_BRANCH}"
public_mirror:
only: [ main ]
needs: []
image: jbigot/voicexx_env
script: ./bin/public_mirror
MARKDOWN_FILES=$(find . -name "*.md" -not -path "./vendor/*")
MARKDOWN_FILES="$MARKDOWN_FILES $(find ./vendor/sll/ -name '*.md')"
echo $MARKDOWN_FILES
set +e
python3 ci_tools/markdown_linter.py ${MARKDOWN_FILES}
allow_failure:
exit_codes: 2
22 changes: 18 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,24 @@
path = vendor/googletest
url = https://github.com/google/googletest.git
branch = master
[submodule "vendor/mdarray"]
path = vendor/mdarray
url = https://github.com/jbigot/mdarray.git
branch = master
[submodule "vendor/benchmark"]
path = vendor/benchmark
url = https://github.com/google/benchmark.git
[submodule "vendor/kokkos"]
path = vendor/kokkos
url = https://github.com/kokkos/kokkos.git
[submodule "vendor/eigen"]
path = vendor/eigen
url = https://gitlab.com/libeigen/eigen.git
[submodule "vendor/koliop"]
path = vendor/koliop
url = https://gitlab.com/cines/code.gysela/koliop.git
[submodule "vendor/kokkos-tools"]
path = vendor/kokkos-tools
url = https://github.com/kokkos/kokkos-tools.git
[submodule "vendor/ddc"]
path = vendor/ddc
url = https://github.com/CExA-project/ddc.git
[submodule "vendor/kokkos-kernels"]
path = vendor/kokkos-kernels
url = https://github.com/yasahi-hpc/kokkos-kernels.git
Loading