Commit Graph
103 Commits
Author SHA1 Message Date
John CamiercamierjsVladimir Z TomovMittal, Ketan <mittal3@llnl.gov>
50368046bc [TMOP] Simplify kernels (#3658)
* Simplify TMOP kernels, fix unit tests to run --all tests with adjusted tolerance

* make style

* Split TMOP h3s file with metrics

* TMOP kernel MFEM_HOST_DEVICE fix

* Cleanup TMOP CUDA kernels from base class

* Added TMOP PA metrics directory

* meld toward master

* [tmop] struct to class friends

* Simplify tmop file names

* make style

* Cleanup

* Style and vscode gitignore

* WIP resolve conflicts

* 2024 headers

* Tmop pass

* All tmop tests

* make style

* Add astyle to clang format

* make style

* Fix class visibility

* Include cleanup

* real_t pass

* style

* MFEM_REGISTER_KERNELS for TMOPAssembleGradPA_001

* make style

* add config files

* Update config

* metric_t

* wip with T

* wip

* wip T Specialization

* c++20, fmt make_format_args

* print types and values

* wip Kernel<decltype(M)>

* wip

* Working with metric_t, int, int

* C++20 ok

* C++17 cleaned

* Rename tmop files

* Sync TMOP kernels with dispatch

* make style

* Cleanup metrics

* Use TMOPKernel

* 3D metrics standalone

* Chdir assemble

* tmop 2d/3d directories

* TMOP assemble using specializations

* All TMOP kernel specializations

* MFEM_REPORT_KERNELS

* make style

* Sync with master

* Sync with master

* make style

* make style

* Removed 2d/3d TMOP sub-directories

* CMake TMOP file list update

* makefile directories order

* With style

* Re-enable vscode gitignore

* Fix merge conflicts

* make style

* Sync

* Meld toward master

* Changes toward master

* make style

* Meld back fem tmop files

* Fix TMOP_Integrator friends

* PA tests fix & history bump

* Cleanup test tmop and fix energy2 metric data

* Update copyright 2010-2025

* 2D energy metrics

* 3D energy metrics

* make style

* Simplify metric registration

* TMOP fem kernels with double buffering

* grad3, grad3_coef

* grad3_coef, grad3, mult3_coefs, mult3

* TMOP sm kernels tools

* Rename kernels smem and use regs

* Grad3 w/ vector reg grad

* Kernel register cleanup

* Add MAX_TMOP_1D and HIP tmop ctests

* Add kernels_foreach

* Add kernels foreach

* Prefix foreach_thread

* Kernels regs w/ foreach threads

* Swap Y and X in forward only

* Backward kernels_regs

* Use simplified grad3d

* Wip D1D Q1D

* Runtime D1D Q1D

* Remove T1D

* Cleanup

* AddKernelSpecializations

* Sync with SetMaxOf

* Rename to LoadDofs and use deduced templated parameters

* Grad2d & factorization

* Eval3d for grad3 coef

* Eval2d for grad2 coef

* Cleanup TMOP_SetupGradPA_C0_2D

* Use Bld and B

* Use other accessors

* TMOPAddMultPA3D

* TMOP_AddMultPA_C0_2D

* TMOP_AddMultGradPA_3D

* TMOP_AddMultGradPA_2D

* TMOP_AddMultGradPA_C0_3D

* AddMultGradPA_C0_2D

* TMOP_AssembleDiagonalPA_2D

* Wip TMOP_AssembleDiagonalPA_C0_3D

* TMOP_AssembleDiagonalPA_3D

* TMOP_MinDetJpr_3D

* TMOP_EnergyPA_C0_2D

* TMOPEnergyPA3D

* TMOP_TcIdealShapeGivenSize_3D

* TMOP_DatcSize_3D

* Remove MAX_TMOP_1D

* Remove smem kernels

* TMOP cleanup

* TMOP - solve for displacements #4694 changes

* Cleanup and move verifications

* Rename TMOP Assemble kernels

* Move kernel regs to TMOP pa

* make style

* Meld back toward master

* Meld back to master

* Use static constexpr

* Temporary branch-history

* Help msvc with namespaces

* MSVC inner static constexpr

* Move regs to mfem namespace

* MSVC all static constexpr

* TMOP_AssembleDiagPA_C0_3D w/o regs

* Avoid set but unused variable

* MSVC TMOP_AssembleDiagPA_C0_3D ternary test try

* MSVC MFEM_TMOP_REGISTER_MDQ_KERNEL

* Switch to MFEM_TMOP_MDQ_REGISTER

* MSVC help with static constexpr

* MSVC conversions try

* MSVC as_regs2d_ref

* MSVC Explicitly bind as reference

* MSCV with reinterpret_cast

* MSVC avoiding required l-values

* MSVC avoid explicit ref bindings

* MSVC avoid explicit ref bindings 2D

* Cleanup

* Enable MFEM_TMOP_PA_DEVICE with makefile

* TMOP tests w/o Kernel Specializations

* TMOP re-enable kernels specializations

* TMOP PA tests tolerances

* TMOP tests adjustments

* Fix transposed eval regs access

* MSVC remove not allowed dllimport definitions

* MSVC linalg vector warning fix

* MSVC avoiding definition of dllimport function not allowed

* Re-enable DetKernels specializations

* Sync latest TMOP changes

* TMOP PA tests normalization wip

* Sync TMOP tests

* Remove debug file

* Meld back toward master

* Add missing tmop make source dir

* tmop shadowing, CMake & make mpi tests

* TMOP periodic tests, shadowing fix

* TMOP pa mpi tests, fix shadowing

* TMOP tighten Square01 + Combo tests

* TMOP MSVC include ordering

* Revert TMOP MPI debug device tests

* Add TMOP_DatcSize_2D

* Use mfem::future for tensor

* Move TMOP PA specific kernels to sync'ed fem kernels

* makefile source dirs fix

* use explicit namespace to avoid clash (swap)

* Revert to MFEM_FOREACH_THREAD
Use scalar/vector regs types

* Sync kernels

* Sync kernels

* Avoid applying non-zero offset to null pointer runtime error

* Remove debug include

* TMOP rename coef to limit

* Comments.

* minor

* changelog

* Replace TMOP's MFEM_FOREACH_THREAD with MFEM_FOREACH_THREAD_DIRECT

* add some missing metric IDs

* Revert branch-history

* Add missing MFEM_SYNC_THREAD in kernels
Verify TMOP isfinite energy

* UseDevice for local vectors

* make style

* No grids in TMOP_DatcSize kernels

* Remove isfinite assertions
Cleanup unused header files
Add 3D energy finite verifications

* Filter out TMOP PA tests

---------

Co-authored-by: camierjs <camierjs@Io>
Co-authored-by: Vladimir Z Tomov <tomov2@llnl.gov>
Co-authored-by: Mittal, Ketan <mittal3@llnl.gov>
2025-11-13 08:47:32 -08:00
Andrew Ho 29681677a1 Merge branch 'master' into hip-unit-tests 2025-06-27 23:01:04 -07:00
Veselin Dobrev b7ff8749a3 Fix out-of-source testing with GNU make.
Adjust a tolerance in miniapps/nurbs/nurbs_solenoidal.cpp for macOS.

Fix typos in the miniapps/nurbs/makefile in the nurbs_solenoidal tests.

Re-formatting some long lines.
2025-06-09 18:19:09 -07:00
camierjs cd4593bf8e Fix MFEM_TMOP_(PA_)DEVICE and update gitignore 2025-04-29 16:09:23 -07:00
Andrew Ho 1d556b93e7 more gpu unit tests 2025-04-24 10:47:57 -07:00
Andrew Ho 00fcb1b37f removed cuda/hip-specific unit test executables 2025-04-24 09:55:55 -07:00
Andrew Ho 8fbfdb19fe added general GPU and CUDA/HIP-specific unit tests
added gpu, raja-gpu, etc. for generic GPU device configuration
2025-03-24 13:23:43 -07:00
John Camier 5df9fa2539 Merge branch 'master' into debug-device-test 2025-02-04 12:54:25 -08:00
Tzanio Kolev e4c2152419 Update Copyright to 2010-2025 2025-02-03 12:17:26 -08:00
camierjs 2835cd7e3a Merge master in debug-device-test 2024-11-20 20:17:50 -08:00
Tzanio Kolev 0952809e5e Merge pull request #4252 from farscape-project/makefile
Improve support for out-of-tree installations
2024-07-19 14:12:27 -07:00
Nuno Nobre c32d62f83c Try to be a bit cleverer when looking for config.mk 2024-07-15 00:10:18 +01:00
Veselin Dobrev be0d8751a4 Small GNU make tweak to support out-of-source testing in tests/unit
without the need to build 'all'.
2024-05-21 21:49:35 -07:00
Veselin Dobrev 806919d354 Fix the GNU make build of the sedov and tmop unit tests.
Small tweaks in the sedov and tmop unit tests.
2024-05-03 14:38:50 -07:00
Sebastian Grimberg 9364e10c06 Fix mfem::Device construction for miniapps tests 2024-05-03 11:59:05 -07:00
Veselin Dobrev e2de493996 Merge branch 'hypre-runtime-compute-policy' into hypre-runtime-edits 2024-05-02 00:00:09 -07:00
Veselin Dobrev 39f253d2ae Small tweak in tests/unit/makefile to cleanup files generated by
tests.
2024-04-29 20:56:12 -07:00
Veselin Dobrev 442360f80d In the GNU make build system, creating an archive from all unit
test object files does not work with Catch2. Instead, combine the
object files into a single object file using 'ld -r'.
2024-03-30 23:29:56 -07:00
Veselin Dobrev 731ea03c80 In the GNU make build system, create an archive from all unit test
object files to avoid a linking issue with long link commands and
CUDA.
2024-03-30 20:39:17 -07:00
Tzanio Kolev 87290fbf56 Update Copyright to 2010-2024 2024-01-27 13:06:49 -08:00
camierjs a280109316 Merge master in debug-device-test 2023-08-29 08:31:32 -07:00
Mittal, Ketan 3fe1c20ac0 update unit test to save and load the gridfunction 2023-06-12 20:46:30 -07:00
camierjs a49d1f4e97 Merge master in debug-device-test 2023-04-17 08:22:39 -07:00
camierjs a04705310c Update test_debug_device test unit with SIGBUS errors 2023-04-14 09:27:34 -07:00
Will Pazner 3045411a09 Allow multiple test cases in debug device tests 2023-04-04 08:06:31 -07:00
Tzanio Kolev 96e00dc815 Updated COPYRIGHT to 2010-2023 2023-03-11 16:58:18 -08:00
Veselin Dobrev f3c390fc1e To support building with HIP using the Cray compilers (which
need the -xhip flag) move the $(MFEM_FLAGS) argument (that
contains the -xhip flag) before the file(s) to be compiled.
2022-11-01 13:07:27 -07:00
Tzanio 6d2530775b Extended copyright to 2022 2022-02-25 10:24:50 -08:00
Tzanio Kolev e654f4c607 Merge pull request #2203 from mfem/form-linear-system-tweak
Tweak FormLinearSystem methods
2021-07-21 08:27:28 -07:00
Veselin Dobrev b4dcec859b Create a new standalone unit test for the debug device. 2021-07-20 23:49:25 -07:00
Will Pazner 7be7168769 Unit tests that depend on mfem/data repository
Only run unit tests if data directory is present
Clone mfem/data in GitLab CI
2021-07-06 17:21:08 -07:00
camierjs 5c92b71373 Renamed fem/quadinterpolator/quadinterpolator_ => fem/qinterp/
Renamed fem/tmop/tmop_pa_jt3_datc.cpp -> fem/tmop/tmop_pa_da3.cpp
Renamed fem/tmop/tmop_pa_jt2_tc.cpp -> fem/tmop/tmop_pa_tc2.cpp
Renamed fem/tmop/tmop_pa_jt3_tc.cpp -> fem/tmop/tmop_pa_tc3.cpp
Update tests/unit/makefile with new tmop_pa name
2021-05-18 12:29:32 -07:00
camierjs 31aada0782 Rename tests/unit/miniapps/test_tmop.cpp -> tests/unit/miniapps/test_tmop_pa.cpp and TMOP_PA 2021-05-18 07:53:18 -07:00
Veselin Dobrev 9fa7150e89 Disable the test 'tmop_tests_cuda_uvm' -- it is long and does
not add much beyond what 'sedov_tests_cuda_uvm' does.
2021-05-10 14:38:34 -07:00
Veselin Dobrev b8ed750ddd A number of tweaks and fixed in the CMake and GNU make build
systems for the unit tests.
2021-05-07 18:55:52 -07:00
camierjs 07d8f71a22 Add a unit tests command line '--all' option to launch *all* non-regression tests 2021-05-07 11:26:01 -07:00
camierjs d28310081b Avoid copying tmop tests mesh files 2021-05-06 16:27:34 -07:00
camierjs aa8fa8f1ef Merge master in tmopt 2021-04-20 07:50:09 -07:00
Veselin Dobrev 4a172eaded Merge branch 'master' into ceed-tests-update
Resolved conflicts:
   makefile
   tests/unit/ceed/test_ceed.cpp
2021-04-14 06:16:16 -07:00
camierjs 2b2919b806 Merge master in tmopt 2021-03-28 12:51:39 -07:00
Adrien M. Bernede 04fb572359 Let's forget about 2020 2021-01-26 11:55:36 -08:00
camierjs a1d765525e Merge master in tmopt 2021-01-14 09:22:27 -08:00
psocratis 09372aea2d adding Parallel and CUDA unit tests for mumps and slu 2020-12-11 13:43:08 -08:00
Veselin Dobrev 04a83fa659 In makefile, make sure files in tests/unit/ceed are included
when calling 'make style'.

Make sure the CEED unit tests are properly built when using
an out-of-source GNU make build.
2020-11-04 04:29:31 -08:00
camierjs 4f8b912434 Merge master in tmopt 2020-10-26 09:00:44 -07:00
Will Pazner 2cc635a159 Split CEED unit tests and main file for faster compilation 2020-10-09 12:35:33 -07:00
camierjs 42e0b1cf0a Merge master in tmopt 2020-09-30 09:09:46 -07:00
Yohann Dudouit 11a025b26a Update makefile with new device option. 2020-09-23 12:20:53 -07:00
Yohann Dudouit 56a985b586 Fix ceed_tests. 2020-09-23 12:03:03 -07:00
Yohann Dudouit 395ce0f1f6 Readd inadvertently deleted ceed_tests makefile target. 2020-09-23 11:42:07 -07:00