Andrew Ho
003afb8a4c
Merge branch 'master' into hybridization-gpu-amr
2025-10-28 14:00:27 -07:00
Veselin Dobrev
c6329b292e
Fix "Specialization<...>::Add()" issue with shared MSVC builds.
...
Fix some warnings from MSVC.
2025-08-31 09:48:16 -07:00
Will Pazner
7714f8f42c
Move Hasher to hash_util.hpp, add TupleHasher
...
Remove specializations of std::hash for non-user-defined types.
2025-08-26 15:31:14 -07:00
Will Pazner
db4060cf77
Add specialization of std::hash for tuple and pair
...
Remove ad hoc hashing functions used elsewhere
2025-08-08 10:37:24 -07:00
Will Pazner
113b446634
Support member functions in kernel dispatch
2025-04-19 12:16:15 -07:00
Andrew Ho
2635018243
explicitly spell out ::mfem namespace in macro
...
this allows external codes to use MFEM_REGISTER_KERNELS without
injecting into the mfem namespace or having using namespace mfem;
2025-03-12 12:56:34 -07:00
Tzanio Kolev
e4c2152419
Update Copyright to 2010-2025
2025-02-03 12:17:26 -08:00
Will Pazner
e561db6d0a
MFEM_EXPORT for static kernel dispatch members
...
For compatibility with Windows/MSVC
2024-11-13 22:41:29 -08:00
Will Pazner
2ebe3efde8
Add unit test for kernel specializations
...
Adds const reference accessor for the kernel dispatch table
2024-11-12 12:06:14 -08:00
Will Pazner
7f962b0ee6
Remove need to call Opt<> when adding kernel specializations
...
If called without specifying optional template parameters (e.g. NBZ), they will
be default-constructed. This means kernels should handle the case of T_NBZ = 0
(and replace with NBZ = 1 or other suitable default value in that case).
2024-10-10 19:27:13 -07:00
Will Pazner
b2c53715e9
Runtime enable or disable fallback kernel reporting
2024-09-10 11:54:10 -07:00
Will Pazner
5724e4f274
Improve kernel dispatch mechanism and workaround MSVC issues
...
Introduce some workarounds for MSVC:
- Need to expand variadic macros explicitly
- Adjacent parameter packs in function templates not supported; use nested
structs instead
- Can't use default parameters in template definition if not present in
declaration
Some improvements to the kernel dispatch:
- Run is now a static member function (don't need to call Get)
- DIM is not treated differently from the other parameters
2024-06-27 09:27:58 -07:00
Will Pazner
11badb5d2f
Workaround for gcc bug with variadic template parameter packs
2024-06-26 16:09:07 -07:00
Will Pazner
39e3854585
Remove extra semicolon, include <cstddef>
2024-06-26 15:57:55 -07:00
Will Pazner
c271ac1eda
Fix MFEM_REGISTER_KERNELS macro warnings
...
Fixes the warnings:
must specify at least one argument for '...' parameter of variadic macro
[-Werror,-Wgnu-zero-variadic-macro-arguments]
and
extra ';' inside a class [-Werror,-Wextra-semi]
2024-06-26 15:27:29 -07:00
Will Pazner
ed8ce36e96
Use regular comments instead of Doxygen for MFEM_REGISTER_KERNELS macro
2024-06-26 15:26:46 -07:00
Will Pazner
635c487665
Simplify kernel dispatch macro
2024-06-26 11:42:24 -07:00
Will Pazner
90c995f0e6
Add mechanism for reporting kernel fallbacks
2024-06-26 11:25:47 -07:00
Will Pazner
185b2bba58
Kernel dispatch for non-tensor eval kernels
2024-06-25 22:12:54 -07:00
Will Pazner
93e6be67d3
Doxygen documentation for dispatch map
2024-06-25 15:24:17 -07:00
Will Pazner
998b531fe5
Rework NBZ kernel dispatch, add Det QuadratureInterpolator kernels
2024-06-25 14:39:00 -07:00
Will Pazner
a3065a05dc
Rename MFEM_DECLARE_KERNELS to MFEM_REGISTER_KERNELS
2024-06-25 11:06:21 -07:00
Will Pazner
ede448d783
Unify kernel dispatch with and without fallback parameters
2024-06-25 11:05:36 -07:00
Will Pazner
2e0df87cd6
Use dispatch mechanism in QuadratureInterpolator
2024-06-24 21:57:07 -07:00
Will Pazner
5ec854e9e4
Rearrange parameters in kernel dispatch
2024-06-24 21:48:07 -07:00
Will Pazner
842c68b0b5
Proof of concept for dispatch with QuadratureInterpolator
2024-06-24 16:38:43 -07:00
Will Pazner
c3806304d4
More simplifications
2024-06-24 15:50:12 -07:00
Will Pazner
a092f9cad0
Small adjustments
2024-06-24 14:38:41 -07:00
Will Pazner
17eb65d619
Some suggestions for dispatch map
2024-06-24 13:47:01 -07:00
john bowen
3d84777b69
Simplify kernel specialization class boilerplate using a macro.
2024-06-20 10:03:05 -07:00
john bowen
cb6d48f499
Simplify Run method in kernel dispatch
2024-06-13 15:18:33 -07:00
john bowen
f387244e57
Update kernel dispatch to support QuadratureInterpolator
2024-06-12 13:21:20 -07:00
john bowen
80e29c8950
Delete use of sizeof... due to msvc incompatability.
2024-03-27 16:34:34 -07:00
john bowen
7264091c6f
Fix mac build
2024-03-27 16:12:12 -07:00
john bowen
33c0df349d
fix makefile build
2024-03-27 14:59:13 -07:00
john bowen
008dda250b
Fix unit tests
2024-03-27 14:08:54 -07:00
john bowen
504ae95915
fix ld error
2024-03-21 12:23:26 -07:00
john bowen
5d28b67295
copyright
2024-03-19 13:06:20 -07:00
john bowen
b19800f1a7
Workaround for GCC limitation on class method non-type variadic pack deduction
2024-03-19 13:04:44 -07:00
john bowen
e96dc7e4aa
copyright
2024-03-07 10:59:20 -08:00
john bowen
6a6d7eb83c
Astyle
2024-03-07 10:43:50 -08:00
john bowen
3386418737
Fixing build issues
2024-03-01 13:03:51 -08:00
john bowen
2f09777b17
tmp
2024-02-29 12:35:06 -08:00
john bowen
12842aa9e1
Tmp: Add non type parameter packs to generalize AddSpecialization API
2024-02-15 10:02:44 -08:00
john bowen
50905e0dcb
Copyright
2024-01-30 10:55:15 -08:00
john bowen
60242d41bd
Fix makefile build error
2024-01-16 14:33:40 -08:00
john bowen
1fb47dab6b
Cleanup following rebase
2024-01-16 13:35:46 -08:00
Will Pazner
3316d89c63
Use 0 for default NBZ in kernel dispatch unless T::NBZ is defined
2022-11-30 09:00:28 -08:00
Will Pazner
6bf590c3ee
Mass kernel dispatch
2022-11-29 21:05:43 -08:00
Will Pazner
78bf9951e3
Kernel dispatch WIP
2022-11-29 16:32:21 -08:00