Skip to content
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
efb7ed6
Add documentation on the "Building MFEM" page for cmake install
Gianni-NCSU Nov 7, 2024
1518d3c
Fixing selection of NURBS examples
mlstowell Nov 8, 2024
3ab05c7
Adding Lorentz example documentation and a "Particle-In-Cell" applica…
mlstowell Nov 8, 2024
cc4ffda
Adding Lorentz image file
mlstowell Nov 8, 2024
c441acd
Adding Lorentz documentation to the electromagnetics page
mlstowell Nov 8, 2024
3fa268d
Adding Lorentz to "features.md"
mlstowell Nov 8, 2024
f6b6bb2
Apply suggestions from code review
gabsillis Nov 14, 2024
86d8805
update CUDA section of cmake for PR #4561
Gianni-NCSU Nov 19, 2024
ee43a1d
incorporate suggested changes from jandrej
Gianni-NCSU Dec 6, 2024
8550a64
Minor improvements to Bilinear Form Integrators page
nmnobre Feb 17, 2025
c1fc13e
Initial changes for mfem-4.9
tzanio Oct 6, 2025
d4dc3f3
Add some documentation on basis functions
nmnobre Oct 9, 2025
0cafb54
contact-miniapp
psocratis Oct 20, 2025
f1373e4
amgf paper entry
psocratis Oct 20, 2025
ced7c03
update publications
kmittal2 Nov 13, 2025
8d76eb3
Merge branch 'master' into mfem-4.9
tzanio Nov 13, 2025
8c4642f
add IJHPCA paper to about page
kmittal2 Nov 14, 2025
7438322
Merge branch 'mfem-4.9' of https://github.com/mfem/web into mfem-4.9
kmittal2 Nov 14, 2025
854255c
add another TMOP paper
kmittal2 Nov 17, 2025
8211ef6
Update src/examples.md
psocratis Dec 4, 2025
7b9157b
Update src/examples.md
psocratis Dec 4, 2025
be034d6
Merge branch 'mfem-4.9' into contact-miniapp
psocratis Dec 4, 2025
279e2d2
Fix verb agreement in miniapp documentation
psocratis Dec 4, 2025
0206b2a
Update src/examples.md
psocratis Dec 4, 2025
8aaa001
Added alternative CMake configuration using TPL fetching
cjvogl Dec 4, 2025
2be44be
Fix typo and expand a bit on "histopolation"
nmnobre Oct 9, 2025
1d4c94b
Merge pull request #310 from nmnobre/master
tzanio Dec 5, 2025
4a1eade
Minor wording changes per suggestions
Gianni-NCSU Dec 5, 2025
c04a3a0
spell check
Gianni-NCSU Dec 5, 2025
9542058
reviewer's comments
psocratis Dec 8, 2025
b484ba4
Merge pull request #348 from mfem/contact-miniapp
tzanio Dec 8, 2025
56e3ea5
Screenshot of the original AggieFEM page, that is no longer available
tzanio Dec 8, 2025
44331b9
update howto-findpts
kmittal2 Dec 9, 2025
ce4d447
Update publications
tzanio Dec 9, 2025
2357fbb
In src/building.md note TPL fetching not supported for GPU builds
gabsillis Dec 9, 2025
859ac5e
Changes suggested by @najlkin
mlstowell Dec 9, 2025
2e5afa2
Changes suggested by @kmittal2
mlstowell Dec 9, 2025
9f11892
Changes suggested by @acfisher
mlstowell Dec 9, 2025
7463547
Add Anthony Kolshorn to the team list
bslazarov Dec 9, 2025
2464cbe
minor
tzanio Dec 10, 2025
1ddb59d
Merge branch 'master' into mfem-4.9
tzanio Dec 10, 2025
b6656dc
Add notes on Poly1D/Basis classes, serendipity elems and wedges and p…
nmnobre Dec 10, 2025
aa6f11a
minor
tzanio Dec 10, 2025
dbd4dd3
Merge pull request #291 from mfem/add-cmake-build-guide
tzanio Dec 10, 2025
2aabb00
Add Example 41: DG/CG Advection-Diffusion
bslazarov Dec 10, 2025
6044a68
Merge pull request #347 from nmnobre/basis
tzanio Dec 10, 2025
d9c9503
white spaces
tzanio Dec 10, 2025
607fe66
Revise Example 41: DG/CG Advection-Diffusion
bslazarov Dec 10, 2025
ef2078a
Change image source for DG/CG Advection-Diffusion example
bslazarov Dec 10, 2025
5510179
Picture for ex41
tzanio Dec 10, 2025
4e2fa50
Merge branch 'mfem-4.9' of github.com:mfem/web into mfem-4.9
tzanio Dec 10, 2025
7525bfa
Add example for showElement with advection and diffusion
bslazarov Dec 10, 2025
e647139
Update src/examples.md
bslazarov Dec 10, 2025
56ff291
Update showElement call for example 41
bslazarov Dec 10, 2025
c1450bd
Add Example 41 for DG/CG IMEX time dependent advection-diffusion
bslazarov Dec 10, 2025
29b4e68
Ex40+41 in tutorial
tzanio Dec 10, 2025
e296bde
Swapping Lorentz images
mlstowell Dec 10, 2025
27f1009
Merge pull request #292 from mfem/lorentz-dev
tzanio Dec 10, 2025
67471bc
minor
tzanio Dec 10, 2025
8cfdecb
Replace basis-functions.pdf with basis-functions.png
tzanio Dec 10, 2025
408581b
Fixed source code links and anchored them to v4.9.
najlkin Dec 10, 2025
ee66bc4
MFEM-4.9 released on Dec 11, 2025
tzanio Dec 11, 2025
d10ce13
Fixed links to classes in Basis Functions page
tzanio Dec 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions src/about.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,26 @@
# About MFEM

MFEM originates from previous research effort in the (unreleased) [AggieFEM/aFEM](https://www.math.tamu.edu/research/vigre/archive/2000c-Lazarov.html) project.
MFEM originates from previous research effort in the (unreleased) [AggieFEM/aFEM](img/2000c-Lazarov.png) project.

<!-- The AggieFEM/aFEM project used to be https://www.math.tamu.edu/research/vigre/archive/2000c-Lazarov.html. The above screenshot was taken in 2024. -->

Please cite with:
```c
@article{mfem,
@article{mfem-2024,
title = {High-Performance Finite Elements with {MFEM}},
author = {J. Andrej and N. Atallah and J.-P. BΓ€cker and J.-S. Camier and
D. Copeland and V. Dobrev and Y. Dudouit and T. Duswald and
B. Keith and D. Kim and T. Kolev and B. Lazarov and K. Mittal and
W. Pazner and S. Petrides and S. Shiraiwa and M. Stowell and V. Tomov},
journal={The International Journal of High Performance Computing Applications},
volume={38},
number={5},
pages={447-467},
year={2024},
publisher={SAGE Publications Sage UK: London, England}
}

@article{mfem-2021,
title = {{MFEM}: A Modular Finite Element Methods Library},
author = {R. Anderson and J. Andrej and A. Barker and J. Bramwell and J.-S. Camier and
J. Cerveny and V. Dobrev and Y. Dudouit and A. Fisher and Tz. Kolev and W. Pazner and
Expand Down Expand Up @@ -79,6 +95,7 @@ Please cite with:
- [Dohyun Kim](https://github.com/dohyun-cse)
- [Patrick Knupp](https://dblp.org/pid/38/3416.html)
- [Tzanio Kolev](https://people.llnl.gov/kolev1) &mdash; Project Leader
- [Anthony Kolshorn]()
- [Chris Laganella](https://github.com/Laganellac)
- [Justin Laughlin](https://github.com/justinlaughlin)
- [Ilya Lashuk](https://scholar.google.com/citations?user=5KQiAUoAAAAJ&hl=en)
Expand Down
22 changes: 11 additions & 11 deletions src/bilininteg.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ Note that any operators involving a derivative of the range function
$v$ or $\vec\{v}$ are computed using integration by parts. This leads
to a boundary integral which can be used to apply Neumann boundary
conditions. Some of these operators are listed along with their
boundary terms in section [Weak Operators](#weak-operators-and-their-boundary-integrals).
boundary terms in section [Weak Operators and Their Boundary Integrals](#weak-operators-and-their-boundary-integrals).

## Scalar Field Operators

Expand All @@ -102,7 +102,7 @@ require a gradient operator should be used with H1.

### Square Operators

These integrators are designed to be used with the BilinearForm object
These integrators are designed to be used with a `BilinearForm` object
to assemble square linear operators.

| Class Name | Spaces | Coef.| Operator | Continuous Op. | Dimension |
Expand All @@ -112,7 +112,7 @@ to assemble square linear operators.

### Mixed Operators

These integrators are designed to be used with the MixedBilinearForm object to assemble square or rectangular linear operators.
These integrators are designed to be used with a `MixedBilinearForm` object to assemble square or rectangular linear operators.

| Class Name | Domain | Range | Coef. | Operator | Continuous Op. | Dimension |
|---------------------------------------|--------|--------|:-------:|------------------------------------------------|--------------------------------------|:----------:|
Expand Down Expand Up @@ -150,7 +150,7 @@ functions but others require one or the other.

### Square Operators

These integrators are designed to be used with the BilinearForm object
These integrators are designed to be used with a `BilinearForm` object
to assemble square linear operators.

| Class Name | Spaces | Coef. | Operator | Continuous Op. | Dimension |
Expand All @@ -161,7 +161,7 @@ to assemble square linear operators.

### Mixed Operators

These integrators are designed to be used with the MixedBilinearForm object to assemble square or rectangular linear operators.
These integrators are designed to be used with a `MixedBilinearForm` object to assemble square or rectangular linear operators.

| Class Name | Domain | Range | Coef. | Operator | Continuous Op. | Dimension |
|--------------------------------------|--------|--------|:-------:|----------------------------------------------------------|-----------------------------------------------|:----------:|
Expand Down Expand Up @@ -190,9 +190,9 @@ These integrators are designed to be used with the MixedBilinearForm object to a

| Class Name | Domain | Range | Coef. | Operator | Dimension | Notes |
|----------------------------------|--------|--------|-------|------------------------------------------------------------------------|:---------:|-------|
| VectorFEDivergenceIntegrator | RT | H1, L2 | S | $(\lambda\div\vec\{u}, v)$ | 2D, 3D | Alternate implementation of MixedScalarDivergenceIntegrator. |
| VectorFEWeakDivergenceIntegrator | ND | H1 | S | $(-\lambda\vec\{u},\grad v)$ | 2D, 3D | See MixedVectorWeakDivergenceIntegrator for a more general implementation. |
| VectorFECurlIntegrator | ND, RT | ND, RT | S | $(\lambda\curl\vec\{u},\vec\{v})$ or $(\lambda\vec\{u},\curl\vec\{v})$ | 3D | If the domain is ND then the Curl operator is returned, if the range is ND then the weak Curl is returned, otherwise a failure is encountered. See MixedVectorCurlIntegrator and MixedVectorWeakCurlIntegrator for more general implementations. |
| VectorFEDivergenceIntegrator | RT | H1, L2 | S | $(\lambda\div\vec\{u}, v)$ | 2D, 3D | Alternate implementation of `MixedScalarDivergenceIntegrator`. |
| VectorFEWeakDivergenceIntegrator | ND | H1 | S | $(-\lambda\vec\{u},\grad v)$ | 2D, 3D | See `MixedVectorWeakDivergenceIntegrator` for a more general implementation. |
| VectorFECurlIntegrator | ND, RT | ND, RT | S | $(\lambda\curl\vec\{u},\vec\{v})$ or $(\lambda\vec\{u},\curl\vec\{v})$ | 3D | If the domain is ND then the Curl operator is returned, if the range is ND then the weak Curl is returned, otherwise a failure is encountered. See `MixedVectorCurlIntegrator` and `MixedVectorWeakCurlIntegrator` for more general implementations. |

## Vector Field Operators

Expand Down Expand Up @@ -299,9 +299,9 @@ situations rather than needing to reimplement their functionality.

| Class Name | Description |
|---------------------|------------------------------------------------------------------------------------------------------------------------|
| TransposeIntegrator | Returns the transpose of the local matrix computed by another BilinearFormIntegrator |
| LumpedIntegrator | Returns a diagonal local matrix where each entry is the sum of the corresponding row of a local matrix computed by another BilinearFormIntegrator (only implemented for square matrices) |
| InverseIntegrator | Returns the inverse of the local matrix computed by another BilinearFormIntegrator which produces a square local matrix |
| TransposeIntegrator | Returns the transpose of the local matrix computed by another `BilinearFormIntegrator` |
| LumpedIntegrator | Returns a diagonal local matrix where each entry is the sum of the corresponding row of a local matrix computed by another `BilinearFormIntegrator` (only implemented for square matrices) |
| InverseIntegrator | Returns the inverse of the local matrix computed by another `BilinearFormIntegrator` which produces a square local matrix |
| SumIntegrator | Returns the sum of a series of integrators with compatible dimensions (only implemented for square matrices) |

## Weak Operators and Their Boundary Integrals
Expand Down
5 changes: 3 additions & 2 deletions src/download.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
## Latest Release

[New features](https://github.com/mfem/mfem/blob/v4.8/CHANGELOG)
[New features](https://github.com/mfem/mfem/blob/v4.9/CHANGELOG)
β”Š [Example codes](examples.md)
β”Š [Code documentation](dox.md)
β”Š [Sources](https://github.com/mfem/mfem)

[<button type="button" class="btn btn-success">
**Download mfem-4.8.tgz**
**Download mfem-4.9.tgz**
</button>](https://bit.ly/mfem-4-8)

Please use the GitHub [issue tracker](https://github.com/mfem/mfem/issues)
Expand All @@ -17,6 +17,7 @@ or post [questions](https://github.com/mfem/mfem/issues/new?labels=question) or

**Filename** | **Version** | **Release Date** | **Size** | **[SLOC](https://github.com/AlDanial/cloc)** | **Notes** | **Documentation** |
------------ | ----------- | ----------------- | -------- | -------------------------------------------- | --------- | ----------------- |
[mfem-4.9.tgz](https://bit.ly/mfem-4-9) | v4.9 | Nov 2025 | X.XM | XXXK | | [docs/4.9](https://docs.mfem.org/4.9) |
[mfem-4.8.tgz](https://bit.ly/mfem-4-8) | v4.8 | Apr 2025 | 4.1M | 458K | | [docs/4.8](https://docs.mfem.org/4.8) |
[mfem-4.7.tgz](https://bit.ly/mfem-4-7) | v4.7 | May 2024 | 3.8M | 420K | | [docs/4.7](https://docs.mfem.org/4.7) |
[mfem-4.6.tgz](https://bit.ly/mfem-4-6) | v4.6 | Sep 2023 | 3.6M | 397K | | [docs/4.6](https://docs.mfem.org/4.6) |
Expand Down
17 changes: 17 additions & 0 deletions src/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -2346,7 +2346,23 @@ _This miniapp has only a parallel ([contact-patch-test.cpp](https://github.com/m
<div style="clear:both;"/></div>
<br></div>

<div id="contact" markdown="1">
## Contact miniapp

<a href="../img/gallery/workshop25/contact.mp4" target="_blank">
<img class="floatright" width="250" src="../img/gallery/workshop25/contact.png">
</a>

This [miniapp](https://github.com/mfem/mfem/blob/master/miniapps/contact/contact.cpp) demonstrates how to use MFEM in combination with [Tribol](https://github.com/LLNL/Tribol)
to simulate frictionless contact between deformable solids. The contact gap function and its Jacobian are evaluated using Tribol’s mortar segment-to-segment method (see [Puso and Laursen, 2004](https://doi.org/10.1016/j.cma.2003.10.010)). An **Interior-Point (IP)** optimization solver is used to solve an inequality-constrained minimization problem enforcing a non-penetration condition. Linear systems arising in the IP iterations are solved using **Conjugate Gradient (CG)** preconditioned with the [AMG with Filtering (AMGF)](https://arxiv.org/abs/2505.18576) solver.

Several benchmark problems are provided, including the two-block compression, ironing and beam-sphere tests. These examples illustrate how MFEM and Tribol can be combined to build large-scale scalable simulations of contact mechanics problems.

_This miniapp has only a parallel ([contact.cpp](https://github.com/mfem/mfem/blob/master/miniapps/contact/contact.cpp)) implementation. For more details, please see the documentation in [miniapps/contact/README.md](https://github.com/mfem/mfem/blob/master/miniapps/contact/README.md).
**We recommend viewing Example 2 and the Tribol miniapp before viewing this miniapp.**_

<div style="clear:both;"/></div>
<br></div>

<!-- ------------------------------------------------------------------------- -->

Expand Down Expand Up @@ -2492,6 +2508,7 @@ function update()
+ showElement("spde", (diffusion || nonlocal || stochastic) && h1 && galerkin && amg)
+ showElement("dpgminiapp", (diffusion || convectiondiffusion || maxwell || acoustics || wave) && (group2) && (dpg || amr) && (amg || ams || ads || pcg))
+ showElement("tribol", elasticity && h1 && galerkin && (superlu || minres || jacobi))
+ showElement("contact", elasticity && h1 && galerkin && (pcg || amg))

; // ...end of expression

Expand Down
16 changes: 9 additions & 7 deletions src/howto/findpts.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ a part of the gather-scatter library, [gslib](https://github.com/Nek5000/gslib).
While `findpts` was originally developed for interpolation of grid functions in
`H1` for meshes with quadrilateral or hexahedron elements, `FindPointsGSLIB`
also enables interpolation of functions in `L2, H(div), H(curl)` on meshes with
triangle and tetrahedral elements.
triangle and tetrahedral elements. `FindPointsGSLIB` has also been extended to support surface meshes and effect the functionality on GPUs, and the core methodology is described in [Mittal et al., "General Field Evaluation in High-Order Meshes on GPUs"](https://www.sciencedirect.com/science/article/abs/pii/S0045793025000660).

The key steps of using `FindPointsGSLIB`, as demonstrated in the
[gslib](https://github.com/mfem/mfem/tree/master/miniapps/gslib) miniapps
Expand All @@ -29,7 +29,7 @@ These computational coordinates include the element number
(e<sub>j</sub> in `mfem::Array<int> gsl_elem`) in which the point is found,
the reference-space coordinates (**r**<sub>j</sub> in `mfem::Vector gsl_ref`) inside e<sub>j</sub>,
and the MPI rank that the element is partitioned on (p<sub>j</sub> in `mfem::Array<int> gsl_proc`).
`FindPoints` also returns a code (`mfem::Array<int> gsl_code`) to indicate weather
`FindPoints(xyz)` also returns a code (`mfem::Array<int> gsl_code`) to indicate whether
the point was found inside an element (`gsl_code[j] = 0`), on the edge/face of an
element (`gsl_code[j] = 1`), or not found at all (`gsl_code[j] = 2`) for the case
when the point is located outside the mesh.
Expand All @@ -48,9 +48,9 @@ we use `findpts` only for communicating computational coordinates of each point
across MPI ranks, followed by MFEM's internal methods (`mfem::GridFunction::GetValues`)
for interpolation.

* **Note**, the `FindPointsGSLIB::FreeData()` method must be used before the
program is terminated to free up the memory setup internally by `findpts` during
the `setup` phase.
For custom interpolation (e.g., evaluating strain rate tensor), we have added functions that allow the user to first transfer computational coordinates for each point to ranks that overlap the corresponding point (`DistributePointInfoToOwningMPIRanks()`) and later transfer interpolated values back to ranks where the queries originated from (`DistributeInterpolatedValues()`).

* **Note** All gslib allocations are freed if the `FindPointsGSLIB` object is destroyed before `MPI_Finalize()`. If the object might outlive `MPI_Finalize()`, use `FindPointsGSLIB::FreeData()` to avoid memory leaks.

For convenience, `FindPointsGSLIB` class provides methods such as
`FindPointsGSLIB::Interpolate(mesh, xyz, u, ui)` which combines the three steps
Expand All @@ -59,7 +59,7 @@ interpolation) into a single method. Please see the [class definition](https://g
for more details.

## Application of FindPointsGSLIB
The `gslib` miniapps demonstrate several application of `FindPointsGSLIB`:
The `gslib` miniapps demonstrate several applications of `FindPointsGSLIB`:

* [findpts/pfindpts](https://github.com/mfem/mfem/blob/master/miniapps/gslib/findpts.cpp)
miniapps demonstrate high-order interpolation of a function in `H1`, `L2`, `H(div)`, or `H(curl)` at an
Expand All @@ -81,6 +81,8 @@ at the inter-domain boundaries.

* [cht](https://github.com/mfem/mfem/blob/master/miniapps/navier/navier_cht.cpp)
Navier miniapp demonstrates how a conjugate heat transfer problem can be
solve with the incompressible Navier-Stokes equations and the unsteady heat
solved with the incompressible Navier-Stokes equations and the unsteady heat
equation solved on different grids. Here, `FindPointsGSLIB` is used to
transfer the solution from one mesh to another to couple the two PDEs.

`FindPointsGSLIB` is also used in TMOP-based r-adaptivity miniapps (e.g., [meshing/pmesh-optimizer](https://github.com/mfem/mfem/blob/master/miniapps/meshing/pmesh-optimizer.cpp)) to remap grid functions from the initial mesh to optimized mesh.
2 changes: 1 addition & 1 deletion src/howto/howto-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ by our users in practice.
### Meshes
- [Navigating Mesh Connectivity](nav-mesh-connectivity.md)
- [Parallel Element Numbering](element-local-global-numbering.md)
- [Finding Local Element Coordinates of Physical Points](findpts.md)
- [Finding Local Element Coordinates of Physical Points with FindPointsGSLIB](findpts.md)
- [Working with Nonconforming Meshes for AMR](ncmesh.md)

### Linear Algebra
Expand Down
Binary file added src/img/2000c-Lazarov.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,22 +92,22 @@ See also our [Gallery](gallery.md), [Publications](publications.md), [Videos](vi

Date | Message
------------ | -----------------------------------------------------------------
Nov XX, 2025 | Version 4.9 [released](https://github.com/mfem/mfem/blob/v4.9/CHANGELOG).
Nov 13, 2025 | [Recap](https://computing.llnl.gov/about/newsroom/mfem-workshop-2025) of 2025 workshop.
Oct 8, 2025 | [Postdoc position](https://jobs.smartrecruiters.com/LLNL/3743990009818416-casc-postdoctoral-research-staff-member) on the MFEM team. &nbsp;&nbsp;**[<i class="fa fa-envelope-o"></i>&nbsp;Apply](https://jobs.smartrecruiters.com/LLNL/3743990009818416-casc-postdoctoral-research-staff-member)**
Oct 8, 2025 | [Postdoc position](https://jobs.smartrecruiters.com/LLNL/3743990009818416-casc-postdoctoral-research-staff-member) on the MFEM team. &nbsp;&nbsp;**[<i class="fa fa-envelope-o"></i>&nbsp;Apply](https://jobs.smartrecruiters.com/LLNL/3743990009818416-casc-postdoctoral-research-staff-member)**
Sep 18, 2025 | [PyMFEM](https://github.com/mfem/PyMFEM) version 4.8 [released](https://github.com/mfem/PyMFEM/releases/tag/v_4.8.0).
Sep 10, 2025 | 2025 [MFEM community workshop](workshop.md).
Apr 9, 2025 | Version 4.8 [released](https://github.com/mfem/mfem/blob/v4.8/CHANGELOG).

## Latest Release

[New features](https://github.com/mfem/mfem/blob/v4.8/CHANGELOG)
[New features](https://github.com/mfem/mfem/blob/v4.9/CHANGELOG)
β”Š [Examples](examples.md)
β”Š [Code documentation](dox.md)
β”Š [Sources](https://github.com/mfem/mfem)

[<button type="button" class="btn btn-success">
**Download mfem-4.8.tgz**
</button>](https://bit.ly/mfem-4-8)
**Download mfem-4.9.tgz**
</button>](https://bit.ly/mfem-4-9)

[Older releases](download.md) β”Š [Python wrapper](https://github.com/mfem/PyMFEM) β”Š
[![Launch Colab](https://colab.research.google.com/assets/colab-badge.svg){style="display:inline;margin:0"}](https://colab.research.google.com/github/GLVis/pyglvis/blob/main/examples/ex1.ipynb "Python Jupyter notebook")
Expand Down
1 change: 1 addition & 0 deletions src/news.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

<img width=130px, style="margin:-10px"> | |
------------ | -----------------------------------------------------------------
**Nov XX, 2025** | *Version 4.9 [released](https://github.com/mfem/mfem/blob/v4.9/CHANGELOG).*
**Nov 13, 2025** | *[Recap](https://computing.llnl.gov/about/newsroom/mfem-workshop-2025) of the [2025 Workshop](workshop.md), held on September 10-11.*
**Oct 8, 2025** | *[Postdoc position](https://jobs.smartrecruiters.com/LLNL/3743990009818416-casc-postdoctoral-research-staff-member) on the MFEM team. &nbsp;&nbsp;**[<i class="fa fa-envelope-o"></i>&nbsp;Apply](https://jobs.smartrecruiters.com/LLNL/3743990009818416-casc-postdoctoral-research-staff-member)***
**Sep 18, 2025** | *[PyMFEM](https://github.com/mfem/PyMFEM) version 4.8 [released](https://github.com/mfem/PyMFEM/releases/tag/v_4.8.0)*
Expand Down
Loading