Commit Graph
131 Commits
Author SHA1 Message Date
Will Pazner 39647f4ffd Fix bug in RightSolve 2020-03-27 20:49:04 -07:00
Tzanio f1e04e7282 Merge branch 'master' into mfem-4.1-dev
Conflicts:
	fem/quadinterpolator.cpp
	fem/restriction.cpp
2020-03-10 16:56:01 -07:00
Tzanio 05125e19d5 Removed a space 2020-03-09 15:36:41 -07:00
Tzanio 9b19b8c09d A bit more documented linalg/kernels.hpp 2020-03-07 17:10:59 -08:00
Tzanio b22edc0adc Bugfix in kernels::CalcSingularvalue.
Documented the function arguments in linalg/kernels.hpp.

Other minor changes.
2020-03-05 18:35:55 -08:00
camierjs 28f3373ed8 Switch blas to kernels 2020-03-05 16:52:49 -08:00
camierjs a79cadc840 Merge branch 'master' into laghos 2020-03-05 16:37:55 -08:00
Tzanio 58872c9e7b Merge branch 'master' into okina-mmu
Conflicts:
	fem/datacollection.cpp
	tests/unit/CMakeLists.txt
2020-03-04 15:19:33 -08: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 ad1902b4b4 Update some doxygen documentation.
Remove the 'capacity' field from class DenseMatrix.
2020-02-15 00:35:42 -08:00
camierjs 758660a1cd Merge branch 'master' into laghos 2020-02-11 08:28:55 -08:00
camierjs 4f4c1c0e6c Merge branch 'master' into okina-mmu 2020-02-11 08:26:28 -08:00
George Zagaris 1a59129be5 ENH: propagate tolerance to lu.Factor()
Propagate the specified tolerance in LinearSolve() to the
lu.Factor() call.
2020-02-10 19:48:58 -08:00
camierjs 772c77be5d Merge branch 'master' into laghos 2020-02-05 14:48:01 -08:00
camierjs a85365da33 Change densemat to use Memory, but kept LUFactors 2020-02-04 14:36:52 -08:00
Jakub Cerveny 5669a12c57 Fixed memory leak when lu.Factor() fails. 2020-01-30 10:05:21 +01:00
Jakub Cerveny 56e20df48e A couple more style changes. 2020-01-30 09:49:08 +01:00
George Zagaris 152d984b2b STYLE: manual style fixes based on review comments 2020-01-29 19:17:11 -08:00
George Zagaris 20da647259 ENH: access matrix components directly 2020-01-29 19:08:18 -08:00
George Zagaris 1c83482ef3 ENH: optional tolerance argument in LinearSolve()
Add optional argument to set the tolerance in LinearSolve().
If not specified, the default is set to 1.e-9.
2020-01-29 18:54:59 -08:00
George Zagaris d9d6377fcb ENH: change return value to boolean
Changed the return value of the LUFactors::Factor() and
LinearSolve() to a boolean. Updated test accordingly.
2020-01-29 18:45:41 -08:00
George Zagaris 73ca8f8918 ENH: avoid using magic number in LUFactors::Factor
Add optional argument to LUFactors::Factor that prescribes
a tolernace for fuzzy comparisons. This avoids using magic
numerical values in the implementation and allows the caller
to modify the tolerance if needed. If a tolerance is not
specified, the default is set to 1.e-9.
2020-01-29 17:55:45 -08:00
George Zagaris 2b0ed55119 ENH: overload SetCol/SetRow to take pointers
Overloads the SetCol and SetRow methods of the DenseMatrix class
to take raw pointers for convenience and to avoid creation of
small objects in a tight loop.
2020-01-29 17:55:45 -08:00
George Zagaris 0e156169a7 ENH: make LUFactors::Factor less verbose on error 2020-01-29 17:55:45 -08:00
George Zagaris 0f1d8cab71 ENH: add LinearSolve(A,X) convenience routine
This commit adds a convenience routine to solve linear systems
of the form `Ax=b` for a given square DenseMatrix instance `A`
and right handside vector, `b`. In general non-trivial case of
a matrix that is 3x3 or greater, this routine serves as a thin
wrapper around the functionality of the LUFactors class that
is provided for convenience. In addition, this commit adds
associated unit tests for the new routine.
2020-01-29 17:55:45 -08:00
George Zagaris 1c3735c659 ENH: add return code to LUFactors::Factor() method
Change the LUFactors::Factor() routine such that it returns
zero on success and a negative integer otherwise.
2020-01-29 17:55:45 -08:00
Will Pazner a431e1e472 Add RightSolve function to LUFactors 2020-01-13 16:40:04 -08:00
Will Pazner 22111a33a2 Formatting 2020-01-13 12:46:20 -08:00
Will Pazner c9aeaaa987 Compute ILU factorization 2020-01-10 15:19:51 -08:00
camierjs 371d7c411b Now use blas:: code instead of densemat & cleanup 2020-01-10 12:12:53 -08:00
camierjs 7f719b5d2c Cleanup 2019-12-19 10:36:05 -08:00
camierjs 81d3d81223 Merge branch 'master' into laghos 2019-12-17 12:51:17 -08:00
camierjs f50c7c4478 Create linalg/blas.hpp 2019-10-07 20:03:39 -07:00
camierjs e91c66dd43 Eigen from Laghos 2019-10-07 15:24:11 -07:00
artv3 80f781df02 first pass at app fixes 2019-05-30 06:29:07 -07: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
Tzanio a28a779df1 Merge branch 'okina' into okina-mm-object
Conflicts:
        fem/bilininteg_ext.cpp
        general/mem_manager.cpp
	general/mem_manager.hpp
	general/occa.cpp
2019-04-09 19:19:45 -07:00
camierjs 2020335b50 Renaming + free functions in mfem namespace 2019-04-09 18:17:00 -07:00
Tzanio a49cd5df97 Merge branch 'okina-device-tweaks' into okina-rename
Conflicts:
        fem/bilinearform_ext.cpp
        fem/bilininteg_ext.cpp
        general/cuda.cpp
2019-04-09 18:08:44 -07:00
camierjs 94c5397c7d Remove the memory manager singleton 2019-04-09 17:12:20 -07:00
Tzanio 8d43da7938 Loop styling 2019-04-09 12:17:38 -07:00
camierjs 471eba4d2d Move Device::Tracking to mm::Enable/Disable
Swap lasts +=1 for ++
2019-04-09 11:42:12 -07:00
Tzanio e0c45fb9d4 Reserve okina name for future kernel interface 2019-04-08 23:39:10 -07:00
Will Pazner a5ecb742a0 Revert to using new and delete
Also rename mm::malloc to mm::New and mm::free to mm::Delete.
2019-04-04 13:44:10 -07:00
camierjs 8a4ae9a556 Rework include hierarchy not to present cuda/occa internal headers
Separate dvector3 from dtensor because it is used in coefficient.hpp
2019-04-04 11:45:46 -07:00
Will Pazner 4292eb80bc Replace new and delete with malloc and free in mm
This matches the names of the functions in mm:: and also more closely
matches their use in the rest of mfem.

Also removed the template parameter for mm::free since it is not needed.

It is possible in the future to add equivalents of new and delete to the
mm class (with different names since those are keywords) in case it is
desirable to call the constructor and destructor.
2019-04-03 16:14:13 -07:00
Tzanio 66e769d6a5 - Remove asserts
- Introduce MFEM_LINK_FLAGS to handle the fact that nvcc compiler cannot link with -x=cu
- Fixed building of 'make cuda; make all; make test'
2019-03-25 18:20:43 -07:00
camierjs a03364e473 MFEM_GPU_CANNOT_PASS cleanup and simplify cuda header 2019-03-25 12:55:19 -07:00
Tzanio bb7c142ce0 Renamed linalg/device.hpp to linalg/dtensor.hpp.
Some edits in the examples.
2019-03-22 12:15:14 -07:00