Commit Graph
90 Commits
Author SHA1 Message Date
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
Jean-Sylvain CAMIER ff9819e495 Merge pull request #631 from mfem/okina
Okina GPU [okina]
2019-04-11 18:37:59 -07:00
camierjs 2020335b50 Renaming + free functions in mfem namespace 2019-04-09 18:17:00 -07:00
Tzanio 45fa7a9524 Revert "Fix other undesired changes introduced by using online merge tool"
This reverts commit ae28ec24ec.
2019-04-07 12:51:37 -07:00
Jakub Cerveny 6035dd8fda Fixed possible problem with un/signed Array<char>. 2019-04-07 20:25:43 +02:00
camierjs 045eae6a9b ex6p parallel runs fix 2019-04-04 16:18:01 -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
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 Kolev a8f0931e4b Merge pull request #697 from mfem/mesh-reordering-dev
Coarse mesh reordering for NC AMR [mesh-reordering-dev]
2019-04-01 07:09:28 -07:00
Tzanio Kolev d9917cb13f Merge branch 'master' into okina 2019-03-29 09:33:16 -07:00
Veselin Dobrev 0f98ddf9f4 Fix a compilation issue caused by the previous commit.
Also, suppress a compiler warning.
2019-03-26 15:19:13 -07:00
Tzanio 4706590237 Consolidating okina and its backends. 2019-03-21 18:55:44 -07:00
camierjs f41a0e90a9 Makefile cross-compiler, examples 1, 1p, 6, 6p and Laghos on GPU+MPI 2019-03-15 18:28:35 -07:00
Jakub Cerveny acca4aff73 Root state calculation now works for meshes that are already refined (this
is needed when loading NC meshes, as the root states are not stored in the
mesh file).
2019-03-06 15:58:39 +01:00
Will Pazner ea65f08576 Get rid of if statement in previous commit
Instead use pointer arithmetic to circumvent array bounds checking
2019-03-05 10:25:41 -08:00
Will Pazner b91545c6ef Fix out-of-bounds error in GetCoarseToFineMap 2019-03-04 19:50:48 -08:00
Jakub Červený 91ef7e1d96 Merge branch 'master' into mesh-reordering-dev 2019-03-01 14:53:24 +01:00
camierjs eb68f79ee2 MM sanitized 2019-02-28 12:47:09 -08:00
Veselin Dobrev 128299cd32 Add missing #include for serial build. 2019-02-20 17:48:15 -08:00
Veselin Dobrev 796423b03f Implement LOR-to-HO transfer operator, returned by the new method
FiniteElementSpace::GetReverseTransferOperator().
2019-02-15 17:51:25 -08:00
Jakub Červený 27b173d10d Cleaning up ex1 and ex1p. 2018-12-15 15:26:23 +01:00
Jakub Červený 139d71318c Mesh::Make2D and Make3D now allow SFC ordering. 2018-12-14 18:14:51 +01:00
Jakub Červený 16e82fe6b5 GridSfcOrdering3D works. 2018-12-13 17:31:43 +01:00
Jakub Červený b33914841c WIP GridSfcOrdering3D 2018-12-09 22:21:09 +01:00
Jakub Cerveny 768f538383 GridSfcOrdering: cleaned up. 2018-12-08 16:19:29 +01:00
Jakub Červený 3e04fb3afa GridSfcOrdering: works for general dimensions! 2018-12-07 21:34:45 +01:00
Jakub Červený fba0fd6187 Edge orientations fixed in ParNCMesh conforming groups. 2018-11-22 13:16:23 +01:00
Jakub Červený 588548b13d WIP fix order of shared entities in ParMesh compatibility groups. 2018-11-16 17:30:50 +01:00
Jakub Cerveny 1a422f11b0 NCMesh::InitRootState works for hexes. 2018-10-29 22:11:25 +01:00
Jakub Cerveny f0cbbfc7b5 NCMesh::InitRootState works for quads (simple version w/o new states) 2018-10-26 18:11:33 +02:00
Jakub Cerveny 334797944e Merge branch 'mesh-reordering-dev' of github.com:mfem/mfem into mesh-reordering-dev 2018-10-26 10:34:51 +02:00
Jakub Cerveny 36ed4ce1ff WIP finding root state for quads. 2018-10-25 17:15:47 +02:00
Jakub Cerveny ecde809bbc Merge branch 'master' into mesh-reordering-dev 2018-10-19 09:47:16 -07:00
Jakub Cerveny 01988b9a30 Evaluating Gecko and METIS ordering. 2018-10-05 20:47:20 +02:00
Veselin Dobrev 7b09c91564 Merge branch 'prism-dev' into prism-dev-dev 2018-08-31 17:27:03 -07:00
Veselin Dobrev bd52c083e6 Bugfix in Mesh::UniformRefinement plus a few small tweaks 2018-08-31 17:25:10 -07:00
Veselin Dobrev b4c143c40d A number of proposed tweaks for merging into prism-dev.
* Removed the fixed low-order finite element classes for wedges.
* Replace more cases of 'int' variables with 'Geometry::Type',
  mainly in class FiniteElement and its derived classes.
* Use constants from BasisType (instead of Quadrature1D) in the
  parameters of the *WedgeElement finite element classes.
* Impose ordering on the construction of some global objects by
  moving them into the same translation unit: specifically, moved
  the objects 'TriangleFE', 'TetrahedronFE', 'WedgeFE', and
  'Geometries' into fem/fe.cpp.
* In switchs on 'Geometry::Type', move the 'Geometry::PRISM' case
  last - just to follow the order in the enumeration.
* Add a new method CoarseFineTransformations::GetPointMatrices
  that simplifies some code that uses CoarseFineTransformations.
* Removed the 'INVALID' and 'MIXED' constants from the enum
  Element::Type.
* Remove the static method Element::GeometryType.
* Tweak some doxygen comments in the classes Embedding and
  CoarseFineTransformations.
* Generate an error if the method Wedge::GetNFaces is called:
  its parameter 'nFaceVertices' does not make sense for wedges.
2018-08-30 16:57:23 -07:00
Stowell, Mark L ecfc2b1360 make style 2018-07-20 19:34:26 -07:00
Stowell, Mark L 90968146bb Adding support for uniform refinement of mixed 2D meshes 2018-07-20 11:54:17 -07:00
Stowell, Mark L bae718680d Merge remote-tracking branch 'origin/master' into prism-dev
# Conflicts:
#	fem/fespace.cpp
#	fem/pfespace.cpp
2018-01-26 20:44:48 -08:00
Stowell, Mark L 8a5a250204 Merge remote-tracking branch 'origin/master' into prism-dev
# Conflicts:
#	fem/fe.cpp
#	fem/fe.hpp
#	fem/fe_coll.cpp
#	fem/geom.cpp
#	fem/geom.hpp
#	mesh/mesh.cpp
2018-01-12 11:36:49 -08:00
Veselin Dobrev 05ea6a6828 Introduce a new namespace mfem::bin_io for the functions defined
in general/binaryio.hpp.

Replace a throw statement (after MFEM_ABORT) with return.

Enclose the declaration of ParFiniteElementSpace::DebugDumpDOFs
inside #ifdef ... #endif region.
2018-01-10 19:24:41 -08:00
Jakub Červený c77a8af95a Added ParNCMesh methods Trim() and PrintMemoryDetail(). 2017-12-21 17:04:27 +01:00
Jakub Cerveny 3222ea82da Added ParNCMesh::MemoryUsage. 2017-12-20 23:06:15 +01:00
Jakub Cerveny 77b9b0733b Clean up debugging code. 2017-12-16 11:10:43 +01:00
Tzanio 29a5cf2672 std::cout -> mfem::out, fixed typo 2017-12-15 13:07:23 -08:00
Jakub Červený 5169393918 Merge branch 'master' into pmatrix-dev 2017-11-17 15:27:41 +01:00
Stowell, Mark L 00069e5914 Switching to Element::Type and Geometry::Type rather than "int" when relevant. 2017-11-15 15:34:31 -08:00
Jakub Cerveny 49517cf1eb Fixed NCMesh::Update(). Ex15p works. 2017-11-10 15:30:48 +01:00
Jakub Cerveny 1e97958910 Support for negative DOFs for H(curl)/H(div). 2017-11-10 14:01:25 +01:00