Commit Graph
63 Commits
Author SHA1 Message Date
Veselin Dobrev 8fa9a24e20 Add support for vector FE in ParGridFunction::ExchangeFaceNbrData()
Issue reported by: @hongbo-yao (#1440)
2020-04-30 02:26:25 -07:00
William F Godoy 11afcc6321 Requested changes from PR review
Keep a few examples
Correct function signature in gridfunc and pgridfunc
2020-03-18 09:42:04 -04:00
William F Godoy 9c379891bf Resolving conflicts with latest master 2020-03-18 09:41:46 -04:00
Tzanio 05125e19d5 Removed a space 2020-03-09 15:36:41 -07:00
Tzanio 2e37ba7d97 Merge branch 'master' into yohann/dg
Conflicts:
x	fem/bilinearform_ext.cpp
2020-03-04 20:42:09 -08:00
Tzanio ca55ef0217 The release number for mfem-4.1 is LLNL-CODE-806117 2020-03-02 17:18:46 -08:00
Yohann Dudouit 6e5bda0743 Merge branch 'master' into yohann/dg 2020-02-27 16:38:19 -08:00
Yohann Dudouit 839d019ff4 Remove check for NULL prolongation 2020-02-27 09:51:07 -08:00
Tzanio e689fd5b28 Merge branch 'master' into bsd-relicense 2020-02-27 09:29:25 -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
Miguel Salazar de Troya 58ed2c2333 adding setter and fixing with_coeff to bool 2020-02-03 16:23:44 -08:00
Yohann Dudouit 4652544a14 make style 2020-01-30 18:58:12 -08:00
Yohann Dudouit 093557f273 Use GPUAwareMPI in pgridfunction. 2020-01-29 16:55:39 -08:00
Yohann Dudouit e752bba054 make style 2020-01-28 14:01:19 -08:00
Yohann ed033cf873 Merge branch 'master' into yohann/dg 2020-01-23 16:58:46 -08:00
Yohann Dudouit 18f5693c4e make style 2020-01-13 15:08:15 -08:00
Yohann Dudouit 91bbd7f563 Fix ex9p in parallel on GPU. 2020-01-10 13:56:23 -08:00
Yohann Dudouit a0bd6181af Fix ex9p for NPROCS=1. 2020-01-09 18:44:13 -08:00
Tzanio 42701bb380 Merge branch 'master' into nc-tet-dev
Conflicts:
	CHANGELOG
2019-12-30 18:22:13 -08:00
Jakub Červený 8cd967b7cc ParGridFunction::ProjectBdrCoefficientTangent: no need for separate NC branch. 2019-11-22 10:14:58 +01:00
artv3 11fb615076 reverted + mpi fix pgridfunc.cpp 2019-08-14 14:48:49 -07:00
artv3 874ff033d4 additional app-fixes 2019-08-14 08:44:13 -07:00
Jakub Červený c9e3c4b064 It seems we no longer need the two branches in ParGridFunction::ProjectBdrCoefficient
for conforming and NC meshes. Also fixes the assert going off in ex15p.
2019-07-05 16:53:40 +02:00
Veselin Dobrev a36f51db5b Update the methods:
* Vector::Sum() and
 * ParGridFunction::ExchangeFaceNbrData()

to work when the data is not on the host when called.
2019-06-18 19:12:50 -07:00
Tzanio b3c3c5cf4c Merge branch 'memory-dev' of github.com:mfem/mfem into memory-dev 2019-05-24 14:23:56 -07:00
Tzanio 1a69dcff78 Replaced FIXMEs with TODO or NOTE 2019-05-24 14:23:39 -07:00
camierjs 283264ade4 {Read,Write,ReadWrite}Access => {Read,Write,ReadWrite}
Add shortcut for Host{Read,Write,ReadWrite}
2019-05-24 14:08:45 -07:00
Veselin Dobrev 798ded1f55 Merge branch 'master' into memory-dev 2019-05-22 23:53:04 -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
Stefano Zampini 7155d89824 Fix bug in ParGridFunction::ProjectDiscCoefficient
Calling parallel assemble is conceptually wrong, since a GridFunction
represents also vdofs. See https://github.com/mfem/mfem/issues/443

Suggested-by: Veselin Dobrev <dobrev@llnl.gov>
2019-03-14 21:17:40 +03:00
Tzanio Kolev 338a4767c2 Merge pull request #682 from mfem/cut-mesh-groups-fix
Fix ordering of cut mesh groups and orientation of shared edges/faces [cut-mesh-groups-fix]
2018-12-11 06:27:06 -08:00
Veselin Dobrev 634d9431d8 Add support for parallel non-conforming meshes in class
ZienkiewiczZhuEstimator.

This support is based on the update in ParGridFunction::ComputeFlux
which, in turn, is based on the support for GroupCommunicators in
ParFiniteElementSpaces on non-conforming meshes.
2018-12-05 20:11:57 -08:00
Veselin Dobrev 721ee611c4 In L2ZZErrorEstimator, support processors without elements.
In Mesh::GeneratePartitioning, use a simple partitioning when
the number of partitions is larger than or equal to the number
of elements.

In the mesh-explorer miniapp, in the partitioning sub-menu,
indicate which partitioning method is the default.
2018-11-15 14:02:36 -08:00
Veselin Dobrev 2ae23b17d2 Added parallel version of example 22.
Enhanced class VectorMassIntegrator to support user specified
number of components using the new method SetVDim().

Tweaked the function L2ZZErrorEstimator() to support flux spaces
with any number of components; this is only supported when the
smooth flux space is a Cartesian power of a scalar space.

Updated and tested all sample runs in ex22/ex22p.
2018-11-07 19:21:04 -08:00
Veselin Dobrev d5d51cee9b In classes GridFunction and ParGridFunction, add method
ProjectBdrCoefficient for VectorCoefficients.
2018-11-02 20:44:12 -07:00
Veselin Dobrev 0d6e920cc7 Add checks to ensure the mesh is conforming in the methods
ParGridFunction::ParallelAverage.

Remove a check for non-conforming mesh in the method
ParFiniteElementSpace::Synchronize which now should work for
NC meshes too.

A few additions to the doxygen documentation of class
ParFiniteElementSpace.
2018-10-19 15:31:49 -07:00
Stowell, Mark L e8382c0b75 Merge remote-tracking branch 'origin/master' into prism-dev 2018-09-25 13:26:26 -07:00
Veselin Dobrev debea3cff7 Fix a bug in the boudary projection methods in ParGridFunction.
Specifically, in class ParGridFunction, in the methods
ProjectBdrCoefficient and ProjectBdrCoefficientTangent, add missing
average computation in the case of a nonconforming mesh.
2018-09-20 16:51:52 -07:00
Veselin Dobrev 1ddbc1e719 Fix an issue with ParGridFunction::ProjectBdrCoefficientTangent.
This fixes is the same issue is in ProjectBdrCoefficient which was
fixed by the previous commit.

An outstanding issue is the handling of nonconforming meshes in these
two methods - I left 'FIXME' comments there as reminders.
2018-09-18 15:47:47 -07:00
Veselin Dobrev 2ecebf912f In ParGridFunction::ProjectBdrCoefficient, add temporary
workaround for nonconforming meshes.

The workaround is to disable the parallel synchronization.
Also, added a debug check that all boundary dofs are set.
2018-09-13 16:53:02 -07:00
Veselin Dobrev e9176049bf Fix for an issue in the method ProjectBdrCoefficient in
class GridFunction when used in parallel.

The issue appears when the master processor for a boundary DOF does
not own any of the boundary elements adjacent to that DOF.

The method ProjectBdrCoefficientTangent is probably affected by the
same issue, however, it is not addressed by this commit.
2018-09-12 21:18:01 -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
Veselin Dobrev 39fd944dba Revert "Group communicator on (parallel) cut meshes [cut-mesh-groups-dev]" 2018-07-18 14:26:30 -07:00
Robert W. Anderson 282f35f6e0 use scalar group comm, works in nonconforming case 2018-07-13 20:17:59 -07:00
Veselin Dobrev a59c1d0847 In classes GridFunction and ParGridFunction, add a new projection
method, ProjectDiscCoefficient, that works with VectorCoefficients
performing averaging over elements.
2018-02-16 13:35:06 -08:00
Tzanio e32be388f5 Merge branch 'master' into visit-data-collection-dev
Conflicts:
	CHANGELOG
2018-01-29 09:38:26 -08:00
Veselin Dobrev 881638ac85 Merge branch 'master' into visit-data-collection-dev 2018-01-18 20:34:18 -08:00
Veselin Dobrev 27b6f1e2a8 Merge branch 'master' into nonlin-form-dev 2018-01-17 22:53:53 -08:00
Veselin Dobrev 42ad503d6e Define a shortcut for std::numeric_limits<double>::infinity() called
mfem::infinity() and replace (almost) all usage of the std version with
the shortcut.

In SparseMatrix::MakeRef, copy the field isSorted from the original
matrix.
2018-01-02 06:36:04 -08:00
Veselin Dobrev 44eb00ec04 Add ParGridFunction constructor from ParMesh* and std::istream. 2017-12-18 21:11:02 -08:00