Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
321 commits
Select commit Hold shift + click to select a range
f384dcb
remove_repetition
hgangwar Aug 6, 2026
593df94
add_comment
hgangwar Aug 6, 2026
01595d1
update_pcms_comm_recv
hgangwar Aug 10, 2026
0efd57d
swap_ptr_and_vector_ref_with_rank1view
hgangwar Aug 11, 2026
01c9f81
initial lumped mass matrix implementation
jacobmerson Aug 12, 2026
937375c
add analytic 3D mass matrix test case & update CMakeLists
abhiyan123 Aug 13, 2026
cd3941a
add KSPSetTolerances
abhiyan123 Aug 13, 2026
89f78a3
fix paranthesis
abhiyan123 Aug 13, 2026
d4284ff
add test case for same mesh transfer
abhiyan123 Aug 13, 2026
2571f4e
add test case
abhiyan123 Aug 13, 2026
0c92524
add 3D mc rhs integrator tests
abhiyan123 Aug 13, 2026
efc70c0
use pytest
Sichao25 Aug 13, 2026
f5b892b
Merge pull request #341 from hgangwar/add_global_comm
jacobmerson Aug 14, 2026
889c714
remove omega_h tests
Sichao25 Aug 14, 2026
e9f0f33
move pytests to test/python
Sichao25 Aug 14, 2026
e9f4e1d
add unit cube build helper for 3D test cases
abhiyan123 Aug 14, 2026
9c79aca
remove build unit cube function and add namespace
abhiyan123 Aug 14, 2026
586a4f6
add pcms::test::
abhiyan123 Aug 14, 2026
f759a94
add BuildTet helper
abhiyan123 Aug 14, 2026
81dc34f
add rhs integrator test for 3D
abhiyan123 Aug 14, 2026
42889bf
add test case with two tets that cross each other
abhiyan123 Aug 14, 2026
fd229b8
add namespace
abhiyan123 Aug 14, 2026
2e0d3c8
add 3D cv vs mc test
abhiyan123 Aug 14, 2026
1048b6f
fix typo
abhiyan123 Aug 14, 2026
179c925
add pcms::test:: to BuildUnitCube calls
abhiyan123 Aug 14, 2026
427b46b
remove test mc vs exact projection
abhiyan123 Aug 14, 2026
0018a90
fix coordinates of source mesh
abhiyan123 Aug 14, 2026
33346fb
require deep copy expected array comparison
Sichao25 Aug 14, 2026
3c0e7b1
remove pytest options to CI
Sichao25 Aug 14, 2026
640ed82
add pytest to self hosted
Sichao25 Aug 15, 2026
ffb260d
apply meshFields 1.0.0 API
Sichao25 Jul 29, 2026
0baf8f4
remove coordinates roundoff clamping
Sichao25 Aug 3, 2026
92f15f3
remove support for older meshFields
Sichao25 Aug 7, 2026
6e67f7b
update meshFields in CI
Sichao25 Aug 7, 2026
7970ca6
reformat
Sichao25 Aug 7, 2026
6256e61
Merge pull request #352 from jacobmerson/test-utils-reuse
jacobmerson Aug 17, 2026
163ba70
Merge remote-tracking branch 'upstream/develop' into lumped-mass-matrix
jacobmerson Aug 17, 2026
2b6bfe2
PETSC_COMM_WORLD -> PETSC_COMM_SELF
jacobmerson Aug 17, 2026
9931554
update tests to add bounds checking
jacobmerson Aug 17, 2026
d19463e
Merge remote-tracking branch 'upstream/develop' into conservative-tra…
jacobmerson Aug 17, 2026
ec5c004
reformat
jacobmerson Aug 17, 2026
04512d0
Merge branch 'develop' into yus/ci
Sichao25 Aug 17, 2026
1cdcc42
use built pybind11
Sichao25 Aug 17, 2026
61a9a65
Merge pull request #353 from jacobmerson/lumped-mass-matrix
Fuad-HH Aug 18, 2026
7d2211f
correct PYTHONPATH
Sichao25 Aug 20, 2026
868c072
use return instead of yield
Sichao25 Aug 20, 2026
0f2b31d
Merge pull request #358 from Sichao25/yus/ci
jacobmerson Aug 20, 2026
ce133f4
Merge remote-tracking branch 'upstream/develop' into conservative-tra…
jacobmerson Aug 24, 2026
373df02
Add conservative transfer solver tolerances to configuration
jacobmerson Aug 25, 2026
62f3517
Use additional tolerances from configuration
jacobmerson Aug 25, 2026
1e34a61
remove hardcode dof coordinates construction in meshfields layout
Sichao25 Aug 26, 2026
ad63edc
support code coverage
Sichao25 Aug 26, 2026
f190b5f
Merge pull request #350 from jacobmerson/conservative-transfer-3D
jacobmerson Aug 26, 2026
69f3ef1
move dispatch to helpers
Sichao25 Aug 26, 2026
d0e32ad
support meshfields multi-component backend
Sichao25 Aug 27, 2026
28ae157
debug meshfields layout mismatch
Sichao25 Aug 27, 2026
3b6e2cc
Merge pull request #366 from Sichao25/yus/ci
jacobmerson Aug 28, 2026
f3ca1a8
Revert "Support test coverage"
jacobmerson Aug 28, 2026
dc918b6
Merge pull request #372 from SCOREC/revert-366-yus/ci
jacobmerson Aug 28, 2026
d58e08a
add field_factory.h in header list
Fuad-HH Aug 31, 2026
4ba5e9f
fix abosolute tol for solvers
Fuad-HH Sep 1, 2026
42b7378
Merge pull request #375 from Fuad-HH/fix-abs-tol
jacobmerson Sep 2, 2026
bffdb9d
Build the point search candidate map element-major
jacobmerson Sep 2, 2026
1e9d98f
Size the point search grid from the element count
jacobmerson Sep 2, 2026
3ca8552
Skip the exact clip for provably degenerate intersections
jacobmerson Sep 2, 2026
c7233fb
Note that the intersection prefilter also drops roundoff slivers
jacobmerson Sep 2, 2026
fd9b402
Keep signed sub-tet volumes in the intersection star decomposition
jacobmerson Sep 2, 2026
d807aee
Reuse the source space's point search in the intersection search
jacobmerson Sep 2, 2026
41d8653
support multi component uniform grid interpolator
Sichao25 Sep 3, 2026
dd43a15
Unify the 2D and 3D intersection star decomposition
jacobmerson Sep 3, 2026
85f10cb
Anchor the intersection star decomposition at a polytope vertex
jacobmerson Sep 3, 2026
eb77311
Add tests for overlapping entities
jacobmerson Sep 4, 2026
7ae00cb
Fix point search for coincident points
jacobmerson Sep 4, 2026
49bc126
class_id workaround for all methods
Fuad-HH Sep 9, 2026
2b69168
rename_coupler_and_application
hgangwar Sep 14, 2026
affe1b3
clang_format
hgangwar Sep 14, 2026
03a3a07
Merge pull request #378 from Fuad-HH/develop
jacobmerson Sep 16, 2026
baffc29
explicitly handle kokkos/mpi lifecycle
Sichao25 Sep 25, 2026
8b0c082
use pcms error
Sichao25 Sep 25, 2026
4c92c7d
Merge pull request #371 from Sichao25/multi-component
jacobmerson Sep 27, 2026
0db40d2
Merge pull request #368 from Sichao25/evaluation-library
jacobmerson Sep 27, 2026
0bd9ef1
Merge pull request #376 from Sichao25/UniformGrid
jacobmerson Sep 27, 2026
05e0a70
clang-format, renamed files, builds without ArborX
HelenW42 Oct 7, 2026
36d909f
fixed bug
HelenW42 Oct 8, 2026
5adeade
clang-format, docs
HelenW42 Oct 8, 2026
3ce3483
Merge pull request #380 from hgangwar/rename_coupler_application
jacobmerson Oct 9, 2026
ed0c2c4
adding_timestepper
hgangwar Aug 21, 2026
427851d
format_and_comments
hgangwar Aug 22, 2026
d5bf1ea
format
hgangwar Aug 22, 2026
b144e43
add_StepDecision
hgangwar Oct 9, 2026
a896455
encode outside results unambiguously
jacobmerson Oct 11, 2026
add5f4e
simplify comments
jacobmerson Oct 11, 2026
b578cb5
Apply batched suggestions from code review
jacobmerson Oct 11, 2026
3a45c2d
Merge pull request #384 from jacobmerson/point-search-element-major-c…
jacobmerson Oct 11, 2026
4c6bbe4
Use Field with serializer
jacobmerson Aug 17, 2026
20a3c0e
Apply suggestions from code review
jacobmerson Aug 20, 2026
f642092
reformat / cleanup
jacobmerson Oct 11, 2026
93d84e0
preserve data that is not being communicated in serialize/deserialize
jacobmerson Oct 11, 2026
962b371
MFEM scalar H1 Field adapter
jacobmerson Jul 11, 2026
caf05f8
Merge pull request #362 from jacobmerson/pcms-reduce-FieldData
jacobmerson Oct 12, 2026
eda29ed
Merge pull request #323 from jacobmerson/add-mfem-adapter
jacobmerson Oct 12, 2026
f9053b5
Remove the unused compile-time Coordinate/CoordinateTransform templates
jacobmerson Aug 20, 2026
35c5569
CoordinateSystem Enum -> CoordinateSystem interface
jacobmerson Aug 20, 2026
5c076f5
Store field data as shaped [dof_holder][component] views
jacobmerson Aug 20, 2026
f49a80d
Introduce ValueBasis/ValueView and remove FieldMetadata
jacobmerson Aug 23, 2026
63a7703
Add TransferOperator.Apply that doesn't need fields.
jacobmerson Aug 24, 2026
c70dceb
Add basis transformations for vector component mapping
jacobmerson Aug 24, 2026
5651e7f
Add map between coordinate systems
jacobmerson Aug 20, 2026
2a2654d
TransformedTransferOperator
jacobmerson Aug 20, 2026
ea9ade1
Move many Rank2View api to ValueView
jacobmerson Aug 27, 2026
e7d6ea2
Lift PointEvaluatorFactory out of FunctionSpace
jacobmerson Aug 27, 2026
7974da4
Add TransformedSource for cross-coordinate-system evaluation
jacobmerson Aug 27, 2026
7c6ef09
Take the transfer source as a PointEvaluatorFactory
jacobmerson Aug 27, 2026
198ea95
Remove TransformedTransferOperator and the keyed Apply
jacobmerson Aug 27, 2026
dc9d977
coordinate-transfer-updates
jacobmerson Sep 25, 2026
f3e9a25
simplification of out of bounds point handling
jacobmerson Sep 27, 2026
40c59e9
Add coordinate transformation example
jacobmerson Sep 27, 2026
7b2dd0d
Adapt 3D and multi-component code from develop to the new APIs
jacobmerson Sep 27, 2026
6b2c318
Adapt develop's MFEM adapter and serializer tests to the new APIs
jacobmerson Oct 12, 2026
eb1f061
field: index raw values in evaluator kernels
jacobmerson Oct 12, 2026
d9bfc5a
field: delete ValueView element access
jacobmerson Oct 12, 2026
032bfc2
Fix typos in comments
jacobmerson Oct 12, 2026
28bff9e
coordinate_map: test that points on the cylindrical axis round-trip
jacobmerson Oct 12, 2026
ee9c9a4
Fix clang-tidy findings in coordinate transformation tests and example
jacobmerson Oct 12, 2026
9ea8d0d
Apply clang-format
jacobmerson Oct 12, 2026
458e601
move function out of class due to CUDA lambda restrictions
jacobmerson Oct 12, 2026
883d758
Add OpenMP tests to github CI and self-hosted
jacobmerson Oct 13, 2026
235b229
Merge remote-tracking branch 'origin/develop' into add_timestepper
hgangwar Oct 13, 2026
8cac2cc
minor_naming_changes
hgangwar Oct 13, 2026
8dbac3a
format
hgangwar Oct 13, 2026
57f2c3d
Merge pull request #389 from hgangwar/add_timestepper
jacobmerson Oct 14, 2026
81018b3
Merge pull request #388 from jacobmerson/openmp-ci
jacobmerson Oct 14, 2026
1f3d5d0
cleaning up, added docs
HelenW42 Oct 14, 2026
056ca4c
explicitly handle petsc lifetime in python api
Sichao25 Oct 16, 2026
cbef98b
Merge pull request #382 from Sichao25/python
jacobmerson Oct 16, 2026
df575e8
resolve host access of device memory in pythonapi
jacobmerson Oct 12, 2026
d505600
update python examples to use PyOmega_h
jacobmerson Oct 12, 2026
cd8fd8d
run the Python examples under pytest
jacobmerson Oct 12, 2026
562369a
Run python examples on self-hosted CI
jacobmerson Oct 12, 2026
02b4de2
Add mdspan based conversion to numpy arrays
jacobmerson Oct 13, 2026
d41b3fc
Add tests for numpy array conversions
jacobmerson Oct 13, 2026
f946077
Clarify python array semantics
jacobmerson Oct 13, 2026
605e65b
Fix test parameters for CI
jacobmerson Oct 18, 2026
33879b2
Merge pull request #390 from jacobmerson/faster-mpi-tests
jacobmerson Oct 18, 2026
1f748e3
allow 1D arrays from python
jacobmerson Oct 18, 2026
b417ea0
Merge pull request #387 from jacobmerson/python-numpy-mdspan
jacobmerson Oct 18, 2026
db3c029
fix documentation generation
jacobmerson Oct 18, 2026
ac86b07
Merge pull request #391 from jacobmerson/fix-doxygen
jacobmerson Oct 18, 2026
d2c94ca
fix serial build
jacobmerson Oct 18, 2026
b1249e5
Merge pull request #392 from jacobmerson/fix-docs-deploy
jacobmerson Oct 18, 2026
bb25a8b
Merge remote-tracking branch 'upstream/develop' into coordinate-trans…
jacobmerson Oct 19, 2026
21cd37f
parallel ctest runs
jacobmerson Oct 19, 2026
3102d21
use flag to specify if cleanup happens
jacobmerson Oct 19, 2026
aaacf3e
Merge pull request #393 from jacobmerson/mpi-test-isolation
jacobmerson Oct 21, 2026
918434c
install python module into lib/ instead of CMAKE_INSTALL_LIBDIR
jacobmerson Oct 20, 2026
4ca8161
make the smoke test runnable without PCMS_TEST_DATA_DIR
jacobmerson Oct 20, 2026
fb2213c
Merge pull request #394 from jacobmerson/spack-install-fixes
jacobmerson Oct 21, 2026
2e46e80
Merge pull request #383 from jacobmerson/coordinate-transformations
jacobmerson Oct 22, 2026
f211ad5
record PETSC_DIR when PETSc is found through pkg-config
jacobmerson Oct 23, 2026
27afde5
Merge pull request #395 from jacobmerson/petsc-config-export
jacobmerson Oct 23, 2026
21d5967
resolve returning structured biding to support hipcc build
jacobmerson Oct 25, 2026
8a9fa57
Merge pull request #396 from jacobmerson/fix-python-binary-field-move
jacobmerson Oct 25, 2026
a197c70
install spline_interpolator.hpp
jacobmerson Oct 9, 2026
316d7ce
fix evaluation on device backends
jacobmerson Oct 25, 2026
ad5f729
fix spline boundary, grid and lookup handling
jacobmerson Oct 25, 2026
d3225e2
add tests to cover the spline cases exercised by PSPLINE
jacobmerson Oct 25, 2026
179ca4b
Make field shape checking consistent
jacobmerson Oct 13, 2026
e14ae4a
Use indirection for access of DOF Data
jacobmerson Oct 25, 2026
b185c32
Update python API to follow C++ api naming
jacobmerson Oct 13, 2026
0927d79
Add coordinate mapping to the python library
jacobmerson Oct 13, 2026
8fc002b
Make overlap masking generic and drop XGC-specific overlap handling
jacobmerson Oct 25, 2026
8421904
add support for poloidal planes and empty layout
jacobmerson Oct 25, 2026
59a3a95
initialize all coordinates in global to local test
jacobmerson Oct 27, 2026
5187986
Merge pull request #403 from jacobmerson/fix-point-search-uninit
jacobmerson Oct 27, 2026
63949b4
document the PCMS container images
jacobmerson Oct 27, 2026
9a19de3
cite the Computer Physics Communications article
jacobmerson Oct 27, 2026
858291d
Merge pull request #404 from jacobmerson/container-docs
jacobmerson Oct 27, 2026
e74543e
update build instructions for Spack 1.2 and SCOREC systems
jacobmerson Oct 27, 2026
02bd9d3
Merge pull request #397 from jacobmerson/spline-fixes
jacobmerson Oct 30, 2026
dd71936
Merge pull request #405 from jacobmerson/container-docs
jacobmerson Oct 31, 2026
7a84367
Merge pull request #400 from jacobmerson/dof-access
jacobmerson Nov 1, 2026
856352b
Merge pull request #402 from jacobmerson/external-eval-infra
jacobmerson Nov 1, 2026
4d70c3e
Merge branch 'develop' into python-api-redesign
jacobmerson Nov 1, 2026
1db423f
Merge pull request #398 from jacobmerson/python-api-redesign
jacobmerson Nov 1, 2026
d2d049b
Implemented 2D edge and vertex point localization
HelenW42 Jul 6, 2026
e2f50e1
Implemented face intersection detection
HelenW42 Jul 6, 2026
3210bed
added tests for no intersection
HelenW42 Jul 6, 2026
06fb296
implemented 3D vertex, edge, face, and region localization
HelenW42 Jul 6, 2026
7aa51d4
Implemented tree based point localization without template-specified …
HelenW42 Jul 9, 2026
2eac602
debug 2D and 3D point localization with GPU backend, added documetati…
HelenW42 Jul 13, 2026
66d79ed
docs
HelenW42 Jul 14, 2026
b397667
cleaning up
HelenW42 Jul 14, 2026
11844ae
add type safety to TreeWrapper
HelenW42 Jul 16, 2026
f5acaef
changed Mapping constructor
HelenW42 Jul 20, 2026
08e4699
refactored apply() result type for TreePointSearch
HelenW42 Jul 22, 2026
087225f
refactor PointSearch base class
HelenW42 Jul 22, 2026
e30f232
refactor GridPointSearch to match new base class
HelenW42 Jul 23, 2026
ca91aa4
refactored testing to match new PointSearch
HelenW42 Jul 23, 2026
3575c54
fixed tolerances in TreePointSearch
HelenW42 Jul 23, 2026
3cb7ae6
added edge and vertex intersection to GridPointSearch3D
HelenW42 Jul 24, 2026
794e567
implemented 3D face intersection
HelenW42 Jul 24, 2026
994bdb1
fixed GetOwning methods
HelenW42 Jul 27, 2026
165d879
clang-format, renamed files, builds without ArborX
HelenW42 Oct 7, 2026
28ae071
fixed bug
HelenW42 Oct 8, 2026
aa5bb55
clang-format, docs
HelenW42 Oct 8, 2026
66fc537
cleaning up, added docs
HelenW42 Oct 14, 2026
1fb3a38
Implemented 2D edge and vertex point localization
HelenW42 Jul 6, 2026
f50203b
Implemented face intersection detection
HelenW42 Jul 6, 2026
048cad8
implemented 3D vertex, edge, face, and region localization
HelenW42 Jul 6, 2026
2b10b70
Implemented tree based point localization without template-specified …
HelenW42 Jul 9, 2026
eb07855
debug 2D and 3D point localization with GPU backend, added documetati…
HelenW42 Jul 13, 2026
c832806
docs
HelenW42 Jul 14, 2026
2b216c9
cleaning up
HelenW42 Jul 14, 2026
f2995af
add type safety to TreeWrapper
HelenW42 Jul 16, 2026
4ba9288
changed Mapping constructor
HelenW42 Jul 20, 2026
bffb816
refactored apply() result type for TreePointSearch
HelenW42 Jul 22, 2026
2c153b1
refactor PointSearch base class
HelenW42 Jul 22, 2026
fb6e0f0
refactor GridPointSearch to match new base class
HelenW42 Jul 23, 2026
fa5d789
refactored testing to match new PointSearch
HelenW42 Jul 23, 2026
208b61a
fixed tolerances in TreePointSearch
HelenW42 Jul 23, 2026
5a5199b
added edge and vertex intersection to GridPointSearch3D
HelenW42 Jul 24, 2026
6d928c8
implemented 3D face intersection
HelenW42 Jul 24, 2026
310d3c7
fixed GetOwning methods
HelenW42 Jul 27, 2026
e88afc9
clang-format, renamed files, builds without ArborX
HelenW42 Oct 7, 2026
b2ed49a
fixed bug
HelenW42 Oct 8, 2026
17787bf
clang-format, docs
HelenW42 Oct 8, 2026
d384a42
cleaning up, added docs
HelenW42 Oct 14, 2026
9991432
Merge branch 'point_search' of https://github.com/HelenW42/pcms into …
HelenW42 Nov 5, 2026
acf9868
Implemented 2D edge and vertex point localization
HelenW42 Jul 6, 2026
d7f02fd
Implemented face intersection detection
HelenW42 Jul 6, 2026
3bee92e
implemented 3D vertex, edge, face, and region localization
HelenW42 Jul 6, 2026
db788c9
Implemented tree based point localization without template-specified …
HelenW42 Jul 9, 2026
8e87c56
debug 2D and 3D point localization with GPU backend, added documetati…
HelenW42 Jul 13, 2026
ab854a7
docs
HelenW42 Jul 14, 2026
afec9e4
cleaning up
HelenW42 Jul 14, 2026
f21cf2b
add type safety to TreeWrapper
HelenW42 Jul 16, 2026
b29cd92
changed Mapping constructor
HelenW42 Jul 20, 2026
be7f08f
refactored apply() result type for TreePointSearch
HelenW42 Jul 22, 2026
75bbca6
refactor PointSearch base class
HelenW42 Jul 22, 2026
f807406
refactor GridPointSearch to match new base class
HelenW42 Jul 23, 2026
6bdec36
refactored testing to match new PointSearch
HelenW42 Jul 23, 2026
0174bc4
fixed tolerances in TreePointSearch
HelenW42 Jul 23, 2026
7d2b740
added edge and vertex intersection to GridPointSearch3D
HelenW42 Jul 24, 2026
37c5189
implemented 3D face intersection
HelenW42 Jul 24, 2026
8046774
fixed GetOwning methods
HelenW42 Jul 27, 2026
98a3746
clang-format, renamed files, builds without ArborX
HelenW42 Oct 7, 2026
06d7b34
fixed bug
HelenW42 Oct 8, 2026
e1e4477
clang-format, docs
HelenW42 Oct 8, 2026
4a5a3f2
cleaning up, added docs
HelenW42 Oct 14, 2026
c9b9ce6
Merge branch 'point_search' of https://github.com/HelenW42/pcms into …
HelenW42 Nov 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# SWIG output regenerated from client.i; collapsed in GitHub diffs
src/pcms/fortranapi/client_wrap.c linguist-generated
src/pcms/fortranapi/pcms.f90 linguist-generated
4 changes: 2 additions & 2 deletions .github/workflows/clang-tidy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ jobs:
with:
repo-name: 'meshFields-openmpi'
repo-path: 'SCOREC/meshFields'
repo-ref: 'b1482bbba288df210784b2345eae08e34faabdc4'
repo-ref: 'b9984520c20f73955a3b4e25e4907780b91d430f'
cache: true
options: '-DCMAKE_CXX_COMPILER=`which mpicxx`
-DCMAKE_C_COMPILER=`which mpicc`
Expand Down Expand Up @@ -165,7 +165,7 @@ jobs:
with:
repo-name: 'redev-openmpi'
repo-path: 'SCOREC/redev'
repo-ref: 'ac09848a5f9b89493e8b679c9080b9efe5538376'
repo-ref: '1e4c876f786b420f060695ba2c1079447e975b69'
cache: true
options: '-DCMAKE_CXX_COMPILER=`which mpicxx`
-DMPIEXEC_EXECUTABLE=`which mpirun`
Expand Down
74 changes: 59 additions & 15 deletions .github/workflows/cmake-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,15 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30

env:
# Builds that depend on Kokkos must not share a cache entry across
# shared/static or Serial/OpenMP configurations.
DEP_CACHE_SUFFIX: ${{ matrix.python_api == 'ON' && '-shared' || '' }}${{ matrix.openmp == 'ON' && '-openmp' || '' }}
# Use more than one thread so threading bugs can show up.
OMP_NUM_THREADS: ${{ matrix.openmp == 'ON' && '2' || '1' }}
OMP_PROC_BIND: 'false'
KOKKOS_ENABLE_OPENMP: ${{ matrix.openmp == 'ON' && 'ON' || 'OFF' }}

defaults:
run:
shell: bash
Expand All @@ -29,6 +38,7 @@ jobs:
python_api: [OFF, ON]
meshfields: [ON]
petsc: [ON]
openmp: [OFF]
include:
- build_type: Release
memory_test: OFF
Expand All @@ -44,6 +54,15 @@ jobs:
python_api: OFF
meshfields: ON
petsc: OFF
# Kokkos OpenMP backend (all other entries use Serial)
- build_type: Release
memory_test: OFF
compiler: g++
language: 'cpp'
python_api: ON
meshfields: ON
petsc: ON
openmp: ON
exclude:
- build_type: Release
memory_test: ON
Expand All @@ -67,7 +86,7 @@ jobs:
if: matrix.python_api == 'ON'
run: |
sudo apt-get install -yq python3 python3-pip python3-dev python3-pybind11 pybind11-dev
pip3 install numpy
pip3 install numpy pytest

- uses: actions/checkout@v4

Expand All @@ -86,11 +105,11 @@ jobs:
repo-path: 'kokkos/kokkos'
repo-ref: '4.6.01'
cache: true
cache-suffix: ${{ matrix.python_api == 'ON' && '-shared' || '' }}
cache-suffix: ${{ env.DEP_CACHE_SUFFIX }}
options: '-DCMAKE_CXX_STANDARD=20
-DBUILD_SHARED_LIBS=${{ matrix.python_api }}
-DKokkos_ENABLE_SERIAL=ON
-DKokkos_ENABLE_OPENMP=OFF
-DKokkos_ENABLE_OPENMP=${{ env.KOKKOS_ENABLE_OPENMP }}
-DKokkos_ENABLE_CUDA=OFF
-DKokkos_ENABLE_CUDA_LAMBDA=OFF
-DKokkos_ENABLE_CUDA_CONSTEXPR=OFF'
Expand All @@ -102,7 +121,7 @@ jobs:
repo-path: 'kokkos/kokkos-kernels'
repo-ref: '4.6.01'
cache: true
cache-suffix: ${{ matrix.python_api == 'ON' && '-shared' || '' }}
cache-suffix: ${{ env.DEP_CACHE_SUFFIX }}
options: '-DCMAKE_CXX_STANDARD=20
-DBUILD_SHARED_LIBS=${{ matrix.python_api }}
-DKokkos_DIR=${{ runner.temp }}/build-kokkos/install/lib/cmake/Kokkos'
Expand All @@ -114,7 +133,7 @@ jobs:
repo-path: 'SCOREC/omega_h'
repo-ref: '2b2e778472f48a85a5ff5e70083e3a415e58be72'
cache: true
cache-suffix: ${{ matrix.python_api == 'ON' && '-shared' || '' }}
cache-suffix: ${{ env.DEP_CACHE_SUFFIX }}
options: '-DCMAKE_CXX_COMPILER=`which mpicxx`
-DCMAKE_C_COMPILER=`which mpicc`
-DCMAKE_BUILD_TYPE="RelWithDebInfo"
Expand All @@ -132,9 +151,9 @@ jobs:
with:
repo-name: 'meshFields'
repo-path: 'SCOREC/meshFields'
repo-ref: 'b1482bbba288df210784b2345eae08e34faabdc4'
repo-ref: 'b9984520c20f73955a3b4e25e4907780b91d430f'
cache: true
cache-suffix: ${{ matrix.python_api == 'ON' && '-shared' || '' }}
cache-suffix: ${{ env.DEP_CACHE_SUFFIX }}
options: '-DCMAKE_CXX_COMPILER=`which mpicxx`
-DCMAKE_C_COMPILER=`which mpicc`
-DBUILD_SHARED_LIBS=${{ matrix.python_api }}
Expand Down Expand Up @@ -165,7 +184,7 @@ jobs:
with:
repo-name: 'redev'
repo-path: 'SCOREC/redev'
repo-ref: 'ac09848a5f9b89493e8b679c9080b9efe5538376'
repo-ref: '1e4c876f786b420f060695ba2c1079447e975b69'
cache: true
cache-suffix: ${{ matrix.python_api == 'ON' && '-shared' || '' }}
options: '-DCMAKE_CXX_COMPILER=`which mpicxx`
Expand Down Expand Up @@ -203,7 +222,7 @@ jobs:
uses: actions/cache@v3
with:
path: ${{ runner.temp }}/petsc
key: build-petsc-${{ steps.clone-petsc.outputs.petsc-commit-hash }}-${{ matrix.python_api }}
key: build-petsc-${{ steps.clone-petsc.outputs.petsc-commit-hash }}-${{ matrix.python_api }}${{ matrix.openmp == 'ON' && '-openmp' || '' }}

- name: build petsc
if: matrix.petsc == 'ON' && steps.cache-petsc.outputs.cache-hit != 'true'
Expand All @@ -214,6 +233,7 @@ jobs:
--with-kokkos-dir="${{ runner.temp }}/build-kokkos/install/" \
--with-kokkos-kernels-dir="${{ runner.temp }}/build-kokkos-kernels/install/" \
--with-cuda=0 \
--with-openmp=${{ matrix.openmp == 'ON' && '1' || '0' }} \
--with-shared-libraries=${{ matrix.python_api == 'ON' && '1' || '0' }} \
--download-fblaslapack
make all check
Expand Down Expand Up @@ -288,12 +308,25 @@ jobs:
run: |
export PYTHONPATH=${{ runner.temp }}/build-pcms/install/lib/python3.12/site-packages:$PYTHONPATH
export PYTHONPATH=${{ runner.temp }}/build-omega_h/install/lib/python/dist-packages:$PYTHONPATH
cd ${{ github.workspace }}/src/pcms/pythonapi
python3 test_file_io.py
python3 test_omega_h_field.py
python3 test_uniform_grid_field.py
python3 test_field_copy.py
python3 test_mls_interpolation.py
cd ${{ github.workspace }}
pytest -v --tb=short -p no:cacheprovider

# The docs need the compiled pcms module for the Python API, so they are
# built in one Python-enabled configuration.
- name: Build documentation
if: matrix.python_api == 'ON' && matrix.openmp != 'ON'
run: |
sudo apt-get install -yq doxygen
pip3 install -r docs/requirements.txt
export PYTHONPATH=${{ runner.temp }}/build-pcms/install/lib/python3.12/site-packages:$PYTHONPATH
export PYTHONPATH=${{ runner.temp }}/build-omega_h/install/lib/python/dist-packages:$PYTHONPATH
sphinx-build -b html docs docs/_build/html

- name: Upload documentation
if: matrix.python_api == 'ON' && matrix.openmp != 'ON'
uses: actions/upload-pages-artifact@v3
with:
path: docs/_build/html

- name: Test PCMS Installation
if: matrix.python_api == 'OFF'
Expand All @@ -316,3 +349,14 @@ jobs:
${{ matrix.petsc == 'ON' && format('-DPETSC_LINK_STATIC=ON -DPETSC_DIR={0}/petsc -DPETSC_ARCH=ubuntu-kokkos', runner.temp) || '' }} \
--debug-output
cmake --build ${{github.workspace}}/examples/external-usage-example/build

deploy-docs:
needs: test-build
if: github.event_name == 'push' && github.ref == 'refs/heads/develop'
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
steps:
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
Loading
Loading