Commit Graph
374 Commits
Author SHA1 Message Date
Veselin Dobrev f858ed978d Make some move-assignment operators safe for self-assignment
See: https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c65-make-move-assignment-safe-for-self-assignment
2023-01-12 17:06:26 -08:00
Veselin Dobrev aa6b8c24bb Cleaner implementation of move assignment for HypreParVector using
the Vector move assignment.

Small simplification in the Vector move assignment operator.
2023-01-12 16:04:59 -08:00
Tom Stitt a1e4b59ed9 fix double-free of HypreParVector device memory after move when mfem is built with hypre+gpu; 2 Memories (different host pointer, same device pointer) will be registered, one will be freed when the object is destroyed and MemoryManager::Destroy will try to free the other. use Delete instead of Reset to make sure only one Memory is registered 2022-12-13 08:13:37 -08:00
Tzanio Kolev 27d11e933f Merge branch 'master' into mfem-4.5-dev
Conflicts:
	CHANGELOG
2022-10-21 11:01:20 -07:00
Veselin Dobrev 8ca9061ce4 Merge pull request #3262 from mfem/hypre-commpkg-fix
check comm pkg
2022-10-21 10:51:36 -07:00
Veselin Dobrev f494da76f7 Merge branch 'master' into hypre-2-26-0-fixes
Resolved conflicts:
   CHANGELOG
2022-10-20 16:12:58 -07:00
Veselin Dobrev 1482864193 Remove the need to explicitly call EnsureMultTranspose in the
classes SparseMatrix and HypreParMatrix.

Added new methood HypreParMatrix::ResetTranspose.

Added some crarifying doxygen documentation.
2022-10-20 16:03:23 -07:00
Veselin Dobrev ae7f17537c Fix warnings in HypreAMS::ResetAMSPrecond() for hypre >= 2.26.0 2022-10-20 08:48:48 -07:00
Socratis Petrides 905a856bd5 remove checks from constructors 2022-10-20 08:11:29 -07:00
Socratis Petrides d2106d86c3 check comm pkg 2022-10-19 19:22:12 -07:00
Tzanio Kolev ec0f08bc2a Merge pull request #3096 from mfem/hypreams-mem-leak-fix
Fix memory leak found in HypreAMS when SetOperator is called multiple times [hypreams-mem-leak-fix]
2022-10-19 15:45:54 -07:00
Veselin Dobrev d7db3de9af Some fixes for hypre v2.26.0 2022-10-18 12:13:49 -07:00
Will Pazner 35ca1be13d Fix double setup of HypreADS when calling SetOperator more than once 2022-10-10 11:06:24 -07:00
Veselin Dobrev d6155a2259 Merge branch 'master' into sundials-v6-dev
Resolved conflicts:
   CHANGELOG
2022-10-06 01:24:02 -07:00
0ae7ae87e1 feature/tsuji1/constraints (#3117)
* Added build directly to gitignore

* First cut at mfem windows build

* Adding windows build files

* Fixed relative path issue

* Remove cmake rebuild from mfem project, fix filters issues with ms

* Response to Review, making sure it builds for different windows build types

* Windows build fixes

* Cleaning up the build fixes

* Fixing .gitignore for some of the newer packages

* Fixing code for MSVC Compiler in preperation for NVCC build

* Upgrade to latest VS2017

* commit after merge

* Tweeks

* Fix ordering of help options, protect agains not having SNLS in main code

* Fixed windows build

* more project files

* Move Eng_Matmodel under class form, remove some errors/warnings in RDG

* Response to review 5

* Fix accidentally deleted constructor

* Windows build fixes; further refactoring of .vcxproj files

* Added FindHDF5.cmake file to mfem

* Added time, time step, and cycle to conduit data collection

* Further compatibility fixes, Allowing non-chemical materials to use region inflow, updating documentation

* Fix merge

* Adding a preprocessor definition for hypre.

* Update mfem project

* Update project

* Fix typos in mfem project

* Update MFEM HYPRE version

* Split mfem projects

* Update projects

* Update projects

* Update projects

* More tweaks for windows  build

* Fix tribol and mfem build on windows

* Fix hypre and mfem projects

* Fix tribol project; add opac gitignore

* Update project for new mfem version

* Update mfem build to import umpire target so that camp can be found; add empty lapack include directory that is required if mfem config files are used

* Fix to mfem for new umpire

* Update Windows project files

* Undo changes to windows project files

* Update windows project files

* Fix all windows configurations for several libraries

* Fix CMake error in MFEM

* Adding functions to set another preconditioner, instead of BoomerAMG.
Adding EliminationGMRESSolver and PenaltyGMRESSolver to use GMRES
instead of CG.

* Adding some functions to get the number of iterations and residual norm
from Hypre solvers.

* Adding two lines to return the right residual and convergence information.

* Adding some functionality to choose the preconditioner for the SchurConstrainedHypreSolver.

* Vectorizing the penalty function, as we can have different penalty values
for each constraint equation.

* We should initialize a diagonal HypreParMatrix here, instead of trying
to do row scalings.

* Adding some functions to the Hypre solver classes to set parameters.

* Whoops, this function should be for logging.

* Make this a multiplication by a diagonal SparseMatrix.

* Memory fix for SuperLU solver. This passes the address sanitizer now.

* Update to VS2022 and Intel oneAPI (with some Intel Classic)

* Fixing the Windows build for MFEM.

* Applying the change to include directories to all builds.

* Fixing undefined references for MFEM.

* make style

* Fix copyright

* Fix hidden overload

* Fixing the hidden overload here.

* Some fixes to the Windows build, after adding the SuperLU_Dist option.

* Fix MFEM build

* Update .gitignore

* fix windows build issues

* Removing dead code, adding comments.

* Consistend FindHDF5.cmake (and don't mention ALE3D)

* Rename property sheets to more consistent pattern

* Moving some things around gitignore, moving the Win32 directory to config.
Changing the relative directory structure in the project files after moving
the directory.

* Adding a function to allow for parallel symbolic factorization.

* Editing the CHANGELOG and INSTALL files.

* Editorial updates

* Remove config/Win32 (will be maintained externally)

Co-authored-by: Jamie A. Bramwell <bramwell1@llnl.gov>
Co-authored-by: Albert L. Nichols, III <nichols5@llnl.gov>
Co-authored-by: Arlie Capps <capps2@llnl.gov>
Co-authored-by: Patrick Greene <greene30@llnl.gov>
Co-authored-by: Benjamin T. Liu <liu15@llnl.gov>
Co-authored-by: Alan Dayton <dayton8@llnl.gov>
Co-authored-by: Tzanio Kolev <tzanio@llnl.gov>
2022-09-26 14:29:17 -07:00
Chris Vogl 4dd7becd3e removed unnecessary include in hypre.cpp 2022-09-21 13:45:59 -07:00
Tucker Babcock c45e6d12e6 make style 2022-09-08 16:42:31 -04:00
Tucker Babcock 1fecc8d768 add option preserving memory leak fix, and use it if the hypre version allows 2022-09-08 16:41:07 -04:00
Tzanio Kolev 4f688f6c66 Merge branch 'master' into hypreams-mem-leak-fix-tk 2022-09-07 14:54:33 -07:00
Tzanio Kolev be2874c3e4 Suggested changes in PR 3096 2022-09-06 19:01:59 -07:00
Chris Vogl 95c570b001 removed unused definition in hypre 2022-08-25 12:13:27 -07:00
Chris Vogl 88f5d5a0ca commented out deprecated ToNVector wrappers... will decide whether to support or not later 2022-08-23 15:18:35 -07:00
luz paz 476c855bd7 Fix various typos
Found via `codespell -q 3 -L allright,ba,equil,esy,fo,hda,lod,nd,ned,numer,ot,pres,ro,seh,shat,solfes,strat,tbe,te,warmup`
2022-08-05 20:50:51 -04:00
Veselin Dobrev 9592ee5ab6 Fix the HYPRE version where hypre_ParCSRMatrixLocalTranspose() was
introduced.

Add a method HypreParMatrix::EnsureMultTranspose() that calls
hypre_ParCSRMatrixLocalTranspose() when HYPRE is built for GPUs.

Use HypreParMatrix::EnsureMultTranspose() in the implementation of
class ParFiniteElementSpace when constructing the parallel
prolongation operator as a HypreParMatrix.
2022-07-27 16:16:44 -07:00
Tzanio Kolev 2c061c0366 Merge branch 'master' into artv3/hypre-opt/ParCSRMatrixLocalTranspose 2022-07-15 07:39:42 -07:00
Tucker Babcock 81e2ebdf94 address shadow field error from CI 2022-06-29 18:56:41 -06:00
Tucker Babcock 840eff1834 Fix memory leak found in HypreAMS when SetOperator is called multiple times. This occurs when using HypreAMS to precondition the linear system arising in a Newton solve. The fix is based on what has been used for HypreBoomerAMG. This source of the memory leak is that in HypreSolver::Setup the underlying solver's SetupFcn would be called, if setup_called was false. SetOperator sets setup_called to true, so HYPRE_AMSSetup would be called multiple times on the same underlying solver, creating a leak. I've introduced a new function ResetAMSPrecond that is called if SetOperator is called with a valid HypreParMatrix, that destroys the old AMS solver and creates a new one based on the old solver's settings/fields. This approach is based on HypreBoomerAMG's existing ResetAMGPrecond function. 2022-06-29 17:55:00 -04:00
Yohann Dudouit 8f90dc5c03 Try fixing CI issues. 2022-06-24 12:27:15 -07:00
Arturo Vargas 0aaf837463 add version guards 2022-06-24 08:56:50 -07:00
Yohann Dudouit 5275b4926d Move HypreStealOwnership in hypre.hpp/cpp. 2022-06-13 15:47:02 -07:00
Yohann Dudouit 6ed5dfd1e6 Move EliminateBC in HypreParMatrix. 2022-06-13 10:58:47 -07:00
Arturo Vargas aee9379f34 disable hypre_ParCSRMatrixBooleanMatvecT and make style 2022-06-10 13:31:27 -07:00
Arturo Vargas d539dc6fb3 optimize At application 2022-05-27 17:38:44 -07:00
Will Pazner 23bf647ade Merge remote-tracking branch 'origin/master' into lor-batched-gpu-no-mesh 2022-04-11 09:18:10 -07:00
Will Pazner 74637f1e7f Merge pull request #2804 from mfem/from-blocks-fix
Fix for HypreParMatrixFromBlocks for square matrices
2022-04-04 09:13:18 -07:00
Will Pazner efdb30ce09 Batched LOR: add new HypreADS constructor
Allow for creation of HypreADS given explicit curl and gradient matrices and
coordinate vectors.
2022-03-28 20:46:35 -07:00
Will Pazner afc20ffca1 Merge remote-tracking branch 'origin/master' into lor-batched-gpu-no-mesh
# Conflicts:
#	doc/makefile
#	linalg/hypre.cpp
#	miniapps/solvers/plor_solvers.cpp
2022-03-21 20:53:45 -07:00
Will Pazner 88a7fa31fb Set device pointer ownership in HypreParMatrix::SetOwnerFlags 2022-03-21 20:48:53 -07:00
Veselin Dobrev 9d7684c850 Fix a warning 2022-03-21 14:36:38 -07:00
Veselin Dobrev a7925eeb28 Address 'FIXME' comments in hypre.cpp related to bigint 2022-03-21 14:27:01 -07:00
Will Pazner c3ea6f4344 Merge remote-tracking branch 'origin/master' into lor-batched-gpu-no-mesh
# Conflicts:
#	miniapps/solvers/plor_solvers.cpp
2022-03-21 11:26:48 -07:00
Tzanio 6c7a00d278 Match versions of HYPRE_Init and HYPRE_Finalize 2022-03-17 20:16:43 -07:00
Ketan Mittal c7c4e7ce3a bugfix hypre version for init and specify ordering in SetCurvature 2022-03-17 18:15:53 -07:00
Tzanio eb2594cbad Small final adjustments 2022-03-14 11:24:59 -07:00
Will Pazner d226768ec0 Simplify and document HypreSolver::Setup 2022-03-13 11:43:06 -07:00
Will Pazner c1ea4d48fa Merge remote-tracking branch 'origin/master' into lor-batched-gpu-no-mesh 2022-03-12 11:59:38 -08:00
Will Pazner 778205ec30 Add Hypre::Finalize and check to make sure we don't finalize twice 2022-03-12 09:40:00 -08:00
Tzanio 1cb2839a20 Merge branch 'master' into hypre_init-dev
Conflicts:
	CHANGELOG
2022-03-11 13:43:43 -08:00
Will Pazner a5d90c56aa Add HypreSolver::Setup 2022-03-10 17:14:46 -08:00
Will Pazner 81b6849a47 Batched LOR AMS: implementation and unit test 2022-03-10 14:25:06 -08:00