Commit Graph
29 Commits
Author SHA1 Message Date
Tzanio Kolev e4c2152419 Update Copyright to 2010-2025 2025-02-03 12:17:26 -08:00
Dylan Copeland 046a874cfb Merge branch 'master' of github.com:mfem/mfem into float 2024-02-06 10:56:41 -08:00
Tzanio Kolev 87290fbf56 Update Copyright to 2010-2024 2024-01-27 13:06:49 -08:00
Tzanio Kolev d983b34924 Renamed ftype -> real_t 2023-12-13 12:51:43 -08:00
Dylan Copeland f106c03dd1 Generalized floating point type. So far, ex1 works for a serial build without lapack. 2023-10-09 14:19:25 -07:00
psocratis 733c5df082 additional blockvector wrapper with offset 2023-04-14 20:21:47 -07:00
Tzanio Kolev 96e00dc815 Updated COPYRIGHT to 2010-2023 2023-03-11 16:58:18 -08:00
Tzanio 6d2530775b Extended copyright to 2022 2022-02-25 10:24:50 -08:00
Veselin Dobrev 3f40c5796f More bugfixes and tweaks for hypre+cuda support. 2021-07-22 08:57:25 -07:00
Veselin Dobrev b7ab371c80 Tweak the impementation of Vector::NewMemoryAndSize to create
an alias when the 'own_mem' parameter is fasle.

Several simplifications/tweaks related to Vector::NewMemoryAndSize
and Vector::MakeRef in BlockVector, GridFunction, LinearForm, and
ParBlockNonlinearForm.

Add more MFEM_ASSERTs in MemoryManager::Delete_.

Remove MemoryManager::RegisterAliasBases().

In Memory<T>::MakeAlias, register the 'base' when the globally
configured device memory type (which can be a host type, e.g. when
running on host) is a device memory type. Always registering the
'base' creates errors in the unit tests:
   "alias already exists with different base/offset!"
which are probably due to dangling aliases. If we want to always
register the 'base', we need to address these errors.

Updated the unit test "MemoryManager/Scopes" to test for the new
behavior of Vector::NewMemoryAndSize.

Disable the unit test "MemoryManager" since it defined a Device
object which destroys the MemoryManager at the end of the test.
2021-05-12 13:47:11 -07:00
Adrien M. Bernede 04fb572359 Let's forget about 2020 2021-01-26 11:55:36 -08:00
Veselin Dobrev 36e34533e5 Fix a bug in BlockVector::Update
Reported by: @vkorchagova
2020-11-25 16:03:09 -08:00
stefanhenneking 6cdad9b4ee Minor style change. 2020-06-30 17:25:40 -05:00
Dylan Copeland 039a04b3e2 New BlockOperator implementation based on using MakeRef in BlockVector. 2020-05-19 16:52:13 -07:00
Tzanio 05125e19d5 Removed a space 2020-03-09 15:36:41 -07:00
Tzanio ca55ef0217 The release number for mfem-4.1 is LLNL-CODE-806117 2020-03-02 17:18:46 -08:00
Tzanio 2caa222edf A number of changes to switch the code from LGPL-2.1 to BSD-3:
- Updated LICENSE, README, CHANGELOG and CONTRIBUTING.md
- Removed COPYRIGHT, added NOTICE
- Updated the headers in all source files, makefiles, etc.
2020-02-23 11:16:46 -08:00
Veselin Dobrev 40378a046b Introduce a new Memory class for handling host + device allocations
and transfers.

The Memory class is now used by some MFEM classes (like Array and
Vector) which can be used on the Device. Such classes now provide
methods to access the underlying Memory object, e.g. GetMemory.

Updated ex1/ex1p and ex6/ex6p to not need to enable/disable the
Device at specific points -- the Device is now enabled just at the
start. Also, the same examples can now run on Device (e.g. -d cuda)
without the partial assembly option (-pa) -- full assembly will
be still done on CPU but the sparse matrix action and vector
operations will be done using the Device.

Reverted changes in class DenseMatrix related to using the Device.
At this point, DenseMatrix operations are only used for small matrices
and using the Device in this case is not a good option.
2019-05-16 14:53:39 -07:00
Jan Nikl 9e4e3b2e10 Fixed the new logic of BlockVector::Update() for the case when the offsets are shifted. 2019-01-11 06:18:34 +01:00
Veselin Dobrev 83de2dfd76 Tweak a bit the logic in BlockVector::Update(). 2019-01-10 13:14:08 -08:00
Jan Nikl 58b708713f The new offsets in BlockVector::Update() are compared with the real sizes of the blocks. 2019-01-10 10:12:09 +01:00
Jan Nikl 3a977fb925 Revert "BlockVector::Update(): added a parameter to force reallocation."
This reverts commit dec82f7046.
2019-01-10 10:12:09 +01:00
Jan Nikl f8fdf24246 Fixed BlockVector Update method, where the change of the offsets array was ignored in the case the offsets were identical, but just the location in memory differed.
The check if the offsets are identical cannot guarantee the offsets will be identical in the future. There may be a good reason why the user calls this method like rewriting or deallocating the original array. The pointer must be changed even if the forced reallocation is not performed (but it may be reconsidered if it is really needed).
2018-11-22 10:26:02 +01:00
Jakub Cerveny dec82f7046 BlockVector::Update(): added a parameter to force reallocation. 2018-11-01 16:39:35 +01:00
Jakub Cerveny cfe0e0063f Support for laghos/amr-dev, this is kind of a companion branch. 2018-02-09 17:33:31 +01:00
Veselin Dobrev b1e50055b0 In class BlockVector, add a version of the Update() method that
updates the BlockVector with new offsets and makes sure it owns
its data.
2018-01-04 20:52:55 -08:00
Veselin Dobrev e8a57f9e8b Simplify a bit the implementation of class BlockVector 2018-01-03 20:17:02 -08:00
Tzanio dbae60fe32 Version 3.1 2016-02-16 15:45:48 -08:00
Tzanio Kolev 9d7774a03e Version 3.0 2015-01-26 15:07:34 -08:00