Compare commits

...
Author SHA1 Message Date
blaz cd6eca6ada modifications 2021-02-24 13:54:33 -08:00
blaz e823646017 Merge remote-tracking branch 'origin/master' into PrmBlockNonlinearForm 2021-01-26 15:35:17 -08:00
Tzanio Kolev 7ae181ba6a Merge pull request #975 from mfem/feature/vtk_high_order
Mesh reader support for VTK high order elements [feature/vtk_high_order]
2021-01-24 12:46:47 -08:00
Tzanio 8e1c02db18 typo 2021-01-24 12:43:58 -08:00
Tzanio cbbef06624 minor 2021-01-24 12:43:17 -08:00
Tzanio Kolev 0f641e344f Merge pull request #1940 from mfem/wrapper-bform-dev
Add wrapper for FormRectangular functions [wrapper-bform-dev]
2021-01-24 12:27:49 -08:00
0d9146d364 [SQUASH-MERGE] AIR solver in Hypre (#1053)
* AIR solver

* AIR: block-diag scaling, set AIR options

* new example

* SetAIROptions

* fix bugs

* more bug fix

* initialize solution vector in ode

* added blocksize

* Added command0line flags for AIR parameters.

* implemented ParCSRMatrix add in hypre and added MFEM interface.
no assumptions on "the same col_map_offd" as in the old "Add".
Should replace Add (no longer needed) with the new one

* Added absolute tolerance to HypreGMRES.

* Updated advection driver, added options to use BoomerAMG w/o gmres.

* Missing &

* AIR options: type of dropping entries for filtering A

* boomeramg print options.

* add a different \theta for R

* minor change

* for hypre 2.14

* test

* give hypre dof's coordinates

* nodal coarsening support

* changes according to the new changes in hypre/AIR [Sabs, BdiagInv]

* Added function to get CSR for on-processor rows of hyper matrix.

* Merged Ruipeng's edits with get processor function.

* Added hypre preconditioner for on-processor diret solves of triangular matrices.

* Added function to set max levels of BoomerAMG

* Added function to set max levels of BoomerAMG

* Merging with master

* Added extra functions to set specific BoomerAMG options such as interpolation, coarsening, etc.

* Added cycle option to boomeramg.

* Added funtionality to hypre boomeramg class

* Updated to support d1.5 AIR

* Added nAIR vs. lAIR options:

* Updated advection example

* Accidentally added build folder

* Small fixes to hypre files

* Add MFEM_adv steady-state-non-periodic test cases.

Add visualization.

Change config/defaults.mk to point to hypre dir.

* Corrected typo in MFEM_adv.cpp.

* Add multiple SN directions (azimuthal) as ImplicitSolve unknowns.

* Add higher azimuthal resolution test.

* Reduced number of AMG_solvers to one (not SN).

Clean up.

* First step towards the electron transport.

Hypre-mass-matrices-sparsity works.

* Code clean and tested.

Plasma profiles and all coeficients defined by functions.

* Transport example extended to run on ALE meshes (within the hydro code).

* Add include in exTRguts example.

* Source of particles inside Mult/ImplicitSolve.

* Scalar flux evolved within the TimeIntegrator.

* Integration over velocity range + a nice fig.

* AWBS/v3 model on, decelaretion integration on.

dfMdv source needs to be checked to give ne.

* AWBS working. Number of particles test ok.

* Both explicit and implicit integrators num of particles test ok.

* Add timer.

* Add AIR parameters parsing for AWBS runs.

* Add ne_ref and test nonlocal/local runs.

* Improved timer

Better matrix in memory treatment.

* Add velocity range input params.

* Add E field v-limiting

Lorentz Efield calculation.

* Add working scattering.

Low density -> positivity problems.

* A working setting (dv = - dt).

mpirun -n 4 exTRguts -m '../data/inline-quad.mesh' -rs 2 -vis -s 24 -ne 1e21 -sna 8 -vini 1.0 -vfin 0.0 -Ngr 100 -scit 1

Scattering is off.

* Scattering converges, yet unchecked.

mpirun -n 4 exTRguts -m '../data/inline-quad.mesh' -rs 1 -vis -s 24 -ne 1e21 -sna 4 -vini 1.0 -vfin 0.075 -Ngr 100 -scit 30

* Scaled -> nicer plot.

* Add exETRp example.

* Scattering is on.

* rm temp files, add user cmake to gitignore

* Added some more hypre options

* Updated example 9 to support implicit time stepping and AIR

* Added ex23 DG adv-diff with AIR for implicit solves

* example updates

* Fixing merge issue

* added two air options

* Updated AIR flags to be consistent with hypre master branch

* Removed include folder from repo

* removed build dir accidentally added..

* Removed TRT deve examples

* Removed TRT dev file

* Removed 23, MFEM_adv, updated ex9p to have AIR support

* Fixing travis stuff

* More travis

* Update hypre version in yml file for Travis

* Update hypre version in appveyor yml

* Update .appveyor.yml

* \ for windows?

* Added general DG blocksize, added extrat submatrix routine from hypre

* Fixed pointer

* Merge w/ master, fix one space in style

* Missed hypre dirs in appveyor and travis

* Reset appveyor/travis, added flag for hypre >= 21800.

* missed some hypre version #s

* Ex9 was modified in master, auto merge didn't work

* Ex9 running on quartz

* Affressing most of Dylan's comments

* Cleaning up hypre/AIR interface, addressing comments

* Some more comments

* Simplify AIR with ex9p

* Minor changes to hypre/AIR interface

* Use MPI_Session in ex9p

* Use Array instead of pointer

* Use HYPRE_Int or HYPRE_BigInt instead of int

* make style

* Minor

* Fix signed/unsigned int warning

* Removed boomeramg mult, added doxygen for wraphypreparvector

* Use MFEM's hypre memory wrappers

* Remove HypreBoomerAMG::Mult from header

* Added AIR comments, #if for hypre version

* Make input parameter const

* Use 3 procs for sample run

* Re-add comment

* Address review comments

* Address issues in WrapHypreParCSRMatrix

* Fix unintended change

* Fix memory leak in HypreParMatrix::MergeDiagAndOffd

* Small doxygen updates.

* Always call HypreParMatrix::Destroy when wrapping new vector

* Update CHANGELOG

Co-authored-by: Ruipeng Li <li50@llnl.gov>
Co-authored-by: Ruipeng Li <li50@quartz2498.llnl.gov>
Co-authored-by: holec1 <holec1@llnl.gov>
Co-authored-by: milan_holec <homijan@gmail.com>
Co-authored-by: Tzanio <tzanio@llnl.gov>
Co-authored-by: Will Pazner <will.e.p@gmail.com>
Co-authored-by: Veselin Dobrev <dobrev@llnl.gov>
2021-01-19 12:46:34 -08:00
Tzanio Kolev 9d236c575c Merge pull request #1965 from mfem/sum-integ-pa
PA and DG for SumIntegrator and add NonconservativeDGTraceIntegrator [sum-integ-pa]
2021-01-19 12:24:09 -08:00
Tzanio 998f4b5578 Fix compiler warning 2021-01-19 08:39:45 -08:00
Tzanio ebf7d3e1ef Merge branch 'master' into wrapper-bform-dev 2021-01-19 08:30:04 -08:00
Will Pazner 06054386c0 Merge remote-tracking branch 'origin/master' into sum-integ-pa
# Conflicts:
#	examples/ex9.cpp
#	examples/ex9p.cpp
#	fem/bilininteg.hpp
2021-01-18 15:47:44 -08:00
Tzanio b09086725d Listing MixedBilinearForm::FormRectangularLinearSystem as virtual 2021-01-16 23:12:19 -08:00
Tzanio Kolev 1155c003a8 Merge pull request #1761 from mfem/pa-id-interp
PA for GradientInterpolator and IdentityInterpolator
2021-01-16 23:01:04 -08:00
Tzanio Kolev 20f92199d2 Merge pull request #1879 from mfem/chak/hypresmoother-transpose
Action of HypreSmoother::MultTranspose
2021-01-14 16:30:49 -08:00
Tzanio Kolev 841769637b Merge pull request #1901 from mfem/wcdawn/documentation-DGTraceIntegrator
Add documentation for outflow boundary condition in DGTraceIntegrator
2021-01-14 16:05:06 -08:00
wcdawnandVeselin Dobrev ecef55a712 Apply suggestions from code review
Co-authored-by: Veselin Dobrev <v-dobrev@users.noreply.github.com>
2021-01-14 13:40:30 -07:00
Will Pazner 5d8cf0d37e Fix issue setting spaceDim with vertices 2021-01-13 10:37:30 -08:00
Tzanio Kolev 759987ef31 Merge pull request #1931 from mfem/test-lin-interp-dev
Broadening support for linear interpolators [test-lin-interp-dev]
2021-01-12 15:58:25 -08:00
Tzanio 316bb189c9 minor 2021-01-12 15:57:50 -08:00
Stowell, Mark L b5682f808f Updating CHANGELOG 2021-01-12 14:12:38 -08:00
Stowell, Mark L a77fb59626 Implementing/testing ProjectCurl_2D for L2 basis with FiniteElement::VALUE 2021-01-12 13:43:13 -08:00
Tzanio 2550df844d Merge branch 'master' into feature/vtk_high_order
Conflicts:
	CHANGELOG
2021-01-11 10:47:34 -08:00
Will Pazner e46d6bec93 Update CHANGELOG 2021-01-11 10:39:54 -08:00
Will Pazner 1e21230bc9 Fix bug reading quadratic VTK mesh 2021-01-11 10:32:04 -08:00
Andrew T. Barker 36796e6d55 Mention GradientInterpolator and IdentityInterpolator in CHANGELOG. 2021-01-11 08:24:45 -08:00
Andrew T. Barker 83669def7d Merge remote-tracking branch 'origin/master' into pa-id-interp 2021-01-11 08:20:08 -08:00
Tzanio 2399f47207 minor 2021-01-10 15:36:32 -08:00
Andrew T. Barker 35882669b9 Add (Par)FiniteElementSpace::GetRestrictionOperator() for consistency 2021-01-08 15:14:11 -08:00
Tzanio Kolev 3f9443d497 Merge pull request #1818 from mfem/ew-newton
Adaptive linear rtol for NewtonSolver
2021-01-08 12:57:22 -08:00
Julian Andrej 9794db95c5 added changelog entry 2021-01-08 12:44:41 -08:00
Tzanio Kolev 928d66caba Merge pull request #1950 from mfem/fix-make-shared-install
Fix the shared installation with CUDA and TPL link flags with CUDA
2021-01-07 08:23:24 -08:00
Andrew T. Barker d09826e403 Rename LocalProlongation as RestrictionTranspose for matrix-free interpolators. 2021-01-06 16:13:30 -08:00
Tzanio bbe4b002f1 Comments 2021-01-06 15:54:43 -08:00
Andrew T. Barker 0ae9e69567 ParDiscreteLinearOperator::ParallelAssemble: rename local variable for clarity 2021-01-06 15:17:52 -08:00
chakshinglee 718e9b2ce3 better setup 2021-01-05 20:29:00 -08:00
chakshinglee 17a8e525a4 use symmetry of the linear system A to determine the action of HypreSmoother::Transpose 2021-01-05 19:06:54 -08:00
Will Pazner dbd5cfcb4c Remove Doxygen comments to try to fix CI 2021-01-05 18:56:44 -08:00
Alejandro Campos 23074f0e35 test passed with ex5p, reverting it back to original 2021-01-05 17:50:45 -08:00
Alejandro Campos 423ca596d8 Merge branch 'master' into wrapper-bform-dev 2021-01-05 17:46:49 -08:00
Will Pazner 57975eb915 Use default beta value in ex9 and ex9p. 2021-01-05 17:26:52 -08:00
Will Pazner 46899fcbb5 Add default beta values for BoundaryFlowIntegrator, ...
... DGTraceIntegrator, and NonconservativeDGTraceIntegrator.

If no beta is provided, 0.5*alpha will be used, which gives an upwind
discretization. This is usually what the user wants, and seems to be
a good "sane default".
2021-01-05 17:26:18 -08:00
Will Pazner 41c5dafc2a Simplify NonconservativeDGTraceIntegrator using consistent alpha 2021-01-05 17:11:53 -08:00
Will Pazner 0fa2698cc7 Add comment about central flux 2021-01-05 17:11:18 -08:00
Will Pazner fb2e25d068 Make elem_mat mutable 2021-01-05 17:09:54 -08:00
Dylan Copeland 2faf0ae640 Reverting some changes to SetSubVector. 2021-01-05 14:15:28 -08:00
Will Pazner eae4e1128c Add comment explaining lexicographic ordering 2021-01-04 14:26:20 -08:00
Will Pazner b31f086d3c Merge remote-tracking branch 'origin/master' into sum-integ-pa 2021-01-04 11:49:00 -08:00
Will Pazner 01e8b1da07 Formatting 2021-01-04 11:48:37 -08:00
Will Pazner db53ce67bb Fix typo in comment 2021-01-04 11:48:30 -08:00
Will Pazner 7dd8e562d5 Add constants for alpha and beta in ex9 and ex9p 2021-01-04 11:48:25 -08:00
chakshinglee 92a87e1253 use Boolean flag to indicate if a HypreSmoother is symmetric 2021-01-04 10:59:45 -08:00
Tzanio Kolev f4c2758e82 Merge pull request #1977 from mfem/bugfix/matvec-coef-dev
Setting the size of the output vector in MatrixVectorProductCoefficient [bugfix/matvec-coef-dev]
2021-01-04 08:55:16 -08:00
Tzanio Kolev 9535299c2a Merge pull request #1955 from mfem/docu-proj
Document GridFunction::ProjectCoefficient and FiniteElement::Project.
2021-01-02 14:55:20 -08:00
Stowell, Mark L 9d87c4efcd Expanding product interpolator tests to include 1D and 2D tests 2020-12-31 12:48:10 -08:00
Stowell, Mark L c5ceee3ef5 Collapsing derivative tests into a loop over element types 2020-12-31 12:47:24 -08:00
Veselin Dobrev 3d946569a1 Merge pull request #1829 from mfem/face-nbr-fix
Fix GridFunction::GetGradient for face neighbor elements
2020-12-30 15:28:17 -08:00
Veselin Dobrev a8ebd745a8 Merge pull request #1956 from mfem/feature/qspace_get_order
Update QuadratureSpace with a GetOrder
2020-12-30 15:23:54 -08:00
Stowell, Mark L 3191cfa1c3 Setting the size of the output vector in MatrixVectorProductCoefficient 2020-12-30 10:25:38 -08:00
blaz c0b3dc0097 fixing bugs 2020-12-29 19:35:48 -08:00
Stowell, Mark L 388e07a373 Collapsing new 1D, 2D, and 3D unit tests into a loop over element types 2020-12-29 15:32:56 -08:00
Stowell, Mark L 320deb43ec Implementing vector versions of lower dimensional grad and curl test functions 2020-12-29 15:32:14 -08:00
Stowell, Mark L 04444b15d3 Adding comments to the VectorFiniteElement projection methods 2020-12-29 14:38:43 -08:00
Tzanio Kolev caf5d7b471 Merge pull request #1904 from mfem/amgx/artv3/configure
AmgX configuration method
2020-12-28 12:28:52 -08:00
Tzanio 736b2c79b2 minor 2020-12-28 12:27:25 -08:00
Julian Andrej 92748c1c70 remove leftovers 2020-12-28 11:45:08 -08:00
Julian Andrej 7c27b32e90 fix doxygen comment 2020-12-28 11:27:16 -08:00
Julian Andrej f442f6cee1 Merge branch 'master' into ew-newton 2020-12-28 11:07:58 -08:00
Julian Andrej 1342a59943 remove jacobian vector product 2020-12-28 11:04:51 -08:00
Julian Andrej fe23fcd39b remove jacobian vector product 2020-12-28 10:59:55 -08:00
Tzanio Kolev de9fb83efe Merge pull request #1971 from mfem/hip-typo-fix
Fix a minor typo in hip.cpp
2020-12-26 13:36:27 -08:00
Tzanio Kolev 60b1997858 Merge pull request #1921 from mfem/d2q-1d
Simple implementation for D2QValues1D
2020-12-26 13:31:09 -08:00
Veselin Dobrev de990a5fdc In hip.cpp, fix typo: MFEM_TRACK_HPI_MEM -> MFEM_TRACK_HIP_MEM 2020-12-24 14:00:41 -08:00
Tzanio Kolev 3ee90e4c0e Merge pull request #1890 from mfem/umf-mumps-slu-device-fix
Direct Solvers device fix
2020-12-24 12:20:41 -08:00
Tzanio Kolev b4c53cff15 Merge pull request #1845 from mfem/chak/multigird-without-fe
Remove FE spaces from Multigrid
2020-12-24 12:17:56 -08:00
Tzanio 69981e1996 Updated CHANGELOG and comments 2020-12-24 12:13:47 -08:00
Tzanio f84a8d80e0 Merge branch 'master' into chak/multigird-without-fe 2020-12-24 11:42:16 -08:00
Tzanio 50197feee0 Minor wording 2020-12-23 12:56:38 -08:00
blaz 108956ea49 serial example 2020-12-23 12:37:18 -08:00
blaz b581a194e2 bug cleaning 2020-12-23 12:36:16 -08:00
Dylan Copeland 116ae7bbed Editing some comments based on reviewer suggestions. 2020-12-23 12:35:44 -08:00
Will Pazner ba69eadeac Reverting addition of new integrators
Those will be added in a more comprehensive way in PR #1965.
2020-12-23 10:01:57 -08:00
Will Pazner 7e93c72948 make style 2020-12-23 09:53:46 -08:00
Will Pazner 876fafd76b Merge branch 'wcdawn/documentation-DGTraceIntegrator' into sum-integ-pa 2020-12-22 17:56:48 -08:00
Will Pazner aa1da8bee2 Merge remote-tracking branch 'origin/master' into wcdawn/documentation-DGTraceIntegrator 2020-12-22 17:45:24 -08:00
Will Pazner d738070ee2 Unify coefficients for DGTraceIntegrator and NonconservativeDGTraceIntegrator 2020-12-22 17:37:29 -08:00
Will Pazner c775a8a1a4 Merge branch 'wcdawn/documentation-DGTraceIntegrator' into dg-trace-sum 2020-12-22 17:04:09 -08:00
Will Pazner 621ad50df6 Test PA and DG for SumIntegrator 2020-12-22 17:03:08 -08:00
Will Pazner 152b02df4f Add PA and DG support for SumIntegrator 2020-12-22 17:02:50 -08:00
Will Pazner b6ea922b35 Add AddMultTransposePA for (symmetric) mass and diffusion 2020-12-22 17:02:31 -08:00
Veselin Dobrev 476e95305d Merge branch 'master' into fix-make-shared-install 2020-12-22 16:40:01 -08:00
Tzanio Kolev d5e291e989 Update fespace.hpp 2020-12-22 12:57:29 -08:00
Robert CarsonandTzanio Kolev 6d0f5971ad Update fem/fespace.hpp
Co-authored-by: Tzanio Kolev <tzanio@llnl.gov>
2020-12-22 12:33:43 -08:00
Robert 3a21476b5c Update wording of function comment 2020-12-22 09:37:29 -08:00
blaz dc044d8e93 new features 2020-12-21 14:49:58 -08:00
Tzanio Kolev 9974c0c6a9 Merge pull request #1752 from mfem/raja-teams
Add RAJA HIP and RAJA Teams
2020-12-21 12:15:43 -08:00
psocratis 55e117bb82 Enforce metis ordering in SuperLU solver test 2020-12-21 12:04:56 -08:00
Veselin Dobrev 0eaa5824ee In Mesh::GeneratePartitioning, fix a bug in the case when the
number of elements is less than the number of processors.
2020-12-20 13:41:56 -08:00
Tzanio Kolev ae5a84f2ef Merge pull request #1920 from mfem/overload-function-warning-fix
Fixing overloaded function warning [overload-function-warning-fix]
2020-12-20 13:07:53 -08:00
Vladimir TomovandTzanio a1a0aeb6af [SQUASH] TMOP improvements for untangling (#1884)
* Untangling example.

* Improvements in the untangling logic.

* Bug.

* Minor.

* More untangling corrections.

* Slight improvement.

* More untangling improvements.

* Minor.

* No energy / residual checks in the line search for untangling.

* Minor improvement in 313 and 022.

* Renamed variables.

* Disabled the size-only untangling metrics in the miniapp.

* Corresponding changes in the mesh-optimizer.

* Removed mesh files.

* make style

* Minor.

* Removed the use of sign(detT) from invariants.hpp.

* Changelog.

* minor

* Added '-vl 1' for the untangling sample runs.

* Removed all of '-rs 0 -ls 2 -li 100' from the sample command lines as
these are the default parameters in the miniapp.

Co-authored-by: Tzanio <tzanio@llnl.gov>
2020-12-20 12:57:25 -08:00
Arturo Vargas 241a5a2544 pr comments 2020-12-18 14:13:24 -08:00
Arturo VargasandAndrew T. Barker b9e26ee081 Update linalg/amgxsolver.hpp docs
Co-authored-by: Andrew T. Barker <barker29@llnl.gov>
2020-12-18 14:00:24 -08:00
Veselin Dobrev 54111e4fd5 Merge pull request #1722 from mfem/kelly-error-indicator-dev
Add Kelly error indicator
2020-12-18 12:19:56 -08:00
Veselin Dobrev da7c353df6 Merge pull request #1065 from najlkin/pr11
Fixed indices for boundary trace face integrators in MixedBilinearForm::Assemble()
2020-12-18 12:18:52 -08:00
Veselin Dobrev 9b25209337 Merge pull request #910 from hillyuan/master
METIS_PartGraphKway in FindMETIS.cmake may not working due to type error [hillyuan:master]
2020-12-18 12:17:11 -08:00
Robert 58e6db4118 make style 2020-12-17 10:52:18 -08:00
Robert Carson d226010d4e Update QuadratureSpace with a GetOrder 2020-12-17 09:53:31 -08:00
Dylan Copeland 805d51a2eb Documenting GridFunction::ProjectCoefficient and FiniteElement::Project. 2020-12-16 17:44:19 -08:00
Vladimir Z Tomov 6e7e1092db Avoids writing in the global vector every time. 2020-12-16 14:34:13 -08:00
blaz a614cac02c Initial implementation of parametric block nonlinear form 2020-12-16 09:45:19 -08:00
Tzanio Kolev 95e7dd3df8 Merge pull request #1934 from mfem/cmake-export-cxx-std-flag
CMake update
2020-12-15 13:27:24 -08:00
psocratis ecd61941d6 removing test_umf 2020-12-15 10:29:04 -08:00
Veselin Dobrev 8f010f3c0c In makefile, fix the shared install with CUDA.
In config/defaults.mk, use "$(XLINKER)" instead of "-Wl," in all
library link options.
2020-12-14 18:33:54 -08:00
Arturo Vargas bdf0e9b1d0 make style 2020-12-14 16:19:05 -08:00
Arturo Vargas 84dcb16949 ConfigureAs->SetConvergenceCheck 2020-12-14 16:17:23 -08:00
psocratis 01df630912 adding pcunit_tests to CMakeLists.txt 2020-12-14 13:26:19 -08:00
Vladimir Z Tomov 80ff56cfca Commented out the approximate Jac-vec-product. 2020-12-13 17:31:53 -08:00
Vladimir Z Tomov 58bf8f54e3 Exposed both types in the miniapps. 2020-12-13 15:13:41 -08:00
Vladimir Z Tomov 2552255ffe Updated some sample runs to use the adaptive rtol.
Updated the serial mesh-optimizer version.
2020-12-13 14:44:34 -08:00
Vladimir Z Tomov 8a130243fb Merge branch 'master' into ew-newton 2020-12-13 13:29:34 -08:00
Vladimir Z Tomov 3acc834f1d Minor. 2020-12-13 13:28:52 -08:00
Alejandro Campos 63a40bf1e9 fixes performed by make style 2020-12-11 16:35:57 -08:00
psocratis e06097b9af removing some tests 2020-12-11 16:16:54 -08:00
psocratis 09372aea2d adding Parallel and CUDA unit tests for mumps and slu 2020-12-11 13:43:08 -08:00
Dennis Ogiermann 502b95fb86 Merge branch 'master' into kelly-error-indicator-dev 2020-12-11 18:21:53 +01:00
termi-official 777d222577 Update changelog. 2020-12-11 18:05:47 +01:00
psocratis be1b800b61 Adding cuda unit test for umf 2020-12-10 18:45:59 -08:00
blaz b01b4956cf Initial interface definition for the Parametric Block integrators 2020-12-10 18:44:46 -08:00
psocratis 4f5619c88a minor edits 2020-12-10 16:07:25 -08:00
psocratis 5231ed302c Merge branch 'master' into umf-mumps-slu-device-fix 2020-12-10 15:56:33 -08:00
Julian Andrej b796dae62c restore ex10p 2020-12-10 07:36:26 -08:00
Julian Andrej 7bcba91890 address comments and correct dq eps 2020-12-10 07:36:18 -08:00
Veselin Dobrev 33dfee978b Merge pull request #1865 from mfem/coef-api
Matrix coefficient interface improvements
2020-12-09 22:48:46 -08:00
Veselin Dobrev 73ff58db37 Merge branch 'master' into kelly-error-indicator-dev 2020-12-09 22:12:51 -08:00
Veselin Dobrev 7d1bf5a748 Replace 'abs()' with 'std::abs()' to fix an issue with some
compilers (e.g. Intel) using the integer version of `abs()`
instead of the 'double' version causing failures in the unit
tests in tests/unit/fem/test_estimator.cpp.

Use 'auto &' instead of just 'auto' in various places to
avoid copying arrays and structures.

Pass 'Array' parameters by reference instead of by value.

Define ErrorEstimator::GetTotalError() in the base class to
return zero, making it optional to override in derived classes.
This should allow any user defined derived classes to continue
to work without having to define this new method.

Some small formatting edits.
2020-12-09 21:56:14 -08:00
Will Pazner 921f4aaab6 Small simplification in ParGridFunction::GetElementDofValues 2020-12-09 10:31:12 -08:00
Will Pazner a5806ea9eb Rename GridFunction::GetElementDofs to GridFunction::GetElementDofValues 2020-12-09 10:22:55 -08:00
Veselin Dobrev ca721dd1ae Make sure CMake exports the C++ language flag to config.mk
Bump the minimum CMake version requirement to 3.1.
2020-12-08 23:21:12 -08:00
Stowell, Mark L 04f44f2a50 Expanding linear interpolator unit tests 2020-12-08 15:11:34 -08:00
Stowell, Mark L de36574fa7 Adding Vector FE support in Project_RT and Project_ND 2020-12-08 15:11:09 -08:00
Stowell, Mark L 0e2735128c Adding support for mixed FiniteElement::INTEGRAL/VALUE in NodalFiniteElement::Project 2020-12-08 15:10:26 -08:00
Stowell, Mark L 83c9d7289a Adding FiniteElement::INTEGRAL support to GridFunction::GetVectorValues 2020-12-08 15:08:44 -08:00
Stowell, Mark L 0bbbc43ebf Adding FiniteElement::INTEGRAL support to GridFunction::GetValues 2020-12-08 15:07:45 -08:00
Socratis PetridesandWill Pazner 216d50b0ad Update fem/gridfunc.hpp
Co-authored-by: Will Pazner <11493037+pazner@users.noreply.github.com>
2020-12-07 17:41:29 -08:00
Vladimir Z Tomov 428b515668 style. 2020-12-06 22:03:21 -08:00
Vladimir Z Tomov 72924b927b D2QValues1D 2020-12-06 21:36:06 -08:00
Alejandro Campos bac26a7422 added wrapper for FormRectangularSystemMatrix() 2020-12-06 16:38:15 -08:00
Tzanio Kolev cf6ce3c823 Merge pull request #1652 from mfem/ex25-gpu
GPU and PA support for Example 25
2020-12-06 14:18:45 -08:00
Tzanio Kolev a712d0ecb5 Merge pull request #1918 from mfem/fix-emscripten-build
Fix emscripten build
2020-12-06 14:16:24 -08:00
psocratis 165b7910ec removing virtual from deprecated function 2020-12-04 12:06:06 -08:00
psocratis 83181083e9 fixing overloaded function warning 2020-12-04 11:57:16 -08:00
wcdawn aa1127fdf0 Merge pull request #1914 from mfem/convection-documentation
Documentation/convenience changes for upwind advection
2020-12-04 11:59:16 -05:00
termi-official aba640498e Fix duplicate in example 15 docs. 2020-12-04 17:26:54 +01:00
tom 908b60547a use 'XSI-compliant' strerror_r with emscripten; fixes build 2020-12-03 10:12:40 -08:00
Dylan Copeland c059fe7f41 Merge branch 'master' of https://github.com/mfem/mfem into coef-api 2020-12-02 15:20:20 -08:00
Dylan Copeland 8c55d3aa1f CHANGELOG 2020-12-02 15:18:39 -08:00
Julian Andrej b420256c2f another try to fix doxygen comments 2020-12-02 13:36:29 -08:00
Julian Andrej 9b12b445d5 fix doxygen comment 2020-12-02 13:07:10 -08:00
Tzanio Kolev d21b9d2caf Merge pull request #1738 from mfem/br2-dev
Implement "BR2" method for DG diffusion
2020-12-02 13:00:51 -08:00
Tzanio 51cf18da38 Move BR2 description to 4.2.1 section 2020-12-02 12:59:24 -08:00
Tzanio Kolev d0c3ddf470 Merge pull request #1907 from mfem/block-vector-update-fix
Fix a bug in BlockVector::Update
2020-12-02 12:29:59 -08:00
Julian Andrej b8922a8988 non-messed up merge 2020-12-02 10:52:38 -08:00
Julian Andrej d0fd04c7dd Merge branch 'master' into ew-newton 2020-12-02 10:49:06 -08:00
Stefan Henneking 7a3376213c Merge branch 'master' of github.com:mfem/mfem into ex25-gpu 2020-12-02 09:14:10 -08:00
Will Pazner 08de600931 Modify ex9 and ex9p to use NonconservativeDGTraceIntegrator 2020-12-02 08:33:45 -08:00
Will Pazner 3ac5c3a4b7 Add ConservativeConvectionIntegrator, NonconservativeDGTraceIntegrator, and some comments 2020-12-01 13:18:14 -08:00
Will Pazner 2e53605ae4 Clarify comment 2020-11-30 15:43:42 -08:00
Will Pazner 6dac4554c0 Merge remote-tracking branch 'origin/master' into br2-dev 2020-11-30 15:37:13 -08:00
Will Pazner 648017615c Clarify comment 2020-11-30 15:37:06 -08:00
Will PaznerandYohann 6168948232 Update fem/bilininteg_br2.cpp
Co-authored-by: Yohann <dudouit1@llnl.gov>
2020-11-30 15:36:21 -08:00
Will Pazner 906e82f099 Merge remote-tracking branch 'origin/master' into face-nbr-fix 2020-11-30 13:12:47 -08:00
Veselin Dobrev 36e34533e5 Fix a bug in BlockVector::Update
Reported by: @vkorchagova
2020-11-25 16:03:09 -08:00
Veselin Dobrev 9a1616ac3f Merge pull request #1877 from mfem/ex3p
No-PA device runs fixes
2020-11-24 11:57:39 -08:00
Arturo Vargas 4b4cde0da5 clean up, add to examples 2020-11-24 00:30:17 -08:00
Arturo Vargas ecace58420 Merge branch 'master' into amgx/artv3/configure 2020-11-23 22:59:49 -08:00
Tzanio Kolev 736c2a486d Merge branch 'master' into ex25-gpu 2020-11-23 10:18:20 -08:00
William Dawn a74010deb5 add documentation for outflow boundary conditions with DGTraceIntegrator 2020-11-23 11:31:27 -05:00
Tzanio Kolev 4d5fdfd553 Merge pull request #1854 from mfem/bernstein-deref
Derefinement for Bernstein basis
2020-11-22 17:44:29 -08:00
Tzanio Kolev 789e51f2fb Merge pull request #1848 from mfem/navier-vsimex
Variable time step algorithm for Navier
2020-11-22 17:28:13 -08:00
Tzanio Kolev 64a961cbf8 Merge branch 'master' into navier-vsimex 2020-11-22 17:27:51 -08:00
Tzanio f58b69b805 minor 2020-11-22 17:22:37 -08:00
Tzanio Kolev 8b63108110 Merge pull request #1861 from mfem/tmop-metrics
Updated mesh quality metrics for TMOP-based mesh optimization
2020-11-22 17:14:52 -08:00
Will Pazner 90301913e7 Merge pull request #1894 from mfem/xml_vtk
XML VTK Support
2020-11-20 14:42:34 -08:00
Will Pazner 2851ca57b7 Add TinyXML2 to NOTICE file 2020-11-20 14:41:38 -08:00
Will Pazner 12363d84a1 Fix Doxygen syntax error 2020-11-20 14:25:12 -08:00
Will Pazner da1df498cb Merge remote-tracking branch 'origin/feature/vtk_high_order' into xml_vtk 2020-11-20 11:20:07 -08:00
Will Pazner b73a913dd2 Merge remote-tracking branch 'origin/master' into feature/vtk_high_order
# Conflicts:
#	mesh/vtk.cpp
2020-11-20 11:19:46 -08:00
Tzanio Kolev 533b45cabd Merge pull request #1876 from mfem/fix-cmake-fieldp-interp
Add field-interp to CMake builds.
2020-11-20 10:54:33 -08:00
Tzanio Kolev 4f32a52915 Merge pull request #1892 from mfem/2nd-order-operator-comment-fix
Update secondordertimedep operator comment
2020-11-20 10:53:34 -08:00
Tzanio Kolev 1b2f6d2872 Merge pull request #1888 from mfem/vtk-wedge-fix
Fixing wedge elements in Mesh::PrintVTK and beam-wedge.vtk [vtk-wedge-fix]
2020-11-20 10:52:15 -08:00
Will Pazner f0f3dccb79 Fix warning 2020-11-19 20:57:01 -08:00
Will Pazner 75c206f360 Fix errors with sscanf format string in TinyXML 2020-11-19 20:46:26 -08:00
Will Pazner c10c41e170 Minor 2020-11-19 17:04:56 -08:00
Will Pazner 02aee8bbbf Exclude TinyXML from code style and Doxygen docs 2020-11-19 14:47:25 -08:00
Will Pazner b35a29a82c Minor 2020-11-19 13:03:15 -08:00
Will Pazner 224ea084d8 Read XML VTK meshes (including high-order) 2020-11-19 12:48:37 -08:00
Will Pazner 9cda70d880 Add TinyXML2
zlib licensed, repo at https://github.com/leethomason/tinyxml2
2020-11-19 12:48:07 -08:00
Ido Akkerman 4660886599 Update secondordertimedep operator comment 2020-11-19 15:12:51 +01:00
Will Pazner 2c5a2a6045 Initialize spaceDim in NURBS mesh reader 2020-11-18 21:43:29 -08:00
Will Pazner acb253ca96 Fix small memory leak in VTK mesh reader 2020-11-18 18:30:11 -08:00
Will Pazner 8300ab8fa1 Test lexicographic ordering of L2 elements 2020-11-18 18:26:13 -08:00
Will Pazner 883011bc85 Update high-order VTK mesh reader 2020-11-18 18:16:41 -08:00
Will Pazner ab28d29fea Minor 2020-11-18 18:14:38 -08:00
Will Pazner 7deaae57b3 Make VTK tet output consistent with new refined vertex ordering 2020-11-18 17:14:47 -08:00
Will Pazner 4a1ae4af84 Add lexicographic ordering for all H1 element types
Mappings from canonical "MFEM" ordering (vertices, edges, faces,
interior) to lexicographic/Cartesian geometry on triangles,
tetrahedra, and prisms.
This map already exists for tensor-product geometries.
2020-11-18 15:55:08 -08:00
Vladimir Z Tomov 48f2b999e7 Minor. 2020-11-18 14:51:58 -08:00
Will Pazner 7ca85ffcef Remove unnecessary special case for refined prism 2020-11-18 14:24:08 -08:00
Will Pazner b1ae8d6807 Use lexicographic vertex ordering for refined tetrahedron 2020-11-18 14:24:08 -08:00
Vladimir Z Tomov a0cdaca8ce Minor. 2020-11-18 14:17:07 -08:00
Vladimir Z Tomov 5f57038f02 Use Jacobi preconditioner for one of the ICF sample runs. 2020-11-18 14:11:30 -08:00
Vladimir Z Tomov 85a38a3134 Minor. 2020-11-18 13:52:38 -08:00
Vladimir Z Tomov a617d51b8d Tuned the -mid 36 sample run.
Removed the equivalent -mid 14 sample run.
2020-11-18 13:42:09 -08:00
Veselin Dobrev ffc0a9ee7d Merge pull request #1873 from mfem/QuadratureFunction_size-fix
Quadrature function size fix
2020-11-18 13:15:43 -08:00
Tzanio Kolev 7083d53dd7 Merge pull request #1862 from mfem/new-umpire-fix
Fix for newer versions of Umpire [new-umpire-fix]
2020-11-18 13:06:45 -08:00
Tzanio Kolev 1b8fd5466e Merge pull request #1872 from mfem/cross-cross-dev
Implementing a missed c'tor in CrossCrossCoefficient [cross-cross-dev]
2020-11-18 12:59:49 -08:00
Tzanio Kolev 4e81be2155 Merge pull request #1878 from mfem/omp-deterministic-dot
Add a deterministic way of computing the dot product with OpenMP
2020-11-18 12:55:15 -08:00
Veselin Dobrev 95adb0d115 Merge pull request #1804 from mfem/jump-error
DG Jump Error Scaling
2020-11-18 12:53:43 -08:00
termi-official 4a0142a1c6 Update descrition of ex15p to include the different error estimators. 2020-11-18 21:22:39 +01:00
Vladimir Z Tomov 69a7d67ad3 Changed metric 80's constant to 0.5 to have faster convergence.
Removed the equivalent metric 7 sample run.
2020-11-18 12:08:45 -08:00
Vladimir Z Tomov 5dfa41aaf9 Minres print levels. 2020-11-18 11:38:43 -08:00
psocratis 1cbecbc0cf ComplexUMFPackSolver fix 2020-11-18 11:30:41 -08:00
Vladimir Z Tomov c942da97a6 Minor. 2020-11-18 11:29:32 -08:00
Julian Andrej 7e9d652aa9 updated CHANGELOG 2020-11-18 08:35:38 -08:00
Julian Andrej 9828a5b78d Merge branch 'master' into navier-vsimex 2020-11-18 08:33:37 -08:00
Julian Andrej 51d46e8775 remove unnecessary branching 2020-11-18 08:32:29 -08:00
Will Pazner 34e4dd9a5d Simplify VTK prism permutation 2020-11-17 19:25:54 -08:00
psocratis ff1c2deb4f fixing device runs for slu, mumps and umfpack 2020-11-17 19:16:02 -08:00
Stowell, Mark L 7b3e7ee2fe Reordering wedge vertices when using Mesh::PrintVTU 2020-11-17 18:34:48 -08:00
Will Pazner 9dc9c9bcf5 Simplify Mesh::PrintVTU and Mesh::PrintVTK 2020-11-17 17:50:02 -08:00
Will Pazner 9250600e11 Add VTK geometry helpers 2020-11-17 17:38:55 -08:00
Stowell, Mark L cfead6a03b Switching to beam-wedge.vtk produced by Mesh::PrintVTK 2020-11-17 16:44:47 -08:00
Stowell, Mark L 41b4f7183b Altering vertex order for wedges in Mesh::PrintVTK 2020-11-17 16:43:15 -08:00
Stowell, Mark L fbb9b4938d Reordering beam-wedge.vtk vertices to match VTK standard 2020-11-17 16:35:02 -08:00
Will Pazner 38d30f034a Simplify spaceDim detection code 2020-11-17 12:43:43 -08:00
Veselin Dobrev 78a4889fd0 Move some Host{Read,Write,ReadWrite} calls just before the
calls that need the data on host. This should make it clearer
why they are needed and should help with future updates that
move operations to device.

In HypreSolver and HyprePCG, moved the output vector initialization
in non-iterative mode before the setup calls. This makes sure we
do not give uninitialized data to the setup calls.

Added some more host transfers in the sparse matrix-sparse matrix
multiplication function.
2020-11-17 12:40:51 -08:00
Will Pazner 30e4f991ad Merge remote-tracking branch 'origin/master' into feature/vtk_high_order 2020-11-17 12:34:11 -08:00
Stowell, Mark L 336ee95d26 Removing unimplemented method name 2020-11-17 11:52:10 -08:00
Dylan Copeland 4051ee21f8 Restoring EvalSymmetric function as deprecated. 2020-11-17 10:30:58 -08:00
camierjs 3d314e419a Remove duplicate ex3p tests 2020-11-17 08:29:03 -08:00
Veselin Dobrev d28d6e4641 Remove the use of the deprecated field 'Face' in the class
FaceElementTransformations.
2020-11-16 17:41:36 -08:00
Veselin Dobrev 647fda9c97 Merge branch 'master' into najlkin-pr11 2020-11-16 17:33:56 -08:00
Socratis Petrides 0c12c29663 Merge branch 'ex3p' into ex25-gpu 2020-11-16 15:37:43 -08:00
Veselin DobrevandTzanio Kolev ea01d71fb0 Update linalg/vector.cpp
Co-authored-by: Tzanio Kolev <tzanio@llnl.gov>
2020-11-16 15:09:58 -08:00
Veselin DobrevandTzanio Kolev 1b91c0c678 Update linalg/vector.cpp
Co-authored-by: Tzanio Kolev <tzanio@llnl.gov>
2020-11-16 15:09:51 -08:00
camierjs 72fe130e7e Put back np to 4 for no-pa runs 2020-11-16 12:20:59 -08:00
camierjs e0efc56aa2 Switch debug device for cuda in ex3p sample no-pa run 2020-11-16 12:12:33 -08:00
Dylan CopelandandWill Pazner 5594557196 Add LEGACYFULL case.
Co-authored-by: Will Pazner <11493037+pazner@users.noreply.github.com>
2020-11-16 11:50:10 -08:00
camierjs 64eb077e50 Add device w/o partial assembly runs 2020-11-16 11:26:27 -08:00
camierjs 40510f07ca Pull the right x into Mult 2020-11-16 11:19:01 -08:00
Dylan Copeland b2a61eb9dc Moving some underscores. 2020-11-16 09:39:21 -08:00
Ketan Mittal e4a71969a3 Merge branch 'master' of https://github.com/mfem/mfem into tmop-metrics 2020-11-16 09:27:10 -08:00
Ketan Mittal 916d7e7a24 Merge branch 'tmop-metrics' of https://github.com/mfem/mfem into tmop-metrics 2020-11-16 07:23:19 -08:00
Ketan Mittal 982b8417e5 minor 2020-11-16 07:18:55 -08:00
chakshinglee df6cea3833 add a flag to give flexibility for HypreSmoother::MultTranspose to be defined when the smoother is symmetric 2020-11-15 23:24:26 -08:00
Veselin Dobrev 65f2add11d Add a deterministic way of computing the dot product with OpenMP 2020-11-15 21:18:31 -08:00
Tzanio Kolev 3bb3974bcb Merge pull request #1828 from mfem/cygwin-fixes
Cygwin fixes
2020-11-15 13:22:40 -08:00
Vladimir Z Tomov 326cbadf13 Missing check for id == 36 in mesh-optimizer. 2020-11-14 18:56:59 -08:00
camierjs 19634570f7 Re-enable MMU protection errors 2020-11-13 16:41:26 -08:00
camierjs 020a97f0fc FullSimplify & revert ex3p 2020-11-13 16:37:55 -08:00
camierjs f82d078562 Simplify 2020-11-13 16:17:22 -08:00
camierjs dab294dabf Initial run 2020-11-13 15:25:36 -08:00
Andrew T. Barker 474cfafb95 make style 2020-11-13 13:19:32 -08:00
Andrew T. Barker 4d23cd820b Specialize PAGradient kernels for (common) case where B operator is the identity. 2020-11-13 12:37:48 -08:00
termi-official 3face5a823 Add field-interp to CMake builds. 2020-11-13 19:32:51 +01:00
termi-official 5d085f9710 Remove unused member in Kelly. 2020-11-13 01:09:09 +01:00
termi-official 7428c2053f Address remaining ownership issues and add the ZZ error estimator to ex15p. 2020-11-13 00:19:05 +01:00
termi-official b7b6d8142f Fix global error computation for the Lp error estimator in parallel and add a mechanism to take ownership of the used FE space in the Kelly error indicator. 2020-11-13 00:15:03 +01:00
termi-official 8bd7b14714 Fix global error computation for the ZZ error estimator in parallel. 2020-11-13 00:12:02 +01:00
termi-official cb78aa6c4a Fix test style. 2020-11-12 01:52:57 +01:00
termi-official 0e47d1297f Add error estimator tests on embedded meshes. 2020-11-12 01:40:34 +01:00
termi-official a722d2b704 Remove errnous sign. 2020-11-12 01:34:52 +01:00
Dylan Copeland d87c45a95e Adding support and testing for INTEGRAL map type. 2020-11-11 16:21:54 -08:00
termi-official 10cecd5134 Docs again. 2020-11-11 23:49:29 +01:00
termi-official 34070ab952 Polishing docs and types. 2020-11-11 23:47:13 +01:00
termi-official f5830b612a Add types for the coefficient functions. 2020-11-11 23:36:47 +01:00
termi-official 78a6152900 Finalize ex15p. 2020-11-11 23:29:14 +01:00
termi-official 28667f27f6 Move GetTotalError up one abstraction layer. 2020-11-11 23:17:55 +01:00
Veselin Dobrev 1d1bacf965 Run 'make style' 2020-11-10 17:05:18 -08:00
Veselin Dobrev 0239bd42c0 Merge branch 'master' into jump-error 2020-11-10 16:53:37 -08:00
Gauthier Folzan 343e45e749 Update the doxygen documentation 2020-11-10 23:33:58 +01:00
termi-official ee7b17f18a Fixed formatting. 2020-11-10 22:40:21 +01:00
termi-official 0c315483e7 Speeding up attribute identification. 2020-11-10 22:29:02 +01:00
termi-official 3f7f0e9933 Improve the documentation. 2020-11-10 22:15:10 +01:00
termi-official 43ce4436d8 Exchange constructed integration rule with the global one. 2020-11-10 22:04:28 +01:00
Stowell, Mark L 81bbf1c998 Implementing a missed c'tor in CrossCrossCoefficient 2020-11-10 11:47:02 -08:00
Dylan Copeland 1b52f0fb50 Merge branch 'master' of github.com:mfem/mfem into coef-api 2020-11-10 09:41:53 -08:00
Dylan Copeland 44d95614f5 Bug fix 2020-11-10 09:41:04 -08:00
Dylan Copeland 05c8ee6f80 Minor changes 2020-11-10 09:18:33 -08:00
Dylan Copeland c60500466b Adding DiagonalMatrixCoefficient typedef to replace VectorCoefficient in some integrator interfaces. 2020-11-10 09:08:12 -08:00
Gauthier Folzan a12bc35350 Fix the size in the assertion 2020-11-10 15:51:33 +01:00
psocratis c5896c35a1 Fixing small bug related to l-shape run. Fixing typo MFEM_SUITE_SPARSE->MFEM_USE_SUITESPARSE 2020-11-09 12:44:26 -08:00
Tzanio Kolev 4645f97f0f Merge pull request #1864 from mfem/conduitdc-time-cycle-fix
Write time and cycle to conduit data collection root file [conduitdc-time-cycle-fix]
2020-11-08 13:32:32 -08:00
Tzanio Kolev 8ec9a6deda Merge pull request #1856 from mfem/mesh-bdrpoint-fix
Point Boundary for 1D Meshes
2020-11-08 13:31:46 -08:00
termi-official 092b808022 Add error message. 2020-11-08 20:56:08 +01:00
termi-official 455b92546e Fix flux field. 2020-11-08 20:18:20 +01:00
termi-official e1bea63afb Actually include fluxes. 2020-11-08 18:30:31 +01:00
termi-official 162ac70998 Fix signs and increase order of integration. 2020-11-08 18:27:10 +01:00
Dylan Copeland 908f98d8a6 Merge branch 'master' of https://github.com/mfem/mfem into bernstein-deref 2020-11-07 10:15:32 -08:00
Dylan Copeland c5d1b3701c Documenting the new function. 2020-11-07 10:15:09 -08:00
Stefan Henneking b65c390271 Merged master into feature branch and resolved conflicts. 2020-11-06 16:49:47 -08:00
Dylan Copeland 40ebc18e97 Addressing various review comments. 2020-11-06 14:01:56 -08:00
termi-official a4ced201d0 Fix error estimation for embedded meshes. 2020-11-05 21:42:56 +01:00
Arturo Vargas e3d6a0e867 logic fix when using raja 2020-11-05 11:24:32 -08:00
termi-official 42b3b64c8e Change the error coefficients to the approach described by Wolfgang Bangerth. 2020-11-05 17:13:04 +01:00
Dylan Copeland 9a238d002f Fixing a compiler warning. 2020-11-03 18:06:30 -08:00
Dylan Copeland a5d5c1ba32 Eliminating EvalSymmetric from MatrixCoefficient and replacing with usage of SymmetricMatrixCoefficient. 2020-11-03 17:02:28 -08:00
Tzanio 4c8c8bea49 Fix a merge 2020-11-03 13:18:27 -08:00
Tzanio af941c7aec Merge branch 'master' into tmop-metrics
Conflicts:
	CHANGELOG
2020-11-03 12:52:30 -08:00
Tzanio Kolev 9345635954 Merge branch 'master' into cygwin-fixes 2020-11-03 12:45:20 -08:00
Tzanio Kolev 7cd6686e42 Merge pull request #1805 from mfem/navier-filter
Implementation of a filter method for Navier
2020-11-03 12:39:54 -08:00
Tzanio 4101b62099 Merge branch 'master' into navier-filter 2020-11-03 12:37:38 -08:00
Julian Andrej eb0df95218 changelog entry 2020-11-03 12:35:56 -08:00
Ketan Mittal 19fda404f6 minor 2020-11-03 11:53:34 -08:00
Veselin Dobrev a828dbb5fe Merge pull request #1788 from mfem/mumps-solver
Interface with the distributed MUMPS solver
2020-11-03 10:38:51 -08:00
Ketan Mittal de5a4928d4 wordsmithing and sample runs with new metrics 2020-11-03 09:08:09 -08:00
Ketan Mittal ddad761fd0 minor 2020-11-03 08:54:36 -08:00
Ketan Mittal 29a3609ff4 cosmetic changes 2020-11-03 08:54:01 -08:00
Veselin Dobrev 538ac3a6ab Merge branch 'master' into mumps-solver 2020-11-03 08:19:30 -08:00
Dylan Copeland 0626694f33 Adding new classes for symmetric matrices and corresponding coefficients. 2020-11-03 08:11:52 -08:00
Tzanio Kolev 3c0d346d0d Merge pull request #964 from mfem/RK_solvers
Added three ESDIRK schemes [RK_solvers]
2020-11-03 07:39:13 -08:00
Tzanio 4914e93d0f Merge branch 'master' into navier-filter 2020-11-03 07:38:47 -08:00
Tzanio 6e63b81c94 Mentioned #964 in CHANGELOG 2020-11-03 07:37:55 -08:00
Tzanio edbaa5b3fd Merge branch 'master' into RK_solvers 2020-11-03 07:36:07 -08:00
Tzanio Kolev eb1cf52ebd Merge pull request #1835 from mfem/scaled-jacobian-plot-dev
Scaled Jacobian plot and locations of bad elements [scaled-jacobian-plot-dev]
2020-11-03 07:31:57 -08:00
Tzanio Kolev 03aa166858 Merge branch 'master' into scaled-jacobian-plot-dev 2020-11-03 07:31:20 -08:00
Veselin Dobrev 1de94adf90 Fix for newer versions of Umpire. 2020-11-02 23:52:05 -08:00
termi-official a3b8ebf2db Fixing typos, clarifying docs and adding an additional coefficient to the formulation. 2020-11-03 04:48:56 +01:00
termi-official d5310e7ac3 First try to fix face integrals. Note: P-refinement is still broken. 2020-11-03 03:45:03 +01:00
Arturo Vargas 42658ec9f8 minor clean up 2020-11-02 18:08:26 -08:00
Arturo Vargas 0680fd802b Merge branch 'master' into raja-teams 2020-11-02 18:00:35 -08:00
Arturo Vargas eb3bb90760 split cuda and hip backends 2020-11-02 17:59:59 -08:00
Julian Andrej 4364dfd1f4 gitignore 2020-11-02 15:22:55 -08:00
Patrick Greene 7b8ef12161 Added time, time step, and cycle to conduit data collection root file 2020-11-02 15:11:44 -08:00
Ketan Mittal 3b4565773c Merge branch 'master' of https://github.com/mfem/mfem into tmop-metrics 2020-11-02 15:01:33 -08:00
Arturo Vargas 76f7c4e698 bump DEBUG_DEVICE 2020-11-02 14:59:21 -08:00
Ketan Mittal 1ed00f4896 adding metrics 2020-11-02 14:59:09 -08:00
Arturo Vargas dfc50efa35 add * to raja-hip in example 1 2020-11-02 14:48:21 -08:00
chakshinglee 924e321351 fix destructor of Multigrid 2020-11-02 13:03:35 -08:00
chakshinglee a2f5eb54cb fix destructor of Multigrid 2020-11-02 12:50:49 -08:00
Julian Andrej ec2df64626 doxygen typo 2020-11-02 07:58:04 -08:00
Arturo Vargas ccbdf2b1eb add configure as method comments 2020-11-01 19:47:21 -08:00
Arturo Vargas 39ff9c78c2 add method to configure as preconditioner 2020-11-01 16:44:34 -08:00
Tzanio Kolev 37efde9e55 Merge pull request #1855 from mfem/catch-v2.13.2
Upgrade from Catch v2.13.0 to v2.13.2
2020-11-01 13:37:18 -08:00
Tzanio a17a1f1a2d Updated CHANGELOG 2020-11-01 13:32:02 -08:00
Tzanio 0640727b77 Merge branch 'master' into mumps-solver 2020-11-01 13:31:21 -08:00
Tzanio 01c0f4af68 Updated CHANGELOG 2020-11-01 13:29:51 -08:00
Tzanio 8de1d37871 Merge branch 'master' into scaled-jacobian-plot-dev 2020-11-01 13:27:11 -08:00
Tzanio 0359c410a9 Merge branch 'master' into RK_solvers 2020-11-01 13:26:02 -08:00
Tzanio d3028ea057 Merge branch 'master' into navier-filter 2020-11-01 13:24:39 -08:00
Tzanio 9f8e2f8bc7 Updated CHANGELOG 2020-11-01 13:22:53 -08:00
Tzanio 2436fa67ca Merge branch 'master' into catch-v2.13.2 2020-11-01 13:20:54 -08:00
Tzanio Kolev b4ba111505 Merge pull request #1857 from mfem/new-dev-version-4.2.1
Update version numbers to 4.2.1 -- a new development version [new-dev-version-4.2.1]
2020-11-01 13:20:07 -08:00
Veselin Dobrev 7bf942176e Merge branch 'master' into mumps-solver 2020-11-01 03:10:08 -08:00
Veselin Dobrev 4149fbc0d6 Update version numbers to 4.2.1 -- a new development version. 2020-11-01 02:18:15 -08:00
Arturo Vargas 520c63b56b update install 2020-10-30 17:50:46 -07:00
Arturo Vargas 4bc672906c revert changes in defaults 2020-10-30 17:44:43 -07:00
Arturo Vargas b11168cfe0 fix merge conflicts 2020-10-30 16:46:52 -07:00
Tzanio Kolev ed5604e0d3 Merge pull request #1827 from mfem/mfem-4.2-dev
Final changes for the mfem-4.2 release
2020-10-30 15:30:58 -07:00
Veselin Dobrev 4bfb6b5a93 In miniapps/adjoint/cvsRoberts_ASAi_dns.cpp, call the method
SetMaxNStepsB() after InitB().
2020-10-30 14:59:56 -07:00
Veselin Dobrev ca7cf33e51 In class CVODESSolver, add a wrapper for CVodeSetMaxNumStepsB
and use it in miniapps/adjoint/cvsRoberts_ASAi_dns.cpp to
increase the default value.
2020-10-30 14:48:21 -07:00
Tzanio 3ff745bbd6 The mfem-4.2 release date is 10/30/20 2020-10-30 14:23:14 -07:00
termi-official 111357a964 Added missing AddBdrPoint method for 1D meshes.. 2020-10-30 21:53:29 +01:00
Veselin Dobrev 51067ca0ae To address an issue with SUNDIALS v5.4.0, explicitly set the
maximum number of steps in
   miniapps/adjoint/adjoint_advection_diffusion.cpp.
2020-10-30 13:23:05 -07:00
Veselin Dobrev eb5a60e24e In miniapps/adjoint, remove the unnecessary dependency on
'mfem-common' from the CMake file as well.
2020-10-30 10:00:27 -07:00
Will Pazner 949d43f80e Upgrade from Catch v2.13.0 to v2.13.2
Adds a workaround for internal NVCC compiler error:

   nvcc segfaults when encountering a call to __builtin_constant_p with an
   argument that involves a new-expression trying to invoke a user-provided
   constructor

We would encounter this problem with complex REQUIRE statements (e.g. in
test_ode.cpp).
2020-10-30 09:42:10 -07:00
Veselin Dobrev 780cf34b0e Remove the 'mfem-common' dependency and linking from the
miniapps/adjoint directory.

In miniapps/adjoint/adjoint_advection_diffusion.cpp, print
the usage/options messages only from rank 0.

Update two package version requirements in INSTALL.
2020-10-30 08:57:14 -07:00
Dylan Copeland c313f8356b Adding parallel unit test. 2020-10-29 21:16:53 -07:00
Julian Andrej d691346f3c add makefile target 2020-10-29 17:06:54 -07:00
Julian Andrej 980074c4ac remove commented code 2020-10-29 17:04:45 -07:00
Julian Andrej 605ed11b31 make style 2020-10-29 16:59:43 -07:00
Julian Andrej d9d7510f44 documentation 2020-10-29 16:58:14 -07:00
Dylan Copeland 7b0fb2c641 Adding serial unit test for Bernstein derefinement. 2020-10-29 14:44:12 -07:00
Dylan Copeland f5ac6c97d4 Bug fix 2020-10-29 12:10:06 -07:00
Dylan Copeland 4012ca1df6 Adding local restriction matrices for derefinement of POSITIVE basis type. 2020-10-29 10:21:01 -07:00
Veselin Dobrev 97ad695664 In HIP kernels, use MFEM_HIP_BLOCKS instead of MFEM_CUDA_BLOCKS.
There is no change in the compiled code since both macros are
defined to be 256.
2020-10-29 06:18:56 -07:00
Tzanio Kolev e6cee4c66a Merge pull request #1847 from mfem/parse-subnormals
Fix GLVis issue with subnormals Apple Clang
2020-10-28 16:58:19 -07:00
Will Pazner 7fc5ce17ba Zero subnormals in ParaView output 2020-10-28 11:48:46 -07:00
Will Pazner 62f4c49ac6 Remove conditional compilation of resetting failbit for subnormals 2020-10-28 11:42:54 -07:00
Andrew T. Barker d732a479aa Improve documentation for FiniteElementSpace::GetLocalProlongationOperator() 2020-10-28 09:47:37 -07:00
Andrew T. Barker 4235a22838 Remove commented out code. 2020-10-28 09:45:45 -07:00
Andrew T. Barker ad363ada13 GetLocalProlongationMatrix() -> GetLocalProlongationOperator() 2020-10-28 09:35:10 -07:00
Veselin Dobrev 732c7c755d Fix recursive header inclusion and header include warnings.
Remove some copy-paste comments inside doxygen comments.
2020-10-28 07:28:41 -07:00
Dylan Copeland e069d9b034 Fixing parallel device bug. 2020-10-27 16:42:34 -07:00
Julian Andrej 021e7baa29 example 2020-10-27 15:31:22 -07:00
Julian Andrej e6ceb405e0 draft for variable step size algorithm 2020-10-27 15:29:45 -07:00
Will Pazner d15a402464 Fix GLVis issue with subnormals Apple Clang
Zero out subnormal numbers when writing a Vector to an output stream. When
reading a Vector from an input stream with Apple Clang, ignore "out of range"
errors, which can be caused by (correctly) parsing subnormal numbers.
2020-10-27 15:05:42 -07:00
chakshinglee 71c947d966 fix style 2020-10-27 13:46:45 -07:00
chakshinglee 5db9988a41 adjust documentation 2020-10-27 01:24:56 -07:00
chakshinglee a19b34b403 fix wrong input for Solver size and initialize vectors with 0.0 2020-10-27 00:30:06 -07:00
Veselin Dobrev 93d6ae57a0 Fix the logic in ForallWrap to reflect exactly the
allowed/enabled backends.

When using 'occa-omp' enable the 'omp' backend (if MFEM was
built with MFEM_USE_OPENMP=YES) unless 'raja-omp' is already
enabled.

If using 'ceed-cuda' enable 'cuda' only if 'raja-cuda' is
not allowed.

Update the documentation of Device::Configure.

Ensure that at most one 'ceed-*' backend is allowed.
2020-10-26 23:33:14 -07:00
chakshinglee e55fbc7af5 add a constructor of Multigrid that all the components (operators, smoothers, prolongations) and given from input 2020-10-26 15:12:32 -07:00
chakshinglee 8f5d0ef084 define GeometricMultigrid as a derived class of Multigrid, move the components in Multigrid that depend on finite element spaces to GeometricMultigrid 2020-10-26 15:00:55 -07:00
Tzanio 96b4b127ea minor 2020-10-26 14:48:16 -07:00
Veselin Dobrev 46b8f916ba Small edits in CHANGELOG and INSTALL. 2020-10-26 12:37:14 -07:00
Julian Andrej 0cdbcd647e add matrix free jacobian vector product 2020-10-26 10:55:52 -07:00
Tzanio KolevandAndrew T. Barker 2f64f73cbd Apply suggestions from code review
Thanks Andrew!

Co-authored-by: Andrew T. Barker <barker29@llnl.gov>
2020-10-26 08:26:09 -07:00
Tzanio 9bfe9cac44 Removed some non-ASCII characters 2020-10-26 07:19:28 -07:00
Veselin Dobrev fa340fd6b1 In CGSolver::Mult check for convergence with <= instead of <.
Adjust the "CGSolver" unit test.
2020-10-26 04:26:00 -07:00
Veselin Dobrev acad1864a2 Remove byte order mark (BOM) from files.
Add newline at the end of a file.
2020-10-26 03:15:50 -07:00
Tzanio 8fe29c6d63 Updated CHANGELOG before the mfem-4.2 release 2020-10-25 22:31:07 -07:00
Tzanio a53d9c1299 Changes in the examples/ directory before the mfem-4.2 release 2020-10-25 17:07:24 -07:00
Tzanio 6a49025c07 Changes in the miniapps/ directory before the mfem-4.2 release 2020-10-25 15:13:00 -07:00
Veselin Dobrev 129e191776 Use 1 as the default attribute in class Element.
Tweak the "Element-wise construction" mesh unit test to set the
vertices in counterclockwise order and check that the default
attribute is 1.

Before the above changes, there was a warning from the unit test
about non-positive element attributes.
2020-10-25 11:54:41 -07:00
Veselin Dobrev 65d7576530 Fix typos in the CMake file in miniapps/nurbs. 2020-10-25 00:33:29 -07:00
Tzanio a7d05f30b5 Merge branch 'mfem-4.2-dev' of github.com:mfem/mfem into mfem-4.2-dev 2020-10-24 20:07:15 -07:00
Tzanio a344b2051f Changes in the fem/ directory before the mfem-4.2 release 2020-10-24 20:07:10 -07:00
Veselin Dobrev c540ca8dec Fix source file names in config/sample-runs.sh 2020-10-24 19:39:08 -07:00
Tzanio 410c2c8d0f Changes in the mesh/ directory before the mfem-4.2 release 2020-10-24 19:26:22 -07:00
Tzanio bd7fdaff4e Merge branch 'master' into mfem-4.2-dev 2020-10-24 19:07:49 -07:00
Tzanio Kolev de4a24b0ff Merge pull request #1837 from mfem/adios2-element-attribute
ADIOS2 output switch material to MFEM attribute in CellData
2020-10-24 19:07:23 -07:00
Tzanio d472fe16d9 Changes in the linalg/ directory before the mfem-4.2 release 2020-10-24 19:06:53 -07:00
Tzanio 89fad12237 Changes in the general/ directory before the mfem-4.2 release 2020-10-24 18:27:14 -07:00
Tzanio 6be78c57e1 Added comments and a refinement for the scaled Jacobian option in mesh explorer. 2020-10-24 14:46:22 -07:00
William F Godoy 4ba894af37 ADIOS2 output switch material to MFEM attribute in CellData
To sync up with ParaViewDataCollection
2020-10-24 11:27:42 -04:00
Veselin Dobrev 54fa6fe4d6 Add support for MPI+HIP builds in makefiles.
Fix a few issues with the MPI+HIP build.
2020-10-23 20:48:42 -07:00
Walter I. Nissen ca37dc2e67 Fixed brace style 2020-10-23 15:25:49 -07:00
Walter I. Nissen eb7833533f Slight comments 2020-10-23 15:04:39 -07:00
Walter I. Nissen 9d0a7ac938 Tweak to output to use mfem-style Print function and summary of elements not printed. 2020-10-23 15:04:39 -07:00
Walter I. Nissen f34b48335a Add scaled jacobians with the 'j' key 2020-10-23 15:04:39 -07:00
Walter I. Nissen 4e570ad11c Thanks to Tzanio for telling me where to put this. 2020-10-23 15:04:39 -07:00
Andrew T. BarkerandTzanio Kolev 35159031ee Apply suggestions from code review
Co-authored-by: Tzanio Kolev <tzanio@llnl.gov>
2020-10-23 14:43:08 -07:00
Yohann Dudouit 651809f473 Add support for Raja > 0.12 2020-10-23 11:46:59 -07:00
Tzanio 4fb2bade1a Merge branch 'master' into mfem-4.2-dev 2020-10-23 07:20:03 -07:00
Tzanio Kolev 1bc87a5778 Merge pull request #1825 from mfem/paraview-bdr
ParaView output of boundary elements and attributes
2020-10-23 07:19:11 -07:00
Tzanio 748533fc93 Changes in the doc/ directory before the mfem-4.2 release 2020-10-22 21:56:22 -07:00
Tzanio de99f19692 Changes in the config/ directory before the mfem-4.2 release 2020-10-22 19:14:38 -07:00
Tzanio 6e5e4246c1 Changes in the tests/ directory before the mfem-4.2 release 2020-10-22 19:04:41 -07:00
Tzanio 6538d4ccf5 Small changes before the mfem-4.2 release 2020-10-22 18:50:33 -07:00
Tzanio 20424d5c88 Merge branch 'paraview-bdr' into mfem-4.2-dev 2020-10-22 17:52:12 -07:00
Dylan Copeland 75c79303a2 Set operator size in AmgXSolver. 2020-10-22 16:34:01 -07:00
Will Pazner a83ac75a8f Document and fix path handling in ParMesh::PrintVTU 2020-10-22 13:51:26 -07:00
Tzanio 2cb0a7b8b6 Merge branch 'master' into mfem-4.2-dev 2020-10-22 12:29:48 -07:00
Tzanio Kolev 2d62a136d0 Merge pull request #1719 from mfem/yohann/test-ceed
Add tests for the libCEED integration in MFEM
2020-10-22 12:28:02 -07:00
Stefan Henneking 78bc8176e7 Minor changes to ex25 and ex25p. 2020-10-22 12:22:28 -07:00
Will Pazner 2237a20063 Add Doxygen comments 2020-10-22 12:06:44 -07:00
psocratis 4b09bc532f moving macros to .cpp file 2020-10-22 12:06:11 -07:00
Veselin Dobrev 3ab4dd4194 Some formatting edits. 2020-10-22 11:54:40 -07:00
Will Pazner 514a0bae58 Add jump error scaling option to rates and prates 2020-10-22 11:51:40 -07:00
Vladimir Z Tomov 45b2f40d98 Added gamma scaling to Option 1. 2020-10-22 11:47:15 -07:00
psocratis ca3f53b37b fixed version in changelog 2020-10-22 11:04:10 -07:00
Stefan Henneking 817e9247e9 Merge branch 'master' of github.com:mfem/mfem into ex25-gpu 2020-10-22 10:41:43 -07:00
Tzanio 1833aa7248 Merge branch 'master' into mfem-4.2-dev 2020-10-21 18:44:37 -07:00
Veselin Dobrev 9c82ef12d1 Merge pull request #1749 from mfem/nc-point-mat-index-dev
Unique point matrices in `NCMesh::NCList` [nc-point-mat-index-dev]
2020-10-21 18:27:26 -07:00
psocratis 799069babc renaming info and icntl to avoid conflicts with catch. INFO->MUMPS_INFO, ICNTL->MUMPS_ICNTL 2020-10-21 16:18:01 -07:00
Tzanio cb85fe98e7 Merge branch 'master' into mfem-4.2-dev 2020-10-21 15:36:02 -07:00
Tzanio 4832f32078 Small rewording 2020-10-21 15:35:17 -07:00
Adrien M. Bernede d1bd2290a4 Remove .html mentions in CONTRIBUTING 2020-10-21 15:18:23 -07:00
Adrien M. Bernede 006a30c031 Fix: restoring logo 2020-10-21 15:13:14 -07:00
Adrien M. Bernede 8149aa2407 Remove mentions of .html and web 2020-10-21 15:11:30 -07:00
Vladimir Z Tomov 6994291f15 Added as option in pmesh-optimizer. 2020-10-21 15:00:23 -07:00
Adrien M. Bernede 6aa01187d7 Remove doc/web directory, now only using mfem/web repo 2020-10-21 14:36:56 -07:00
Adrien M. Bernede 89de74c545 Remove remaining html files 2020-10-21 14:10:41 -07:00
psocratis a14b018692 adding check for HYPRE_BIGINT 2020-10-21 13:49:42 -07:00
Will Pazner 5143a46538 Update CHANGELOG 2020-10-21 13:47:43 -07:00
Tzanio Kolev ec10e26b15 Merge pull request #1819 from mfem/examples/artv3/amgx-ex1p
Minor fixes to amgx:ex1p, adjust amgx defaults
2020-10-21 10:55:15 -07:00
Tzanio Kolev 9161bdca79 Merge pull request #1826 from mfem/tbnlf
Absolute value function 'abs' when argument is of floating point type [tbnlf]
2020-10-21 10:53:50 -07:00
Will Pazner 9a84630556 Add check for ExchangeFaceNbrData 2020-10-20 18:17:34 -07:00
Will Pazner ba6d89b4cc Fix GridFunction::GetGradient for face neighbor elements
Try to make some GridFunction and FiniteElementSpace functionality a
bit more general/automatic when working with face neighbors.
2020-10-20 18:08:13 -07:00
Will Pazner d98cd5ff7c Parallel VTU output for meshes and boundaries 2020-10-20 15:36:22 -07:00
Tzanio 41b0aa5d45 Updates in INSTALL for mfem-4.2 release:
- Use hypre 2.20.0 instead of 2.16.0 in the example
- Mesquite is deprecated and will be removed
- Versions for ADIOS and HIOP
2020-10-20 14:08:31 -07:00
Adrien M. Bernede a209a82e08 Update MFEM version: CHANGELOG, makefile, CMakeLists.txt, doc/CodeDocumentation.conf.in 2020-10-20 13:30:38 -07:00
Tzanio 1527b58ffc Merge branch 'tbnlf' into mfem-4.2-dev 2020-10-20 12:50:43 -07:00
Tzanio 1197dd6a31 Merge branch 'examples/artv3/amgx-ex1p' into mfem-4.2-dev 2020-10-20 12:50:33 -07:00
Tzanio 89c1638ff9 Merge branch 'yohann/test-ceed' into mfem-4.2-dev 2020-10-20 12:50:20 -07:00
Tzanio 9497f837ca Merge branch 'nc-point-mat-index-dev' into mfem-4.2-dev 2020-10-20 12:50:08 -07:00
Dylan Copeland 9d07fea8f4 More unit test improvements. 2020-10-20 11:08:22 -07:00
Dylan Copeland 2886dcc849 Minor improvements to unit test. 2020-10-20 10:28:17 -07:00
camierjs 83ad60cfbe Absolute value function 'abs' when argument is of floating point type 2020-10-20 09:53:41 -07:00
Julian Andrej 749f3da7cc make style 2020-10-20 09:28:43 -07:00
Veselin Dobrev 4079f31447 More fixes for Cygwin. 2020-10-20 00:49:13 -07:00
Veselin Dobrev 90ce59a56b Some edits to fix building under Cygwin with gcc.
Use 'std::to_string' from C++11 instead of own implementation.
2020-10-19 22:17:20 -07:00
Will Pazner 7b827ad096 Allow for VTU output of boundary elements and attributes 2020-10-19 17:08:02 -07:00
Julian Andrej c10ede8fba clarify docs 2020-10-19 16:33:42 -07:00
Julian Andrej 81dcca3e12 reference formatting 2020-10-19 11:28:45 -07:00
Julian Andrej bdd237c7ea spelling 2020-10-19 11:27:41 -07:00
Yohann Dudouit 47f5468540 Remove extra semicolons 2020-10-19 11:27:34 -07:00
Julian Andrej cacc93d8dc mention filter algorithm reference 2020-10-19 11:27:00 -07:00
Julian Andrej 1f1b545ec0 rework interface 2020-10-19 11:21:20 -07:00
Yohann Dudouit 3f8ff31d52 Reorganize CMakeLists 2020-10-19 10:41:07 -07:00
Yohann Dudouit ba467dbf04 Update hypre test 2020-10-19 10:36:15 -07:00
Yohann Dudouit a88c07b4ac Merge branch 'master' into yohann/test-ceed 2020-10-19 09:49:16 -07:00
Tzanio 18e1a91d61 minor 2020-10-18 18:47:19 -07:00
psocratis 3b9c4b28ad style 2020-10-18 15:43:19 -07:00
psocratis 3df5658695 fixing comments for the set* methods 2020-10-18 15:42:40 -07:00
psocratis 8cc5feb057 resolving conflicts with master. Minor changes addressing reviewers' comments 2020-10-18 15:33:05 -07:00
Arturo Vargas dc768abcab fixed verify message 2020-10-18 14:56:01 -07:00
Arturo Vargas a38b8081b2 add verify for basic example 2020-10-18 14:53:45 -07:00
Arturo Vargas 89d257c335 minor edits 2020-10-18 14:34:05 -07:00
Arturo Vargas 0e36573436 minor documenation fixes, adjust solver preconditioner 2020-10-18 14:13:54 -07:00
Tzanio Kolev f97eef13fc Merge pull request #1756 from mfem/superlu-update-dev
Update SuperLU to 6.3.1
2020-10-18 12:45:51 -07:00
Tzanio 0d95f455f9 Final updates for the SuperLU PR #1756 2020-10-18 12:43:52 -07:00
Tzanio a3563bd454 Merge branch 'master' into superlu-update-dev
Conflicts:
	examples/makefile
2020-10-18 11:21:20 -07:00
Tzanio Kolev e17b0c5aee Merge pull request #1386 from mfem/feature/artv3/amgx
Add support for AmgX
2020-10-18 11:20:00 -07:00
Tzanio 1dafb75576 Final updates for the AmgX PR #1386 2020-10-18 11:16:37 -07:00
Tzanio Kolev 740178cfcf Merge pull request #1714 from mfem/libceed-hip
Enable HIP backend in libCEED
2020-10-18 11:02:53 -07:00
Tzanio 3b01fd0741 Updated CHANGELOG and Example 1 sample runs 2020-10-18 11:00:25 -07:00
Tzanio Kolev ef0c14eb6e Merge pull request #1673 from wcdawn/master
Address leaks in SlepcEigenSolver
2020-10-17 21:43:05 -07:00
Tzanio Kolev e124e91469 Merge pull request #1787 from mfem/barker29/hypre-initial-spelling
hypre.hpp: transition to a correct spelling for SetInitialIterate()
2020-10-17 21:41:49 -07:00
Julian Andrej b3b63da0c2 eisenstat-walker adaptive linear rtol 2020-10-16 16:15:18 -07:00
Aaron Fisher 9c269df22d Merge branch 'superlu-update-dev' of github.com:mfem/mfem into superlu-update-dev 2020-10-15 11:53:15 -07:00
Aaron Fisher d668a28b29 Fixed make test in the superlu example. 2020-10-15 11:52:38 -07:00
Veselin Dobrev 7e45098ad1 Merge pull request #1802 from mfem/hypre-smoother-fix
Fix for reusing HypreSmoother
2020-10-14 18:04:36 -07:00
YohannandWill Pazner ca3aa0e446 Delete coeff.
Co-authored-by: Will Pazner <11493037+pazner@users.noreply.github.com>
2020-10-14 11:20:27 -07:00
YohannandWill Pazner fcf5eeef3e Create FunctionCoefficient only when needed.
Co-authored-by: Will Pazner <11493037+pazner@users.noreply.github.com>
2020-10-14 11:20:03 -07:00
Yohann Dudouit a9a372ca5d Replace fes by mesh_fes. 2020-10-13 16:52:50 -07:00
Yohann Dudouit 104f94e645 Update comment. 2020-10-13 15:38:39 -07:00
Yohann Dudouit f4b31f910a Fix the interface for strided restrictions. 2020-10-13 15:14:01 -07:00
Yohann Dudouit f9ede5f5c4 Remove memory leak. 2020-10-13 15:07:55 -07:00
Aaron Fisher 592abbbd41 Merge branch 'superlu-update-dev' of https://github.com/mfem/mfem into superlu-update-dev 2020-10-13 11:55:20 -07:00
Aaron Fisher e99eab4197 Removed a static condensation sample run that I missed. 2020-10-13 11:43:11 -07:00
Tzanio Kolev f931e46e5d Merge branch 'master' into superlu-update-dev 2020-10-13 11:37:02 -07:00
Yohann Dudouit b1d2e2827b Remove compilation warnings in test_ceed.cpp. 2020-10-13 10:56:53 -07:00
Jakub Červený c18fabe72f Fixed crash due to incorrect slave.geom of edge-face constraints. 2020-10-13 14:57:28 +02:00
Arturo Vargas af7bc8f988 minor fixes to examples 2020-10-12 18:32:21 -07:00
psocratis 84d4013a50 fix conflicts 2020-10-12 18:09:01 -07:00
Aaron Fisher 44bfdec7fc Fixed some verbiage, removed some defunct sample runs and added some SuperLU command line options to the example. 2020-10-12 17:00:59 -07:00
Tzanio Kolev 265ed8caa8 Merge pull request #1785 from mfem/jfnk
Add KINSOL JFNK interface
2020-10-12 15:26:50 -07:00
Tzanio 983c83d4b5 Minor editing 2020-10-12 15:11:40 -07:00
Julian Andrej aa06473d31 Merge branch 'master' into jfnk 2020-10-12 14:54:28 -07:00
Julian Andrej f44c9f217f changelog entry 2020-10-12 14:49:18 -07:00
Tzanio a4ef4063f3 minor 2020-10-12 14:37:46 -07:00
Julian Andrej c507d3dc3d make style 2020-10-12 13:43:33 -07:00
Ben Southworth 62d78501a3 Change to three space=indent 2020-10-12 13:25:37 -07:00
Arturo Vargas 07b02018b2 Merge branch 'feature/artv3/amgx' of github.com:mfem/mfem into feature/artv3/amgx 2020-10-12 13:21:17 -07:00
Arturo Vargas 7a30f9d690 merge with master + conflicts 2020-10-12 13:21:02 -07:00
Ben Southworth 5fbe7bd995 Added unit tests 2020-10-12 13:01:00 -07:00
Tzanio Kolev 9e8396f5ca Merge pull request #1784 from mfem/mkl-pardiso
Interface to MKL Parallel Direct Sparse Solver for Clusters
2020-10-12 12:39:01 -07:00
Arturo Vargas 48df14a60b make style 2020-10-12 12:34:53 -07:00
Arturo Vargas c8c72d285b PR example fixes 2020-10-12 12:32:50 -07:00
Tzanio 7a917bec44 minor 2020-10-12 11:26:40 -07:00
Julian Andrej c11a9f232b change naming in asserts 2020-10-12 10:10:44 -07:00
Julian Andrej 0f0ad13b17 clarify some comments on the input parameters 2020-10-12 10:09:27 -07:00
Julian Andrej 042fe5c210 unsymmetric -> nonsymmetric 2020-10-12 10:04:02 -07:00
Julian Andrej c7a32cd6e7 style in ex11p 2020-10-12 10:02:34 -07:00
Julian Andrej 4f477a22d7 clarify naming in CHANGELOG 2020-10-12 10:01:43 -07:00
Julian Andrej b34523d8ec clarify naming in INSTALL 2020-10-12 10:00:42 -07:00
Arturo Vargas be9180d7b8 revert ex1,1p, change log, keep amgx examples under amgx folder 2020-10-12 09:22:38 -07:00
Arturo Vargas b7d40db11e configure master rank to only print 2020-10-12 08:28:45 -07:00
Tzanio Kolev a50f58f1de Merge pull request #1687 from mfem/hypre-ilu-dev
Wrapper for Hypre Flexible GMRES and Parallel ILU [hypre-ilu-dev]
2020-10-11 10:47:12 -07:00
Tzanio 6d4c5cb9e8 minor 2020-10-11 10:45:15 -07:00
Jason Hicken 2ff6105824 added description to CHANGELOG 2020-10-11 11:47:59 -04:00
Tzanio Kolev 3553d77f71 Merge pull request #1792 from mfem/jeremy/libceed-07
libceed - update to v0.7
2020-10-10 19:06:03 -07:00
Tzanio 96c7ad1fe8 Styling 2020-10-10 18:30:30 -07:00
Yohann Dudouit b43167f841 Lower the order of the tests. 2020-10-09 16:08:02 -07:00
Yohann Dudouit d27560980e Add ceed tests to cmake. 2020-10-09 16:02:02 -07:00
Arturo Vargas 18b629e39d update notice and github link to amgxwrapper 2020-10-09 14:31:13 -07:00
Will Pazner 2cc635a159 Split CEED unit tests and main file for faster compilation 2020-10-09 12:35:33 -07:00
Yohann Dudouit 5089710785 Add ceed_tests to .gitignore 2020-10-09 12:25:14 -07:00
Arturo Vargas d0cae7b65e improve documentation based on feedback 2020-10-09 10:36:16 -07:00
bensworth e4a8344e94 Merge branch 'master' into RK_solvers 2020-10-09 09:41:31 -06:00
Veselin Dobrev 58066cb40a Various updates to the build systems mostly related to AmgX. 2020-10-08 22:29:47 -07:00
Socratis cb5f1830de checked cmake both on linux and macos 2020-10-08 16:54:57 -07:00
Yohann Dudouit c409addf73 Remove the test on tet for cuda-gen... 2020-10-08 15:57:19 -07:00
Yohann Dudouit 124be8083d Add tests on periodic and tet mesh. 2020-10-08 15:44:03 -07:00
Yohann Dudouit 1d362dabf4 Rewrite InitCeedBasis/Restriction to work with L2. 2020-10-08 15:43:43 -07:00
Tzanio Kolev bfbde13aef Merge pull request #1807 from mfem/probot-stale-dev
Configuration for the Probot Stale GitHub app
2020-10-08 15:20:16 -07:00
Veselin Dobrev 6feaeca0af Merge pull request #1661 from mfem/stdfunction-dev
[Discuss] Change function coefficients to use a std::function [stdfunction-dev]
2020-10-08 14:11:17 -07:00
Will Pazner 72b919e633 Remove unused variable 2020-10-08 12:29:42 -07:00
Tzanio Kolev b0f3506cd1 Adjusted message 2020-10-08 12:13:38 -07:00
Tzanio Kolev 1324813877 Merge pull request #1683 from mfem/yohann/fix-doc-FULL
Use LEGACYFULL instead of FULL in the documentation.
2020-10-08 12:02:51 -07:00
Tzanio Kolev ffc2ddd19f Merge pull request #1724 from pghysels/fix-strumpack-hypre2160
Fix for STRUMPACK with Hypre >= 21600
2020-10-08 12:02:16 -07:00
Tzanio Kolev 99c541aaf0 Merge pull request #1702 from mfem/bug_parblocknlform
Bug - double ParBlockNonlinearForm::GetEnergy(const Vector &x)
2020-10-08 12:01:05 -07:00
psocratis d91e31458c minor fix in cmake 2020-10-08 11:31:27 -07:00
nbeams aa278f92a3 update comments for ceed backends 2020-10-08 13:04:11 -04:00
Yohann Dudouit 3b55af5e7d Add an error message when used on periodic meshes. 2020-10-08 09:55:29 -07:00
Yohann Dudouit 94dfb80751 Remove SetupPA from DiffusionIntegrator. 2020-10-08 09:38:02 -07:00
Yohann 459a463105 Merge branch 'master' into yohann/test-ceed 2020-10-08 09:26:31 -07:00
Yohann Dudouit 7a9267a126 Remove IntegrationRule from InitCeedTensorRestriction. 2020-10-08 09:22:23 -07:00
Tzanio Kolev 36aa62fe1d Proper emoji? 2020-10-08 08:20:27 -07:00
Tzanio 0d9ad5bc2e Updated probot-stale configuration 2020-10-08 08:17:39 -07:00
Tzanio 9dc14f5a3a Configuration for the Probot Stale GitHub app 2020-10-07 19:58:44 -07:00
Julian Andrej 7893c819a9 implementation of a filter method 2020-10-07 16:03:33 -07:00
Tzanio Kolev b0a2d04644 Merge pull request #1803 from mfem/fix/lassen-debug-ci
Build cuda debug on lassen with O2 to speed up [fix/lassen-debug-ci]
2020-10-07 15:51:52 -07:00
Will Pazner a6bac0be4c Formatting 2020-10-07 09:39:42 -07:00
Will Pazner 872c4dba86 Merge remote-tracking branch 'origin/master' into jump-error 2020-10-07 09:00:24 -07:00
Tzanio c55da48818 Fix for #1795 2020-10-06 15:57:15 -07:00
Adrien M. Bernede 76d45096d5 Build cuda debug on lassen with O2 to speed up 2020-10-06 15:15:14 -07:00
Yohann Dudouit 1ee3a4c7ae Improve documentation for AssembleMF. 2020-10-06 11:45:29 -07:00
Veselin Dobrev eec0efad09 Add a CHANGELOG entry for the changes in the function coefficient
classes.

Improve the formatting of some doxygen comments.
2020-10-05 18:03:58 -07:00
Julian Andrej 8ed2b92887 remove code duplication for printlevel 2020-10-05 16:33:34 -07:00
Julian Andrej 5161740a87 adapt to new sundials 2020-10-05 16:22:30 -07:00
Julian Andrej 717f28496f fix sundials cmake 2020-10-05 16:22:04 -07:00
Julian Andrej a2dd91f7a8 Merge branch 'master' into jfnk 2020-10-05 15:24:43 -07:00
Aaron Fisher 9bbbe58c4a Made the version numbers for the latest SuperLU library consistant. 2020-10-05 13:40:54 -07:00
Aaron Fisher f8a3266845 Setup the SuperLU integration to work with SuperLU_DIST 5 or 6. 2020-10-05 13:33:45 -07:00
Aaron Fisher 6f4bf0af67 make style 2020-10-05 10:59:50 -07:00
Tucker Babcock 90b933c56a fix merge conflict 2020-10-04 19:18:22 -04:00
Tucker Babcock 858cfdd2db remove support for overloaded functions in function coefficients that required metaprogramming. 2020-10-04 19:12:53 -04:00
Tzanio Kolev 84e68df837 Merge pull request #1744 from mfem/hotfix/pbnlf-essbdr
Support non-conforming meshes with BlockNonlinearForm and ParBlockNonlinearForm
2020-10-04 12:12:53 -07:00
Tzanio a74337433f Mention in CHANGELOG 2020-10-04 12:11:09 -07:00
Tzanio Kolev e70cf4c5d6 Merge pull request #1726 from balos1/sundials-gpu-dev
Add support for SUNDIALS GPU features [sundials-gpu-dev]
2020-10-04 11:58:40 -07:00
Tzanio Kolev 5ff4841dbc Merge pull request #1665 from mfem/matdiffpa
Matrix coefficients for diffusion PA
2020-10-04 11:54:23 -07:00
Tzanio Kolev 24cef871af Merge pull request #1765 from mfem/blfi-default-assemble-vector-dev
Default implementation of AssembleElementVector and AssembleFaceVector for bilinear integrators [blfi-default-assemble-vector-dev]
2020-10-04 11:49:20 -07:00
Tzanio 8b05534d60 Some comments 2020-10-04 11:48:29 -07:00
Julian Andrej d9a2fde388 remove MKL test code in cmake build system 2020-10-04 10:48:33 -07:00
Julian Andrej 561daa66b6 add dependencies to mumps 2020-10-02 16:52:07 -07:00
Julian Andrej cd1cacd1a6 correct findmumps cmake 2020-10-02 16:48:33 -07:00
Veselin Dobrev bdc302e5c2 In ex19p, remove an MPI_Finalize call which is now wrong. 2020-10-02 16:08:21 -07:00
psocratis 2b94b8bd43 configuring cmake 2020-10-02 14:56:38 -07:00
Socratis b6e4244806 minor tweaks 2020-10-02 11:32:40 -07:00
Socratis 59eaee6f13 fixing travis doc errors 2020-10-01 19:31:03 -07:00
Socratis 9fd56d22a2 fixed newly introduced valgrind mem leak 2020-10-01 19:11:19 -07:00
psocratis fc3babf85d minor, initialization of int arrays 2020-10-01 19:03:35 -07:00
Socratis 1d0b509827 mumps_solver valgrind issue free. Added mumps_solver to ex25p 2020-10-01 18:18:58 -07:00
Veselin Dobrev 4fbde641db In ex19p, MPI_Finalize() needs to be called after the destructor of
RubberOperator; this is now achieved using the MPI_Session class.
2020-10-01 17:12:55 -07:00
Jason Hicken ae547f984d fixed minor typo in call to Hypre SetPrecond for FGMRES 2020-10-01 15:11:49 -04:00
Julian Andrej 7a167341ba GMRES -> GMRESFlex 2020-10-01 11:00:50 -07:00
Julian Andrej 9a2904ba55 hypre version guard in test 2020-10-01 10:59:53 -07:00
Julian Andrej 04365ce503 correct typo in test labels 2020-10-01 10:57:36 -07:00
Julian Andrej db1e290721 test target typo 2020-10-01 10:36:19 -07:00
Julian Andrej 4e2383278f newlines 2020-10-01 10:36:03 -07:00
Jakub Červený ac94a3a64e Merge branch 'master' into nc-point-mat-index-dev 2020-10-01 11:09:55 +02:00
Jakub Červený dbad596d65 Documentation: added link to OrientedPointMatrix where edge_flags are commented. 2020-10-01 11:08:07 +02:00
psocratis 50b525907f minor 2020-09-30 19:11:28 -07:00
Veselin Dobrev 70f4fcdf23 Due to failures in some cases, increase by a factor of 2 the
tolerance in the "ParallelFormLinearSystem" unit test.
2020-09-30 18:18:24 -07:00
Balos, Cody Joe f95a148f69 fix sundials find_package logic 2020-09-30 09:26:44 -07:00
jeremylt 43b9e2c66e libceed - update to v0.7 2020-09-30 07:52:04 -06:00
psocratis 5137ef5604 clean up 2020-09-29 19:42:44 -07:00
psocratis 8f1d08dc93 Adding symmetric and SPD matrix case 2020-09-29 19:04:17 -07:00
Jason Hicken c32232802c added unit test for HypreILU and HypreFGMRES 2020-09-29 21:53:21 -04:00
Balos, Cody Joe 31efd0d227 cmake fixes for SUNDIALS with CUDA 2020-09-29 17:50:36 -07:00
Julian Andrej e63f9887f4 add MUMPS version check to makefile build system 2020-09-29 14:13:14 -07:00
Jason Hicken 94fecaf5ad fixed accidental overwrite of ex7.cpp 2020-09-29 17:01:56 -04:00
psocratis 2819c0e361 more cleaning up 2020-09-29 13:23:43 -07:00
Jason Hicken d1d30209f8 fixed the define guard statement, and removed some HypreILU default options 2020-09-29 16:13:10 -04:00
Jason Hicken f173273523 addressing PR issues 2020-09-29 14:46:37 -04:00
Jason Hicken e1539e50d0 Merge branch 'master' into hypre-ilu-dev 2020-09-29 08:55:17 -04:00
psocratis 30b0ae9581 cleanup 2020-09-28 17:47:08 -07:00
psocratis 59a32942f2 make style 2020-09-28 15:06:23 -07:00
psocratis 90af7527d0 mumps interface works with any combination of distributed RHS and Solution or not... still needs some cleanup and a valgrind run 2020-09-28 15:05:18 -07:00
Andrew T. Barker fe1e1a4128 Begin implementation of a local version of DeviceConformingProlongationOperator
This is for doing Interpolators (rather than Integrators) on the device,
and it almost works but appears to have some sort of bug in 3D.
2020-09-28 13:02:10 -07:00
Andrew T. Barker aea150bee2 hypre.hpp: transition to a correct spelling for SetInitialIterate() 2020-09-28 08:04:49 -07:00
William Dawn eee6a45458 fixing spacing 2020-09-28 09:41:48 -04:00
William Dawn 4a155f28dd do not double-delete fec 2020-09-28 09:38:51 -04:00
psocratis ac6ff275ba Adding MUMPSSolver interface. Finished the case where RHS and Solution are gathered on host 2020-09-27 18:09:25 -07:00
Julian Andrej b78402803f bugs everywhere 2020-09-26 18:21:36 -07:00
Julian Andrej 6e5bb7e5e1 more distributed solution vector fiddling 2020-09-26 16:25:48 -07:00
Julian Andrej 99a3803b4f distributed rhs and solution 2020-09-26 15:48:07 -07:00
Julian Andrej c0495229fc add MUMPS to the makefile buildsystem 2020-09-26 14:08:56 -07:00
psocratis adce9a5755 Adding interface for distributed MUMPS still needs implementation for distributed RHS 2020-09-25 20:22:36 -07:00
Julian Andrej ffc65ee2f0 move config header out of guarding 2020-09-25 18:56:04 -07:00
Julian Andrej 197854c4c0 guard source and header 2020-09-25 18:50:51 -07:00
Julian Andrej baeed18fc6 remove user.mk 2020-09-25 18:44:40 -07:00
Julian Andrej c18b00f9a3 add to makefile build system 2020-09-25 18:38:20 -07:00
Julian Andrej 765918926f spellcheck 2020-09-25 15:24:52 -07:00
Julian Andrej 0829c40ef1 simplify JFNK codepath 2020-09-25 14:29:12 -07:00
Julian Andrej 78d01a2753 correct comment 2020-09-25 14:28:53 -07:00
Julian Andrej 1fcf44617b typo 2020-09-25 14:27:39 -07:00
Julian Andrej ccdd4151f5 adjust cmake build system to new naming and test output 2020-09-25 14:00:48 -07:00
Julian Andrej 5e2cc2d63b readability and refactoring 2020-09-25 13:57:11 -07:00
Julian Andrej 5aec9ffe25 change matrix data ownership 2020-09-25 13:32:50 -07:00
nbeams b267750431 consolidate CEED_HIP and CEED_CUDA checks 2020-09-25 15:55:29 -04:00
Julian Andrej 145877e2e3 correct interface comment 2020-09-25 11:03:28 -07:00
Julian Andrej cf336ec28f correct delete calls 2020-09-25 11:03:15 -07:00
Julian Andrej 14771eeb79 cmake build system tweak for LC 2020-09-25 10:31:43 -07:00
Julian Andrej 32d0df49d6 added changelog entry 2020-09-25 09:11:58 -07:00
Julian Andrej e5c5d1e419 make style 2020-09-25 08:56:53 -07:00
Julian Andrej 18dc8f7a56 documentation and refactor on teh pardiso interface 2020-09-25 08:07:29 -07:00
Julian Andrej 5720512ef2 add pardiso option to ex11p 2020-09-25 08:07:12 -07:00
bslazarov 08516cfa01 clean unused variables 2020-09-24 19:32:21 -07:00
bslazarov 022e96da56 clean up 2020-09-24 19:10:27 -07:00
Julian Andrej 8f602ab9d3 add support for MKL Cluster Pardiso 2020-09-24 15:15:13 -07:00
bslazarov a673e7e754 more cosmetics 2020-09-24 14:29:46 -07:00
Julian Andrej ce0b3e3b20 add support for KINSOL JFNK 2020-09-24 12:48:42 -07:00
bslazarov d1c9023a3a Merge branch 'master' into bug_parblocknlform 2020-09-24 11:25:22 -07:00
bslazarov 7b297e6661 cosmetics 2020-09-24 10:47:55 -07:00
bslazarov 7eaf68f030 style 2020-09-24 10:40:56 -07:00
bslazarov 0f2676f229 New 3D test for BlockNonlinearForm::GetEnergy() 2020-09-23 20:41:08 -07:00
Yohann Dudouit 11a025b26a Update makefile with new device option. 2020-09-23 12:20:53 -07:00
YohannandWill Pazner 41d0aeeea7 Update tests/unit/ceed/test_ceed.cpp
Handle more cleanly command line option for test_ceed.

Co-authored-by: Will Pazner <11493037+pazner@users.noreply.github.com>
2020-09-23 12:13:16 -07:00
Yohann Dudouit 56a985b586 Fix ceed_tests. 2020-09-23 12:03:03 -07:00
Yohann Dudouit 395ce0f1f6 Readd inadvertently deleted ceed_tests makefile target. 2020-09-23 11:42:07 -07:00
Balos, Cody Joe bf6012b2db Merge branch 'sundials-gpu-dev' of github.com:balos1/mfem into sundials-gpu-dev 2020-09-22 17:04:22 -07:00
Balos, Cody Joe 027d27fdf9 various minor fixes to address reviewer comments:
- use wildcard to detect sundials library directory
- add some error strings
- remove dead code
2020-09-22 17:04:10 -07:00
Balos, Cody Joe c879180508 call HostRead after ::Step to ensure data is up to date on host 2020-09-22 17:01:11 -07:00
camierjs 8d5aa9ffd9 Add using for nvcc warnings 2020-09-22 16:35:37 -07:00
Tucker Babcock 29294b603d setting size of elvect 2020-09-22 16:55:27 -04:00
Will Pazner 374d71f68c Minor 2020-09-22 13:30:12 -07:00
Dylan Copeland 5bb18f7fae Removing the verification in Eval that the coefficient is not symmetric. 2020-09-21 17:42:43 -07:00
Will Pazner 7a29a36c78 Add JumpScaling option to ComputeDGFaceJumpError 2020-09-21 14:59:02 -07:00
Will Pazner e5e58f8328 Add function GetFaceNbrElementSize 2020-09-21 14:58:16 -07:00
Dylan Copeland 60369fec8f Fixed the new PA interpolators to work on device and added the CUDA flag to the unit tests, for inclusion in cunit_tests. 2020-09-21 14:36:41 -07:00
Dylan Copeland 7a9f2f966f Corrected the 3D PA kernels for IdentityInterpolator, and made a 3D unit test with a hexahedral mesh not aligned with coordinate axes. Fixed a bug in integration point ordering that reduces the error in the 2D tests. 2020-09-21 13:03:37 -07:00
Yohann b71345dab6 Merge branch 'master' into yohann/test-ceed 2020-09-21 10:04:08 -07:00
Balos, Cody Joe c36d6ca2b1 sundials-gpu-dev: a couple minor fixes 2020-09-21 08:57:45 -07:00
Dylan Copeland 20134f9213 Corrected the 2D PA kernels for IdentityInterpolator, for general quadrilateral meshes not aligned with coordinate axes. 2020-09-18 21:25:52 -07:00
Andrew T. Barker cd3745046d Add unit tests for PA gradient and identity interpolators using star mesh. 2020-09-18 15:57:11 -07:00
Will Pazner d220d72015 Remove unneeded #include 2020-09-18 11:04:26 -07:00
Will Pazner 8958460dbf Merge remote-tracking branch 'origin/master' into br2-dev
# Conflicts:
#	CHANGELOG
2020-09-18 11:02:11 -07:00
Will Pazner c7480fd97e Formatting 2020-09-18 11:00:49 -07:00
Will Pazner f5b648fd4d Remove old comment 2020-09-18 10:59:23 -07:00
Will Pazner 1d609acb2b Change default parameters for ex14. Add sample run 2020-09-18 10:57:32 -07:00
Will Pazner 382bf2b8b6 Update CHANGELOG with BR2 2020-09-18 10:57:16 -07:00
Arturo Vargas b213d80b12 revert KERNEL_ABORT_METHOD function 2020-09-18 10:33:33 -07:00
Arturo Vargas fdf86706ea PR comments, styling 2020-09-18 10:31:26 -07:00
Dylan Copeland 72e8c7771a Merge branch 'master' of github.com:mfem/mfem into matdiffpa 2020-09-18 10:17:08 -07:00
Dylan Copeland 2c7f6300e0 Merge branch 'master' of github.com:mfem/mfem into pa-id-interp 2020-09-17 18:32:09 -07:00
Tzanio d11c17cba2 minor 2020-09-17 18:20:41 -07:00
Tucker Babcock 58275bca9a make style 2020-09-17 15:01:14 -04:00
Tucker Babcock e8d1890399 Adding default implementation of AssembleElementVector and AssembleFaceVector for BilinearFormIntegrators that just multiply the state vector by the element stiffness matrix 2020-09-17 14:11:53 -04:00
Jakub Cerveny 2b9505aa0b Added more documentation for PointMatrixHash. 2020-09-17 10:25:44 +02:00
Yohann Dudouit b7584314d1 make style. 2020-09-16 18:30:55 -07:00
Yohann Dudouit 2a3858071a Fix typos. 2020-09-16 18:14:33 -07:00
Yohann Dudouit d62441a60f Rewrite RemoveCeedBasisAndRestriction to fix a bug on Linux. 2020-09-16 18:12:36 -07:00
Yohann Dudouit 846d019ece Erase entries when destroying the CeedBasis and CeedRestr. 2020-09-16 17:16:29 -07:00
Dylan Copeland c0ca09165f Remove unused variable. 2020-09-16 08:58:29 -07:00
Jakub Cerveny 0ad7d157c0 Added documentation for MatrixMap. 2020-09-16 10:35:51 +02:00
Dylan Copeland 17142d2b36 Cleaned up some things. Added order 1 test for PA gradient interpolator. Made some optimizations for the GradientInterpolator PA kernels. 2020-09-15 21:07:31 -07:00
Yohann Dudouit 7fd34fa3c3 Merge branch 'yohann/vec-mass-diff' into yohann/test-ceed 2020-09-15 10:54:21 -07:00
Yohann Dudouit 530cd42e58 Use reference instead of value inside RemoveCeedBasisAndRestriction. 2020-09-15 10:31:12 -07:00
Dylan Copeland 1bac4f7c19 Moving new code to the bottom of bilininteg_hcurl.cpp for simpler comparison to master. 2020-09-15 09:39:55 -07:00
Dylan Copeland cc21811d1a Implemented 2D version of IdentityInterpolator PA kernels. 2020-09-14 19:57:56 -07:00
nbeams f2d5e1a1d3 update abort kernel functions for HIP 2020-09-14 19:45:51 -04:00
nbeams 28d366b77c allow use of short name for HIP backends in libCEED 2020-09-14 19:45:21 -04:00
nbeams 184fc62fc1 Merge branch 'master' into libceed-hip 2020-09-14 18:24:19 -04:00
Dylan Copeland a0615bbaef Fix merge. 2020-09-14 14:27:37 -07:00
Dylan Copeland df0a751dc9 Merge branch 'master' of github.com:mfem/mfem into pa-id-interp 2020-09-14 14:05:58 -07:00
Dylan Copeland 8592379542 Allowing symmetric matrix function coefficients to call Eval with copying of values to the full dense matrix. 2020-09-14 12:31:58 -07:00
Yohann Dudouit 42e2120d34 Merge branch 'yohann/vec-mass-diff' into yohann/test-ceed 2020-09-14 10:41:14 -07:00
Dylan Copeland 38eeac6cb3 Implemented 3D version of IdentityInterpolator::AddMultTransposePA. Optimized the kernel loops. 2020-09-14 09:54:18 -07:00
William Dawn 281bc5a94c fixing leaks in ex11p 2020-09-14 10:27:12 -04:00
William Dawn 1903cabffd no need to set pointer to null in destructor 2020-09-14 09:52:36 -04:00
Veselin Dobrev 0f45ec77b6 Add some ches for assumptions in ceed q-functions. 2020-09-11 19:33:46 -07:00
Yohann Dudouit 8adbd3235c Factorize code into a InitCeedVector function. 2020-09-11 19:13:27 -07:00
Yohann Dudouit e3e9f961a9 Update CMakeLists. 2020-09-11 17:56:19 -07:00
Yohann Dudouit 97bdaeedcd Update CMakeLists. 2020-09-11 17:54:55 -07:00
Yohann Dudouit 2a65380426 include ceed.hpp 2020-09-11 17:09:47 -07:00
Yohann Dudouit c3802dff13 include ceed.hpp 2020-09-11 17:09:15 -07:00
Dylan Copeland e9b865f2a0 Debugged 3D IdentityInterpolator::Mult for H(curl)-H1^3. 2020-09-11 16:44:36 -07:00
Yohann Dudouit a05113cf08 Add a RemoveCeedBasisAndRestriction function. 2020-09-11 15:44:22 -07:00
Yohann Dudouit da1c9d8077 Add a RemoveCeedBasisAndRestriction function. 2020-09-11 15:43:55 -07:00
Yohann Dudouit 1cd5c44365 make style 2020-09-11 15:13:41 -07:00
Yohann Dudouit fdb3151fe4 make style 2020-09-11 15:13:12 -07:00
Yohann Dudouit d2843d8270 Remove basis and restr when destructing a FiniteElementSpace. 2020-09-11 15:03:08 -07:00
Yohann Dudouit dc6c10d5fb Remove basis and restr when destructing a FiniteElementSpace. 2020-09-11 15:02:07 -07:00
Yohann Dudouit 3f6912f9b0 Move things around. 2020-09-11 14:35:06 -07:00
Yohann Dudouit 99912229dc Let MFEM handle memory for nodes in CeedMFAssemble. 2020-09-11 14:29:30 -07:00
Yohann dd05e8b5d5 Merge branch 'master' into yohann/test-ceed 2020-09-11 11:10:46 -07:00
Yohann Dudouit 7d24b35af1 update CHANGELOG. 2020-09-11 10:59:11 -07:00
Yohann Dudouit f471b8e528 Use DiffusionIntegrator's IntegrationRule in VectorDiffusionIntegrator::AssembleElementVector. 2020-09-11 10:59:03 -07:00
Yohann Dudouit 4799747f2b Merge branch 'yohann/vec-mass-diff' into yohann/test-ceed 2020-09-11 10:24:59 -07:00
Yohann Dudouit 5d73899d88 move things around 2020-09-11 10:24:39 -07:00
Yohann Dudouit fb5ad410c6 Merge branch 'yohann/vec-mass-diff' into yohann/test-ceed 2020-09-11 10:23:25 -07:00
Yohann Dudouit a49325731e Let MFEM handle the memory for the mesh nodes. 2020-09-11 10:20:39 -07:00
Yohann Dudouit e73611a403 Use DEVICE_MASK instead of CUDA 2020-09-11 10:05:57 -07:00
Balos, Cody Joe a5bb313e52 Update to SUNDIALS 5.4.0 RC
This has no changes to the CPU only code (all changes were in
MFEM_USE_CUDA ifdef). The primary change is that mfem controls the
lifetime of the SUNMemoryHelper, thus the SundialsMemHelper class and
mfem::sunmemHelper were added.
2020-09-11 01:09:55 -07:00
Veselin Dobrev b9cd30304a Some formatting edits. 2020-09-11 00:20:08 -07:00
Aaron Fisher 89610836d3 Added the cmake system for the new example and updated the version numbers for SuperLU 2020-09-10 16:10:54 -07:00
Aaron Fisher b0f2390fa7 Minor changes to set us up to use SuperLU 6.3.1, and added a simple SuperLU Example. 2020-09-10 15:51:34 -07:00
Balos, Cody Joe d9e87e1e13 gnu make: look for sundials libraries in lib instead of lib64 2020-09-10 12:06:28 -07:00
Balos, Cody Joe 94e07ba735 remove unused function from FE_Evolution class in ex9 2020-09-10 12:03:50 -07:00
Yohann Dudouit 347e6f2447 Add the missing files..... 2020-09-09 15:40:13 -07:00
Yohann Dudouit 604dab7693 Update test_ceed.cpp to run the tests with AssemblyLevel::NONE. 2020-09-09 15:00:38 -07:00
Yohann Dudouit d2f3e33e72 Add fully matrix-free (MF) VectorMass and VectorDiffusion using libCEED. 2020-09-09 15:00:09 -07:00
Yohann Dudouit f01e45dfde Merge branch 'yohann/ceed-mf' into yohann/test-ceed 2020-09-09 14:39:31 -07:00
stefanhenneking 8f3883ce1a Merging master into feature branch. 2020-09-09 16:36:19 -05:00
William Dawn 73a87ed46a simplify deleting vectors in destructor 2020-09-09 10:17:37 -04:00
Jakub Červený f31c63dad6 Checked hashing function and bucket size distribution. 2020-09-09 10:54:22 +02:00
Jakub Červený 1f8f0a010b make style 2020-09-09 10:34:32 +02:00
Julian Andrej d211b3c305 Simplify Array2D assignment operator 2020-09-08 16:33:59 -07:00
Arturo Vargas cb637556c3 makefile fixes 2020-09-08 15:30:01 -07:00
Arturo Vargas bc5a051d8c Add RAJA-hip 2020-09-08 15:07:37 -07:00
Jakub Červený a7f6573ebd Minor improvements. 2020-09-08 20:34:48 +02:00
Arturo Vargas 0b4861a28f RAJA::Kernel->RAJA::Teams 2020-09-08 11:28:33 -07:00
Julian Andrej a5a6748731 Set sizes new on Array2D assignment operator 2020-09-08 11:22:38 -07:00
Tucker Babcock a789c63098 updating doc 2020-09-08 13:54:04 -04:00
Tucker Babcock 14c93a200c make style 2020-09-08 13:51:56 -04:00
Tucker Babcock 4145343273 merging master 2020-09-08 13:48:38 -04:00
Tucker Babcock 0eedb90c75 updated function coefficient implementation to use cleaner style suggested by @v-dobrev 2020-09-08 13:30:09 -04:00
Jakub Červený 41babcea77 Switchted to Array instead of std::vector in NCMesh::NCList. 2020-09-08 13:25:13 +02:00
Jakub Červený dbfd3747e4 ParNCMesh works with NCList::point_matrices (still uses aux_pm_store though) 2020-09-08 13:05:33 +02:00
Julian Andrej 109e68d7bb Guard parallel calls in serial build 2020-09-07 11:56:48 -07:00
Jakub Červený 5a06fa5798 New NCList point matrices work in serial. 2020-09-06 20:54:46 +02:00
Jakub Červený a087f7f4f1 Exporting point matrices works. 2020-09-04 17:08:22 +02:00
Julian Andrej 7933fd9b88 Make blocknonlinearform and parblocknonlinearform work with non conforming meshes 2020-09-04 08:05:11 -07:00
Julian Andrej 9a4f7ed262 Modify ex19/ex19p to support non conforming meshes 2020-09-04 07:59:38 -07:00
Jakub Červený 618a8fb85f Creating slave matrix indices with MatrixMap, changed everywhere. 2020-09-04 16:11:02 +02:00
Jakub Červený 07962a73cd WIP hashing point matrices into indices for NCMesh::Slave. 2020-09-04 13:56:09 +02:00
Yohann Dudouit 254724d96f Update incorrect documentation. 2020-09-03 11:56:36 -07:00
Balos, Cody Joe a35d0c984d revert accidental change 2020-09-03 11:55:35 -07:00
Balos, Cody Joe b3659147a5 remove unused code 2020-09-03 11:50:37 -07:00
Balos, Cody Joe 3a1829ba3e update comments for functions marked as deprecated 2020-09-03 11:50:22 -07:00
Balos, Cody Joe 4b292c09a9 fix alignment 2020-09-03 11:45:11 -07:00
Balos, Cody Joe 311eb40ac3 remove TODO comments about ToNVector function 2020-09-03 11:43:01 -07:00
Julian Andrej f7f5b9a82b Moved ess dof elimination from vdofs to tdofs in parallel 2020-09-02 16:13:16 -07:00
Yohann Dudouit fd396ac682 Move code in CEED guard to avoid dead code. 2020-09-02 15:29:28 -07:00
Yohann Dudouit 90e02bbd2d Improve doc. 2020-09-02 14:35:44 -07:00
Dylan Copeland 8fe9ecf433 Initial implementation (not working correctly yet) of PA identity interpolation for H(curl) and vector H1. 2020-09-02 09:55:10 -07:00
Yohann Dudouit dc6517f77e move #endif. 2020-09-01 22:07:13 -07:00
Yohann Dudouit 67b317f3df Remove dead code. 2020-09-01 22:02:02 -07:00
Yohann Dudouit 33e29a4bd1 Change IntegrationRule in VectorDiffusion. 2020-09-01 21:11:48 -07:00
Yohann Dudouit d96f7c2c71 Fix a bug. 2020-09-01 21:11:05 -07:00
Yohann Dudouit bc4199f4a5 Replace star and fichera by their q3 versions. 2020-09-01 20:57:56 -07:00
Yohann Dudouit 4cbdfd34ea Change IntegrationRule in VectorDiffusion. 2020-09-01 20:57:10 -07:00
Yohann Dudouit efb937ed06 Fix a bug. 2020-09-01 20:56:40 -07:00
Yohann Dudouit cb8c9e543a Modiify test_ceed for Vector Mass and Diffusion. 2020-09-01 19:45:53 -07:00
Yohann Dudouit deaaea5f12 Add VectorMass and VectorDiffusion to libCEED tests. 2020-09-01 17:13:37 -07:00
Yohann Dudouit 8433c504f5 typo. 2020-09-01 17:12:56 -07:00
Yohann Dudouit 9a52687795 Rename grid to quad. 2020-09-01 17:12:20 -07:00
Will Pazner 48d77aa7d1 Formatting 2020-09-01 16:59:04 -07:00
Will Pazner ca9f9193c4 Revert small change 2020-09-01 16:57:00 -07:00
Will Pazner 0425d658e2 Merge remote-tracking branch 'origin/master' into br2-dev 2020-09-01 16:51:17 -07:00
Yohann Dudouit 2ece2a07f7 Merge branch 'yohann/vec-mass-diff' into yohann/test-ceed 2020-09-01 16:21:53 -07:00
Yohann Dudouit 18c0f1b8ba Reorder initialization in constructor. 2020-09-01 16:19:19 -07:00
Yohann Dudouit 9cd90ff055 Merge branch 'yohann/vec-mass-diff' into yohann/test-ceed 2020-09-01 16:16:41 -07:00
Yohann Dudouit 5e2f4816fd Merge branch 'yohann/ceed-coeff' into yohann/test-ceed 2020-09-01 15:56:19 -07:00
Yohann Dudouit d3b7601f88 Destroy CeedQFunctionContext. 2020-09-01 15:48:22 -07:00
Yohann Dudouit 00444a21db Add a constructor that initializes fields to NULL. 2020-09-01 15:14:56 -07:00
Yohann Dudouit 6823ecee8a Merge branch 'master' into yohann/ceed-coeff 2020-09-01 15:07:34 -07:00
Yohann Dudouit 131e8ba848 Remove useless default case 2020-09-01 15:03:20 -07:00
Yohann Dudouit af51fabcc8 Fix a potential bug. 2020-09-01 14:54:51 -07:00
Yohann Dudouit 401c13fef7 Improve error messages when using MF without libCEED. 2020-09-01 14:51:50 -07:00
Yohann Dudouit 9a141f8629 make style. 2020-09-01 14:37:05 -07:00
Yohann Dudouit dc5a600503 Rewrite constructors. 2020-09-01 11:31:32 -07:00
Yohann Dudouit 1fd8fff49f Move the #ifdef MFEM_USE_CEED logic inside ceed files. 2020-09-01 11:16:51 -07:00
termi-official 9a8258e65e Removed errnous const qualifier. 2020-09-01 01:13:27 +02:00
termi-official 8e02a5f475 Style again. 2020-09-01 01:07:17 +02:00
Balos, Cody Joe 3f62a99c64 update N_NewCustom name 2020-08-31 15:54:44 -07:00
termi-official 9d8490a4bf Finalize documentation. 2020-09-01 00:52:23 +02:00
termi-official 010a2e2246 Make doxygen happy. 2020-09-01 00:26:38 +02:00
termi-official af958ec46c Updated style. 2020-09-01 00:24:50 +02:00
Yohann Dudouit f89f626c43 Fix inaccurate comments. 2020-08-31 15:10:18 -07:00
Yohann Dudouit 3eec9ace81 Simplify AssembleMF 2020-08-31 15:06:48 -07:00
Yohann Dudouit a4c3a02c70 Use new context interface for libCEED. 2020-08-31 15:06:26 -07:00
Yohann Dudouit 65e9fcbc2d Merge remote-tracking branch 'origin/master' into yohann/ceed-mf 2020-08-31 15:00:38 -07:00
termi-official 3365b91583 Add a basic unit test for Kelly error indicator. 2020-08-31 23:46:35 +02:00
termi-official 46666d6c40 Merge branch 'master' into kelly-error-indicator-dev 2020-08-31 22:22:33 +02:00
termi-official d21c52603f Since there is no general correct way to compute the scaling coefficient for each element, an option to let the user provide it has been added. 2020-08-31 21:55:56 +02:00
Yohann Dudouit 2c4cc326de Merge remote-tracking branch 'origin/master' into yohann/vec-mass-diff 2020-08-31 09:57:10 -07:00
Yohann Dudouit 7b5f176765 Refactor Ceed Setup in mass_pa and diffusion_pa 2020-08-31 09:51:44 -07:00
YohannandWill Pazner c5e505b000 Update fem/bilininteg_vecmass.cpp
Co-authored-by: Will Pazner <11493037+pazner@users.noreply.github.com>
2020-08-31 09:45:17 -07:00
YohannandWill Pazner 033592a234 Update fem/bilininteg_vecdiffusion.cpp
Co-authored-by: Will Pazner <11493037+pazner@users.noreply.github.com>
2020-08-31 09:44:51 -07:00
Balos, Cody Joe a5a7608de0 update INSTALL 2020-08-26 13:49:06 -07:00
Balos, Cody Joe 8b02cfc752 fix comment 2020-08-26 13:45:36 -07:00
Balos, Cody Joe 06e4c5039e update CHANGELOG 2020-08-26 13:40:12 -07:00
Balos, Cody Joe 206df44ad2 Always do base.Read() before making an alias in MakeRef.
See https://github.com/mfem/mfem/issues/1578#issuecomment-649962962 for an explanation of why this is necessary.
2020-08-26 13:20:36 -07:00
Balos, Cody Joe c5e75c6472 cleanup 2020-08-26 13:20:36 -07:00
Balos, Cody Joe 8551ca83e9 revert mem_manager.hpp whitespace changes 2020-08-26 13:20:36 -07:00
Balos, Cody Joe c7ead47f1d remove unused includes 2020-08-26 13:20:36 -07:00
Balos, Cody Joe 72e9164c66 revert sample runs section of comment in sundials modification of ex9 2020-08-26 13:20:36 -07:00
Balos, Cody Joe 6f78235cfe keep sundials backwards compatibility when not using cuda 2020-08-26 13:20:36 -07:00
Balos, Cody Joe 937db1a293 Add support for SUNDIALS GPU features
Add support for SUNDIALS CUDA features. These changes will be easily
extendable to support future GPU features in SUNDIALS, e.g. HIP
features. To keep things clean, this creates a SundialsNVector
class to interface with the SUNDIALS N_Vector. This class inherits
from the mfem::Vector class, and follows the pattern used in MFEM
interfaces to other libraries such as PETSc and hypre.
2020-08-26 13:20:36 -07:00
Yohann Dudouit ae549f035a Update comments. 2020-08-26 12:20:16 -07:00
Yohann Dudouit e23c886030 Add destructor to VectorMass and VectorDiffusion. 2020-08-25 15:28:22 -07:00
Dylan Copeland cf0222e0ce Removing height<4 condition. 2020-08-25 14:08:08 -07:00
Yohann Dudouit 7e490f5f05 Merge branch 'yohann/ceed-coeff' into yohann/test-ceed 2020-08-25 13:40:38 -07:00
Yohann Dudouit d41c880974 Update destructor. 2020-08-25 13:39:12 -07:00
Yohann Dudouit 530c37ad8e Merge remote-tracking branch 'origin/jeremy/libceed-refactor-dev' into yohann/test-ceed 2020-08-25 13:18:20 -07:00
Yohann Dudouit 5dbeef3916 Merge branch 'jeremy/libceed-refactor-dev' into yohann/test-ceed 2020-08-25 12:54:36 -07:00
Yohann Dudouit 5afe254020 Merge remote-tracking branch 'origin/jeremy/libceed-refactor-dev' into yohann/test-ceed 2020-08-25 12:54:05 -07:00
Yohann Dudouit 1b34ddd6d2 Use INFO instead of SECTION. 2020-08-25 12:25:26 -07:00
Yohann Dudouit e155c66b4a Merge branch 'yohann/ceed-coeff' into yohann/test-ceed 2020-08-25 12:21:50 -07:00
Yohann Dudouit 8d17dbb03a Refactor test_ceed.cpp. 2020-08-25 12:00:45 -07:00
Yohann Dudouit 839cbc71ce Merge remote-tracking branch 'origin/jeremy/libceed-refactor-dev' into yohann/test-ceed 2020-08-25 10:52:43 -07:00
Pieter Ghysels ef0858c7a1 Fix for STRUMPACK with hypre >= 21600 2020-08-25 10:48:41 -07:00
Yohann Dudouit f6fe94e131 Merge remote-tracking branch 'origin/master' into yohann/test-ceed 2020-08-25 10:32:16 -07:00
Yohann Dudouit f757b76f92 Use device pointer for GridFunctionCoefficient. 2020-08-24 21:22:33 -07:00
Yohann Dudouit 6e6eddd169 Test only order 3 to fasten tests. 2020-08-24 21:21:19 -07:00
Yohann Dudouit 6a6460b809 Change orders in test_ceed. 2020-08-24 17:06:31 -07:00
Yohann Dudouit d216b13f96 Remove unused variable. 2020-08-24 15:45:38 -07:00
Yohann Dudouit 493460f941 Add GPU tests for libCEED. 2020-08-24 14:14:13 -07:00
termi-official bdf5a2bdc5 Modified example 15 to showcase the error estimator. 2020-08-24 23:09:09 +02:00
termi-official b319fbb1a6 Base implementation of the Kelly error estimator for scalar finite element problems. 2020-08-24 23:08:40 +02:00
Dylan Copeland 2b82976ba9 Merge branch 'master' of github.com:mfem/mfem into matdiffpa 2020-08-24 13:05:27 -07:00
Yohann Dudouit c51f2a407d Minor 2020-08-24 09:58:48 -07:00
Dylan CopelandandStefan Henneking 7d756f6016 Remove newline.
Co-authored-by: Stefan Henneking <stefan.henneking@gmail.com>
2020-08-23 13:15:44 -07:00
Yohann Dudouit a696640253 Regorganize test_ceed and add to makefile. 2020-08-21 17:08:35 -07:00
Yohann Dudouit cb973e773d Move test_ceed in a ceed folder. 2020-08-21 15:32:15 -07:00
Yohann Dudouit 34231caee4 Add a skeleton to test the libCEED integration in MFEM. 2020-08-21 15:17:22 -07:00
Yohann Dudouit 2db9129cd7 Remove test_ceed 2020-08-21 15:15:41 -07:00
Yohann Dudouit 56228ded89 typos. 2020-08-21 15:14:24 -07:00
Yohann Dudouit def6aa3ae3 Move test_ceed in miniapps. 2020-08-21 14:49:47 -07:00
Yohann Dudouit 6ba206fcf2 Include ceed.hpp in the ceed test. 2020-08-21 14:17:08 -07:00
Yohann Dudouit 7555df1d11 Remove white space 2020-08-21 13:41:05 -07:00
Yohann Dudouit 9627d2b0ef make style 2020-08-21 13:30:49 -07:00
Yohann Dudouit b24169c858 make style 2020-08-21 13:19:15 -07:00
Yohann Dudouit a61dae6313 Add a test for the libCEED integration. 2020-08-21 13:17:45 -07:00
Yohann Dudouit 39bab7204b make style 2020-08-21 12:28:59 -07:00
Yohann Dudouit b7cabc6aa2 Remove some magic numbers. 2020-08-21 11:40:21 -07:00
Yohann Dudouit a176fb2d52 Add support for all scalar coefficient types. 2020-08-21 11:30:22 -07:00
Yohann DudouitandJeremy L Thompson d28659a50c Fix a bug when vdim > 1.
Co-authored-by: Jeremy L Thompson <25011573+jeremylt@users.noreply.github.com>
2020-08-20 15:58:07 -07:00
nbeams b8992fa122 make style 2020-08-20 18:49:54 -04:00
Yohann Dudouit 485600bbd3 Add vdim to the BuildContext. 2020-08-20 15:35:17 -07:00
Yohann Dudouit 1aea0a752b Minor 2020-08-20 14:52:23 -07:00
Yohann Dudouit 512f3283e8 Modify Qfunctions for mass and diffusion to work in vector case. 2020-08-20 14:39:08 -07:00
nbeams deeef2572d TEMPORARY: hack to get around hipcc error 2020-08-20 17:23:22 -04:00
nbeams 0264406aa9 add XLINKER flag for HIP 2020-08-20 17:20:45 -04:00
nbeams 372dd6b3b2 enable HIP backend for libCEED 2020-08-20 17:20:10 -04:00
Yohann Dudouit 377de82d76 make style 2020-08-20 13:16:32 -07:00
nbeams 0246d693fb Merge branch 'jeremy/libceed-ctx-dev' into libceed-hip 2020-08-20 15:31:47 -04:00
Yohann Dudouit cc7634d475 Add support for Vector Mass and Diffusion using libCEED. 2020-08-20 12:01:56 -07:00
stefanhenneking 1551bf8858 minor 2020-08-19 12:52:09 -05:00
stefanhenneking c28a082a0d Merge branch 'master' of github.com:mfem/mfem into ex25-gpu 2020-08-19 12:02:25 -05:00
YohannandTzanio Kolev 91f9984a70 Update fem/complex_fem.hpp
Co-authored-by: Tzanio Kolev <tzanio@llnl.gov>
2020-08-17 12:13:40 -07:00
YohannandTzanio Kolev fd67897628 Update fem/complex_fem.hpp
Co-authored-by: Tzanio Kolev <tzanio@llnl.gov>
2020-08-17 12:13:34 -07:00
YohannandTzanio Kolev 77defb3b4a Update fem/bilinearform.hpp
Co-authored-by: Tzanio Kolev <tzanio@llnl.gov>
2020-08-17 12:13:23 -07:00
Dylan Copeland 74fbc63ad7 Merge branch 'master' of github.com:mfem/mfem into matdiffpa 2020-08-14 14:27:56 -07:00
lazarov e6d7736c51 mod 2020-08-13 07:22:24 -07:00
lazarov 79760fc4ab Bug fix for double ParBlockNonlinearForm::GetEnergy(const Vector &x) 2020-08-12 22:30:56 -07:00
Andrew T. Barker f1dff5b830 ElementRestriction: minor cleanup 2020-08-10 13:33:42 -07:00
Andrew T. Barker 88c70ecb61 Cleanup pbilinearform.hpp, pbilinearform.cpp a bit. 2020-08-10 13:29:42 -07:00
Andrew T. Barker 356c3034c4 Remove some cruft related to Nedelec dof orientations.
(some of this might possibly be useful when you want to implement the Pi interpolation)
2020-08-10 13:15:33 -07:00
Andrew T. Barker 78c5229b2a A bit of cleanup, improved comments. 2020-08-10 13:09:40 -07:00
Andrew T. Barker b280a5c1bc Fix std::cout and a little style. 2020-08-06 13:05:11 -07:00
Dylan Copeland d245aaa52c Multi-threading some quadrature loops. 2020-08-06 12:43:04 -07:00
Andrew T. Barker 30914c9001 Style 2020-08-05 10:18:00 -07:00
Andrew T. Barker 372409764a Merge remote-tracking branch 'origin/master' into matrix-free-grad 2020-08-05 09:45:58 -07:00
Jason Hicken 0e7ebbc839 added safe-guard for NSH option, and included more documentation on ilu_type 2020-08-05 12:03:30 -04:00
Jason Hicken 5949d421f1 added wrappers for Hypre FGMRES and ILU 2020-08-04 17:47:47 -04:00
Yohann Dudouit d386fc532d Remove innaccurate documentation (I think). 2020-08-04 12:01:08 -07:00
Yohann Dudouit 55233ea4d1 Use LEGACYFULL instead of FULL in the documentation. 2020-08-04 11:46:12 -07:00
Dylan Copeland d5d267eefd Fixing merge. 2020-08-03 15:08:47 -07:00
Dylan Copeland c14581a1e8 Merge branch 'master' of https://github.com/mfem/mfem into matdiffpa 2020-08-03 13:03:52 -07:00
William Dawn 051a1bef0f Merge branch 'master' of github.com:wcdawn/mfem into master 2020-08-03 11:43:08 -06:00
William Dawn 76c05e2404 address leaks in SlepcEigenSolver 2020-08-03 11:42:04 -06:00
Andrew T. Barker dc33b2f048 Clean up unused functions / warnings. 2020-08-03 08:41:56 -07:00
Andrew T. Barker 9624d9de6f Clean up some debug output. 2020-08-03 08:30:04 -07:00
Andrew T. Barker 9ba4ce9312 Fix parallel communication issues in parallel PAGradient and transpose. 2020-08-03 08:24:31 -07:00
William Dawn dd05b45c62 address leaks in SlepcEigenSolver 2020-07-31 16:09:01 -06:00
Tucker Babcock f08de96178 updating documentation 2020-07-31 14:24:43 -07:00
Yohann Dudouit c3fa8cdf02 make style 2020-07-31 09:06:04 -07:00
Yohann Dudouit b76a9fbb68 Add mass and diffusion MF to CMakeLists. 2020-07-30 17:05:38 -07:00
Yohann Dudouit 72b1dec3e7 Remove unnecessary qdatasize for MF. 2020-07-30 16:31:23 -07:00
Yohann Dudouit 7f1bde17a2 Add AssembleDiagonalMF. 2020-07-30 16:20:21 -07:00
Yohann Dudouit a59c17e6ae Add fully matrix-free support in MFEM using libCEED. 2020-07-30 16:11:12 -07:00
Tucker Babcock f19fcd01e6 switching to initializers instead of assignments in function coefficient constructors 2020-07-30 14:57:16 -07:00
Tucker Babcock e315af4d4c adding documentation to new members in detail namespace 2020-07-30 14:30:53 -07:00
Tucker Babcock fef6f5bbaf make style 2020-07-30 14:16:17 -07:00
Tucker Babcock 936f49bbad fix lambda function time-independent vector function coefficient constructor 2020-07-30 14:12:06 -07:00
Tucker Babcock febc9a8a6e using template meta-programming SFINAE to remove ambiguity of constructor for stateless lambda 2020-07-30 12:43:59 -07:00
Dylan Copeland 85d7da47a1 Removing SetSymmetric function. Verifying symmetry flag in MatrixFunctionCoefficient::Eval. 2020-07-30 11:40:18 -07:00
Dylan Copeland 66ab25dc09 Eliminating some unnecessary memory. 2020-07-29 21:27:57 -07:00
Dylan Copeland 39f72c9c6b Extending diffusion diagonal assembly for all coefficient types, with unit tests. 2020-07-29 16:14:20 -07:00
Dylan Copeland e4f8acb473 Adding vector coefficients to DiffusionIntegrator, with unit tests. Unifying the setup functions for diffusion and H(curl) mass. 2020-07-29 13:01:48 -07:00
stefanhenneking c346d4601d Updating changelog. 2020-07-29 12:33:18 -05:00
stefanhenneking d1b2b6eabf ex25p working with cuda. 2020-07-29 12:11:16 -05:00
stefanhenneking fd45550d7d minor 2020-07-29 12:09:58 -05:00
stefanhenneking 602f9522be Adding PA and device option to ex25p (not yet cuda tested) 2020-07-29 11:21:17 -05:00
stefanhenneking f02d161457 minor 2020-07-29 10:53:43 -05:00
stefanhenneking 8228f99711 Ex25 tested with GPU. 2020-07-29 10:41:47 -05:00
Dylan Copeland 5b8c4ebc0f Adding matrix coefficient support for diffusion PA, with unit tests. 2020-07-28 22:26:09 -07:00
Tucker Babcock deccdec496 using delegating constructors to allow construction with function pointers. This is needed because if one tried to construct a FunctionCoefficient with a function that was overloaded, it could not be implicitly converted to a std::function 2020-07-28 15:38:46 -07:00
stefanhenneking 8d87e4a93a Merge branch 'curl-curl-coef' of github.com:mfem/mfem into ex25-gpu 2020-07-28 17:16:02 -05:00
stefanhenneking 793cf0c173 Minor update to ex25. 2020-07-28 17:13:45 -05:00
stefanhenneking 68e930cc3b Merge branch 'master' of github.com:mfem/mfem into ex25-gpu 2020-07-28 16:08:34 -05:00
Dylan Copeland f17d263064 Fixing coefficient dimensions in the 2D case. 2020-07-28 12:51:39 -07:00
Tucker Babcock 3e0e2a7498 fixes for CI 2020-07-28 10:39:44 -07:00
stefanhenneking 05b0a7897c Merge branch 'curl-curl-coef' of github.com:mfem/mfem into ex25-gpu 2020-07-28 10:44:45 -05:00
Tucker Babcock 7206fdb854 changing function coefficients to use std::functions instead of function pointers 2020-07-27 21:07:49 -07:00
stefanhenneking 3645f47cc1 minor 2020-07-24 10:40:37 -05:00
stefanhenneking 3da3f275bf Ex25 adding PA and device option (not yet working). 2020-07-24 10:39:42 -05:00
stefanhenneking 58e23e3b2d Merge branch 'matcoefpa' of github.com:mfem/mfem into ex25-gpu 2020-07-23 16:40:46 -05:00
Andrew T. Barker 5260e5b971 WIP: working on parlllel matrix-free gradient
The problem here is we need some kind of parallel multiplicity scaling
2020-07-16 13:57:20 -07:00
Andrew T. Barker 9f544e448e PAGradient: fix orientation / restriction issue, transpose looks good in 3D 2020-07-13 13:47:32 -07:00
Andrew T. Barker 902889abe5 WIP: Draft a kernel for 3D transpose, does not give correct answer 2020-07-13 11:49:13 -07:00
Andrew T. Barker 30fde8d98c Multi-element gradient transpose appears to work in 2D (fails in 3D). 2020-07-13 10:50:55 -07:00
Will Pazner f98a93ea81 Update BR2 integrator with latest master changes 2020-07-08 11:47:05 -07:00
Will Pazner f919ab31ba Merge branch 'master' into br2-dev
# Conflicts:
#	fem/CMakeLists.txt
#	mesh/pmesh.hpp
2020-07-08 11:46:47 -07:00
Andrew T. Barker bbc29bcf9b PAGradient: 2D transpose kernel works for one element but not multiple elements 2020-07-06 10:31:31 -07:00
Andrew T. Barker fd59cceda3 GradientInterpolator: add failing test for PA transpose 2020-07-01 13:07:43 -07:00
Andrew T. Barker 9d9b126cc8 Draft a 3D PA Gradient kernel - seems to work in simple cases. 2020-07-01 12:12:32 -07:00
Andrew T. Barker 11e5037e3c MultTransposeOverwrite() -> MultLeftInverse() 2020-07-01 11:36:29 -07:00
Andrew T. Barker b968557873 WIP: a little cleanup, mock up a 3D kernel, add 3D tests (failing) 2020-06-26 13:04:22 -07:00
Andrew T. Barker dca9990bb9 WIP: implement ElementRestriction::MultTranspposeOverwrite(), looks good so far?
(lots of debug prints etc in this code)
2020-06-26 12:08:20 -07:00
Andrew T. Barker 685f274044 WIP: start thinking about orientations of Nedelec dofs 2020-06-26 10:12:01 -07:00
Andrew T. Barker 5c437ce96c WIP: test PAGradient in multi-element setting, where it does not work (orientations of dofs) 2020-05-19 14:53:41 -07:00
Andrew T. Barker b98932091c WIP: 2D PA gradient kernel appears to work in simple cases 2020-05-19 14:10:42 -07:00
Andrew T. Barker 1d8cc71777 2D H1 to H(curl) PA gradient kernel drafted, is kinda close but not correct. 2020-05-19 13:27:03 -07:00
Will Pazner 1454353e2c Fix warning in BR2 integrator 2020-05-05 12:22:38 -07:00
Andrew T. Barker 4f5b6a7495 GradientInterpolator: rearrange and rename data structures here to make more sense 2020-05-04 16:10:17 -07:00
Andrew T. Barker 5f7462ec8d Better mapsotherC, mapsotherO, that have data closer to what I want for the actual kernel.
(now how do we actually get that stuff into the kernel and use it correctly?)
2020-05-04 15:49:13 -07:00
Will Pazner 68139116f8 Fix bug in BR2 lifting operators in parallel 2020-05-03 19:31:21 -07:00
Will Pazner f1ccc896f9 Minor modifications to examples 2020-05-01 22:59:54 -07:00
Will Pazner d7abdfded3 Add GetNFaceNeighborElements to ParMesh 2020-05-01 22:56:52 -07:00
Will Pazner 20aa7b4c6a Fix BR2 bugs in parallel 2020-05-01 22:36:16 -07:00
Will Pazner 9bf820a023 Add BR2 method to ex14 2020-05-01 22:02:32 -07:00
Will Pazner 478dbd99c7 DG diffusion BR2 integrator in parallel 2020-05-01 22:02:16 -07:00
Will Pazner 50ee9ae8d0 Merge branch 'master' into br2-dev 2020-05-01 21:06:50 -07:00
Andrew T. Barker 1f85594b4f WIP: thinking and exploring, this compiles, much to do. 2020-04-27 16:02:58 -07:00
Andrew T. Barker 08c7b33344 WIP: begin thinking about actual gradient kernels 2020-03-23 16:47:35 -07:00
Andrew T. Barker 15ae2763d3 WIP: this compiles, runs, and gives the wrong answer 2020-03-23 15:56:23 -07:00
Andrew T. Barker a407d30cfa WIP: PADiscreteLinearOperatorExtension: try to get this to at least compile 2020-03-13 15:56:27 -07:00
Andrew T. Barker 1b2e165c89 WIP: thinking about how to implement a PADiscreteLinearOperator 2020-03-13 13:35:42 -07:00
Andrew T. Barker 60350c6ebb unittest: write a draft test for a partially assembled gradient operator
which does not yet exist, so of course the test fails
2020-03-11 14:40:51 -07:00
Jan Nikl 287d8ec540 Fixed face element indices for boundary trace face integrators in MixedBilinearForm::Assemble(). 2019-09-10 08:44:51 +02:00
Holger Jones e2ded13c1e add support for vtk high order elements 2019-06-23 18:53:21 -07:00
Ben Southworth bb28ac7435 Added three ESDIRK schemes 2019-06-18 07:49:15 -07:00
hillyuan 51cf866693 Merge branch 'master' of https://github.com/hillyuan/mfem 2019-06-02 18:36:52 +09:00
hillyuan 5097dd2e3d Merge branch 'master' of https://github.com/mfem/mfem 2019-06-02 18:26:54 +09:00
hillyuan 2bb926094a Merge branch 'master' of https://github.com/mfem/mfem 2019-05-23 10:03:52 +09:00
hillyuan 05c74af854 return type of METIS_PartGraphKway wrong 2019-05-15 11:36:28 +09:00
hillyuan 13f39b38a5 METIS_PartGraphKway in FindMETIS.cmake may not working due to type error 2019-05-14 23:19:39 +09:00
Will Pazner ed7d4d4c44 Fix face weighting bug 2019-04-05 09:53:47 -07:00
Will Pazner bd3961ba0a Merge branch 'br2-dev' of github.com:mfem/mfem into br2-dev 2019-04-05 09:06:53 -07:00
Will Pazner bf90f2b687 Bug fix
Did not multiply eta stability parameter in BR2 method by number
of faces neighboring each element, as is required for the
stability proof. This is now fixed.
2019-04-05 09:06:27 -07:00
Will Pazner f67482e8d3 Modify example 14 to add BR2-style penalty terms 2019-04-05 09:06:27 -07:00
Will Pazner 1d220ef410 Bug fix
Did not multiply eta stability parameter in BR2 method by number
of faces neighboring each element, as is required for the
stability proof. This is now fixed.
2019-03-06 13:23:19 -08:00
Will Pazner 156a93937f Modify example 14 to add BR2-style penalty terms 2018-12-20 13:03:07 -08:00
368 changed files with 29006 additions and 9250 deletions
+61
View File
@@ -0,0 +1,61 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 30
# Number of days of inactivity before an Issue or Pull Request with the stale
# label is closed. Set to false to disable. If disabled, issues still need to
# be closed manually, but will remain marked as stale.
daysUntilClose: 7
# Only issues or pull requests with all of these labels are check if stale.
# Defaults to `[]` (disabled)
onlyLabels: []
# Issues or Pull Requests with these labels will never be considered stale. Set
# to `[]` to disable
exemptLabels:
- bug
- WIP
- ready-for-review
- in-review
- in-next
# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: false
# Set to true to ignore issues with an assignee (defaults to false)
exemptAssignees: false
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
:warning: This issue or PR has been automatically marked as stale because it has not
had any activity in the last month. *If no activity occurs in the next week, it will
be automatically closed.* Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
# Limit to only `issues` or `pulls`
# only: issues
# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
# pulls:
# daysUntilStale: 30
# markComment: >
# This pull request has been automatically marked as stale because it has not had
# recent activity. It will be closed if no further activity occurs. Thank you
# for your contributions.
# issues:
# exemptLabels:
# - confirmed
+68 -53
View File
@@ -102,28 +102,29 @@ examples/ex25.mesh
examples/ex25-*.gf
examples/ex25p-*.*
examples/sundials/ex9
examples/sundials/ex1[06]
examples/sundials/ex9p
examples/sundials/ex1[06]p
examples/amgx/ex1
examples/amgx/ex1p
examples/amgx/.logamgx
examples/amgx/refined.mesh
examples/amgx/sol.gf
examples/amgx/mesh.*
examples/amgx/sol.*
examples/sundials/ex9.mesh
examples/sundials/ex9-mesh.*
examples/sundials/ex9-init.*
examples/sundials/ex9-final.*
examples/sundials/Example9*
examples/sundials/deformed.*
examples/sundials/velocity.*
examples/sundials/elastic_energy.*
examples/sundials/ex16.mesh
examples/sundials/ex16-mesh.*
examples/sundials/ex16-init.*
examples/sundials/ex16-final.*
examples/sundials/Example16*
examples/gingko/ex1
examples/gingko/refined.mesh
examples/gingko/sol.gf
examples/gingko/mesh.*
examples/gingko/sol.*
examples/hiop/ex9
examples/hiop/ex9p
examples/hiop/ex9.mesh
examples/hiop/ex9-mesh.*
examples/hiop/ex9-init.*
examples/hiop/ex9-final.*
examples/petsc/ex[1-69]p
examples/petsc/ex1[0-1]p
examples/petsc/mesh.*
examples/petsc/sol.*
examples/petsc/sol_p.*
@@ -141,28 +142,51 @@ examples/petsc/mode_*
examples/pumi/ex1
examples/pumi/ex[126]p
examples/hiop/ex9.mesh
examples/hiop/ex9-mesh.*
examples/hiop/ex9-init.*
examples/hiop/ex9-final.*
examples/pumi/refined.mesh
examples/pumi/sol.gf
examples/pumi/mesh.*
examples/pumi/sol.*
examples/pumi/displaced.mesh
examples/sundials/ex9
examples/sundials/ex1[06]
examples/sundials/ex9p
examples/sundials/ex1[06]p
examples/sundials/ex9.mesh
examples/sundials/ex9-mesh.*
examples/sundials/ex9-init.*
examples/sundials/ex9-final.*
examples/sundials/Example9*
examples/sundials/deformed.*
examples/sundials/velocity.*
examples/sundials/elastic_energy.*
examples/sundials/ex16.mesh
examples/sundials/ex16-mesh.*
examples/sundials/ex16-init.*
examples/sundials/ex16-final.*
examples/sundials/Example16*
examples/superlu/ex1p
examples/superlu/mesh.*
examples/superlu/sol.*
miniapps/adjoint/cvsRoberts_ASAi_dns
miniapps/adjoint/adjoint_advection_diffusion
miniapps/electromagnetics/volta
miniapps/electromagnetics/tesla
miniapps/electromagnetics/maxwell
miniapps/electromagnetics/joule
miniapps/electromagnetics/Volta-AMR*
miniapps/electromagnetics/Tesla-AMR*
miniapps/electromagnetics/Maxwell-Parallel*
miniapps/electromagnetics/Joule_*
miniapps/gslib/field-diff
miniapps/gslib/field-interp
miniapps/gslib/findpts
miniapps/gslib/pfindpts
miniapps/meshing/mobius-strip
miniapps/meshing/klein-bottle
miniapps/meshing/toroid
@@ -176,7 +200,6 @@ miniapps/meshing/pmesh-optimizer
miniapps/meshing/minimal-surface
miniapps/meshing/pminimal-surface
miniapps/meshing/polar-nc
miniapps/meshing/mobius-strip.mesh
miniapps/meshing/klein-bottle.mesh
miniapps/meshing/toroid-*.mesh
@@ -190,9 +213,26 @@ miniapps/meshing/optimized*
miniapps/meshing/perturbed*
miniapps/meshing/polar-nc.mesh
miniapps/navier/navier_mms
miniapps/navier/navier_kovasznay
miniapps/navier/navier_kovasznay_vs
miniapps/navier/navier_tgv
miniapps/navier/navier_shear
miniapps/navier/navier_3dfoc
miniapps/navier/tgv_out*.txt
miniapps/navier/*_output
miniapps/nurbs/nurbs_ex1
miniapps/nurbs/nurbs_ex1p
miniapps/nurbs/nurbs_ex11p
miniapps/nurbs/refined.mesh
miniapps/nurbs/mesh.*
miniapps/nurbs/sol.*
miniapps/nurbs/mode_*
miniapps/nurbs/Example1*
miniapps/performance/ex1
miniapps/performance/ex1p
miniapps/performance/refined.mesh
miniapps/performance/mesh.*
miniapps/performance/sol.*
@@ -210,7 +250,6 @@ miniapps/toys/rubik
miniapps/toys/snake
miniapps/toys/lissajous
miniapps/toys/mondrian
miniapps/toys/snake-init.mesh
miniapps/toys/snake-user.mesh
miniapps/toys/snake-joined.mesh
@@ -225,37 +264,13 @@ miniapps/toys/lissajous.mesh
miniapps/toys/lissajous.gf
miniapps/toys/mondrian.mesh
miniapps/nurbs/nurbs_ex1
miniapps/nurbs/nurbs_ex1p
miniapps/nurbs/nurbs_ex11p
miniapps/nurbs/refined.mesh
miniapps/nurbs/mesh.*
miniapps/nurbs/sol.*
miniapps/nurbs/mode_*
miniapps/nurbs/Example1*
miniapps/gslib/field-diff
miniapps/gslib/field-interp
miniapps/gslib/findpts
miniapps/gslib/pfindpts
miniapps/navier/navier_mms
miniapps/navier/navier_kovasznay
miniapps/navier/navier_tgv
miniapps/navier/navier_shear
miniapps/navier/navier_3dfoc
miniapps/navier/tgv_out*.txt
miniapps/navier/*_output
miniapps/adjoint/cvsRoberts_ASAi_dns
miniapps/adjoint/adjoint_advection_diffusion
# Unit test binary and outputs
tests/unit/output_meshes
tests/unit/unit_tests
tests/unit/punit_tests
tests/unit/sedov_tests_*
tests/unit/psedov_tests_*
tests/unit/ceed_tests
# Test script output
tests/scripts/*.err
+2 -2
View File
@@ -76,7 +76,7 @@ stages:
- baseline_check
- baseline_publish
# The setup job in setup stage dont rely on MFEM git repo. It prepares a
# The setup job in setup stage don't rely on MFEM git repo. It prepares a
# pipeline-wide working directory downloading/updating external repos.
# TODO: updating tests and tpls is not necessary anymore since pipelines are
# now using unique directories so repo are never shared with another pipeline.
@@ -226,7 +226,7 @@ setup:
echo "${BASELINE_TEST}: Differences found, replacement file generated"
cp ${_base_out} ${CI_PROJECT_DIR}/${ARTIFACTS_DIR}/${_base_out}.txt
fi
# _base_diff wont even exist if there is no difference.
# _base_diff won't even exist if there is no difference.
if [[ -f ${_base_diff} ]]
then
echo "${BASELINE_TEST}: Relevant differences (filtered diff) ..."
+1 -1
View File
@@ -37,7 +37,7 @@ build_mfem_debug_ser_lassen:
- mkdir -p ${BUILD_PATH}
- cp -r ${CI_PROJECT_DIR} ${BUILD_PATH}/${CI_PROJECT_NAME}_lassen_ser_debug
- cd ${BUILD_PATH}/${CI_PROJECT_NAME}_lassen_ser_debug
- lalloc 1 -W 5 -q pdebug make -j cuda MFEM_DEBUG="YES" CUDA_ARCH=sm_70
- lalloc 1 -W 5 -q pdebug make -j cuda MFEM_DEBUG="YES" CPPFLAGS=-O2 CUDA_ARCH=sm_70
# Sanity check
sanitycheck_mfem_ser_lassen:
+260 -177
View File
@@ -5,12 +5,186 @@
| | | | | || _|| __/| | | | | |
|_| |_| |_||_| \___||_| |_| |_|
http://mfem.org
https://mfem.org
Version 4.1.1 (development)
Version 4.2.1 (development)
===========================
- Added matrix-free GPU-enabled implementations of GradientInterpolator and
IdentityInterpolator.
- Added interface to MUMPS direct solver. Its usage is demonstrated in ex25p.
See http://mumps.enseeiht.fr/ for more details. Supported versions >= 5.1.1.
- Added three ESDIRK time integrators: implicit trapezoid rule, L-stable
ESDIRK-32, and A-stable ESDIRK-33.
- Added a "scaled Jacobian" visualization option in the Mesh Explorer miniapp to
help identify elements with poor mesh quality.
- Added support for the "BR2" discontinuous Galerkin discretization for
diffusion via DGDiffusionBR2Integrator (see Example 14/14p).
- Generalized the Multigrid class to support non-geometric multigrid. The
previous functionality, based on FiniteElementSpaceHierarchy, is now available
in the derived class GeometricMultigrid.
- Upgraded the Catch unit test framework from version 2.13.0 to version 2.13.2.
- Implemented a filter method for the Navier miniapp to stabilize highly
turbulent flows in direct numerical simulation.
- Added support for reading high-order Lagrange meshes in VTK format. Arbitrary-
orders and all element types are supported. See the VTK blog for more info:
https://blog.kitware.com/wp-content/uploads/2018/09/Source_Issue_43.pdf
- Added support for reading VTK meshes in XML format.
- Added partial assembly and device support to Example 25/25p, with diagonal
preconditioning.
- Implemented a variable step-size IMEX (VSSIMEX) method for the Navier miniapp.
- Added new mesh quality metrics and improved the untangling capabilities of the
TMOP-based mesh optimization algorithms.
- Changed the interface for the error estimator.
- Implemented the parallel Kelly error indicator for scalar-valued problems.
- Added new classes DenseSymmetricMatrix and SymmetricMatrixCoefficient for
efficient evaluation of symmetric matrix coefficients. This replaces the now
deprecated EvalSymmetric in MatrixCoefficient. Added DiagonalMatrixCoefficient
for clarity, which is a typedef of VectorCoefficient.
- Added support for AMG preconditioners for non-symmetric systems (e.g.
advection-dominated problems) using hypre's approximate ideal restriction
(AIR) AMG. Requires hypre version 2.14.0 or newer. Usage is illustrated in
example 9/9p.
- Implemented an adaptive linear solver tolerance option for NewtonSolver based
on the algorithm of Eisenstat and Walker.
- Extending support for L2 basis functions using MapTypes VALUE and INTEGRAL in
linear interpolators and GridFunction "GetValue" methods.
Version 4.2, released on October 30, 2020
=========================================
High-Performance Computing
--------------------------
- Added support for explicit vectorization in the high-performance templated
code, which can now take advantage of specific classes on the following
architectures:
* x86 (SSE/AVX/AVX2/AVX512),
* Power8 & Power9 (VSX),
* BG/Q (QPX).
These are disabled by default, but can be enabled with MFEM_USE_SIMD=YES.
See the new file linalg/simd.hpp and the new directory linalg/simd.
- Added an Element Assembly mode compatible with GPU device execution for H1 and
L2 spaces in the mass, convection, diffusion, transpose, and the face DG trace
integrators. See option '-ea' in Example 9. When enabled, this assembly level
stores independent dense matrices for the elements, and independent dense
matrices for the faces in the DG case.
- Added a Full Assembly mode compatible with GPU device execution. This assembly
level builds on top of the Element Assembly kernels to compute a global sparse
matrix. All integrators supported by element assembly are also supported by
full assembly. See the '-fa' option in Example 9.
- Optimized the AMD/HIP kernel support and enabled HIP support in the libCEED
integration. This is now available via the "ceed-hip" device backend.
- Improved the libCEED integration to support:
* AssemblyLevel::NONE for Mass, Diffusion, VectorMass, and VectorDiffusion
Integrators. This level computes the full operator evaluation "on the fly".
* VectorMassIntegrator and VectorDiffusionIntegrator.
* All types of (scalar) Coefficients.
- Added partial assembly / device support for:
* H(div) bilinear forms and VectorFEDivergenceIntegrator.
* BlockOperator, see the updated Example 5.
* Complex operators, see the updated Example 22.
* Chebyshev accelerated polynomial smoother.
* Convergent diagonal preconditioning on non-conforming adaptively refined
meshes, see Example 6/6p.
- Added CUDA support for:
* Sparse matrix-vector multiplication with cuSPARSE,
* SUNDIALS ODE integrators, see updated SUNDIALS modification of Example 9/9p.
Linear and nonlinear solvers
----------------------------
- Added a new solver class for simple integration with NVIDIA's multigrid
library, AmgX. The AmgX class is designed to work as a standalone solver or
preconditioner for existing MFEM solvers. It uses MFEM's sparse matrix format
for serial runs and the HypreParMatrix format for parallel runs. The new
solver may be configured to run with one GPU per MPI rank or with more MPI
ranks than GPUs. In the latter case, matrices and vectors are consolidated to
ranks communicating with the GPUs and the solution is then broadcasted.
Although CUDA is required to build, the AmgX support is compatible with the
MFEM CPU device configuration. The examples/amgx folder illustrates how to
integrate AmgX in existing MFEM applications. The AmgX solver class is
partially based on: "AmgXWrapper: An interface between PETSc and the NVIDIA
AmgX library", by Pi-Yueh Chuang and Lorena A. Barba, doi:10.21105/joss.00280.
- Added initial support for geometric h- and p-multigrid preconditioners for
matrix-based and matrix-free discretizations with basic GPU capability, see
Example 26/26p.
- Added support for the CVODES package in SUNDIALS which provides ODE solvers
with sensitivity analysis capabilities. See the CVODESSolver class and the new
adjoint miniapps in the miniapps/adjoint directory.
- Added an interface to the MKL CPardiso solver, an MPI-parallel sparse direct
solver developed by Intel. See Example 11p for an illustration of its usage.
- Added support for the SLEPc eigensolver package, https://slepc.upv.es.
- Upgraded SuperLU interface to use SuperLU_DIST 6.3.1. Added a simple SuperLU
example in the new directory examples/superlu.
- Extended the KINSOL (SUNDIALS) nonlinear solver interface to support the
Jacobian-free Newton-Krylov method. A usage example is shown in Example 10p.
- Block arrays of parallel matrices can now be merged into a single parallel
matrix with the function HypreParMatrixFromBlocks. This could be useful for
solving block systems with parallel direct solvers such as STRUMPACK.
- Added wrappers for hypre's flexible GMRES solver and the new parallel ILU
preconditioner. The latter requires hypre version 2.19.0 or later.
Discretization improvements
---------------------------
- Extended GSLIB-FindPoints integration to support simplices and interpolation
of functions from L2, H(div) and H(curl) spaces.
- Added support for computing asymptotic error estimates and convergence rates
for the whole de Rham sequence based on the new class ConvergenceStudy and new
member methods in GridFunction and ParGridFunction. See the rates.cpp file in
the tests/convergence directory for sample usage.
- Extended the GetValue and GetVectorValue methods of GridFunction to support
evaluation on boundary elements and, in the continuous field case, arbitrary
mesh edges and faces. This requires passing an ElementTransformation argument.
- Added support for matrix-free interpolation and restriction operators between
continuous H1 finite element spaces of different order on the same mesh or
with the same order on uniformly refined meshes.
- The Coefficient classes based on a C-function pointer (FunctionCoefficient,
VectorFunctionCoefficient and MatrixFunctionCoefficient) now use the more
general std::function class template. This allows the classes to be backward
compatible (i.e. they can still work with C-functions) and, in addition,
support any "callable", e.g. lambda functions.
- Non-conforming meshes are now supported with block nonlinear forms. See the
updated Example 19/19p.
Meshing improvements
--------------------
- The graph linear ordering library Gecko, previously an external dependency, is
@@ -18,146 +192,55 @@ Meshing improvements
always available. The interface has also been improved, see for example the
Mesh Explorer miniapp.
- Improved Gmsh reader (version 2.2), which now supports both high-order and
periodic meshes. Segments, triangles, quadrilaterals, and tetrahedra are
supported up to order 10. Wedges and hexahedra are supported up to order 9.
For sample periodic meshes, see the periodic*.msh files in the data directory.
- Added support for finite difference-based gradient and Hessian approximation
in the TMOP mesh optimization algorithms. This improves the accuracy of the
Hessian for r-adaptivity using discrete fields, and allows use of skewness
and orientation based metrics.
- Added support for r-adaptivity with more than one discrete field. This allows
the user to specify different discrete functions for controlling the
size, aspect-ratio, orientation, and skew of elements in the mesh.
- Improved Gmsh reader (version 2.2), which now supports both high-order and
periodic meshes. Segments, triangles, quadrilaterals, and tetrahedra are
supported up to order 10. Wedges and hexahedra are supported up to order 9.
For sample periodic meshes, see the periodic*.msh files in the data directory.
- Added TMOP capability for approximate tangential mesh relaxation. Added
support and examples for using TMOP on mixed meshes.
- Added complete action of the TMOP Integrator to account for the spatial
derivatives of discrete and analytic targets.
- Added support for initialization of (serial) non-conforming meshes. Hanging
- Added support for construction of (serial) non-conforming meshes. Hanging
nodes can be marked with Mesh::AddVertexParents when building the mesh with
the "init" constructor. The usage is demonstrated in a new meshing miniapp
(polar-nc) which generates meshes that are non-conforming from the start.
the "init" constructor. The usage is demonstrated in a new meshing miniapp,
Polar NC, which generates meshes that are non-conforming from the start.
Performance improvements
------------------------
- Added support for explicit vectorization in the high-performance templated
code, which can now take advantage of specific intrinsics classes on the
following architectures:
- x86 (SSE/AVX/AVX2/AVX512),
- Power8 & Power9 (VSX),
- BG/Q (QPX).
These are disabled by default, and can be enabled with MFEM_USE_SIMD=YES.
See the new file linalg/simd.hpp and the new directory linalg/simd.
- Added support for r-adaptivity with more than one discrete field. This allows
the user to specify different discrete functions for controlling the size,
aspect-ratio, orientation, and skew of elements in the mesh.
Improved GPU capabilities
-------------------------
- Added support for Chebyshev accelerated polynomial smoother on GPU.
- Optimized AMD/HIP kernel support.
- Added a Full Assembly mode compatible with Device kernel execution. This
assembly level builds on top of the current Element Assembly kernels to
compute a global sparse matrix. All integrators supported by element assembly
are also supported by full assembly. See the '-fa' option in Example 9.
- Added CUDA support for sparse matrix-vector multiplication with cuSPARSE.
- Added AmgX solver class for simple integration with NVIDIA's multigrid library.
- Added support for BlockOperator on GPU. See the updated Example 5.
- Added partial assembly and GPU support for complex operators, including the
classes ComplexOperator, [Par]ComplexGridFunction, [Par]ComplexLinearForm, and
[Par]SesquilinearForm. See the updated Example 22.
Discretization improvements
---------------------------
- Added support for matrix-free interpolation and restriction operators between
continuous H1 finite element spaces of different order on the same mesh or
with the same order on uniformly refined meshes.
- Added support for simplices in GSLIB-FindPoints.
- Added support for H1 and L2 element matrix assembly in the mass, convection,
diffusion, transpose, and the face DG trace integrators. This is compatible
with GPU device execution and is illustrated in Example 9/9p, see the option
'-ea'. When enabled, this level of assembly stores independent dense matrices
for the elements, and independent dense matrices for the faces in the DG case.
- Added new partial assembly kernels for H(div) bilinear forms, as well as
VectorFEDivergenceIntegrator.
- Improved the documentation of the GridFunction GetValue and GetVectorValue
methods. Expanded the GetValue and GetVectorValue methods which accept an
ElementTransformation argument to support evaluation on boundary elements
and, in the continuous field case, arbitrary mesh edges and faces.
- Added new coefficient and vector coefficient classes for QuadratureFunctions.
Additionally, new LinearForm integrators were also added which make use of
these new QuadratureFunction coefficient classes.
- Added support face integrals on the boundaries of NURBS meshes.
- Added support for interpolation of functions in L2, H(div) and H(curl)
spaces using GSLIB-FindPoints.
- Added support for computing asymptotic error estimates and convergence rates
for the whole de Rham sequence based on the new class ConvergenceStudy and new
member methods in GridFunction and ParGridFunction. See the rates.cpp file in
the tests/convergence directory for sample usage.
Linear and nonlinear solvers
----------------------------
- Added power method to iteratively estimate the largest eigenvalue and the
corresponding eigenvector of an operator.
- Added initial support for h- and p-multigrid solvers and preconditioners for
matrix-based and matrix-free discretizations with basic GPU capability.
- Added a new IterativeSolverMonitor class that allows to monitor the residual
and solution during the solving process of an IterativeSolver after every
iteration.
- Added support for the CVODES package in SUNDIALS which provides ODE
solvers with sensitivity analysis capabilities. See the CVODESSolver
class and the new adjoint miniapps below.
- Block arrays of parallel matrices can now be merged into a single parallel
matrix with the function HypreParMatrixFromBlocks. This could be useful for
solving block systems with parallel direct solvers such as STRUMPACK.
- In SLISolver, changed the residual inner product from (Br,r) to (Br,Br) so the
solver can work with non-SPD preconditioner B.
- Added support for the SLEPc eigensolver package.
- Added partially assembled convergent diagonal preconditioner for adaptively
refined meshes (i.e. non-conforming finite element spaces), see Example 6/6p.
- Additional TMOP improvements:
* Capability for approximate tangential mesh relaxation.
* Support and examples for using TMOP on mixed meshes.
* Complete integrator action accounting for spatial derivatives of discrete
and analytic targets.
New and updated examples and miniapps
-------------------------------------
- Added a new example, Example 25/25p, to demonstrate the use of a Perfectly
Matched Layer (PML) for the simulation of electromagnetic wave propagation.
The example defines and solves several indefinite Maxwell problems.
- Added a new Example 26/26p to demonstrate the construction of a matrix-free
geometric and p-multigrid preconditioner for the Laplace problem.
- Added a new example, Example 27/27p, to demonstrate the enforcement of various
boundary conditions with the Laplace operator. The example shows the procedure
for applying Dirichlet, Neumann (both homogeneous and inhomogeneous), Robin,
and periodic boundary conditions with either H1 or DG discretizations.
- Added a new miniapp, Navier, that solves the time-dependent Navier-Stokes
equations of incompressible fluid dynamics. See the miniapps/navier directory
for more details.
- Added a new miniapps/adjoint directory with two miniapps demonstrating how to
- Added 10 new example codes:
* Example 25/25p demonstrates the use of a Perfectly Matched Layer (PML) for
electromagnetic wave propagation (indefinite Maxwell).
* Example 26/26p shows how to construct matrix-free geometric and p-multigrid
preconditioner for the Laplace problem.
* Example 27/27p demonstrates the enforcement of Dirichlet, Neumann, Robin,
and periodic boundary conditions with either H1 or DG Laplace problems.
* Versions of Example 1/1p in examples/amgx demonstrating the use of AmgX,
to solve the Laplace problem with AMG preconditioning on GPUs.
* A version of Example 11p in examples/petsc demonstrating the use of SLEPc,
to solve the Laplace eigenproblem with shift-and-invert transformation.
* A version of Example 1 in examples/superlu demonstrating the use of SuperLU
to solve the Laplace problem.
- Added a new Field Interpolation miniapp in miniapps/gslib that demonstrates
transfer of grid functions between different meshes using GSLIB-FindPoints.
- Added 2 miniapps in the new miniapps/adjoint directory demonstrating how to
solve adjoint problems in MFEM using the CVODES package in SUNDIALS. Both of
these miniapps require the MFEM_USE_SUNDIALS configuration option.
* The cvsRoberts_ASAi_dns miniapp solves a backward adjoint problem for a
@@ -165,73 +248,73 @@ New and updated examples and miniapps
* The adjoint_advection_diffusion miniapp solves a backward adjoint problem
for an advection diffusion PDE, evaluating adjoint quadratures in parallel.
- Ported Example 11p to SLEPc, to demonstrate solving the Laplace eigenvalue
equation with the shift-and-invert spectral transformation method.
- Added 4 additional meshing miniapps:
* The Minimal Surface miniapp solves Plateau's problem: the Dirichlet problem
for the minimal surface equation.
* The Twist miniapp demonstrates how to stitch together opposite surfaces of a
mesh to create a topologically periodic mesh.
* The Trimmer miniapp trims away parts of a mesh based on element attributes.
* Polar NC shows the construction of polar non-conforming meshes.
- Added a simple meshing miniapp, Twist, which demonstrates MFEM's strategy of
stitching together opposite surfaces of a mesh to create a topologically
periodic mesh.
- Several examples and miniapps were updated to include:
* Full and element assembly support in Example 9/9p.
* Partial assembly with diagonal preconditioning in Examples 4/4p/5/5p/22/22p.
* Diagonal preconditioner in Example 6/6p for partial assembly with AMR.
* The option to plot a function in Mesh Explorer.
* A new test problem showing a mixed bilinear form for H1, H(curl), H(div) and
L2, with partial assembly support in Example 24/24p.
* Weak Dirichlet boundary conditions (Nitsche) to the NURBS miniapp.
- Added a new meshing miniapp, Minimal Surface, which solves Plateau's problem:
the Dirichlet problem for the minimal surface equation.
Data management and Visualization
---------------------------------
- Added support for ADIOS2 for parallel I/O with ParaView visualization. See
Examples 5, 9, 12, 16. The classes adios2stream and ADIOS2DataCollection
provide the interface to generate ADIOS2 Binary Pack (BP4) directory datasets.
- Added a new meshing miniapp, Polar NC, which demonstrates the construction of
polar non-conforming meshes.
- Added partial assembly support to Example 4/4p and Example 5/5p, with diagonal
preconditioning.
- Added full assembly support in Example 9/9p.
- Added a new test problem in Example 24/24p, demonstrating a mixed bilinear
form for H1, H(curl), H(div) and L_2, with partial assembly support.
- Added weak Dirichlet boundary conditions (Nitsche) to the NURBS miniapp.
- Added a simple mesh editing miniapp, Trimmer, which trims away portions of a
mesh based on element attributes. Any newly exposed boundary elements are
assigned attribute numbers related to the trimmed element attributes.
- Added a new miniapp (field-interp) that demonstrates transfer of grid function
between different meshes using GSLIB-FindPoints.
- Added diagonal preconditioner in Example 6/6p for partial assembly with AMR.
- Added device support in Example 5/5p.
- Added partial assembly and device support to Example 22/22p, with diagonal
preconditioning.
- Added the option to plot a function in Mesh Explorer.
- Added VTU output of boundary elements and attributes and parallel VTU (PVTU)
output of parallel meshes for visualization using ParaView.
Improved testing
----------------
- Upgraded the Catch unit test framework from version 1.6.1 to version 2.13.0.
- Added a GitLab pipeline that automates PR testing on supercomputing systems
and Linux clusters at Lawrence Livermore National Lab (LLNL). This can be
triggered only by LLNL developers, see .gitlab-ci.yml, the .gitlab directory
and the updated CONTRIBUTING.md file.
- Added testing of the parallel mesh format in tests/par-mesh-format.
- Added additional testing for convergence, the parallel mesh I/O, and for the
libCEED integration in MFEM in the tests/ directory.
- Upgraded the Catch unit test framework from version 1.6.1 to version 2.13.0.
Miscellaneous
-------------
- Added support for ADIOS2 for parallel I/O with ParaView visualization. The
classes adios2stream and ADIOS2DataCollection are introduced in mfem as the
interfaces to generate ADIOS2 Binary Pack (BP4) directory datasets for the
entire spatial and temporal node data. Cell centered data is accessible by
ADIOS2 data readers (e.g. Python), but currently not yet implement as of
ParaView v5.8.1. In addition, ADIOS2 allows for setting a user-defined number
of data substreams/subfiles at scale. See examples 5, 9, 12, 16.
- Renamed "Backend::DEBUG" to "Backend::DEBUG_DEVICE" to avoid conflicts,
as DEBUG is sometimes used as a macro.
- Added a new IterativeSolverMonitor class that allows to monitor the residual
and solution with an IterativeSolver after every iteration.
- Added power method to iteratively estimate the largest eigenvalue and the
corresponding eigenvector of an operator.
- Added support for face integrals on the boundaries of NURBS meshes.
- In SLISolver, changed the residual inner product from (Br,r) to (Br,Br) so the
solver can work with non-SPD preconditioner B.
- Added new coefficient and vector coefficient classes for QuadratureFunctions,
with new LinearForm integrators which use them.
- The integration order used in the ComputeLpError and ComputeElementLpError
methods of class GridFunction has been increased.
- Various other simplifications, extensions, and bugfixes in the code.
- Change the IntegrationRule inside VectorDiffusionIntegrator to use the same
quadrature as DiffusionIntegrator.
- Renamed "Backend::DEBUG" to "Backend::DEBUG_DEVICE" to avoid conflicts,
as DEBUG is sometimes used as a macro.
- The README.html files previously included in several source directories have
been removed. Use the corresponding pages at mfem.org instead.
- Various other simplifications, extensions, and bugfixes in the code.
Version 4.1, released on March 10, 2020
@@ -563,7 +646,7 @@ Other meshing improvements
follows precisely the paper:
D. Arnold, A. Mukherjee, and L. Pouly, "Locally Adapted Tetrahedral Meshes
Using Bisection", SIAM J. Sci. Comput. 22 (2000), 431448.
Using Bisection", SIAM J. Sci. Comput. 22 (2000), 431-448.
This guarantees that the shape regularity of the elements will be preserved
under refinement.
@@ -708,7 +791,7 @@ Discretization improvements
- New specialized time integrators: symplectic integrators of orders 1-4 for
systems of first order ODEs derived from a Hamiltonian and generalized-alpha
ODE solver for the filtered NavierStokes equations with stabilization. See
ODE solver for the filtered Navier-Stokes equations with stabilization. See
classes SIASolver and GeneralizedAlphaSolver in linalg/ode.hpp.
- Inherit finite element classes from the new base class TensorBasisElement,
@@ -1198,7 +1281,7 @@ New and improved linear solvers
it can only be enabled along with MFEM_USE_MPI. When MFEM is configured with
MFEM_USE_SUPERLU, one also needs to alter the version of METIS, since SuperLU
requires ParMETIS (which comes packaged with a serial version of METIS). See
http://http://crd-legacy.lbl.gov/~xiaoye/SuperLU for SuperLU_DIST details.
http://crd-legacy.lbl.gov/~xiaoye/SuperLU for SuperLU_DIST details.
- Added a wrapper for the KLU solver in SuiteSparse see
http://faculty.cse.tamu.edu/davis/suitesparse.html for details of KLU.
+29 -12
View File
@@ -9,7 +9,8 @@
# terms of the BSD-3 license. We welcome feedback and contributions, see file
# CONTRIBUTING.md for details.
cmake_minimum_required(VERSION 2.8.11)
# The variable CMAKE_CXX_STANDARD and related were introduced in CMake v3.1
cmake_minimum_required(VERSION 3.1)
set(USER_CONFIG "${CMAKE_CURRENT_SOURCE_DIR}/config/user.cmake" CACHE PATH
"Path to optional user configuration file.")
@@ -50,7 +51,7 @@ project(mfem NONE)
# Current version of MFEM, see also `makefile`.
# mfem_VERSION = (string)
# MFEM_VERSION = (int) [automatically derived from mfem_VERSION]
set(${PROJECT_NAME}_VERSION 4.1.1)
set(${PROJECT_NAME}_VERSION 4.2.1)
# Prohibit in-source build
if (${PROJECT_SOURCE_DIR} STREQUAL ${PROJECT_BINARY_DIR})
@@ -185,7 +186,7 @@ if (MFEM_USE_MPI)
endif()
endif()
else()
set(PKGS_NEED_MPI SUPERLU PETSC SLEPC STRUMPACK PUMI)
set(PKGS_NEED_MPI SUPERLU MUMPS PETSC SLEPC STRUMPACK PUMI)
foreach(PKG IN LISTS PKGS_NEED_MPI)
if (MFEM_USE_${PKG})
message(STATUS "Disabling package ${PKG} - requires MPI")
@@ -240,12 +241,14 @@ endif()
# SUNDIALS
if (MFEM_USE_SUNDIALS)
if (NOT MFEM_USE_MPI)
find_package(SUNDIALS REQUIRED NVector_Serial CVODES ARKODE KINSOL)
else()
find_package(SUNDIALS REQUIRED
NVector_Serial NVector_Parallel NVector_ParHyp CVODES ARKODE KINSOL)
set(SUNDIALS_COMPONENTS CVODES ARKODE KINSOL NVector_Serial)
if (MFEM_USE_MPI)
list(APPEND SUNDIALS_COMPONENTS NVector_Parallel NVector_MPIPlusX)
endif()
if (MFEM_USE_CUDA)
list(APPEND SUNDIALS_COMPONENTS NVector_Cuda)
endif()
find_package(SUNDIALS REQUIRED ${SUNDIALS_COMPONENTS})
endif()
# Mesquite
@@ -262,6 +265,15 @@ if (MFEM_USE_SUPERLU)
endif()
endif()
# MUMPS can only be enabled in parallel
if (MFEM_USE_MUMPS)
if (MFEM_USE_MPI)
find_package(MUMPS REQUIRED mumps_common pord)
else()
message(FATAL_ERROR " *** MUMPS requires that MPI be enabled.")
endif()
endif()
# STRUMPACK can only be enabled in parallel
if (MFEM_USE_STRUMPACK)
if (MFEM_USE_MPI)
@@ -296,8 +308,7 @@ if (MFEM_USE_CEED)
endif()
if (MFEM_USE_AMGX)
include_directories(${AMGX_DIR}/include)
link_directories(${AMGX_DIR}/lib64 -L${AMGX_DIR}/lib -Xlinker=-rpath=${CUDA_HOME}/lib64)
find_package(AMGX REQUIRED)
endif()
if (MFEM_USE_CONDUIT)
@@ -351,6 +362,12 @@ if (MFEM_USE_ADIOS2)
find_package(ADIOS2 REQUIRED)
endif()
if (MFEM_USE_MKL_CPARDISO)
if (MFEM_USE_MPI)
find_package(MKL_CPARDISO REQUIRED MKL_SEQUENTIAL MKL_LP64 MKL_MPI_WRAPPER)
endif()
endif()
# MFEM_TIMER_TYPE
if (NOT DEFINED MFEM_TIMER_TYPE)
if (APPLE)
@@ -375,9 +392,9 @@ endif()
# integers, the METIS header (with 32-bit indices, as used by mfem) needs to
# be before SuiteSparse.
set(MFEM_TPLS MPI_CXX OPENMP BLAS LAPACK METIS HYPRE SuiteSparse SUNDIALS PETSC
SLEPC MESQUITE SuperLUDist STRUMPACK AXOM CONDUIT Ginkgo GNUTLS GSLIB NETCDF
SLEPC MESQUITE SuperLUDist MUMPS STRUMPACK AXOM CONDUIT Ginkgo GNUTLS GSLIB NETCDF
MPFR PUMI HIOP POSIXCLOCKS MFEMBacktrace ZLIB OCCA CEED RAJA UMPIRE ADIOS2
CUSPARSE AMGX)
CUSPARSE MKL_CPARDISO AMGX)
# Add all *_FOUND libraries in the variable TPL_LIBRARIES.
set(TPL_LIBRARIES "")
set(TPL_INCLUDE_DIRS "")
+46 -42
View File
@@ -1,12 +1,12 @@
<p align="center">
<a href="http://mfem.org/"><img alt="mfem" src="http://mfem.org/img/logo-300.png"></a>
<a href="https://mfem.org/"><img alt="mfem" src="https://mfem.org/img/logo-300.png"></a>
</p>
<p align="center">
<a href="https://github.com/mfem/mfem/blob/master/LICENSE"><img alt="License" src="https://img.shields.io/badge/License-BSD-brightgreen.svg"></a>
<a href="https://travis-ci.org/mfem/mfem"><img alt="Build Status" src="https://travis-ci.org/mfem/mfem.svg?branch=master"></a>
<a href="https://ci.appveyor.com/project/mfem/mfem"><img alt="Build Status" src="https://ci.appveyor.com/api/projects/status/19non9sqm6msi2wy?svg=true"></a>
<a href="http://mfem.github.io/doxygen/html/index.html"><img alt="Doxygen" src="https://img.shields.io/badge/code-documented-brightgreen.svg"></a>
<a href="https://mfem.github.io/doxygen/html/index.html"><img alt="Doxygen" src="https://img.shields.io/badge/code-documented-brightgreen.svg"></a>
</p>
@@ -26,7 +26,7 @@ request (PR) toward the `mfem:master` branch to propose your contribution. If
you are planning significant code changes or have questions, you may want to
open an [issue](https://github.com/mfem/mfem/issues) before issuing a PR. In
addition to technical contributions, we are also interested in your results and
[simulation images](http://mfem.org/gallery/), which you can share via a pull
[simulation images](https://mfem.org/gallery/), which you can share via a pull
request in the [mfem/web](https://github.com/mfem/web) repo.
See the [Quick Summary](#quick-summary) section for the main highlights of our
@@ -51,7 +51,7 @@ back to them before issuing pull requests:
Contributing to MFEM requires knowledge of Git and, likely, finite elements. If
you are new to Git, see the [GitHub learning
resources](https://help.github.com/articles/git-and-github-learning-resources/).
To learn more about the finite element method, see our [FEM page](http://mfem.org/fem).
To learn more about the finite element method, see our [FEM page](https://mfem.org/fem).
*By submitting a pull request, you are affirming the [Developer's Certificate of
Origin](#developers-certificate-of-origin-11) at the end of this file.*
@@ -92,21 +92,22 @@ The MFEM source code has the following structure:
.
├── config
│ └── cmake
│ └── modules
│ └── ...
├── data
├── doc
│ └── web
│ └── examples
├── examples
│ ├── amgx
│ ├── ginkgo
│ ├── hiop
│ ├── petsc
│ ├── pumi
── sundials
── sundials
| └── superlu
├── fem
│ └── libceed
├── general
├── linalg
│ └── simd
├── mesh
├── miniapps
│ ├── adjoint
@@ -114,15 +115,17 @@ The MFEM source code has the following structure:
│ ├── electromagnetics
│ ├── gslib
│ ├── meshing
│ ├── navier
│ ├── nurbs
│ ├── performance
│ ├── tools
│ └── toys
└── tests
├── convergence
├── par-mesh-format
├── scripts
── unit
── ...
└── ...
── unit
── ...
```
#### Main directories and classes
@@ -132,24 +135,24 @@ classes implementing the finite element, mesh and linear algebra concepts
respectively.
- The main mesh classes are:
+ [`Mesh`](http://mfem.github.io/doxygen/html/classmfem_1_1Mesh.html)
+ [`NCMesh`](http://mfem.github.io/doxygen/html/classmfem_1_1NCMesh.html)
+ [`Element`](http://mfem.github.io/doxygen/html/classmfem_1_1Element.html)
+ [`ElementTransformation`](http://mfem.github.io/doxygen/html/classmfem_1_1ElementTransformation.html)
+ [`Mesh`](https://mfem.github.io/doxygen/html/classmfem_1_1Mesh.html)
+ [`NCMesh`](https://mfem.github.io/doxygen/html/classmfem_1_1NCMesh.html)
+ [`Element`](https://mfem.github.io/doxygen/html/classmfem_1_1Element.html)
+ [`ElementTransformation`](https://mfem.github.io/doxygen/html/classmfem_1_1ElementTransformation.html)
- The main finite element classes are:
+ [`FiniteElement`](http://mfem.github.io/doxygen/html/classmfem_1_1FiniteElement.html)
+ [`FiniteElementCollection`](http://mfem.github.io/doxygen/html/classmfem_1_1FiniteElement.html)
+ [`FiniteElementSpace`](http://mfem.github.io/doxygen/html/classmfem_1_1FiniteElementSpace.html)
+ [`GridFunction`](http://mfem.github.io/doxygen/html/classmfem_1_1GridFunction.html)
+ [`BilinearFormIntegrator`](http://mfem.github.io/doxygen/html/classmfem_1_1BilinearFormIntegrator.html) and [`LinearFormIntegrator`](http://mfem.github.io/doxygen/html/classmfem_1_1LinearFormIntegrator.html)
+ [`LinearForm`](http://mfem.github.io/doxygen/html/classmfem_1_1LinearFormIntegrator.html), [`BilinearForm`](http://mfem.github.io/doxygen/html/classmfem_1_1BilinearForm.html) and [`MixedBilinearForm`](http://mfem.github.io/doxygen/html/classmfem_1_1MixedBilinearForm.html)
+ [`FiniteElement`](https://mfem.github.io/doxygen/html/classmfem_1_1FiniteElement.html)
+ [`FiniteElementCollection`](https://mfem.github.io/doxygen/html/classmfem_1_1FiniteElement.html)
+ [`FiniteElementSpace`](https://mfem.github.io/doxygen/html/classmfem_1_1FiniteElementSpace.html)
+ [`GridFunction`](https://mfem.github.io/doxygen/html/classmfem_1_1GridFunction.html)
+ [`BilinearFormIntegrator`](https://mfem.github.io/doxygen/html/classmfem_1_1BilinearFormIntegrator.html) and [`LinearFormIntegrator`](https://mfem.github.io/doxygen/html/classmfem_1_1LinearFormIntegrator.html)
+ [`LinearForm`](https://mfem.github.io/doxygen/html/classmfem_1_1LinearFormIntegrator.html), [`BilinearForm`](https://mfem.github.io/doxygen/html/classmfem_1_1BilinearForm.html) and [`MixedBilinearForm`](https://mfem.github.io/doxygen/html/classmfem_1_1MixedBilinearForm.html)
- The main linear algebra classes and sources are
+ [`Operator`](http://mfem.github.io/doxygen/html/classmfem_1_1Operator.html) and [`BilinearForm`](http://mfem.github.io/doxygen/html/classmfem_1_1BilinearForm.html)
+ [`Vector`](http://mfem.github.io/doxygen/html/classmfem_1_1BilinearForm.html) and [`LinearForm`](http://mfem.github.io/doxygen/html/classmfem_1_1LinearForm.html)
+ [`DenseMatrix`](http://mfem.github.io/doxygen/html/classmfem_1_1DenseMatrix.html) and [`SparseMatrix`](http://mfem.github.io/doxygen/html/classmfem_1_1SparseMatrix.html)
+ Sparse [smoothers](http://mfem.github.io/doxygen/html/sparsesmoothers_8hpp.html) and linear [solvers](http://mfem.github.io/doxygen/html/solvers_8hpp.html)
+ [`Operator`](https://mfem.github.io/doxygen/html/classmfem_1_1Operator.html) and [`BilinearForm`](https://mfem.github.io/doxygen/html/classmfem_1_1BilinearForm.html)
+ [`Vector`](https://mfem.github.io/doxygen/html/classmfem_1_1BilinearForm.html) and [`LinearForm`](https://mfem.github.io/doxygen/html/classmfem_1_1LinearForm.html)
+ [`DenseMatrix`](https://mfem.github.io/doxygen/html/classmfem_1_1DenseMatrix.html) and [`SparseMatrix`](https://mfem.github.io/doxygen/html/classmfem_1_1SparseMatrix.html)
+ Sparse [smoothers](https://mfem.github.io/doxygen/html/sparsesmoothers_8hpp.html) and linear [solvers](https://mfem.github.io/doxygen/html/solvers_8hpp.html)
#### Parallel implementation
@@ -159,13 +162,13 @@ shared geometric entities between different tasks. The parallel source files
have a `p` prefix, e.g. `pmesh.cpp` vs. the serial `mesh.cpp`.
- The main parallel classes are
+ [`ParMesh`](http://mfem.github.io/doxygen/html/solvers_8hpp.html)
+ [`ParNCMesh`](http://mfem.github.io/doxygen/html/classmfem_1_1ParMesh.html)
+ [`ParFiniteElementSpace`](http://mfem.github.io/doxygen/html/classmfem_1_1ParFiniteElementSpace.html)
+ [`ParGridFunction`](http://mfem.github.io/doxygen/html/classmfem_1_1ParGridFunction.html)
+ [`ParBilinearForm`](http://mfem.github.io/doxygen/html/classmfem_1_1ParBilinearForm.html) and [`ParLinearForm`](http://mfem.github.io/doxygen/html/classmfem_1_1ParLinearForm.html)
+ [`HypreParMatrix`](http://mfem.github.io/doxygen/html/classmfem_1_1HypreParMatrix.html) and [`HypreParVector`](http://mfem.github.io/doxygen/html/classmfem_1_1HypreParVector.html)
+ [`HypreSolver`](http://mfem.github.io/doxygen/html/classmfem_1_1HypreSolver.html) and other [hypre classes](http://mfem.github.io/doxygen/html/hypre_8hpp.html)
+ [`ParMesh`](https://mfem.github.io/doxygen/html/solvers_8hpp.html)
+ [`ParNCMesh`](https://mfem.github.io/doxygen/html/classmfem_1_1ParMesh.html)
+ [`ParFiniteElementSpace`](https://mfem.github.io/doxygen/html/classmfem_1_1ParFiniteElementSpace.html)
+ [`ParGridFunction`](https://mfem.github.io/doxygen/html/classmfem_1_1ParGridFunction.html)
+ [`ParBilinearForm`](https://mfem.github.io/doxygen/html/classmfem_1_1ParBilinearForm.html) and [`ParLinearForm`](https://mfem.github.io/doxygen/html/classmfem_1_1ParLinearForm.html)
+ [`HypreParMatrix`](https://mfem.github.io/doxygen/html/classmfem_1_1HypreParMatrix.html) and [`HypreParVector`](https://mfem.github.io/doxygen/html/classmfem_1_1HypreParVector.html)
+ [`HypreSolver`](https://mfem.github.io/doxygen/html/classmfem_1_1HypreSolver.html) and other [hypre classes](https://mfem.github.io/doxygen/html/hypre_8hpp.html)
#### GPU and general device support
@@ -174,10 +177,10 @@ backends (CUDA, OCCA, RAJA, OpenMP, etc.) and an internal lightweight
device/host memory manager.
- The main device-relevant classes and sources are:
+ [`Device`](http://mfem.github.io/doxygen/html/device_8hpp.html)
+ [`MemoryManager`](http://mfem.github.io/doxygen/html/mem_manager_8hpp.html)
+ the [`MFEM_FORALL`](http://mfem.github.io/doxygen/html/forall_8hpp.html) macro
+ the [`cuda.hpp`](http://mfem.github.io/doxygen/html/cuda_8hpp.html) and [`occa.hpp`](http://mfem.github.io/doxygen/html/occa_8hpp.html) files
+ [`Device`](https://mfem.github.io/doxygen/html/device_8hpp.html)
+ [`MemoryManager`](https://mfem.github.io/doxygen/html/mem_manager_8hpp.html)
+ the [`MFEM_FORALL`](https://mfem.github.io/doxygen/html/forall_8hpp.html) macro
+ the [`cuda.hpp`](https://mfem.github.io/doxygen/html/cuda_8hpp.html) and [`occa.hpp`](https://mfem.github.io/doxygen/html/occa_8hpp.html) files
#### Utilities, building and documentation
- The `general/` directory contains C++ classes that serve as utilities for
@@ -186,7 +189,7 @@ device/host memory manager.
Makefile and the CMake build options.
- The `doc/` directory contains configuration for the Doxygen code documentation
that can either be built locally or browsed online at
http://mfem.github.io/doxygen/html/index.html.
https://mfem.github.io/doxygen/html/index.html.
#### Examples and tests
- `examples` and `miniapps` respectively gather simple and more fully-featured
@@ -195,7 +198,7 @@ device/host memory manager.
- The `tests/` directory contains a unit test suite and will later contain more
tests that run example codes.
See also the [code overview](http://mfem.org/code-overview/) section on the MFEM
See also the [code overview](https://mfem.org/code-overview/) section on the MFEM
website.
## GitHub Workflow
@@ -435,7 +438,6 @@ Before a PR can be merged, it should satisfy the following:
- [ ] Run `make unittest` to make sure all unit tests pass.
- [ ] Run the tests in `tests/scripts`.
- [ ] (LLNL only) After merging:
- [ ] Regenerate `README.html` files from companion documentation pull requests.
- [ ] Update internal tests to include the new features.
### Master/Next Workflow
@@ -508,7 +510,10 @@ MFEM uses a `master`/`next`-branch workflow as described below:
- [ ] Check that continuous integration server configurations reflect the dependency version requirements of the new release
- [ ] `.travis.yml`
- [ ] `.appveyor.yml`
- [ ] (LLNL only) Make sure all `README.html` files in the source repo are up to date.
- [ ] Update the `CHANGELOG` to organize all release contributions
- [ ] Review the whole source code once over
- [ ] Ask MFEM-based applications to test the pre-release branch
- [ ] Test on additional platforms and compilers
- [ ] Tag the repository:
```
@@ -519,14 +524,13 @@ MFEM uses a `master`/`next`-branch workflow as described below:
- [ ] Recreate the `next` branch as described in previous section.
- [ ] Update and push documentation to `mfem/doxygen`.
- [ ] Update URL shortlinks:
- [ ] Create a shortlink at [http://bit.ly/](http://bit.ly/) for the release tarball, e.g. http://mfem.github.io/releases/mfem-3.1.tgz.
- [ ] Create a shortlink at [http://bit.ly/](http://bit.ly/) for the release tarball, e.g. https://mfem.github.io/releases/mfem-3.1.tgz.
- [ ] (LLNL only) Add and commit the new shortlink in the `links` and `links-mfem` files of the internal `mfem/downloads` repo.
- [ ] Add the new shortlinks to the MFEM packages in `spack`, `homebrew/science`, `VisIt`, etc.
- [ ] Update website in `mfem/web` repo:
- Update version and shortlinks in `src/index.md` and `src/download.md`.
- Use [cloc-1.62.pl](http://cloc.sourceforge.net/) and `ls -lh` to estimate the SLOC and the tarball size in `src/download.md`.
## LLNL Workflow
### Mirroring on Bitbucket
+60 -25
View File
@@ -5,7 +5,7 @@
| | | | | || _|| __/| | | | | |
|_| |_| |_||_| \___||_| |_| |_|
http://mfem.org
https://mfem.org
The MFEM library has a serial and an MPI-based parallel version, which largely
share the same code base. The only prerequisite for building the serial version
@@ -19,10 +19,10 @@ requires an MPI C++ compiler, as well as the following external libraries:
http://glaros.dtc.umn.edu/gkhome/metis/metis/overview
The hypre dependency can be downloaded as a tarball from GitHub or from the
project webpage https://www.llnl.gov/casc/hypre. For example, the 2.16.0 release
project webpage https://www.llnl.gov/casc/hypre. For example, the 2.20.0 release
of hypre is available at
https://github.com/hypre-space/hypre/archive/v2.16.0.tar.gz
https://github.com/hypre-space/hypre/archive/v2.20.0.tar.gz
The METIS dependency can be disabled but that is not generally recommended, see
the option MFEM_USE_METIS.
@@ -62,7 +62,7 @@ following package managers:
We also recommend downloading and building the MFEM-based GLVis visualization
tool which can be used to visualize the meshes and solution in MFEM's examples
and miniapps. See http://glvis.org and http://mfem.org/building.
and miniapps. See https://glvis.org and https://mfem.org/building.
Quick start with GNU make
=========================
@@ -344,24 +344,33 @@ MFEM_USE_SUPERLU = YES/NO
SuperLURowLocMatrix a distributed CSR matrix class needed by SuperLU. When
enabled, this option uses the SUPERLU_* library options, see below.
MFEM_USE_SUPERLU5 = YES/NO
If SuperLU functionality is enabled, use the older 5.1.0 version rather than
the more recent 6+ versions.
MFEM_USE_MUMPS = YES/NO
Enable MFEM functionality based on the MUMPS library. Currently, this
option adds the class MUMPSSolver (a parallel sparse direct solver).
When enabled, this option uses the MUMPS_* library options, see
below.
MFEM_USE_STRUMPACK = YES/NO
Enable MFEM functionality based on the STRUMPACK sparse direct solver and
preconditioner through the STRUMPACKSolver and STRUMPACKRowLocMatrix
classes. When enabled, this option uses the STRUMPACK_* library options, see
below.
MFEM_USE_AMGX = YES/NO
Enable MFEM functionality based on the AMGX multigrid library from
NVIDIA. When enabled, this options enables the user to use SparseMatrices
and HypreParMatrices to solve linear systems using routines from the AMGX
library.
MFEM_USE_GINKGO = YES/NO
Enable MFEM functionality based on the Ginkgo library, which provides
iterative linear solvers and preconditioners with OpenMP, CUDA backends, see
https://github.com/ginkgo-project/ginkgo. When enabled, the user can use
Ginkgo's solvers and preconditioners as shown in examples/ginkgo/.
MFEM_USE_AMGX = YES/NO
Enable MFEM functionality based on the AmgX multigrid library from NVIDIA.
Allows the user to use SparseMatrices and HypreParMatrices to solve linear
systems with the routines from the AmgX library.
MFEM_USE_GNUTLS = YES/NO
Enable secure socket support in class socketstream, using the auxiliary
GnuTLS_* classes, based on the GnuTLS library. This option may be useful in
@@ -492,6 +501,13 @@ MFEM_USE_CEED = YES/NO
library for performant high-order operator evaluation developed by the Center
for Efficient Exascale Discretizations in the Exascale Computing Project.
MFEM_USE_MKL_CPARDISO = YES/NO
Enables the interface to MKL CPardiso: the Intel MKL Parallel Direct Sparse
Solver for Clusters. Make sure to set the correct values for MKL_MPI_WRAPPER
and MKL_LIBRARY_SUBDIR as shown in defaults.mk. If you configure MFEM with
MFEM_USE_LAPACK=YES, verify that the MKL LAPACK libraries are used. The
OpenMP capabilities are disabled at link time.
MFEM_BUILD_TAG = (any value)
An optional tag to characterize the build. Exported to config/config.mk.
Can be used to identify the MFEM build from other makefiles.
@@ -541,15 +557,19 @@ The specific libraries and their options are:
Beginning with MFEM v3.3, SUNDIALS v2.7.0 is supported.
Beginning with MFEM v3.3.2, SUNDIALS v3.0.0 is also supported.
Beginning with MFEM v4.1, only SUNDIALS v5.0.0+ is supported.
When MFEM_USE_CUDA is enabled, only SUNDIALS v5.4.0+ is supported.
If MFEM_USE_MPI is enabled, we expect that SUNDIALS is built with support for
both MPI and hypre.
If MFEM_USE_CUDA is enabled, we expect that SUNDIALS is built with support
for CUDA.
URL: http://computation.llnl.gov/projects/sundials/sundials-software
Options: SUNDIALS_OPT, SUNDIALS_LIB.
Versions: SUNDIALS >= 5.0.0.
Versions: SUNDIALS >= 5.0.0, SUNDIALS >= 5.4.0 for CUDA support.
- Mesquite (optional), used when MFEM_USE_MESQUITE = YES.
URL: http://trilinos.org/oldsite/packages/mesquite
Options: MESQUITE_OPT, MESQUITE_LIB.
The Mesquite support is deprecated and will be removed in the future.
- SuiteSparse (optional), used when MFEM_USE_SUITESPARSE = YES.
URL: http://faculty.cse.tamu.edu/davis/suitesparse.html
@@ -559,11 +579,17 @@ The specific libraries and their options are:
- SuperLU_DIST (optional), used when MFEM_USE_SUPERLU = YES. Note that
SuperLU_DIST requires ParMETIS, which includes METIS 5 in its distribution.
Both ParMETIS and the included METIS 5 should be built and installed in the
same location.
same location. If using SuperLU_Dist v5, set MFEM_USE_SUPERLU5=YES.
URL: http://crd-legacy.lbl.gov/~xiaoye/SuperLU
Options: SUPERLU_OPT, SUPERLU_LIB.
Versions: SuperLU_DIST >= 5.1.0.
- MUMPS (optional), used when MFEM_USE_MUMPS = YES. Note that MUMPS
requires LAPACK, SCALAPACK and a reordering package such as PORD or METIS.
URL: http://mumps.enseeiht.fr
Options: MUMPS_OPT, MUMPS_LIB.
Versions: MUMPS >= 5.1.1
- STRUMPACK (optional), used when MFEM_USE_STRUMPACK = YES. Note that STRUMPACK
requires the PT-Scotch and Scalapack libraries as well as ParMETIS, which
includes METIS 5 in its distribution. Starting with STRUMPACK v2.2.0, ParMETIS
@@ -572,7 +598,7 @@ The specific libraries and their options are:
2.0.0 or later.
URL: http://portal.nersc.gov/project/sparse/strumpack
Options: STRUMPACK_OPT, STRUMPACK_LIB.
Versions: STRUMPACK >= 3.0.0, requires HYPRE < 2.16.0.
Versions: STRUMPACK >= 3.0.0.
- Ginkgo (optional), used when MFEM_USE_GINKGO = YES. Note that Ginkgo needs a
C++ compiler that supports the C++-11 standard. For additional requirements
@@ -580,6 +606,11 @@ The specific libraries and their options are:
URL: https://ginkgo-project.github.io
Options: GINKGO_OPT (Not used), GINKGO_LIB.
- AmgX (optional), used when MFEM_USE_AMGX = YES.
URL: https://github.com/NVIDIA/AMGX
Options: AMGX_OPT, AMGX_LIB.
Versions: AmgX >= 2.1, older versions may work too.
- GnuTLS (optional), used when MFEM_USE_GNUTLS = YES. On most Linux systems,
GnuTLS is available as a development package, e.g. gnutls-devel. On Mac OS X,
one can get the library through the Homebrew package manager (http://brew.sh).
@@ -630,16 +661,18 @@ The specific libraries and their options are:
- ADIOS2 (optional) used when MFEM_USE_ADIOS2 = YES.
URL: https://adios2.readthedocs.io/
Versions: ADIOS >= 2.5.0.
- PUMI (optional), used when MFEM_USE_PUMI = YES.
URL: https://scorec.rpi.edu/pumi
https://github.com/SCOREC/core
Options: PUMI_OPT, PUMI_LIB.
Versions: PUMI >= 2.2.3.
Versions: PUMI == 2.2.3.
- HiOp (optional), used when MFEM_USE_HIOP = YES.
URL: https://github.com/LLNL/hiop
Options: HIOP_OPT, HIOP_LIB.
Versions: HIOP >= 0.1.
- GSLIB (optional), used when MFEM_USE_GSLIB = YES. The gslib library must be
built prior to the MFEM build, as follows: download gslib-1.0.5, untar it at
@@ -651,16 +684,16 @@ The specific libraries and their options are:
Options: GSLIB_OPT, GSLIB_LIB.
Versions: GSLIB >= 1.0.5.
- MKL CPardiso (optional), used when MFEM_USE_MKL_CPARDISO = YES.
URL: https://software.intel.com/content/www/us/en/develop/tools/math-kernel-library.html
Options: MKL_CPARDISO_OPT, MKL_CPARDISO_LIB.
Versions: Intel MKL >= 2020.
- CUDA (optional), used when MFEM_USE_CUDA = YES.
URL: https://developer.nvidia.com/cuda-toolkit
Options: CUDA_CXX, CUDA_ARCH, CUDA_OPT, CUDA_LIB.
Versions: CUDA >= 9.1, older versions may work too.
- AMGX (optional), used when MFEM_USE_AMGX = YES.
URL: https://github.com/NVIDIA/AMGX
Options: AMGX_OPT, AMGX_LIB.
Versions: AMGX >= 2.1, older versions may work too.
- HIP (optional), used when MFEM_USE_HIP = YES.
URL: https://rocm.github.io/ROCmInstall.html
Options: HIP_CXX, HIP_ARCH, HIP_OPT, HIP_LIB.
@@ -668,19 +701,19 @@ The specific libraries and their options are:
- OCCA (optional), used when MFEM_USE_OCCA = YES.
URL: https://libocca.org
Options: OCCA_DIR, OCCA_OPT, OCCA_LIB.
Versions: OCCA >= 1.0.9.
Versions: OCCA >= 1.1.0.
- libCEED (optional), used when MFEM_USE_CEED = YES.
URL: https://github.com/CEED/libCEED
https://ceed.exascaleproject.org/libceed
Options: CEED_DIR, CEED_OPT, CEED_LIB.
Versions: libCEED > 0.6, git-hash bdfed75.
Versions: libCEED >= 0.7.
- RAJA (optional), used when MFEM_USE_RAJA = YES.
Beginning with MFEM v4.1, only RAJA v0.10.0+ is supported.
Beginning with MFEM v4.3, only RAJA v0.13.0+ is supported.
URL: https://github.com/LLNL/RAJA
Options: RAJA_DIR, RAJA_OPT, RAJA_LIB.
Versions: RAJA >= 0.10.0.
Versions: RAJA >= 0.13.0.
- Umpire, used when MFEM_USE_UMPIRE = YES.
URL: https://github.com/LLNL/Umpire
@@ -816,9 +849,10 @@ MFEM_TIMER_TYPE - Set automatically, can be overwritten.
MFEM_USE_MESQUITE
MFEM_USE_SUITESPARSE
MFEM_USE_SUPERLU
MFEM_USE_MUMPS
MFEM_USE_STRUMPACK
MFEM_USE_AMGX
MFEM_USE_GINKGO
MFEM_USE_AMGX
MFEM_USE_GNUTLS
MFEM_USE_NETCDF
MFEM_USE_MPFR
@@ -867,11 +901,12 @@ The CMake build system adds auto-detection for the following packages/libraries:
- HYPRE
- METIS - The option MFEM_USE_METIS_5 is auto-detected.
- ParMETIS
- MESQUITE
- SuiteSparse
- SuperLUDist, STRUMPACK
- ParMETIS
- Ginkgo
- AMGX
- GNUTLS - Extends the built-in CMake support, to search GNUTLS_DIR as well.
- NETCDF
- MPFR
+3 -1
View File
@@ -25,7 +25,9 @@ This project distributes the sources of several external software products with
their own respective licenses which can be found in their code and attached
license files. These software products and their licenses are as follows:
* AmgXWrapper (linalg/amgxsolver.{hpp,cpp}) -- MIT license
* Catch++ (tests/unit/catch.hpp) -- Boost 1.0 license
* Gecko (general/gecko.{cpp,hpp}) -- BSD 3-clause license
* Picojson (fem/picojson.h) -- Custom 2-clause license
* Catch++ (tests/unit/catch.hpp) -- Boost 1.0 license
* TinyXML2 (general/tinyxml2.{cpp,h}) -- zlib license
* Zstr (general/zstr.hpp) -- MIT license
+12 -12
View File
@@ -5,7 +5,7 @@
| | | | | || _|| __/| | | | | |
|_| |_| |_||_| \___||_| |_| |_|
http://mfem.org
https://mfem.org
MFEM is a modular parallel C++ library for finite element methods. Its goal is
to enable high-performance scalable finite element discretization research and
@@ -16,8 +16,8 @@ supercomputers.
* Copyright and licensing information can be found in files LICENSE and NOTICE.
* The best starting point for new users interested in MFEM's features is the
interactive documentation in examples/README.html.
* The best starting point for new users interested in MFEM's features is to
review the examples and miniapps at https://mfem.org/examples.
* Developers interested in contributing to the library, should read the
instructions and documentation in the CONTRIBUTING.md file.
@@ -49,17 +49,17 @@ library. Nonlinear solvers (the Newton method), eigensolvers (LOBPCG), and
several explicit and implicit Runge-Kutta time integrators are also available.
MFEM supports MPI-based parallelism throughout the library, and can readily be
used as a scalable unstructured finite element problem generator. As of version
4.0, MFEM offers initial support for GPU acceleration, and programming models,
such as CUDA, OCCA, RAJA and OpenMP. MFEM-based applications require minimal
changes to switch from a serial to a high-performing MPI-parallel version of the
code, where they can take advantage of the integrated linear solvers from the
hypre library. Comprehensive support for other external packages, e.g. PETSc
and SUNDIALS is also included, giving access to many additional linear and
nonlinear solvers, preconditioners, time integrators, etc.
used as a scalable unstructured finite element problem generator. Starting with
version 4.0, MFEM offers support for GPU acceleration, and programming models,
such as CUDA, HIP, OCCA, RAJA and OpenMP. MFEM-based applications require
minimal changes to switch from a serial to a highly-performant MPI-parallel
version of the code, where they can take advantage of the integrated linear
solvers from the hypre library. Comprehensive support for other external
packages, e.g. PETSc, SUNDIALS and libCEED is also included, giving access to
additional linear and nonlinear solvers, preconditioners, time integrators, etc.
For examples of using MFEM, see the examples/ and miniapps/ directories, as well
as the OpenGL visualization tool GLVis which is available at http://glvis.org.
as the OpenGL visualization tool GLVis which is available at https://glvis.org.
MFEM is distributed under the terms of the BSD-3 license. All new contributions
must be made under this license. See LICENSE and NOTICE for details.
+3
View File
@@ -32,8 +32,11 @@ set(MFEM_USE_SUNDIALS @MFEM_USE_SUNDIALS@)
set(MFEM_USE_MESQUITE @MFEM_USE_MESQUITE@)
set(MFEM_USE_SUITESPARSE @MFEM_USE_SUITESPARSE@)
set(MFEM_USE_SUPERLU @MFEM_USE_SUPERLU@)
set(MFEM_USE_MUMPS @MFEM_USE_MUMPS@)
set(MFEM_USE_STRUMPACK @MFEM_USE_STRUMPACK@)
set(MFEM_USE_GINKGO @MFEM_USE_GINKGO@)
set(MFEM_USE_AMGX @MFEM_USE_AMGX@)
set(MFEM_USE_HIOP @MFEM_USE_HIOP@)
set(MFEM_USE_GNUTLS @MFEM_USE_GNUTLS@)
set(MFEM_USE_GSLIB @MFEM_USE_GSLIB@)
set(MFEM_USE_NETCDF @MFEM_USE_NETCDF@)
+12 -6
View File
@@ -74,6 +74,9 @@
// [Deprecated] Enable experimental OpenMP support. Requires MFEM_THREAD_SAFE.
#cmakedefine MFEM_USE_LEGACY_OPENMP
// Internal MFEM option: enable group/batch allocation for some small objects.
#cmakedefine MFEM_USE_MEMALLOC
// Enable MFEM functionality based on the Mesquite library.
#cmakedefine MFEM_USE_MESQUITE
@@ -83,15 +86,18 @@
// Enable MFEM functionality based on the SuperLU_DIST library.
#cmakedefine MFEM_USE_SUPERLU
// Enable MFEM functionality based on the MUMPS library.
#cmakedefine MFEM_USE_MUMPS
// Enable MFEM functionality based on the STRUMPACK library.
#cmakedefine MFEM_USE_STRUMPACK
// Internal MFEM option: enable group/batch allocation for some small objects.
#cmakedefine MFEM_USE_MEMALLOC
// Enable functionality based on the Ginkgo library
#cmakedefine MFEM_USE_GINKGO
// Enable MFEM functionality based on the AmgX library
#cmakedefine MFEM_USE_AMGX
// Enable MFEM functionality based on the GnuTLS library
#cmakedefine MFEM_USE_GNUTLS
@@ -126,9 +132,6 @@
// Requires a CUDA compiler (nvcc).
#cmakedefine MFEM_USE_CUDA
// Enable MFEM functionality based on the AMGX library
#cmakedefine MFEM_USE_AMGX
// Enable MFEM functionality based on the RAJA library
#cmakedefine MFEM_USE_RAJA
@@ -159,4 +162,7 @@
// library.
#cmakedefine MFEM_USE_SIMMETRIX
// Enable interface to the MKL CPardiso library.
#cmakedefine MFEM_USE_MKL_CPARDISO
#endif // MFEM_CONFIG_HEADER
+10 -10
View File
@@ -38,19 +38,19 @@ if(NOT ADIOS2_FOUND)
endif()
find_path(ADIOS2_INCLUDE_DIR adios2.h ${ADIOS2_INCLUDE_OPTS})
# adios2 version 2.5.0
# adios2 version 2.5.0
find_library(ADIOS2_LIBRARY NAMES adios2 ${ADIOS2_LIBRARY_OPTS})
# adios2 version 2.6.0 and onwards
if(NOT ADIOS2_LIBRARY)
find_library(ADIOS2_CXX11_MPI_LIBRARY NAMES adios2_cxx11_mpi ${ADIOS2_LIBRARY_OPTS})
find_library(ADIOS2_CXX11_LIBRARY NAMES adios2_cxx11 ${ADIOS2_LIBRARY_OPTS})
set(ADIOS2_LIBRARY ${ADIOS2_CXX11_MPI_LIBRARY} ${ADIOS2_CXX11_LIBRARY})
if(MFEM_USE_MPI)
add_definitions(-DADIOS2_USE_MPI)
endif()
endif()
find_library(ADIOS2_CXX11_MPI_LIBRARY NAMES adios2_cxx11_mpi ${ADIOS2_LIBRARY_OPTS})
find_library(ADIOS2_CXX11_LIBRARY NAMES adios2_cxx11 ${ADIOS2_LIBRARY_OPTS})
set(ADIOS2_LIBRARY ${ADIOS2_CXX11_MPI_LIBRARY} ${ADIOS2_CXX11_LIBRARY})
if(MFEM_USE_MPI)
add_definitions(-DADIOS2_USE_MPI)
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ADIOS2
+20
View File
@@ -0,0 +1,20 @@
# Copyright (c) 2010-2020, Lawrence Livermore National Security, LLC. Produced
# at the Lawrence Livermore National Laboratory. All Rights reserved. See files
# LICENSE and NOTICE for details. LLNL-CODE-806117.
#
# This file is part of the MFEM library. For more information and source code
# availability visit https://mfem.org.
#
# MFEM is free software; you can redistribute it and/or modify it under the
# terms of the BSD-3 license. We welcome feedback and contributions, see file
# CONTRIBUTING.md for details.
# Defines the following variables:
# - AMGX_FOUND
# - AMGX_LIBRARIES
# - AMGX_INCLUDE_DIRS
include(MfemCmakeUtilities)
set(AMGX_REQUIRED_LIBRARIES cusparse cusolver cublas nvToolsExt)
mfem_find_package(AMGX AMGX AMGX_DIR "include" "amgx_c.h" "lib" "amgx"
"Paths to headers required by AMGX." "Libraries required by AMGX.")
+7 -7
View File
@@ -25,16 +25,16 @@ mfem_find_package(METIS METIS METIS_DIR "include;Lib" "metis.h"
int main()
{
int n = 10;
int nparts = 5;
int edgecut;
int* partitioning = new int[10];
int* I = partitioning,
idx_t n = 10;
idx_t nparts = 5;
idx_t edgecut;
idx_t* partitioning = new idx_t[10];
idx_t* I = partitioning,
* J = partitioning;
int ncon = 1;
idx_t ncon = 1;
int err;
int options[40];
idx_t options[40];
METIS_SetDefaultOptions(options);
options[10] = 1; // set METIS_OPTION_CONTIG
@@ -0,0 +1,32 @@
# Copyright (c) 2010-2020, Lawrence Livermore National Security, LLC. Produced
# at the Lawrence Livermore National Laboratory. All Rights reserved. See files
# LICENSE and NOTICE for details. LLNL-CODE-806117.
#
# This file is part of the MFEM library. For more information and source code
# availability visit https://mfem.org.
#
# MFEM is free software; you can redistribute it and/or modify it under the
# terms of the BSD-3 license. We welcome feedback and contributions, see file
# CONTRIBUTING.md for details.
# Defines the following variables:
# - MKL_CPARDISO_FOUND
# - MKL_CPARDISO_LIBRARIES
# - MKL_CPARDISO_INCLUDE_DIRS
if(NOT MKL_MPI_WRAPPER_LIB)
message(FATAL_ERROR "MKL CPardiso enabled but no MKL MPI Wrapper lib specified")
endif()
if(NOT MKL_LIBRARY_DIR)
message(WARNING "Using default MKL library path. Double check the variable MKL_LIBRARY_DIR")
set(MKL_LIBRARY_DIR "lib")
endif()
include(MfemCmakeUtilities)
mfem_find_package(MKL_CPARDISO MKL_CPARDISO
MKL_CPARDISO_DIR "include" mkl_cluster_sparse_solver.h ${MKL_LIBRARY_DIR} mkl_core
"Paths to headers required by MKL CPardiso." "Libraries required by MKL CPARDISO."
ADD_COMPONENT MKL_LP64 "include" "" ${MKL_LIBRARY_DIR} mkl_intel_lp64
ADD_COMPONENT MKL_SEQUENTIAL "include" "" ${MKL_LIBRARY_DIR} mkl_sequential
ADD_COMPONENT MKL_MPI_WRAPPER "include" "" ${MKL_LIBRARY_DIR} ${MKL_MPI_WRAPPER_LIB})
+23
View File
@@ -0,0 +1,23 @@
# Copyright (c) 2010-2020, Lawrence Livermore National Security, LLC. Produced
# at the Lawrence Livermore National Laboratory. All Rights reserved. See files
# LICENSE and NOTICE for details. LLNL-CODE-806117.
#
# This file is part of the MFEM library. For more information and source code
# availability visit https://mfem.org.
#
# MFEM is free software; you can redistribute it and/or modify it under the
# terms of the BSD-3 license. We welcome feedback and contributions, see file
# CONTRIBUTING.md for details.
# Sets the following variables:
# - MUMPS_FOUND
# - MUMPS_INCLUDE_DIRS
# - MUMPS_LIBRARIES
include(MfemCmakeUtilities)
mfem_find_package(MUMPS MUMPS MUMPS_DIR
"include" dmumps_c.h "lib" dmumps
"Paths to headers required by MUMPS."
"Libraries required by MUMPS."
ADD_COMPONENT mumps_common "include" dmumps_c.h "lib" mumps_common
ADD_COMPONENT pord "include" dmumps_c.h "lib" pord)
+6 -2
View File
@@ -20,10 +20,14 @@ mfem_find_package(SUNDIALS SUNDIALS SUNDIALS_DIR
"Paths to headers required by SUNDIALS." "Libraries required by SUNDIALS."
ADD_COMPONENT NVector_Serial
"include" nvector/nvector_serial.h "lib" sundials_nvecserial
ADD_COMPONENT NVector_Parallel
"include" nvector/nvector_parallel.h "lib" sundials_nvecparallel
ADD_COMPONENT NVector_Cuda
"include" nvector/nvector_cuda.h "lib" sundials_nveccuda
ADD_COMPONENT NVector_ParHyp
"include" nvector/nvector_parhyp.h "lib" sundials_nvecparhyp
ADD_COMPONENT NVector_Parallel
"include" nvector/nvector_parallel.h "lib" sundials_nvecparallel
ADD_COMPONENT NVector_MPIPlusX
"include" nvector/nvector_mpiplusx.h "lib" sundials_nvecmpiplusx
ADD_COMPONENT CVODE "include" cvode/cvode.h "lib" sundials_cvode
ADD_COMPONENT CVODES "include" cvodes/cvodes.h "lib" sundials_cvodes
ADD_COMPONENT ARKODE "include" arkode/arkode.h "lib" sundials_arkode
+15 -8
View File
@@ -235,7 +235,7 @@ endfunction(mfem_find_component)
# code snippets. Additionally, a list of required/optional/alternative
# packages (given by ${Name}_REQUIRED_PACKAGES) are searched for and added to
# the ${Prefix}_INCLUDE_DIRS and ${Prefix}_LIBRARIES lists. The variable
# ${Name}_REQUIRED_LIBRARIES can be set to spcecify any additional libraries
# ${Name}_REQUIRED_LIBRARIES can be set to specify any additional libraries
# that are needed. This function defines the following CACHE variables:
#
# ${Prefix}_FOUND
@@ -733,15 +733,16 @@ function(mfem_export_mk_files)
set(shared_link_flag "-Wl,-rpath,")
endif()
# Convert Boolean vars to YES/NO without writting the values to cache
# Convert Boolean vars to YES/NO without writing the values to cache
set(CONFIG_MK_BOOL_VARS MFEM_USE_MPI MFEM_USE_METIS MFEM_USE_METIS_5
MFEM_DEBUG MFEM_USE_EXCEPTIONS MFEM_USE_ZLIB MFEM_USE_LIBUNWIND
MFEM_USE_LAPACK MFEM_THREAD_SAFE MFEM_USE_OPENMP MFEM_USE_LEGACY_OPENMP
MFEM_USE_MEMALLOC MFEM_USE_SUNDIALS MFEM_USE_MESQUITE MFEM_USE_SUITESPARSE
MFEM_USE_SUPERLU MFEM_USE_STRUMPACK MFEM_USE_GNUTLS
MFEM_USE_GSLIB MFEM_USE_NETCDF MFEM_USE_PETSC MFEM_USE_SLEPC MFEM_USE_MPFR MFEM_USE_SIDRE
MFEM_USE_CONDUIT MFEM_USE_PUMI MFEM_USE_CUDA MFEM_USE_OCCA MFEM_USE_RAJA
MFEM_USE_UMPIRE MFEM_USE_SIMD MFEM_USE_ADIOS2)
MFEM_USE_SUPERLU MFEM_USE_STRUMPACK MFEM_USE_GINKGO MFEM_USE_AMGX
MFEM_USE_GNUTLS MFEM_USE_GSLIB MFEM_USE_NETCDF MFEM_USE_PETSC
MFEM_USE_SLEPC MFEM_USE_MPFR MFEM_USE_SIDRE MFEM_USE_CONDUIT MFEM_USE_PUMI
MFEM_USE_CUDA MFEM_USE_OCCA MFEM_USE_RAJA MFEM_USE_UMPIRE MFEM_USE_SIMD
MFEM_USE_ADIOS2)
foreach(var ${CONFIG_MK_BOOL_VARS})
if (${var})
set(${var} YES)
@@ -753,7 +754,13 @@ function(mfem_export_mk_files)
set(MFEM_CXX ${CMAKE_CXX_COMPILER})
set(MFEM_HOST_CXX ${MFEM_CXX})
set(MFEM_CPPFLAGS "")
string(STRIP "${CMAKE_CXX_FLAGS_${BUILD_TYPE}} ${CMAKE_CXX_FLAGS}"
get_target_property(cxx_std mfem CXX_STANDARD)
# For now, we ignore the setting of the CXX_EXTENSIONS property. If this
# property is set, then we need to use a variable like:
# CMAKE_CXX11_EXTENSION_COMPILE_OPTION
set(cxx_std_flag ${CMAKE_CXX${cxx_std}_STANDARD_COMPILE_OPTION})
string(STRIP
"${cxx_std_flag} ${CMAKE_CXX_FLAGS_${BUILD_TYPE}} ${CMAKE_CXX_FLAGS}"
MFEM_CXXFLAGS)
set(MFEM_TPLFLAGS "")
foreach(dir ${MFEM_TPL_INCLUDE_DIRS})
@@ -819,7 +826,7 @@ function(mfem_export_mk_files)
string(REGEX REPLACE "^SCOREC::" "" libname ${pumilib})
string(FIND "${pumilib}" ".a" staticlib)
string(FIND "${pumilib}" ".so" sharedlib)
find_library(lib ${libname} PATHS ${PUMI_DIR}/lib NO_DEFUALT_PATH)
find_library(lib ${libname} PATHS ${PUMI_DIR}/lib NO_DEFAULT_PATH)
if (NOT "${sharedlib}" MATCHES "-1" OR
NOT "${staticlib}" MATCHES "-1" )
set(MFEM_EXT_LIBS "${pumilib} ${MFEM_EXT_LIBS}")
+12
View File
@@ -34,6 +34,12 @@
// Macro needed to get defines like M_PI from <cmath>. (Visual Studio C++ only?)
#define _USE_MATH_DEFINES
#endif
// On Cygwin the option -std=c++11 prevents the definition of M_PI. Defining
// the following macro allows us to get M_PI and some needed functions, e.g.
// posix_memalign(), strdup(), strerror_r().
#ifdef __CYGWIN__
#define _XOPEN_SOURCE 600
#endif
// Check dependencies:
@@ -42,9 +48,15 @@
#ifdef MFEM_USE_SUPERLU
#error Building with SuperLU_DIST (MFEM_USE_SUPERLU=YES) requires MPI (MFEM_USE_MPI=YES)
#endif
#ifdef MFEM_USE_MUMPS
#error Building with MUMPS (MFEM_USE_MUMPS=YES) requires MPI (MFEM_USE_MPI=YES)
#endif
#ifdef MFEM_USE_STRUMPACK
#error Building with STRUMPACK (MFEM_USE_STRUMPACK=YES) requires MPI (MFEM_USE_MPI=YES)
#endif
#ifdef MFEM_USE_MKL_CPARDISO
#error Building with MKL CPARDISO (MFEM_USE_MKL_CPARDISO=YES) requires MPI (MFEM_USE_MPI=YES)
#endif
#ifdef MFEM_USE_PETSC
#error Building with PETSc (MFEM_USE_PETSC=YES) requires MPI (MFEM_USE_MPI=YES)
#endif
+11 -3
View File
@@ -93,6 +93,11 @@
// Enable MFEM functionality based on the SuperLU library.
// #define MFEM_USE_SUPERLU
// #define MFEM_USE_SUPERLU5
// Enable MFEM functionality based on the MUMPS library.
// #define MFEM_USE_MUMPS
// #define MFEM_MUMPS_VERSION @MFEM_MUMPS_VERSION@
// Enable MFEM functionality based on the STRUMPACK library.
// #define MFEM_USE_STRUMPACK
@@ -100,6 +105,9 @@
// Enable MFEM features based on the Ginkgo library
// #define MFEM_USE_GINKGO
// Enable MFEM functionality based on the AmgX library.
// #define MFEM_USE_AMGX
// Enable secure socket streams based on the GNUTLS library
// #define MFEM_USE_GNUTLS
@@ -137,9 +145,6 @@
// Requires a CUDA compiler (nvcc).
// #define MFEM_USE_CUDA
// Enable MFEM functionality based on the AMGX library.
// #define MFEM_USE_AMGX
// Build the AMD GPU/HIP-enabled version of the MFEM library.
// Requires a HIP compiler (hipcc).
// #define MFEM_USE_HIP
@@ -166,4 +171,7 @@
// library.
// #define MFEM_USE_SIMMETRIX
// Enable interface to the MKL CPardiso library.
// #define MFEM_USE_MKL_CPARDISO
#endif // MFEM_CONFIG_HEADER
+4 -1
View File
@@ -32,8 +32,11 @@ MFEM_USE_SUNDIALS = @MFEM_USE_SUNDIALS@
MFEM_USE_MESQUITE = @MFEM_USE_MESQUITE@
MFEM_USE_SUITESPARSE = @MFEM_USE_SUITESPARSE@
MFEM_USE_SUPERLU = @MFEM_USE_SUPERLU@
MFEM_USE_SUPERLU5 = @MFEM_USE_SUPERLU5@
MFEM_USE_MUMPS = @MFEM_USE_MUMPS@
MFEM_USE_STRUMPACK = @MFEM_USE_STRUMPACK@
MFEM_USE_GINKGO = @MFEM_USE_GINKGO@
MFEM_USE_AMGX = @MFEM_USE_AMGX@
MFEM_USE_GNUTLS = @MFEM_USE_GNUTLS@
MFEM_USE_NETCDF = @MFEM_USE_NETCDF@
MFEM_USE_PETSC = @MFEM_USE_PETSC@
@@ -45,7 +48,6 @@ MFEM_USE_PUMI = @MFEM_USE_PUMI@
MFEM_USE_HIOP = @MFEM_USE_HIOP@
MFEM_USE_GSLIB = @MFEM_USE_GSLIB@
MFEM_USE_CUDA = @MFEM_USE_CUDA@
MFEM_USE_AMGX = @MFEM_USE_AMGX@
MFEM_USE_HIP = @MFEM_USE_HIP@
MFEM_USE_RAJA = @MFEM_USE_RAJA@
MFEM_USE_OCCA = @MFEM_USE_OCCA@
@@ -53,6 +55,7 @@ MFEM_USE_CEED = @MFEM_USE_CEED@
MFEM_USE_UMPIRE = @MFEM_USE_UMPIRE@
MFEM_USE_SIMD = @MFEM_USE_SIMD@
MFEM_USE_ADIOS2 = @MFEM_USE_ADIOS2@
MFEM_USE_MKL_CPARDISO = @MFEM_USE_MKL_CPARDISO@
# Compiler, compile options, and link options
MFEM_CXX = @MFEM_CXX@
+21 -3
View File
@@ -33,8 +33,11 @@ option(MFEM_USE_SUNDIALS "Enable SUNDIALS usage" OFF)
option(MFEM_USE_MESQUITE "Enable MESQUITE usage" OFF)
option(MFEM_USE_SUITESPARSE "Enable SuiteSparse usage" OFF)
option(MFEM_USE_SUPERLU "Enable SuperLU_DIST usage" OFF)
option(MFEM_USE_SUPERLU5 "Use the old SuperLU_DIST 5.1 version" OFF)
option(MFEM_USE_MUMPS "Enable MUMPS usage" OFF)
option(MFEM_USE_STRUMPACK "Enable STRUMPACK usage" OFF)
option(MFEM_USE_GINKGO "Enable Ginkgo usage" OFF)
option(MFEM_USE_AMGX "Enable AmgX usage" OFF)
option(MFEM_USE_GNUTLS "Enable GNUTLS usage" OFF)
option(MFEM_USE_GSLIB "Enable GSLIB usage" OFF)
option(MFEM_USE_NETCDF "Enable NETCDF usage" OFF)
@@ -52,6 +55,7 @@ option(MFEM_USE_CEED "Enable CEED" OFF)
option(MFEM_USE_UMPIRE "Enable Umpire" OFF)
option(MFEM_USE_SIMD "Enable use of SIMD intrinsics" OFF)
option(MFEM_USE_ADIOS2 "Enable ADIOS2" OFF)
option(MFEM_USE_MKL_CPARDISO "Enable MKL CPardiso" OFF)
set(MFEM_MPI_NP 4 CACHE STRING "Number of processes used for MPI tests")
@@ -88,7 +92,7 @@ set(METIS_DIR "${MFEM_DIR}/../metis-4.0" CACHE PATH "Path to the METIS library."
set(LIBUNWIND_DIR "" CACHE PATH "Path to Libunwind.")
# For sundials_nvecparhyp and nvecparallel remember to build with MPI_ENABLED=ON
# For sundials_nvecmpiplusx and nvecparallel remember to build with MPI_ENABLE=ON
# and modify cmake variables for hypre for sundials
set(SUNDIALS_DIR "${MFEM_DIR}/../sundials-5.0.0/instdir" CACHE PATH
"Path to the SUNDIALS library.")
@@ -109,12 +113,21 @@ set(ParMETIS_DIR "${MFEM_DIR}/../parmetis-4.0.3" CACHE PATH
set(ParMETIS_REQUIRED_PACKAGES "METIS" CACHE STRING
"Additional packages required by ParMETIS.")
set(SuperLUDist_DIR "${MFEM_DIR}/../SuperLU_DIST_5.1.0" CACHE PATH
set(SuperLUDist_DIR "${MFEM_DIR}/../SuperLU_DIST_6.3.1" CACHE PATH
"Path to the SuperLU_DIST library.")
# SuperLU_DIST may also depend on "OpenMP", depending on how it was compiled.
set(SuperLUDist_REQUIRED_PACKAGES "MPI" "BLAS" "ParMETIS" CACHE STRING
"Additional packages required by SuperLU_DIST.")
set(MUMPS_DIR "${MFEM_DIR}/../MUMPS_5.2.0" CACHE PATH
"Path to the MUMPS library.")
# Packages required by MUMPS, depending on how it was compiled.
set(MUMPS_REQUIRED_PACKAGES "MPI" "BLAS" "METIS" "ScaLAPACK" CACHE STRING
"Additional packages required by MUMPS.")
# If the MPI package does not find all required Fortran libraries:
# set(MUMPS_REQUIRED_LIBRARIES "gfortran" "mpi_mpifh" CACHE STRING
# "Additional libraries required by MUMPS.")
set(STRUMPACK_DIR "${MFEM_DIR}/../STRUMPACK-build" CACHE PATH
"Path to the STRUMPACK library.")
# STRUMPACK may also depend on "OpenMP", depending on how it was compiled.
@@ -145,6 +158,8 @@ set(ScaLAPACK_TARGET_NAMES scalapack)
set(Ginkgo_DIR "${MFEM_DIR}/../ginkgo" CACHE PATH "Path to the Ginkgo library.")
set(AMGX_DIR "${MFEM_DIR}/../amgx" CACHE PATH "Path to AmgX")
set(GNUTLS_DIR "" CACHE PATH "Path to the GnuTLS library.")
set(GSLIB_DIR "" CACHE PATH "Path to the GSLIB library.")
@@ -180,9 +195,12 @@ set(HIOP_DIR "${MFEM_DIR}/../hiop/install" CACHE STRING
set(HIOP_REQUIRED_PACKAGES "BLAS" "LAPACK" CACHE STRING
"Packages that HiOp depends on.")
set(MKL_CPARDISO_DIR "" CACHE STRING "MKL installation path.")
set(MKL_MPI_WRAPPER_LIB "mkl_blacs_mpich_lp64" CACHE STRING "MKL MPI wrapper library")
set(MKL_LIBRARY_DIR "" CACHE STRING "Custom library subdirectory")
set(OCCA_DIR "${MFEM_DIR}/../occa" CACHE PATH "Path to OCCA")
set(RAJA_DIR "${MFEM_DIR}/../raja" CACHE PATH "Path to RAJA")
set(AMGX_DIR "${MFEM_DIR}/../amgx" CACHE PATH "Path to AMGX")
set(CEED_DIR "${MFEM_DIR}/../libCEED" CACHE PATH "Path to libCEED")
set(UMPIRE_DIR "${MFEM_DIR}/../umpire" CACHE PATH "Path to Umpire")
+79 -34
View File
@@ -53,6 +53,8 @@ HIP_CXX = hipcc
# gfx900, gfx1010, etc.
HIP_ARCH = gfx900
HIP_FLAGS = --amdgpu-target=$(HIP_ARCH)
HIP_XCOMPILER =
HIP_XLINKER = -Wl,
ifneq ($(NOTMAC),)
AR = ar
@@ -120,8 +122,11 @@ MFEM_USE_SUNDIALS = NO
MFEM_USE_MESQUITE = NO
MFEM_USE_SUITESPARSE = NO
MFEM_USE_SUPERLU = NO
MFEM_USE_SUPERLU5 = NO
MFEM_USE_MUMPS = NO
MFEM_USE_STRUMPACK = NO
MFEM_USE_GINKGO = NO
MFEM_USE_AMGX = NO
MFEM_USE_GNUTLS = NO
MFEM_USE_NETCDF = NO
MFEM_USE_PETSC = NO
@@ -133,7 +138,6 @@ MFEM_USE_PUMI = NO
MFEM_USE_HIOP = NO
MFEM_USE_GSLIB = NO
MFEM_USE_CUDA = NO
MFEM_USE_AMGX = NO
MFEM_USE_HIP = NO
MFEM_USE_RAJA = NO
MFEM_USE_OCCA = NO
@@ -141,12 +145,23 @@ MFEM_USE_CEED = NO
MFEM_USE_UMPIRE = NO
MFEM_USE_SIMD = NO
MFEM_USE_ADIOS2 = NO
MFEM_USE_MKL_CPARDISO = NO
# MPI library compile and link flags
# These settings are used only when building MFEM with MPI + HIP
ifeq ($(MFEM_USE_MPI)$(MFEM_USE_HIP),YESYES)
# We determine MPI_DIR assuming $(MPICXX) is in $(MPI_DIR)/bin
MPI_DIR := $(patsubst %/,%,$(dir $(shell which $(MPICXX))))
MPI_DIR := $(patsubst %/,%,$(dir $(MPI_DIR)))
MPI_OPT = -I$(MPI_DIR)/include
MPI_LIB = -L$(MPI_DIR)/lib $(XLINKER)-rpath,$(MPI_DIR)/lib -lmpi
endif
# Compile and link options for zlib.
ZLIB_DIR =
ZLIB_OPT = $(if $(ZLIB_DIR),-I$(ZLIB_DIR)/include)
ZLIB_LIB = $(if $(ZLIB_DIR),$(ZLIB_RPATH) -L$(ZLIB_DIR)/lib ,)-lz
ZLIB_RPATH = -Wl,-rpath,$(ZLIB_DIR)/lib
ZLIB_RPATH = $(XLINKER)-rpath,$(ZLIB_DIR)/lib
LIBUNWIND_OPT = -g
LIBUNWIND_LIB = $(if $(NOTMAC),-lunwind -ldl,)
@@ -157,7 +172,7 @@ HYPRE_OPT = -I$(HYPRE_DIR)/include
HYPRE_LIB = -L$(HYPRE_DIR)/lib -lHYPRE
# METIS library configuration
ifeq ($(MFEM_USE_SUPERLU)$(MFEM_USE_STRUMPACK),NONO)
ifeq ($(MFEM_USE_SUPERLU)$(MFEM_USE_STRUMPACK)$(MFEM_USE_MUMPS),NONONO)
ifeq ($(MFEM_USE_METIS_5),NO)
METIS_DIR = @MFEM_DIR@/../metis-4.0
METIS_OPT =
@@ -190,15 +205,19 @@ OPENMP_LIB =
POSIX_CLOCKS_LIB = -lrt
# SUNDIALS library configuration
# For sundials_nvecparhyp and nvecparallel remember to build with MPI_ENABLED=ON
# For sundials_nvecmpiplusx and nvecparallel remember to build with MPI_ENABLE=ON
# and modify cmake variables for hypre for sundials
SUNDIALS_DIR = @MFEM_DIR@/../sundials-5.0.0/instdir
SUNDIALS_OPT = -I$(SUNDIALS_DIR)/include
SUNDIALS_LIB = -Wl,-rpath,$(SUNDIALS_DIR)/lib64 -L$(SUNDIALS_DIR)/lib64\
SUNDIALS_DIR = @MFEM_DIR@/../sundials-5.0.0/instdir
SUNDIALS_OPT = -I$(SUNDIALS_DIR)/include
SUNDIALS_LIBDIR = $(wildcard $(SUNDIALS_DIR)/lib*)
SUNDIALS_LIB = $(XLINKER)-rpath,$(SUNDIALS_LIBDIR) -L$(SUNDIALS_LIBDIR)\
-lsundials_arkode -lsundials_cvodes -lsundials_nvecserial -lsundials_kinsol
ifeq ($(MFEM_USE_MPI),YES)
SUNDIALS_LIB += -lsundials_nvecparhyp -lsundials_nvecparallel
SUNDIALS_LIB += -lsundials_nvecparallel -lsundials_nvecmpiplusx
endif
ifeq ($(MFEM_USE_CUDA),YES)
SUNDIALS_LIB += -lsundials_nveccuda
endif
# If SUNDIALS was built with KLU:
# MFEM_USE_SUITESPARSE = YES
@@ -212,14 +231,22 @@ MESQUITE_LIB = -L$(MESQUITE_DIR)/lib -lmesquite
LIB_RT = $(if $(NOTMAC),-lrt,)
SUITESPARSE_DIR = @MFEM_DIR@/../SuiteSparse
SUITESPARSE_OPT = -I$(SUITESPARSE_DIR)/include
SUITESPARSE_LIB = -Wl,-rpath,$(SUITESPARSE_DIR)/lib -L$(SUITESPARSE_DIR)/lib\
-lklu -lbtf -lumfpack -lcholmod -lcolamd -lamd -lcamd -lccolamd\
-lsuitesparseconfig $(LIB_RT) $(METIS_LIB) $(LAPACK_LIB)
SUITESPARSE_LIB = $(XLINKER)-rpath,$(SUITESPARSE_DIR)/lib\
-L$(SUITESPARSE_DIR)/lib -lklu -lbtf -lumfpack -lcholmod -lcolamd -lamd -lcamd\
-lccolamd -lsuitesparseconfig $(LIB_RT) $(METIS_LIB) $(LAPACK_LIB)
# SuperLU library configuration
SUPERLU_DIR = @MFEM_DIR@/../SuperLU_DIST_5.1.0
SUPERLU_OPT = -I$(SUPERLU_DIR)/SRC
SUPERLU_LIB = -Wl,-rpath,$(SUPERLU_DIR)/lib -L$(SUPERLU_DIR)/lib -lsuperlu_dist_5.1.0
ifeq ($(MFEM_USE_SUPERLU5),YES)
SUPERLU_DIR = @MFEM_DIR@/../SuperLU_DIST_5.1.0
SUPERLU_OPT = -I$(SUPERLU_DIR)/include
SUPERLU_LIB = $(XLINKER)-rpath,$(SUPERLU_DIR)/lib -L$(SUPERLU_DIR)/lib\
-lsuperlu_dist_5.1.0
else
SUPERLU_DIR = @MFEM_DIR@/../SuperLU_DIST_6.3.1
SUPERLU_OPT = -I$(SUPERLU_DIR)/include
SUPERLU_LIB = $(XLINKER)-rpath,$(SUPERLU_DIR)/lib64 -L$(SUPERLU_DIR)/lib64\
-lsuperlu_dist -lblas
endif
# SCOTCH library configuration (required by STRUMPACK <= v2.1.0, optional in
# STRUMPACK >= v2.2.0)
@@ -228,12 +255,12 @@ SCOTCH_OPT = -I$(SCOTCH_DIR)/include
SCOTCH_LIB = -L$(SCOTCH_DIR)/lib -lptscotch -lptscotcherr -lscotch -lscotcherr\
-lpthread
# SCALAPACK library configuration (required by STRUMPACK)
# SCALAPACK library configuration (required by STRUMPACK and MUMPS)
SCALAPACK_DIR = @MFEM_DIR@/../scalapack-2.0.2
SCALAPACK_OPT = -I$(SCALAPACK_DIR)/SRC
SCALAPACK_LIB = -L$(SCALAPACK_DIR)/lib -lscalapack $(LAPACK_LIB)
# MPI Fortran library, needed e.g. by STRUMPACK
# MPI Fortran library, needed e.g. by STRUMPACK or MUMPS
# MPICH:
MPI_FORTRAN_LIB = -lmpifort
# OpenMPI:
@@ -241,6 +268,12 @@ MPI_FORTRAN_LIB = -lmpifort
# Additional Fortan library:
# MPI_FORTRAN_LIB += -lgfortran
# MUMPS library configuration
MUMPS_DIR = @MFEM_DIR@/../MUMPS_5.2.0
MUMPS_OPT = -I$(MUMPS_DIR)/include
MUMPS_LIB = $(XLINKER)-rpath,$(MUMPS_DIR)/lib -L$(MUMPS_DIR)/lib -ldmumps\
-lmumps_common -lpord $(SCALAPACK_LIB) $(LAPACK_LIB) $(MPI_FORTRAN_LIB)
# STRUMPACK library configuration
STRUMPACK_DIR = @MFEM_DIR@/../STRUMPACK-build
STRUMPACK_OPT = -I$(STRUMPACK_DIR)/include $(SCOTCH_OPT)
@@ -252,7 +285,13 @@ STRUMPACK_LIB = -L$(STRUMPACK_DIR)/lib -lstrumpack $(MPI_FORTRAN_LIB)\
# Ginkgo library configuration (currently not needed)
GINKGO_DIR = @MFEM_DIR@/../ginkgo/install
GINKGO_OPT = -isystem $(GINKGO_DIR)/include
GINKGO_LIB = $(XLINKER)-rpath,$(GINKGO_DIR)/lib -L$(GINKGO_DIR)/lib -lginkgo -lginkgo_omp -lginkgo_cuda -lginkgo_reference
GINKGO_LIB = $(XLINKER)-rpath,$(GINKGO_DIR)/lib -L$(GINKGO_DIR)/lib -lginkgo\
-lginkgo_omp -lginkgo_cuda -lginkgo_reference
# AmgX library configuration
AMGX_DIR = @MFEM_DIR@/../amgx
AMGX_OPT = -I$(AMGX_DIR)/include
AMGX_LIB = -lcusparse -lcusolver -lcublas -lnvToolsExt -L$(AMGX_DIR)/lib -lamgx
# GnuTLS library configuration
GNUTLS_OPT =
@@ -262,8 +301,8 @@ GNUTLS_LIB = -lgnutls
NETCDF_DIR = $(HOME)/local
HDF5_DIR = $(HOME)/local
NETCDF_OPT = -I$(NETCDF_DIR)/include -I$(HDF5_DIR)/include $(ZLIB_OPT)
NETCDF_LIB = -Wl,-rpath,$(NETCDF_DIR)/lib -L$(NETCDF_DIR)/lib\
-Wl,-rpath,$(HDF5_DIR)/lib -L$(HDF5_DIR)/lib\
NETCDF_LIB = $(XLINKER)-rpath,$(NETCDF_DIR)/lib -L$(NETCDF_DIR)/lib\
$(XLINKER)-rpath,$(HDF5_DIR)/lib -L$(HDF5_DIR)/lib\
-lnetcdf -lhdf5_hl -lhdf5 $(ZLIB_LIB)
# PETSc library configuration (version greater or equal to 3.8 or the dev branch)
@@ -275,9 +314,10 @@ PETSC_INC_VAR = PETSC_CC_INCLUDES
PETSC_LIB_VAR = PETSC_EXTERNAL_LIB_BASIC
ifeq ($(PETSC_FOUND),YES)
PETSC_OPT := $(shell sed -n "s/$(PETSC_INC_VAR) = *//p" $(PETSC_VARS))
PETSC_LIB := $(shell sed -n "s/$(PETSC_LIB_VAR) = *//p" $(PETSC_VARS))
PETSC_LIB := -Wl,-rpath,$(abspath $(PETSC_DIR))/lib\
-L$(abspath $(PETSC_DIR))/lib -lpetsc $(PETSC_LIB)
PETSC_DEP := $(shell sed -n "s/$(PETSC_LIB_VAR) = *//p" $(PETSC_VARS))
PETSC_LIB = $(XLINKER)-rpath,$(abspath $(PETSC_DIR))/lib\
-L$(abspath $(PETSC_DIR))/lib -lpetsc\
$(subst $(CXX_XLINKER),$(XLINKER),$(PETSC_DEP))
endif
SLEPC_DIR := $(MFEM_DIR)/../slepc
@@ -289,9 +329,10 @@ ifeq ($(SLEPC_FOUND),YES)
SLEPC_OPT := $(shell sed -n "s/$(SLEPC_INC_VAR) *= *//p" $(SLEPC_VARS))
# Some additional external libraries might be defined in this file
-include ${SLEPC_DIR}/${PETSC_ARCH}/lib/slepc/conf/slepcvariables
SLEPC_LIB := $(shell sed -n "s/$(SLEPC_LIB_VAR) *= *//p" $(SLEPC_VARS))
SLEPC_LIB := -Wl,-rpath,$(abspath $(SLEPC_DIR))/$(PETSC_ARCH)/lib\
-L$(abspath $(SLEPC_DIR))/$(PETSC_ARCH)/lib -lslepc $(SLEPC_LIB)
SLEPC_DEP := $(shell sed -n "s/$(SLEPC_LIB_VAR) *= *//p" $(SLEPC_VARS))
SLEPC_LIB = $(XLINKER)-rpath,$(abspath $(SLEPC_DIR))/$(PETSC_ARCH)/lib\
-L$(abspath $(SLEPC_DIR))/$(PETSC_ARCH)/lib -lslepc\
$(subst $(CXX_XLINKER),$(XLINKER),$(SLEPC_DEP))
endif
# MPFR library configuration
@@ -302,7 +343,7 @@ MPFR_LIB = -lmpfr
CONDUIT_DIR = @MFEM_DIR@/../conduit
CONDUIT_OPT = -I$(CONDUIT_DIR)/include/conduit
CONDUIT_LIB = \
-Wl,-rpath,$(CONDUIT_DIR)/lib -L$(CONDUIT_DIR)/lib \
$(XLINKER)-rpath,$(CONDUIT_DIR)/lib -L$(CONDUIT_DIR)/lib \
-lconduit -lconduit_relay -lconduit_blueprint -ldl
# Check if Conduit was built with hdf5 support, by looking
@@ -310,7 +351,7 @@ CONDUIT_LIB = \
CONDUIT_HDF5_HEADER=$(CONDUIT_DIR)/include/conduit/conduit_relay_hdf5.hpp
ifneq (,$(wildcard $(CONDUIT_HDF5_HEADER)))
CONDUIT_OPT += -I$(HDF5_DIR)/include
CONDUIT_LIB += -Wl,-rpath,$(HDF5_DIR)/lib -L$(HDF5_DIR)/lib \
CONDUIT_LIB += $(XLINKER)-rpath,$(HDF5_DIR)/lib -L$(HDF5_DIR)/lib \
-lhdf5 $(ZLIB_LIB)
endif
@@ -320,9 +361,9 @@ SIDRE_DIR = @MFEM_DIR@/../axom
SIDRE_OPT = -I$(SIDRE_DIR)/include -I$(CONDUIT_DIR)/include/conduit\
-I$(HDF5_DIR)/include
SIDRE_LIB = \
-Wl,-rpath,$(SIDRE_DIR)/lib -L$(SIDRE_DIR)/lib \
-Wl,-rpath,$(CONDUIT_DIR)/lib -L$(CONDUIT_DIR)/lib \
-Wl,-rpath,$(HDF5_DIR)/lib -L$(HDF5_DIR)/lib \
$(XLINKER)-rpath,$(SIDRE_DIR)/lib -L$(SIDRE_DIR)/lib \
$(XLINKER)-rpath,$(CONDUIT_DIR)/lib -L$(CONDUIT_DIR)/lib \
$(XLINKER)-rpath,$(HDF5_DIR)/lib -L$(HDF5_DIR)/lib \
-laxom -lconduit -lconduit_relay -lconduit_blueprint -lhdf5 $(ZLIB_LIB) -ldl
# PUMI
@@ -373,10 +414,14 @@ UMPIRE_DIR = @MFEM_DIR@/../umpire
UMPIRE_OPT = -I$(UMPIRE_DIR)/include
UMPIRE_LIB = -L$(UMPIRE_DIR)/lib -lumpire
# AMGX library configuration
AMGX_DIR = @MFEM_DIR@/../amgx
AMGX_OPT = -I$(AMGX_DIR)/include
AMGX_LIB = -L$(CUDA_HOME)/lib64 -lcusparse -lcusolver -lcublas -lnvToolsExt -L$(AMGX_DIR)/lib -lamgx -Xlinker=-rpath=$(CUDA_HOME)/lib64
# MKL CPardiso library configuration
MKL_CPARDISO_DIR ?=
MKL_MPI_WRAPPER ?= mkl_blacs_mpich_lp64
MKL_LIBRARY_SUBDIR ?= lib
MKL_CPARDISO_OPT = -I$(MKL_CPARDISO_DIR)/include
MKL_CPARDISO_LIB = $(XLINKER)-rpath,$(MKL_CPARDISO_DIR)/$(MKL_LIBRARY_SUBDIR)\
-L$(MKL_CPARDISO_DIR)/$(MKL_LIBRARY_SUBDIR) -l$(MKL_MPI_WRAPPER)\
-lmkl_intel_lp64 -lmkl_sequential -lmkl_core
# If YES, enable some informational messages
VERBOSE = NO
+33
View File
@@ -0,0 +1,33 @@
// Copyright (c) 2010-2020, Lawrence Livermore National Security, LLC. Produced
// at the Lawrence Livermore National Laboratory. All Rights reserved. See files
// LICENSE and NOTICE for details. LLNL-CODE-806117.
//
// This file is part of the MFEM library. For more information and source code
// availability visit https://mfem.org.
//
// MFEM is free software; you can redistribute it and/or modify it under the
// terms of the BSD-3 license. We welcome feedback and contributions, see file
// CONTRIBUTING.md for details.
#include "dmumps_c.h"
#include <string>
#include <iostream>
#include <algorithm>
// Macros to expand a macro as a string
#define STR_EXPAND(s) #s
#define STR(s) STR_EXPAND(s)
int main()
{
#ifdef MUMPS_VERSION
const char *ptr = STR(MUMPS_VERSION);
std::string s(ptr);
s.erase(std::remove(s.begin(), s.end(), '"'), s.end());
s.erase(std::remove(s.begin(), s.end(), '.'), s.end());
std::cout << s << "\n";
return 0;
#else
return -1;
#endif
}
+21 -2
View File
@@ -42,6 +42,10 @@ GHV_FLAGS = $(subst @MFEM_DIR@,$(if $(MFEM_DIR),$(MFEM_DIR),..),$(HYPRE_OPT))
SMX = $(if $(MFEM_USE_PUMI:NO=),MFEM_USE_SIMMETRIX)
SMX_PATH = $(PUMI_DIR)/include/gmi_sim.h
SMX_FILE = $(subst @MFEM_DIR@,$(if $(MFEM_DIR),$(MFEM_DIR),..),$(SMX_PATH))
MUMPS = $(MFEM_USE_MUMPS:NO=)
GMV_CXX ?= $(MFEM_CXX)
GMV = get_mumps_version
GMV_FLAGS = $(subst @MFEM_DIR@,$(if $(MFEM_DIR),$(MFEM_DIR),..),$(MUMPS_OPT))
$(GHV): $(SRC)$(GHV).cpp
$(call mfem-info, Determining HYPRE version ...)
@@ -50,6 +54,13 @@ $(GHV).out: $(GHV)
./$(GHV) > $(GHV).out
.INTERMEDIATE: $(GHV) $(GHV).out
$(GMV): $(SRC)$(GMV).cpp
$(call mfem-info, Determining MUMPS version ...)
$(GMV_CXX) ${GMV_FLAGS} $(SRC)$(GMV).cpp -o $(GMV)
$(GMV).out: $(GMV)
./$(GMV) > $(GMV).out
.INTERMEDIATE: $(GMV) $(GMV).out
get-hypre-version: $(GHV).out
$(eval MFEM_HYPRE_VERSION:=$(shell cat $(GHV).out))
$(if $(MFEM_HYPRE_VERSION),$(eval export MFEM_HYPRE_VERSION)\
@@ -62,10 +73,18 @@ check-smx:
$(call mfem-info, MFEM_USE_SIMMETRIX = $(MFEM_USE_SIMMETRIX))
$(eval export MFEM_USE_SIMMETRIX)
header: $(if $(MPI),get-hypre-version,) $(if $(SMX),check-smx)
get-mumps-version: $(GMV).out
$(eval MFEM_MUMPS_VERSION:=$(shell cat $(GMV).out))
$(if $(MFEM_MUMPS_VERSION),$(eval export MFEM_MUMPS_VERSION)\
$(info MUMPS version: $(MFEM_MUMPS_VERSION)),\
$(error Unable to determine MUMPS version))
header: $(if $(MPI),get-hypre-version,) $(if $(SMX),check-smx,) \
$(if $(MUMPS),get-mumps-version,)
$(call mfem-info, Writing $(CONFIG_HPP) ...)
@set -- && \
for def in $${MFEM_DEFINES} $(if $(MPI),MFEM_HYPRE_VERSION) $(SMX); do \
for def in $${MFEM_DEFINES} $(if $(MPI),MFEM_HYPRE_VERSION) $(SMX) \
$(if $(MUMPS),MFEM_MUMPS_VERSION); do \
eval var=\$$$$def && \
if [ "NO" != "$${var}" ]; then \
set -- "$$@" -e "s|// \(#define $${def} \)|\1|" && \
+6 -2
View File
@@ -48,6 +48,10 @@ groups_serial=(
"miniapps/meshing"
"mobius-strip.cpp klein-bottle.cpp extruder.cpp toroid.cpp
mesh-optimizer.cpp minimal-surface.cpp"'
'"convergence"
"Convergence tests:"
"tests/convergence"
"rates.cpp"'
)
# Parallel groups
groups_parallel=(
@@ -81,7 +85,7 @@ groups_parallel=(
'"convergence"
"Convergence tests:"
"tests/convergence"
"diffusion.cpp"'
"prates.cpp"'
'"par-mesh-format"
"Parallel mesh tests:"
"tests/par-mesh-format"
@@ -118,7 +122,7 @@ groups_all=(
'"convergence"
"Convergence tests:"
"tests/convergence"
"diffusion.cpp"'
"{,p}rates.cpp"'
'"par-mesh-format"
"Parallel mesh tests:"
"tests/par-mesh-format"
+8 -8
View File
@@ -31,14 +31,14 @@ POINTS 27 double
7 0.5 1
8 0.5 1
CELLS 8 56
6 0 9 18 1 10 19
6 1 10 19 2 11 20
6 2 11 20 3 12 21
6 3 12 21 4 13 22
6 4 13 22 5 14 23
6 5 14 23 6 15 24
6 6 15 24 7 16 25
6 7 16 25 8 17 26
6 0 18 9 1 19 10
6 1 19 10 2 20 11
6 2 20 11 3 21 12
6 3 21 12 4 22 13
6 4 22 13 5 23 14
6 5 23 14 6 24 15
6 6 24 15 7 25 16
6 7 25 16 8 26 17
CELL_TYPES 8
13
13
-2
View File
@@ -16,7 +16,6 @@ if (DOXYGEN_FOUND)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CodeDocumentation.conf.in
${CMAKE_CURRENT_BINARY_DIR}/CodeDocumentation.conf @ONLY)
add_custom_target(doc
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/CodeDocumentation.conf
COMMAND echo "<meta http-equiv=\"REFRESH\" content=\"0;URL=CodeDocumentation/html/index.html\">" > ${CMAKE_CURRENT_BINARY_DIR}/CodeDocumentation.html
@@ -32,5 +31,4 @@ if (DOXYGEN_FOUND)
COMMENT "Removing API documentation"
VERBATIM)
endif (DOXYGEN_FOUND)
+11 -6
View File
@@ -38,7 +38,7 @@ PROJECT_NAME = "MFEM"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = v4.1.1
PROJECT_NUMBER = v4.2.1
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@@ -51,7 +51,7 @@ PROJECT_BRIEF = "Finite element discretization library"
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.
PROJECT_LOGO = web/logo-small.png
PROJECT_LOGO = logo-small.png
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
@@ -766,11 +766,14 @@ INPUT = @MFEM_SOURCE_DIR@/doc/CodeDocumentation.dox \
@MFEM_SOURCE_DIR@/mesh \
@MFEM_SOURCE_DIR@/fem \
@MFEM_SOURCE_DIR@/examples \
@MFEM_SOURCE_DIR@/examples/amgx \
@MFEM_SOURCE_DIR@/examples/ginkgo \
@MFEM_SOURCE_DIR@/examples/hiop \
@MFEM_SOURCE_DIR@/examples/petsc \
@MFEM_SOURCE_DIR@/examples/pumi \
@MFEM_SOURCE_DIR@/examples/hiop \
@MFEM_SOURCE_DIR@/examples/sundials \
@MFEM_SOURCE_DIR@/miniapps/adjoint \
@MFEM_SOURCE_DIR@/examples/superlu \
@MFEM_SOURCE_DIR@/miniapps/adjoint \
@MFEM_SOURCE_DIR@/miniapps/common \
@MFEM_SOURCE_DIR@/miniapps/electromagnetics \
@MFEM_SOURCE_DIR@/miniapps/gslib \
@@ -816,7 +819,9 @@ RECURSIVE = NO
# run.
EXCLUDE = @MFEM_SOURCE_DIR@/config/_config.hpp \
@MFEM_SOURCE_DIR@/config/get_hypre_version.cpp
@MFEM_SOURCE_DIR@/config/get_hypre_version.cpp \
@MFEM_SOURCE_DIR@/general/tinyxml2.h \
@MFEM_SOURCE_DIR@/general/tinyxml2.cpp
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
@@ -2334,7 +2339,7 @@ PLANTUML_INCLUDE_PATH =
# Minimum value: 0, maximum value: 10000, default value: 50.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_GRAPH_MAX_NODES = 10
DOT_GRAPH_MAX_NODES = 50
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
# generated by dot. A depth value of 3 means that only nodes reachable from the
+39 -26
View File
@@ -62,7 +62,7 @@ namespace mfem {
* - <a class="el" href="ex9p_8cpp_source.html">Example 9p</a>: parallel Discontinuous Galerkin (DG) time-dependent advection
* - <a class="el" href="ex10_8cpp_source.html">Example 10</a>: time-dependent implicit nonlinear elasticity
* - <a class="el" href="ex10p_8cpp_source.html">Example 10p</a>: parallel time-dependent implicit nonlinear elasticity
* - <a class="el" href="examples_2ex11p_8cpp_source.html">Example 11p</a>: parallel Laplace eigensolver
* - <a class="el" href="ex11p_8cpp_source.html">Example 11p</a>: parallel Laplace eigensolver
* - <a class="el" href="ex12p_8cpp_source.html">Example 12p</a>: parallel linear elasticity eigensolver
* - <a class="el" href="ex13p_8cpp_source.html">Example 13p</a>: parallel Maxwell eigensolver
* - <a class="el" href="ex14_8cpp_source.html">Example 14</a>: Discontinuous Galerkin (DG) for the Laplace problem
@@ -90,20 +90,25 @@ namespace mfem {
* - <a class="el" href="ex25p_8cpp_source.html">Example 25p</a>: parallel simulation of electromagnetic wave propagation using a Perfectly Matched Layer (PML)
* - <a class="el" href="ex26_8cpp_source.html">Example 26</a>: multigrid preconditioner for the Laplace problem using nodal H1 FEM
* - <a class="el" href="ex26p_8cpp_source.html">Example 26p</a>: parallel multigrid preconditioner for the Laplace problem using nodal H1 FEM
* - <a class="el" href="ex27_8cpp_source.html">Example 27</a>: boundary conditions for the Laplace problem
* - <a class="el" href="ex27p_8cpp_source.html">Example 27p</a>: parallel boundary conditions for the Laplace problem
*
* <H4>SUNDIALS Examples</H4>
* <H4>AmgX Examples</H4>
* - Variants of Examples
* <a class="el" href="sundials_2ex9_8cpp_source.html">9</a>,
* <a class="el" href="sundials_2ex9p_8cpp_source.html">9p</a>,
* <a class="el" href="sundials_2ex10_8cpp_source.html">10</a>,
* <a class="el" href="sundials_2ex10p_8cpp_source.html">10p</a>,
* <a class="el" href="sundials_2ex16_8cpp_source.html">16</a>,
* and
* <a class="el" href="sundials_2ex16p_8cpp_source.html">16p</a>
* demonstrating the use of MFEM's \link sundials.hpp SUNDIALS classes\endlink
* - CVODES adjoint examples:
* <a class="el" href="cvsRoberts__ASAi__dns_8cpp_source.html">serial ODE system</a>,
* <a class="el" href="adjoint__advection__diffusion_8cpp_source.html">parallel advection-diffusion</a>
* <a class="el" href="examples_2amgx_2ex1_8cpp_source.html">1</a> and
* <a class="el" href="examples_2amgx_2ex1p_8cpp_source.html">1p</a>,
* demonstrating the use of MFEM's \link amgxsolver.hpp AmgX integration\endlink.
*
* <H4>Ginkgo Examples</H4>
* - Variants of Example
* <a class="el" href="examples_2ginkgo_2ex1_8cpp_source.html">1</a>,
* demonstrating the use of MFEM's \link ginkgo.hpp Ginkgo integration\endlink.
*
* <H4>HiOp Examples</H4>
* - Variants of Examples
* <a class="el" href="hiop_2ex9_8cpp_source.html">9</a> and
* <a class="el" href="hiop_2ex9p_8cpp_source.html">9p</a>,
* demonstrating the use of MFEM's \link hiop.hpp HiOp integration\endlink.
*
* <H4>PETSc Examples</H4>
* - Variants of Examples
@@ -115,8 +120,8 @@ namespace mfem {
* <a class="el" href="petsc_2ex6p_8cpp_source.html">6p</a>,
* <a class="el" href="petsc_2ex9p_8cpp_source.html">9p</a>,
* and
* <a class="el" href="petsc_2ex10p_8cpp_source.html">10p</a>
* demonstrating the use of MFEM's \link petsc.hpp PETSc classes\endlink
* <a class="el" href="petsc_2ex10p_8cpp_source.html">10p</a>,
* demonstrating the use of MFEM's \link petsc.hpp PETSc integration\endlink.
*
* <H4>PUMI Examples</H4>
* - Variants of Examples
@@ -124,19 +129,27 @@ namespace mfem {
* <a class="el" href="examples_2pumi_2ex1p_8cpp_source.html">1p</a>,
* <a class="el" href="pumi_2ex2_8cpp_source.html">2</a>,
* and
* <a class="el" href="pumi_2ex6p_8cpp_source.html">6p</a>
* demonstrating the use of MFEM's \link pumi.hpp PUMI classes\endlink
* <a class="el" href="pumi_2ex6p_8cpp_source.html">6p</a>,
* demonstrating the use of MFEM's \link pumi.hpp PUMI integration\endlink.
*
* <H4>HiOp Examples</H4>
* <H4>SUNDIALS Examples</H4>
* - Variants of Examples
* <a class="el" href="hiop_2ex9_8cpp_source.html">9</a> and
* <a class="el" href="hiop_2ex9p_8cpp_source.html">9p</a>,
* demonstrating the use of MFEM's \link hiop.hpp HiOp classes\endlink
* <a class="el" href="sundials_2ex9_8cpp_source.html">9</a>,
* <a class="el" href="sundials_2ex9p_8cpp_source.html">9p</a>,
* <a class="el" href="sundials_2ex10_8cpp_source.html">10</a>,
* <a class="el" href="sundials_2ex10p_8cpp_source.html">10p</a>,
* <a class="el" href="sundials_2ex16_8cpp_source.html">16</a>,
* and
* <a class="el" href="sundials_2ex16p_8cpp_source.html">16p</a>,
* demonstrating the use of MFEM's \link sundials.hpp SUNDIALS integration\endlink.
* - CVODES adjoint miniapps:
* <a class="el" href="cvsRoberts__ASAi__dns_8cpp_source.html">serial ODE system</a>,
* <a class="el" href="adjoint__advection__diffusion_8cpp_source.html">parallel advection-diffusion</a>.
*
* <H4>Ginkgo Examples</H4>
* <H4>SuperLU Examples</H4>
* - Variants of Example
* <a class="el" href="ginkgo_2ex1_8cpp_source.html">1</a>
* demonstrating the use of MFEM's \link ginkgo.hpp Ginkgo classes\endlink
* <a class="el" href="examples_2superlu_2ex1p_8cpp_source.html">1p</a>,
* demonstrating the use of MFEM's \link superlu.hpp SuperLU integration\endlink.
*
* <H3>Miniapps</H3>
* - <a class="el" href="volta_8cpp_source.html">Volta</a>: simple electrostatics simulation code
@@ -162,11 +175,11 @@ namespace mfem {
* - <a class="el" href="lor-transfer_8cpp_source.html">LOR Transfer</a>: map functions between high-order and low-order refined spaces
* - <a class="el" href="findpts_8cpp_source.html">Find Points</a>: evaluate grid function in physical space, <a class="el" href="findpts_8cpp_source.html">serial</a> and <a class="el" href="pfindpts_8cpp_source.html">parallel</a> versions
* - <a class="el" href="field-diff_8cpp_source.html">Field Diff</a>: compare grid functions on different meshes
* - <a class="el" href="field-interp_8cpp_source.html">Field Interp</a>: transfer a grid functions betwen meshes
* - <a class="el" href="field-interp_8cpp_source.html">Field Interp</a>: transfer a grid functions between meshes
* - <a class="el" href="miniapps_2performance_2ex1_8cpp_source.html">HPC Example 1</a>: high-performance nodal H1 FEM for the Laplace problem
* - <a class="el" href="miniapps_2performance_2ex1p_8cpp_source.html">HPC Example 1p</a>: high-performance parallel nodal H1 FEM for the Laplace problem
*
* See also the <a class="el" href="../../../examples/README.html">README</a> in the <code>examples/</code> directory
* See also the <a class="el" href="https://mfem.org/examples/">examples documentation</a> online.
*/
}
+2 -2
View File
@@ -5,7 +5,7 @@
| | | | | || _|| __/| | | | | |
|_| |_| |_||_| \___||_| |_| |_|
http://mfem.org
https://mfem.org
This directory contains Doxygen configuration files for building HTML
documentation of the MFEM sources (including the example codes and miniapps).
@@ -21,7 +21,7 @@ create the file CodeDocumentation.html, which can be viewed in any web browser.
Alternatively, the (pre-build) documentation can be browsed directly online at
http://mfem.github.io/doxygen/html/index.html
https://mfem.github.io/doxygen/html/index.html
Some building considerations:

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

-1
View File
@@ -13,7 +13,6 @@ SHELL = /bin/bash
MFEM_DIR ?= ..
DOXYGEN_CONF = CodeDocumentation.conf
# doxygen uses: graphviz, latex
html: $(DOXYGEN_CONF)
@# Generate the html documentation
Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

-208
View File
@@ -1,208 +0,0 @@
body {
padding-top: 70px;
}
/* hack to increase height of headers to make #anchors work with the top nav-bar,
(note: we only want this on pages with TOC, otherwise there are other problems) */
div.col-md-9 h1[id]::before,
div.col-md-9 h2[id]::before,
div.col-md-9 h3[id]::before,
div.col-md-9 h4[id]::before,
div.col-md-9 h5[id]::before,
div.col-md-9 h6[id]::before {
content: "";
display: block;
margin-top: -75px;
height: 75px;
}
img {
max-width: 100%;
height: auto;
}
pre {
overflow-x: auto;
}
pre code {
overflow-wrap: normal;
white-space: pre;
font-size: 13.5px;
}
label {
font-weight: normal;
}
ul.nav li.main {
font-weight: bold;
}
div.col-md-3 {
padding-right: 0;
}
div.col-md-9, div.col-md-12 {
padding-bottom: 100px;
}
div.source-links {
float: right;
}
img {
display: block;
margin-left: auto;
margin-right: auto;
margin-top: 25px;
margin-bottom: 25px;
}
img.floatright {
display: block;
float: right;
margin-top: 0;
margin-left: 25px;
margin-bottom: 25px;
}
img.teamphoto {
box-shadow: 4px 4px 4px #999;
}
p.centered {
margin-left: auto;
margin-right: auto;
text-align: center;
}
/*label {
display: inline-block;
margin-bottom: 5px;
font-weight: normal;
}*/
/*
* Side navigation
*
* Scrollspy and affixed enhanced navigation to highlight sections and secondary
* sections of docs content.
*/
/* By default it's not affixed in mobile views, so undo that */
.bs-sidebar.affix {
position: static;
}
.bs-sidebar.well {
padding: 0;
}
/* First level of nav */
.bs-sidenav {
/*margin-top: 10px;
margin-bottom: 10px;*/
padding-top: 10px;
padding-bottom: 10px;
border-radius: 5px;
}
/* All levels of nav */
.bs-sidebar .nav > li > a {
display: block;
padding: 5px 20px;
z-index: 1;
}
.bs-sidebar .nav > li > a:hover,
.bs-sidebar .nav > li > a:focus {
text-decoration: none;
border-right: 1px solid;
}
.bs-sidebar .nav > .active > a,
.bs-sidebar .nav > .active:hover > a,
.bs-sidebar .nav > .active:focus > a {
font-weight: bold;
background-color: transparent;
border-right: 1px solid;
}
/* Nav: second level (shown on .active) */
.bs-sidebar .nav .nav {
display: none; /* Hide by default, but at >768px, show it */
margin-bottom: 8px;
}
.bs-sidebar .nav .nav > li > a {
padding-top: 3px;
padding-bottom: 3px;
padding-left: 30px;
font-size: 90%;
}
/* Show and affix the side nav when space allows it */
@media (min-width: 992px) {
.bs-sidebar .nav > .active > ul {
display: block;
}
/* Widen the fixed sidebar */
.bs-sidebar.affix,
.bs-sidebar.affix-bottom {
width: 213px;
}
.bs-sidebar.affix {
position: fixed; /* Undo the static from mobile first approach */
top: 80px;
}
.bs-sidebar.affix-bottom {
position: absolute; /* Undo the static from mobile first approach */
}
.bs-sidebar.affix-bottom .bs-sidenav,
.bs-sidebar.affix .bs-sidenav {
margin-top: 0;
margin-bottom: 0;
}
}
@media (min-width: 1200px) {
/* Widen the fixed sidebar again */
.bs-sidebar.affix-bottom,
.bs-sidebar.affix {
width: 263px;
}
}
/* Sticky footer styles
-------------------------------------------------- */
html {
position: relative;
min-height: 100%;
}
body {
/* Margin bottom by footer height */
margin-bottom: 50px;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
/* Set the fixed height of the footer here */
height: 50px;
background-color: #eeeeee;
overflow: hidden;
}
/* Custom page CSS
-------------------------------------------------- */
/* Not required for template or sticky footer method. */
.container .text-muted {
margin-top: 17px;
margin-bottom: 0;
}
.container .alignleft {
float: left;
}
.container .alignright {
float: right;
}
File diff suppressed because one or more lines are too long
-11
View File
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 767 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

-6
View File
File diff suppressed because one or more lines are too long
+17 -6
View File
@@ -34,6 +34,7 @@ list(APPEND ALL_EXE_SRCS
ex25.cpp
ex26.cpp
ex27.cpp
ex91.cpp
)
if (MFEM_USE_MPI)
@@ -117,16 +118,21 @@ if (MFEM_USE_SUPERLU)
${MPIEXEC_POSTFLAGS})
endif()
# Include the examples/sundials directory if SUNDIALS is enabled.
if (MFEM_USE_SUNDIALS)
add_subdirectory(sundials)
# Include the examples/amgx directory if AmgX is enabled
if (MFEM_USE_AMGX)
add_subdirectory(amgx)
endif()
# Include the examples/sundials directory if SUNDIALS is enabled.
# Include the examples/ginkgo directory if GINKGO is enabled.
if (MFEM_USE_GINKGO)
add_subdirectory(ginkgo)
endif()
# Include the examples/hiop directory if HiOp is enabled
if (MFEM_USE_HIOP)
add_subdirectory(hiop)
endif()
# Include the examples/petsc directory if PETSc is enabled.
if (MFEM_USE_PETSC)
add_subdirectory(petsc)
@@ -137,7 +143,12 @@ if (MFEM_USE_PUMI)
add_subdirectory(pumi)
endif()
if (MFEM_USE_HIOP)
add_subdirectory(hiop)
# Include the examples/sundials directory if SUNDIALS is enabled.
if (MFEM_USE_SUNDIALS)
add_subdirectory(sundials)
endif()
# Include the examples/superlu directory if SUPERLU is enabled.
if (MFEM_USE_SUPERLU)
add_subdirectory(superlu)
endif()
-1512
View File
File diff suppressed because one or more lines are too long
+79
View File
@@ -0,0 +1,79 @@
# Copyright (c) 2010-2020, Lawrence Livermore National Security, LLC. Produced
# at the Lawrence Livermore National Laboratory. All Rights reserved. See files
# LICENSE and NOTICE for details. LLNL-CODE-806117.
#
# This file is part of the MFEM library. For more information and source code
# availability visit https://mfem.org.
#
# MFEM is free software; you can redistribute it and/or modify it under the
# terms of the BSD-3 license. We welcome feedback and contributions, see file
# CONTRIBUTING.md for details.
set(AMGX_EXAMPLES_SRCS)
list(APPEND AMGX_EXAMPLES_SRCS
ex1.cpp
)
if (MFEM_USE_MPI)
list(APPEND AMGX_EXAMPLES_SRCS
ex1p.cpp
)
endif()
set(AMGX_JSON_FILES amg_pcg.json multi_gs.json precon.json)
# Include the source directory where mfem.hpp and mfem-performance.hpp are.
include_directories(BEFORE ${PROJECT_BINARY_DIR})
# Add targets to copy *.json files from the source directory
foreach(JSON_FILE ${AMGX_JSON_FILES})
add_custom_command(OUTPUT ${JSON_FILE}
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/${JSON_FILE} ${JSON_FILE}
COMMENT "copy ${JSON_FILE}")
endforeach()
add_custom_target(copy_amgx_json_files DEPENDS ${AMGX_JSON_FILES}
COMMENT "Copying AMGX example json files ...")
# Add "test_amgx" target, see below.
add_custom_target(test_amgx
${CMAKE_CTEST_COMMAND} -R amgx USES_TERMINAL)
# Add one executable per cpp file, adding "amgx_" as prefix. Sets
# "copy_amgx_json_files" as a prerequisite for the given examples. Also, sets
# "test_amgx" as a target that depends on the given examples.
set(PFX amgx_)
add_mfem_examples(AMGX_EXAMPLES_SRCS ${PFX} copy_amgx_json_files test_amgx)
# Testing.
# The AMGX tests can be run separately using the target "test_amgx"
# which builds the examples and runs:
# ctest -R amgx
# Command line options for the tests.
# Example 1/1p:
set(EX1_TEST_OPTS)
set(EX1P_TEST_OPTS)
# Add the tests: one test per source file.
foreach(SRC_FILE ${AMGX_EXAMPLES_SRCS})
get_filename_component(SRC_FILENAME ${SRC_FILE} NAME)
string(REPLACE ".cpp" "" TEST_NAME ${SRC_FILENAME})
string(TOUPPER ${TEST_NAME} UP_TEST_NAME)
set(TEST_NAME ${PFX}${TEST_NAME})
set(THIS_TEST_OPTIONS "-no-vis")
list(APPEND THIS_TEST_OPTIONS ${${UP_TEST_NAME}_TEST_OPTS})
# message(STATUS "Test ${TEST_NAME} options: ${THIS_TEST_OPTIONS}")
if (NOT (${TEST_NAME} MATCHES ".*p$"))
add_test(NAME ${TEST_NAME}_ser
COMMAND ${TEST_NAME} ${THIS_TEST_OPTIONS})
else()
add_test(NAME ${TEST_NAME}_np=${MFEM_MPI_NP}
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${MFEM_MPI_NP}
${MPIEXEC_PREFLAGS}
$<TARGET_FILE:${TEST_NAME}> ${THIS_TEST_OPTIONS}
${MPIEXEC_POSTFLAGS})
endif()
endforeach()
+18
View File
@@ -0,0 +1,18 @@
Finite Element Discretization Library
__
_ __ ___ / _| ___ _ __ ___
| '_ ` _ \ | |_ / _ \| '_ ` _ \
| | | | | || _|| __/| | | | | |
|_| |_| |_||_| \___||_| |_| |_|
https://mfem.org
This directory contains modifications of the example codes that illustrate the
use of MFEM features based on NVIDIA's multigrid library AmgX.
To build these examples, make sure that MFEM is configured with the option
"MFEM_USE_AMGX = YES", see the top-level INSTALL file for details (version
2.1 of AmgX is recommended, though older versions may work too.
We recommend comparing the original example codes with the corresponding files
in the current directory.

Some files were not shown because too many files have changed in this diff Show More