Commit Graph
129 Commits
Author SHA1 Message Date
Tzanio d79f5c6c92 Added sample runs with pyramids/wedges in examples 1, 3, 4 and 22 2021-08-22 15:06:00 -07:00
Andrew T. Barker 258206cd12 ex1, ex1p: add #ifdef MFEM_USE_CEED guards around command line arguments 2021-03-17 10:04:46 -07:00
Andrew T. Barker b166eea003 Fuse WrapOperator into ceed::Operator object, reduce code duplication 2021-03-02 10:52:44 -08:00
Andrew T. Barker 342caebed0 Address code review comments. 2021-02-25 15:36:27 -08:00
Andrew T. Barker 2f9b19ce9f Clean up after merge; this compiles and runs but is largely untested.
Note in particular that some classes/functionality are duplicated in
two places after the merge, for example MFEMCeedOperator should be
combined with mfem::ceed::Operator
2021-02-19 12:39:16 -08:00
Andrew T. Barker 394cbd2c05 Merge branch 'master' into barker29/libceed-solvers 2021-01-11 16:27:52 -08:00
Arturo Vargas dfc50efa35 add * to raja-hip in example 1 2020-11-02 14:48:21 -08:00
Arturo Vargas b11168cfe0 fix merge conflicts 2020-10-30 16:46:52 -07:00
Andrew T. Barker ded3a90d71 Move ceed_algebraic from linalg/ to fem/ for cleaner building. 2020-10-22 14:03:41 -07:00
Andrew T. Barker d472627570 Clean up examples/ex1.cpp 2020-10-22 13:14:42 -07:00
Andrew T. Barker 88e8e4943c Make AlgebraicCeedSolver a one-liner in ex1, ex1p
Also clean up some memory handling so this runs valgrind clean.
2020-10-19 13:01:09 -07:00
Tzanio 3b01fd0741 Updated CHANGELOG and Example 1 sample runs 2020-10-18 11:00:25 -07:00
Will Pazner ceeb65d36b CUDA compatibility with algebraic CEED solver 2020-10-08 12:23:41 -07:00
Will Pazner 5576cd616a Compile without MPI 2020-10-07 23:39:30 -07:00
Will Pazner 59e83fce2c Minor 2020-10-01 16:35:04 -07:00
Andrew T. Barker 899bac6187 CeedAlgebraicSolver: now works for VectorDiffusionIntegrator, VectorMassIntegrator 2020-09-14 12:38:18 -07:00
Andrew T. Barker 3752448ce2 Changes so AlgebraicCeedSolver runs on GPU on lassen
Notes:

- All the operator applications and smoothers appear to happen on
  GPU; there is a pointwise vector scaling in the interpolation/restriction
  that happens on CPU, and there are a bunch of memory copies, overall not
   very fast.
- The coarsest solver is a *single* sweep of Jacobi. This is terrible
  but it does run on GPU and some improvements are relatively easy
  (though note the right answer here is an *assembled* GPU AMG, which
  is not easy).
- In general the border between "Ceed" and "MFEM" is pretty
  debatable.
2020-09-11 15:59:26 -07:00
Arturo Vargas bc5a051d8c Add RAJA-hip 2020-09-08 15:07:37 -07:00
Andrew T. Barker ee5b822660 Strip down the Ceed interface a little bit to be simpler. 2020-09-02 13:50:35 -07:00
Andrew T. Barker 9062e5c6f3 Fix memory issue. 2020-09-01 11:22:40 -07:00
Andrew T. Barker ee177a36d6 WIP: Try to use libceed solvers in ex1 2020-09-01 09:40:11 -07:00
Tzanio Kolev 7947109731 Merge branch 'master' into master 2020-07-07 21:19:05 -07:00
Florian Omnes 525f6d2a44 Apply code-style 2020-07-07 21:48:03 +02:00
Florian Omnes 827fbfb14a Take v-dobrev's remark into account in ex1.cpp 2020-07-06 23:25:51 +02:00
Yohann Dudouit dc29574cfb Add fix to ex1 too. 2020-06-30 11:37:36 -07:00
Florian Omnes b8270effa2 Simplify memory management in example 1 2020-06-29 22:24:16 +02:00
Stowell, Mark L 43d20869d2 Modifying new mesh names in sample runs 2020-06-07 12:08:58 -07:00
Stowell, Mark L 286888a85d Adding Gmsh example meshes and corresponding sample runs 2020-05-26 17:20:44 -07:00
Yohann Dudouit b71d141155 Merge branch 'mfem-4.1-dev' of github.com:mfem/mfem into mfem-4.1-dev 2020-03-05 10:37:20 -08:00
Yohann Dudouit 18ffe9ea34 Add device sample run for ex1 on simplices.
- Use the backend specification semmantic `-d ceed-cuda:/gpu/cuda/ref`
to select a specific backend in libCEED.
2020-03-05 10:36:36 -08:00
Yohann Dudouit 5884f96b20 Create a UsesTensorBasis function for FESpace. 2020-02-14 15:55:33 -08:00
Yohann Dudouit 59ab675334 Modifications based on A. Barker review. 2020-02-04 16:54:49 -08:00
Yohann Dudouit 790eb85817 Clean the code 2020-01-16 19:05:28 -08:00
Yohann Dudouit f487ceba99 Merge branch 'master' into yohann/nontensor
Conflicts:
	fem/libceed/ceed.cpp
	fem/libceed/ceed.hpp
	fem/libceed/diffusion.cpp
	fem/libceed/mass.cpp
2020-01-16 17:47:15 -08:00
Yohann Dudouit c7953aa673 Change AssembleDiagonal to work with libCEED.
Merge branch 'master' into yohann/okina-gpu-libceed

Conflicts:
	INSTALL
	makefile
2020-01-08 09:37:28 -08:00
Tzanio b0a79d993b Final adjustments 2020-01-05 21:50:25 -08:00
Andrew T. Barker f1b0981d34 Fix dumb mistake in examples. 2020-01-03 14:42:53 -08:00
Andrew T. Barker 9f691f5460 Address issues from reviews by Veselin and Tzanio. 2020-01-03 13:22:11 -08:00
Yohann Dudouit d504de8705 Add sample runs for libCEED in ex1, ex1p, ex6, ex6p. 2019-12-12 09:42:17 -08:00
Andrew T. Barker fa9cea9486 Rename VectorSmoother -> OperatorJacobiSmoother 2019-08-21 16:45:48 -07:00
camierjs 68f360f38c 3D Jacobi PA precond. for Diffusion on GPU 2019-06-28 15:04:02 -07:00
Andrew T. Barker 8b146d4c06 ex1: implement Jacobi preconditioning for partial assembly 2019-06-26 13:27:53 -07:00
Veselin Dobrev 75065b0ea1 Addressing some feedback from the PR. 2019-05-24 10:25:34 -07:00
Veselin Dobrev b69fd1e038 Some tweaks and additions to the MemoryManager class.
Modify the Device class to require the creation of an object in
order to use backends other then Backend::CPU. At destriction,
this object will call the Destroy() method of the MemoryManager to
deallocate any remaining registered device pointers.

In class Device, remove the method Disable() and make the method
Enable() private.

Use a global Array<double> as the buffer used by the cuda functions
for minimum and dot product.
2019-05-23 23:21:27 -07:00
Tzanio 3a860f124c Added a call to Device::Enable at the end of Device::Configure.
Updated examples to use only Device::Configure (no more calls to Enable/Disable)
2019-05-21 19:17:06 -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
camierjs e9de1fcf7b Remove '>' in front of devices tests 2019-04-15 16:05:18 -07:00
Veselin Dobrev 2d39e09c12 Further small tweaks of the examples. 2019-04-11 15:52:59 -07:00
Veselin Dobrev 678759a2d6 Updates in the BilinearForm and related classes.
Small updates in ex1, ex1p, ex6, ex6p.
2019-04-10 21:34:47 -07:00
Veselin Dobrev 55f0a7ec66 Updates to the mfem::Device class. 2019-04-08 16:48:56 -07:00