Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2160 commits
Select commit Hold shift + click to select a range
8f66c00
test_field3d: Tidying, define FakeMeshFixtureFCI
bendudson Jul 10, 2026
ceaaf98
Functions of Field3DParallel preserve slices
dschwoerer Jul 9, 2026
16a66f0
Clang-Tidy: Use 'contains' to check for membership
tomchapman Jul 8, 2026
2520674
Refactor map::find expression: lookup and retrieval in a single step …
tomchapman Jul 8, 2026
28542c9
Lookup and retrieval in a single step with C++17 initializer syntax
tomchapman Jul 8, 2026
a56a996
Move variable 'search' to if-init-statement
tomchapman Jul 8, 2026
6ca5bbd
Ensure `PetscMatrix` destroys owned `Mat` object
ZedThree Jul 10, 2026
6738258
Ensure `ksp` gets cleaned up in `LaplacePetsc` destructor
ZedThree Jul 10, 2026
61b01d5
Remove unnecessary `MPI_Comm` member
ZedThree Jul 10, 2026
a034127
Remove unnecessary local `PetscLib` from test
ZedThree Jul 10, 2026
b2f52cd
Field3DParallel unit test
bendudson Jul 10, 2026
9eb94c7
Merge pull request #3431 from boutproject/fix-petsc-bad-cleanup
cmacmackin Jul 10, 2026
858c5c1
Lazy pow function on fields
bendudson Jul 10, 2026
c808fa7
floor: Return BinaryExpr
bendudson Jul 10, 2026
b9d13fd
Bump astral-sh/setup-uv from 5 to 7
dependabot[bot] Jul 10, 2026
c7493e4
generated_fieldops: Remove eager functions
bendudson Jul 10, 2026
d41d93c
Field3DParallel::View simplify
bendudson Jul 10, 2026
3c6565d
manual: Updates for Field3DParallel expressions
bendudson Jul 10, 2026
87f6feb
Reapply "Merge pull request #3082 from boutproject/next-elimBE"
bendudson Jul 16, 2026
4ed7b90
hypre_interface: Use std::isfinite
bendudson Jul 16, 2026
f6cbdb0
HypreVector::importValuesFromField don't call assemble
bendudson Jul 16, 2026
9aae2b7
Hypre BCMatrixEquations: Use HypreMalloc
bendudson Jul 16, 2026
d8e5419
Options: ConvertContainer for Array/Matrix/Tensor
bendudson Jul 18, 2026
403f1c8
ASSERT: Wrap string literals in string_view
bendudson Jul 18, 2026
0934c93
BinaryExpr: size() can't be a DEVICE function
bendudson Jul 18, 2026
b5a0587
Fix warnings for NVCC
bendudson Jul 18, 2026
112e722
Improve cvode use_precon exception
mikekryjak Jul 20, 2026
a910167
Merge pull request #3418 from boutproject/next-is-600
dschwoerer Jul 21, 2026
4244d60
Fix comments by ensuring \\ is not at end of line
dschwoerer Jul 21, 2026
5bef26e
Merge remote-tracking branch 'origin/next' into legacy-boundary-condi…
malamast Jul 23, 2026
4687df8
Apply perk-formatting
malamast Jul 23, 2026
673665d
Merge pull request #3429 from boutproject/warning-multiline-comments
ZedThree Jul 24, 2026
6a18183
Merge pull request #3437 from boutproject/dependabot/github_actions/a…
ZedThree Jul 24, 2026
dcffc23
Bump actions/setup-python from 6 to 7
dependabot[bot] Jul 24, 2026
e4b126d
Don't compute G-values unnecessarily or when using FCI
ZedThree Jul 27, 2026
69a789f
Merge pull request #3426 from boutproject/cvode-precon-settings
mikekryjak Jul 28, 2026
99eaae1
Ensure option names updated to match path
cmacmackin Jul 28, 2026
6607c3a
Include header with size_t
cmacmackin Jul 28, 2026
93d6705
Merge pull request #3445 from boutproject/cmacmackin/options-names
ZedThree Jul 29, 2026
1b5149b
Cover corner-cases when updating option names
cmacmackin Jul 29, 2026
a972f3f
Use regionID of parallel slices for parallel slices
dschwoerer Jul 30, 2026
3e2b57c
Fix typos in `LaplacePetsc` after conversion
ZedThree Jul 30, 2026
d911d51
Extend ADIOSStream to read modes
Steven-Roberts Jul 30, 2026
86e6ba8
Add simple Get/Put
Steven-Roberts Jul 31, 2026
dcf3091
Add get for Array/Matrix/Tensor
Steven-Roberts Jul 31, 2026
50465fe
Add put for Array/Matrix/Tensor
Steven-Roberts Jul 31, 2026
d2ad823
Add get for Fields
Steven-Roberts Jul 31, 2026
357ec23
Add put for Fields
Steven-Roberts Jul 31, 2026
84d0788
Use new adios_object functionality in options_adios
Steven-Roberts Jul 31, 2026
f19cdd3
Merge pull request #3447 from boutproject/fix-laplace-petsc-typos
bendudson Aug 4, 2026
5a8ff78
Apply suggestions from code review
bendudson Aug 4, 2026
184c398
BOUT_UNREACHABLE macro
bendudson Aug 4, 2026
6e45535
Formatting
bendudson Aug 4, 2026
36a4b89
Simplify name updating logic
cmacmackin Aug 4, 2026
45d6b9e
Use regionID directly on view and add wrapper for getCommonRegionID
dschwoerer Aug 5, 2026
8b5cfcf
Merge pull request #3446 from boutproject/cmacmackin/options-names
ZedThree Aug 5, 2026
24d1742
Clang tidy fixes
bendudson Aug 5, 2026
d887f78
BinaryExpr: Track valid regionID of expressions
bendudson Aug 5, 2026
7018170
Merge pull request #3441 from boutproject/next-nvcc
ZedThree Aug 5, 2026
2786024
Merge pull request #3430 from boutproject/more-binaryexpr
bendudson Aug 6, 2026
df638bf
Get ADIOS tests passing
Steven-Roberts Aug 6, 2026
b5b946e
Remove unused code
Steven-Roberts Aug 6, 2026
0103177
Remove unnecessary arg
Steven-Roberts Aug 7, 2026
a511a66
Add Conduction_Methods to Div_par_K_Grad_par_mod
dschwoerer Aug 10, 2026
4cc1b15
Add missing headers
dschwoerer Aug 10, 2026
aee181f
Use internal implementation to private namespace
dschwoerer Aug 10, 2026
6341c8e
Prefere enum class
dschwoerer Aug 11, 2026
a012a67
Use Field3DParallel if we need parallel fields
dschwoerer Aug 11, 2026
2f228e2
Remove not used legacy wrappers
dschwoerer Aug 11, 2026
46863fe
Merge pull request #3444 from boutproject/dependabot/github_actions/a…
dschwoerer Aug 11, 2026
7fc1c2d
Fix signature in header for Div_par taking two fields
dschwoerer Aug 12, 2026
dfaab1b
Use enum in API and add docs
dschwoerer Aug 12, 2026
ad9fe72
Cast to int
dschwoerer Aug 12, 2026
1dfaf2f
Merge pull request #3453 from boutproject/more-f3dp
dschwoerer Aug 12, 2026
37adc61
Merge pull request #3450 from Steven-Roberts/adios-for-coupling
dschwoerer Aug 12, 2026
b213a15
Move header to enum definition
dschwoerer Aug 12, 2026
5ac885c
Merge remote-tracking branch 'origin/next' into refactor-coords-rebas…
dschwoerer Aug 12, 2026
359f187
First cast to f3dp to compute parallel slices for FCI
dschwoerer Aug 12, 2026
33f791e
Remove not-needed .asField3DParallel()
dschwoerer Aug 12, 2026
6ee7369
Grad_par: take Field3DParallel as parallel slices are needed for FCI
dschwoerer Aug 12, 2026
99c365e
Use switch to iterate through options
dschwoerer Aug 12, 2026
7741ff7
Merge pull request #3435 from tomc271/cpp20-if-with-initializer
ZedThree Aug 12, 2026
c5b5e2e
Apply formatting
ZedThree Aug 12, 2026
7fe3fec
Use std::ranges::find instead of std::find
tomchapman Jul 3, 2026
1e45173
Fix ranges::find with projection
tomchapman Jul 2, 2026
bd04875
Use std::ranges::end for consistency (and slightly safer)
tomchapman Jul 2, 2026
04bd654
Use std::ranges library for std::fill and std::transform
tomchapman Jul 3, 2026
fe342f9
Use `std::ranges::sort` and `std::ranges::unique` to avoid the verbos…
tomchapman Jul 8, 2026
aa7e4e9
Fix clang-tidy warnings
ZedThree Aug 12, 2026
10e3eec
Merge pull request #3452 from boutproject/move-conduction-method
ZedThree Aug 12, 2026
81dbea0
Merge pull request #3434 from tomc271/cpp20-map-contains
ZedThree Aug 12, 2026
3fed01e
Merge remote-tracking branch 'origin/next' into refactor-coords-rebas…
dschwoerer Aug 13, 2026
12351b9
Fix signature in cxx
dschwoerer Aug 13, 2026
912d8de
Merge pull request #3432 from tomc271/cpp20-ranges
ZedThree Aug 13, 2026
5ea320a
Merge pull request #3425 from boutproject/refactor-coords-rebase-rebase
ZedThree Aug 13, 2026
0213d07
Add BOUT_ENUM_CLASS_NS
dschwoerer Aug 13, 2026
efd6a66
Switch bout::ConductionMethod to BOUT_ENUM_CLASS_NS
dschwoerer Aug 13, 2026
615254c
Fix BOUT_ENUM_CLASS_NS
dschwoerer Aug 13, 2026
45fd7a3
Add unit tests for namespaced enum class
dschwoerer Aug 13, 2026
cc0ab45
Add unit test for nested namespaces
dschwoerer Aug 13, 2026
f32587a
Ensure we do not break B for FCI
dschwoerer Aug 13, 2026
25b79ad
Do not add parallel slices to parallel slices
dschwoerer Aug 13, 2026
d1d09e8
Add normalisation for metrics
dschwoerer Aug 13, 2026
1dd1583
Fix compilation for 2D metrics
dschwoerer Aug 13, 2026
2735dcb
Suppress unused var warnings
dschwoerer Aug 13, 2026
6fb9096
Use unsigned int for enum
dschwoerer Aug 13, 2026
6282f56
Switch to preprocessor #if
dschwoerer Aug 13, 2026
40ac19e
Div_par_K_Grad_par_mod: Error with ConductionMethod string
bendudson Aug 13, 2026
be2ff91
Use pre-computed cell areas for Div_par_fvv_heating
dschwoerer Aug 13, 2026
b445c7e
Merge pull request #3457 from boutproject/BOUT_ENUM_CLASS_NS
dschwoerer Aug 14, 2026
75d4fb9
Add dx normalisation for Tokamak geometry
dschwoerer Aug 14, 2026
993e633
Improve comments
dschwoerer Aug 14, 2026
bb4964e
Fix J normalisation
dschwoerer Aug 14, 2026
524ceab
Refactored Hypre boundary row elimination
bendudson Aug 14, 2026
4100f88
Adjust parallel diffusion operator for fci
totork Aug 17, 2026
6ba4f1d
Add missing class
totork Aug 17, 2026
3f35c51
Delete brackets
totork Aug 17, 2026
2111e68
Add missing () for dy
totork Aug 17, 2026
ae5e990
Merge branch 'next' of https://github.com/boutproject/BOUT-dev into n…
dschwoerer Aug 17, 2026
eddc7e1
Avoid returning void from function call
dschwoerer Aug 17, 2026
7913512
Generalize boundary elimination code
bendudson Aug 17, 2026
77a026c
Merge branch 'next' into next-elimBE-new-api
bendudson Aug 17, 2026
7c8012e
Merge pull request #3461 from totork/next-par-diffusion
bendudson Aug 18, 2026
fc347e9
Merge pull request #3456 from boutproject/div_par_fvv_heating_area
bendudson Aug 18, 2026
1a60d3f
SNES solver: Save Jacobian to file
bendudson Aug 18, 2026
bb0ca62
SNES solver: Save Jacobian to data directory
bendudson Aug 19, 2026
e932d23
integrated test test-snes-save-jacobian
bendudson Aug 19, 2026
70a6e70
Add PetscBinaryIO and Jacobian reader
bendudson Aug 19, 2026
fa34beb
Add normalisation of g_22_y*
dschwoerer Aug 19, 2026
adce6ca
Handle non-FCI case in normaliseMetricFCI
dschwoerer Aug 19, 2026
cf90f25
Remove non-const version from header
dschwoerer Aug 19, 2026
2e951d6
test-snes-save-jacobian: Test outputs
bendudson Aug 19, 2026
d6a66f1
read_jacobian: extract_block and tests
bendudson Aug 19, 2026
7b94346
Document Jacobian save methods and API
bendudson Aug 19, 2026
9de4335
Add missing headers
dschwoerer Aug 20, 2026
7ec4b68
apply clang-tidy fixes
dschwoerer Aug 20, 2026
767436b
Check for only for fields location
dschwoerer Aug 20, 2026
d418f68
Apply some clang-tidy fixes
dschwoerer Aug 20, 2026
bb63ea4
Added dissipative flag to Div_par_mod in Fci
totork Aug 21, 2026
d204053
Formatting
totork Aug 21, 2026
d5f4814
Only check if dissipative is used in Div_par_mod in the non-Fci part
totork Aug 21, 2026
d13ac5e
Add wrapper for Bxy
dschwoerer Aug 21, 2026
612c7fc
Merge pull request #3470 from boutproject/addBxyWrapper
dschwoerer Aug 21, 2026
d6e66f5
CVODE solver save jacobian
bendudson Aug 21, 2026
edaf4f7
Document cvode jacobian output
bendudson Aug 21, 2026
d8e8660
Use spaceship operator for comparison operators where possible
ZedThree Aug 21, 2026
93d9fa2
Fix some clang-tidy issues
ZedThree Aug 21, 2026
28a75eb
Bump externalpackages/googletest from `8b53336` to `91c99b6`
dependabot[bot] Aug 21, 2026
ce102be
Jacobian metadata always jacobian_metadata.json
bendudson Aug 23, 2026
eed8487
Merge pull request #3471 from boutproject/spaceship-operator
dschwoerer Aug 24, 2026
8ba04b2
Merge pull request #3467 from boutproject/divpar-diss
dschwoerer Aug 24, 2026
50f4b02
Add API to set metric tensors and J and B
dschwoerer Aug 21, 2026
8ca53f0
Add MetricNormaliser class
dschwoerer Aug 24, 2026
cd18251
Add normalisation to MetricTensors
dschwoerer Aug 24, 2026
f9210bc
Add generic normalisation to coordinates
dschwoerer Aug 24, 2026
30e7624
Remove specific normalisation
dschwoerer Aug 24, 2026
da0c682
Add normalisations to tokamak_coordinates
dschwoerer Aug 24, 2026
d49fbec
Add missing virtual/override
dschwoerer Aug 24, 2026
a220081
Turn MetricNormaliser into a plain struct
dschwoerer Aug 24, 2026
01621b9
Use const ref
dschwoerer Aug 24, 2026
ae9b5e7
Remove redundant initialisation
dschwoerer Aug 24, 2026
ebdcb73
Merge pull request #3472 from boutproject/dependabot/submodules/exter…
dschwoerer Aug 24, 2026
4117112
Update prek tools to work with python3.15
dschwoerer Aug 13, 2026
e4e2d6a
Update pyproject.toml and uv.lock
dschwoerer Aug 24, 2026
ef2fda3
Be explit about it being not set
dschwoerer Aug 25, 2026
bc7459c
Merge pull request #3454 from boutproject/python315
ZedThree Aug 25, 2026
553fa37
Merge pull request #3463 from boutproject/normalise-metrics
ZedThree Aug 25, 2026
5ca22b6
Remove unused enum
ZedThree Aug 18, 2026
9d6b9ca
Move `YBoundary` into `bout::boundary` namespace for consistency
ZedThree Aug 18, 2026
3e72665
Add some helper concepts for `YBoundary` functions
ZedThree Aug 18, 2026
bb1d5c9
Small refactor of `YBoundary`
ZedThree Aug 18, 2026
b3c5ab1
Add helper function for CRTP in boundary region iterator
ZedThree Aug 19, 2026
23d95be
Use concept to avoid passing `std::function`
ZedThree Aug 19, 2026
6c8adab
Try to expand the documentation for the boundary regions classes
ZedThree Aug 19, 2026
ca6dd1f
Remove raw pointer from new boundary regions
ZedThree Aug 19, 2026
999c444
Fix some missing methods on the derived boundary iterators
ZedThree Aug 19, 2026
3d1f39b
Move boundary condition kernels out of `BoundaryRegionIterBase`
ZedThree Aug 19, 2026
c5bf2c4
Remove duplicated function
ZedThree Aug 21, 2026
e27f32a
Move boundary region iterators inside their container classes
ZedThree Aug 24, 2026
0c6c7d2
Apply some clang-tidy fixes
ZedThree Aug 24, 2026
463fb08
Simplify implementation of FCI boundary iterator
ZedThree Aug 24, 2026
cb4d620
Reduce duplicated accessor code with templates
ZedThree Aug 24, 2026
13a1fed
Use concept to simplify function
ZedThree Aug 24, 2026
5917d08
Remove comparison operators between region points and `Ind3D`
ZedThree Aug 25, 2026
f63ff77
Fix some clang-tidy issues
ZedThree Aug 25, 2026
a0e5803
Rename `BoundaryRegionFCI` inner class
ZedThree Aug 25, 2026
5dd7e5c
Rename `BoundaryRegionIterBase::getAt` -> `::at`
ZedThree Aug 25, 2026
dd0d345
Ensure we're looking at the same FCI boundary in comparisons
ZedThree Aug 25, 2026
4641835
Apply suggestions from code review
bendudson Aug 25, 2026
9877936
Solvers: Namespace enums
bendudson Aug 25, 2026
4c5e3d3
Solver: Reduce duplication between SNES & CVODE
bendudson Aug 25, 2026
64d91bc
Solver: Move more common functions into base class
bendudson Aug 25, 2026
1ea20a6
Solver::writeJacobianMetadataJson use fmt::format_to
bendudson Aug 25, 2026
6a486b7
PetscBinaryIO tidying and PETSc license
bendudson Aug 25, 2026
706a0ee
Add unsorted boundary region iterator test
ZedThree Aug 26, 2026
acdeec1
Remove unused `BoundaryRegionPar`
ZedThree Aug 26, 2026
1d19b72
Fix FCI example
ZedThree Aug 26, 2026
5472277
Flip order of operands in single index `Delp2` to match `D2DX2`
ZedThree Aug 26, 2026
e80ad6a
Merge pull request #3464 from boutproject/save-petsc-jacobian
ZedThree Aug 26, 2026
52e95ea
Reorder members for improved alignment
ZedThree Aug 26, 2026
c077f47
Fix `BoundaryRegionXY::length` for staggered grids in Y
ZedThree Aug 26, 2026
34856d8
Merge pull request #3475 from boutproject/fix-delp2-fp-error
bendudson Aug 26, 2026
307074f
Update difops interface to take Field3DParallel
dschwoerer Aug 27, 2026
da3008f
Remove stale .asField3DParallel
dschwoerer Aug 27, 2026
9876ba4
Introduce `FieldMetricParallel`
dschwoerer Aug 27, 2026
090da9a
Extend unit test
dschwoerer Aug 27, 2026
17b43a3
Merge pull request #3474 from boutproject/y-boundary-tidying
dschwoerer Aug 27, 2026
61ca9f1
Merge pull request #3420 from boutproject/legacy-boundary-conditions
dschwoerer Aug 27, 2026
502a650
Add doc about `bout::FieldMetricParallel`
dschwoerer Aug 27, 2026
3f6510e
Merge pull request #3477 from boutproject/fci-cleanup
dschwoerer Aug 28, 2026
f7537c1
Honor bndry_flux for FCI for Div_par_K_Grad_par_mod
dschwoerer Aug 28, 2026
1a71822
Honor bndry_flux for FCI for Div_par_K_Grad_par
dschwoerer Aug 28, 2026
ed751ae
Merge pull request #3483 from boutproject/boundary-flux-fci
bendudson Sep 1, 2026
d28d4dc
MeshFactory::create read mesh from data directory first
bendudson Sep 2, 2026
fef8575
MeshFactory: Throw on ambiguous grid file
bendudson Sep 4, 2026
2ce90a7
merge next-elimBE-new and MRI braches
maggul Sep 4, 2026
6c76f73
Merge branch 'next_continuous_temporal_filter' into next-elimBE-new-mri
maggul Sep 4, 2026
73faa54
missing f and py placeholder for now
maggul Sep 4, 2026
7c4db2b
Apply batched suggestions from code review
bendudson Sep 4, 2026
c5b645f
Document hypre_interface limitation
bendudson Sep 5, 2026
18c1197
HypreMatrix: Simplify number of boundary rows
bendudson Sep 5, 2026
f4d64c9
HypreMatrix: Rename elimBE -> use_boundary_elimination
bendudson Sep 5, 2026
33e9053
Merge pull request #3486 from boutproject/gridfile-in-datadir
bendudson Sep 7, 2026
cf92081
ARKODE_MRI interface
maggul Oct 25, 2024
8110eee
add missing files
maggul Oct 25, 2024
0ee723c
added treatment options
maggul Oct 25, 2024
6cd4c36
remove adaptivity
maggul Nov 18, 2024
153db72
adaptive step and SUNDIALS release updates
maggul Jan 9, 2025
25c6305
flag and test-kpr updates
maggul Feb 7, 2025
742e82e
ARKode-MRI: Register unavailable if sundials version is too low
bendudson Feb 8, 2025
1a6c0a0
Add fast and slow preconditioner callbacks
bendudson Feb 8, 2025
1f83051
added required header file
maggul Feb 8, 2025
595db6f
ARKode solver: Use ARKodeGetNumRhsEvals from v7.2.0
bendudson Feb 8, 2025
6f03a54
ARKode-MRI: Only call ARKodeGetCurrentStep if user requests it
bendudson Feb 8, 2025
4bcc813
Increment MRI rhs counts
bendudson Feb 12, 2025
887ede3
run_rhs_f/s internally
maggul Apr 14, 2025
0c40658
ARKodeSetStopTime before each evolve call
maggul Apr 21, 2025
2a6368b
continuous temporal filtering
maggul Nov 22, 2025
146dd5e
bug fix
maggul Nov 27, 2025
d35eb2a
print_allstats and new ARKODE functions
maggul Jun 2, 2026
68d1801
added error_bias
Jun 4, 2026
b7e440e
changed the default filtering_type to EMA
maggul Jun 4, 2026
fd8109d
macro inconsistancy
maggul Jun 18, 2026
d5619e2
print_allstats flag for CVODE
Jun 18, 2026
5361963
missing f and py placeholder for now
maggul Sep 4, 2026
0bd0b8f
Fix MRI integration follow-up issues
bendudson Sep 8, 2026
647237b
Merge branch 'next' into next-elimBE-new-api-mri-filter
bendudson Sep 8, 2026
ad3ba24
Tidy and fix build
bendudson Sep 9, 2026
85672ff
Merge branch 'next-elimBE-new-mri' into next-elimBE-new-api-mri-filter
maggul Sep 13, 2026
4b71f93
Merge pull request #4 from maggul/next-elimBE-new-api-mri-filter
maggul Sep 13, 2026
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
  •  
  •  
  •  
44 changes: 16 additions & 28 deletions .ci_fedora.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,10 @@ then
cmd="sudo docker"
fi
test . != ".$2" && mpi="$2" || mpi=openmpi
test . != ".$3" && version="$3" || version=rawhide
time $cmd pull registry.fedoraproject.org/fedora:$version
time $cmd pull ghcr.io/boutproject/bout-container-base:main
time $cmd create --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
--shm-size 256M \
--name mobydick registry.fedoraproject.org/fedora:$version \
--shm-size 1G \
--name mobydick ghcr.io/boutproject/bout-container-base:main \
/tmp/BOUT-dev/.ci_fedora.sh $mpi
time $cmd cp ${TRAVIS_BUILD_DIR:-$(pwd)} mobydick:/tmp/BOUT-dev
time $cmd start -a mobydick
Expand All @@ -34,46 +33,35 @@ fi

test . != ".$1" && mpi="$1" || mpi=openmpi

## If we are called as root, setup everything
if [ $UID -eq 0 ]
then
cat /etc/os-release
# Ignore weak depencies
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf
echo "minrate=10M" >> /etc/dnf/dnf.conf
export FORCE_COLUMNS=200
time dnf -y install dnf5
time dnf5 -y install dnf5-plugins cmake python3-zoidberg python3-natsort python3-boututils
# Allow to override packages - see #2073
time dnf5 copr enable -y davidsch/fixes4bout || :
time dnf5 -y upgrade
time dnf5 -y builddep bout++
useradd test
cp -a /tmp/BOUT-dev /home/test/
chown -R test /home/test
chmod u+rwX /home/test -R
su - test -c "${0/\/tmp/\/home\/test} $mpi"
## If we are called as normal user, run test
else
cp -a /tmp/BOUT-dev /home/test/
. /etc/profile.d/modules.sh
module load mpi/${1}-x86_64
export OMPI_MCA_rmaps_base_oversubscribe=yes
sudo dnf install -y python3-pytest python3-pytest-xdist
# OpenMPI Oversubscription Overrides
export OMPI_MCA_rmaps_base_oversubscribe=1
export OMPI_MCA_hwloc_base_binding_policy=none
export OMPI_MCA_rmaps_base_mapping_policy=core:OVERSUBSCRIBE
export PRTE_MCA_rmaps_default_mapping_policy=core:OVERSUBSCRIBE
export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe
export TRAVIS=true
export CI=true
# Try limiting openmp threads
export FLEXIBLAS=NETLIB
export MKL_NUM_THREADS=1
export NUMEXPR_NUM_THREADS=1
export OMP_NUM_THREADS=1
cd
cd BOUT-dev
python3 -m ensurepip
python3 -m pip install -r requirements.txt
echo "starting configure"
time cmake -S . -B build -DBOUT_USE_PETSC=ON \
-DBOUT_UPDATE_GIT_SUBMODULE=OFF \
-DBOUT_USE_SYSTEM_FMT=ON \
-DBOUT_USE_SYSTEM_MPARK_VARIANT=ON \
-DBOUT_USE_SUNDIALS=ON
-DBOUT_USE_SUNDIALS=ON \
-DBOUT_USE_SYSTEM_CPPTRACE=ON

time make -C build build-check -j 2
time make -C build check
fi
cd build && time cmake --build . --target check
2 changes: 1 addition & 1 deletion .ci_with_cmake.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ fi

cmake --build build --target build-check -j 2
cd build
ctest --output-on-failure --timeout 300
cmake --build . --target check

export LD_LIBRARY_PATH=/home/runner/local/lib:$LD_LIBRARY_PATH

Expand Down
3 changes: 2 additions & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
QualifierAlignment: Left
ReflowComments: false
SortIncludes: true
# SortUsingDeclarations: true
Expand All @@ -111,6 +112,6 @@ StatementMacros:
- BOUT_OMP
- BOUT_OMP_PERF
- BOUT_OMP_SAFE
Standard: c++14
Standard: c++20
TabWidth: 8
UseTab: Never
2 changes: 2 additions & 0 deletions .clang-format-ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# ignore matlab files
**/*.m
15 changes: 14 additions & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
Checks: 'clang-diagnostic-*,clang-analyzer-*,performance-*,readability-*,bugprone-*,clang-analyzer-*,cppcoreguidelines-*,mpi-*,misc-*,-readability-magic-numbers,-cppcoreguidelines-avoid-magic-numbers,-misc-non-private-member-variables-in-classes,-clang-analyzer-optin.mpi*,-bugprone-exception-escape,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-readability-function-cognitive-complexity,-misc-no-recursion,-bugprone-easily-swappable-parameters,-readability-identifier-length'
Checks: 'clang-diagnostic-*,clang-analyzer-*,performance-*,readability-*,bugprone-*,clang-analyzer-*,cppcoreguidelines-*,mpi-*,misc-*,-readability-magic-numbers,-cppcoreguidelines-avoid-magic-numbers,-misc-non-private-member-variables-in-classes,-clang-analyzer-optin.mpi*,-bugprone-exception-escape,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-readability-function-cognitive-complexity,-misc-no-recursion,-bugprone-easily-swappable-parameters,-readability-identifier-length,-cppcoreguidelines-pro-bounds-avoid-unchecked-container-access'
WarningsAsErrors: ''
HeaderFilterRegex: ''
FormatStyle: file
Expand All @@ -9,6 +9,18 @@ CheckOptions:
# otherwise this breaks `ASSERT` macros!
- key: readability-simplify-boolean-expr.IgnoreMacros
value: 'true'

- key: misc-include-cleaner.IgnoreHeaders
value: 'petsc.*\.h;mpi\.h'

- key: readability-qualified-auto.IgnoreAliasing
value: 'false'

- key: readability-qualified-auto.AllowedTypes
value: 'MPI_Comm'

- key: misc-include-cleaner.IgnoreHeaders
value: 'adios2/.*;bits/.*;cpptrace/.*;petsc.*\.h'
---

Disabled checks and reasons:
Expand All @@ -17,6 +29,7 @@ These are all basically unavoidable in HPC numeric code:
-readability-magic-numbers
-cppcoreguidelines-avoid-magic-numbers
-cppcoreguidelines-pro-bounds-pointer-arithmetic
-cppcoreguidelines-pro-bounds-avoid-unchecked-container-access
-readability-function-cognitive-complexity
-bugprone-easily-swappable-parameters
-readability-identifier-length
Expand Down
6 changes: 6 additions & 0 deletions .clangd
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Diagnostics:
MissingIncludes: Strict
ClangTidy:
FastCheckFilter: None
Includes:
IgnoreHeader: ["adios2/.*", "bits/.*", "cpptrace/.*", "petsc.*"]
26 changes: 17 additions & 9 deletions .docker/fedora/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARG BASE
FROM ghcr.io/dschwoerer/bout-container-base:$BASE
ARG BASE=mpich-full-main
FROM ghcr.io/boutproject/bout-container-base:$BASE

# ----------------------------------------------------------------
# Build and install BOUT++
Expand All @@ -22,18 +22,26 @@ RUN git clone $URL \
&& git checkout $COMMIT \
&& git submodule update --init --recursive


ENV HOME=/home/boutuser
WORKDIR /home/boutuser/BOUT-dev

RUN cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/opt/bout++/ \
RUN cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr/local/ \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DBOUT_GENERATE_FIELDOPS=OFF \
-DBOUT_USE_PETSC=ON -DPETSc_ROOT=/opt/petsc \
-DBOUT_USE_PETSC=ON -DPETSc_ROOT=/usr/local \
-DBOUT_ENABLE_PYTHON=ON \
-DBOUT_USE_SUNDIALS=ON -DSUNDIALS_ROOT=/usr/lib64/$MPI/ -DSUNDIALS_INCLUDE_DIR=/usr/include/$MPI-x86_64/sundials/ \
$CMAKE_OPTIONS || (cat /home/boutuser/BOUT-dev/build/CMakeFiles/CMake{Output,Error}.log ; exit 1)
$CMAKE_OPTIONS || (cat /home/boutuser/BOUT-dev/build/CMakeFiles/CMake{Output,Error}.log ; exit 1); \
make -C build -j 2 VERBOSE=1; \
sudo make -C build install; \
rm -rf build

# Add unversioned path for python
RUN sudo ln -s /usr/local/lib/python3.* /usr/local/lib/python3.x

RUN make -C build -j 2
RUN sudo make -C build install
ENV PATH=/usr/local/bin:$PATH \
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH \
PYTHONPATH=/usr/local/lib/python3.x/site-packages/:$PYTHONPATH

RUN find /opt/bout++
# smoke test
RUN python3 -c 'import boutpp'
19 changes: 19 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
# Clang-format whole repo
d8f14fdddb5ca0fbb32d8e2bf5ac2960d6ac5ce6
ed2117e6d6826a98b6988e2f18c0c34e408563b6
# CMake formatting
17ac13c28aa3b34a0e46dbe87bb3874f6b25e706
# Added by the bot
4b010b7634aee1045743be80c268d4644522cd29
52301380586fdbf890f620c04f689b08d89a6c34
a71cad2dd6ace5741a754e2ca7daacd4bb094e0e
83cf77923a4c72e44303354923021acf932b4fd2
2c2402ed59c91164eaff46dee0f79386b7347e9e
05b7c571544c3bcb153fce67d12b9ac48947fc2d
c8f38049359170a34c915e209276238ea66b9a1e
65880e4af16cb95438437bf057c4b9fdb427b142
d1cfb8abd6aa5c76e6c1a4d7ab20929c65f8afc2
8d5cb39e03c2644715a50684f8cd0318b4e82676
ec69e8838be2dde140a915e50506f8e1ce3cb534
f2bc0488a298f136294c523bc5ab4086d090059b
c59626a0498b0cfd1be46f84f0fa38b4855a43cc
1b4707187a3a85126338303dc766280b8fb2dc56
b2e2f3575e68f771be2a4341af5fd14e2870469e
64e4285ec38569f66d31e589a4610cefd16d8076
5 changes: 0 additions & 5 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@ updates:
interval: "weekly"
directory: "/"

- package-ecosystem: "pip"
schedule:
interval: "daily"
directory: "/"

- package-ecosystem: "github-actions"
schedule:
interval: "weekly"
Expand Down
33 changes: 33 additions & 0 deletions .github/workflows/auto-formatting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: format-command

on:
pull_request:

jobs:
clang-format:
# Release candidate branches tend to have big PRs which causes all sorts of problems
if: ${{ !endsWith(github.head_ref, '-rc') }}
runs-on: ubuntu-latest
steps:
# Checkout the pull request branch, also include all history
- uses: actions/checkout@v7
with:
ref: ${{ github.head_ref }}
fetch-depth: 0

- name: "Set up Python"
uses: actions/setup-python@v7

- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Install dev tools
run: uv sync --only-dev

- name: Check prek versions are up-to-date
run: uv tool run sync-with-uv --check --diff

- name: Run everything
run: uv tool run prek run --show-diff-on-failure --from-ref origin/${{ github.base_ref }}
46 changes: 0 additions & 46 deletions .github/workflows/black-fix.yml

This file was deleted.

31 changes: 0 additions & 31 deletions .github/workflows/clang-format.yml

This file was deleted.

11 changes: 5 additions & 6 deletions .github/workflows/clang-tidy-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,23 @@ on:
paths:
- '**.cxx'
- '**.hxx'
branches-ignore:
# Release candidate branches tend to have big PRs which causes all sorts of problems
- 'v*rc'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
review:
# Release candidate branches tend to have big PRs which causes all sorts of problems
if: ${{ !endsWith(github.head_ref, '-rc') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
with:
submodules: true

- name: Run clang-tidy
uses: ZedThree/clang-tidy-review@v0.21.0
uses: ZedThree/clang-tidy-review@v0.23.1
id: review
with:
build_dir: build
Expand All @@ -47,4 +46,4 @@ jobs:
-DBOUT_UPDATE_GIT_SUBMODULE=OFF

- name: Upload clang-tidy fixes
uses: ZedThree/clang-tidy-review/upload@v0.21.0
uses: ZedThree/clang-tidy-review/upload@v0.23.1
Loading
Loading