# Lagrange interpolation with Fenicsx?

**URL:** <https://fenicsproject.discourse.group/t/lagrange-interpolation-with-fenicsx/9224>\
**Category:** dolfinx\
**Created:** [September 6, 2022, 8:28am UTC](https://fenicsproject.discourse.group/t/lagrange-interpolation-with-fenicsx/9224 "2022-09-06T08:28:35Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![FenicsUser1](https://avatars.discourse-cdn.com/v4/letter/f/7bcc69/32.png) [@FenicsUser1](https://fenicsproject.discourse.group/u/FenicsUser1)\
**Post date:** [September 6, 2022, 8:28am UTC](https://fenicsproject.discourse.group/t/lagrange-interpolation-with-fenicsx/9224/1 "2022-09-06T08:28:35Z")

</div>

Is it possible to perform Lagrange interpolation with Fenicsx?

---

<div class="post-metadata">

**Author:** ![dokken](https://yyz2.discourse-cdn.com/free1/user_avatar/fenicsproject.discourse.group/dokken/32/1560_2.png) [@dokken](https://fenicsproject.discourse.group/u/dokken)\
**Post date:** [September 6, 2022, 8:32am UTC](https://fenicsproject.discourse.group/t/lagrange-interpolation-with-fenicsx/9224/2 "2022-09-06T08:32:04Z")

</div>

This is a very general question. As FEniCSx uses numpy to store arrays, you can easily use [scipy.interpolate.lagrange — SciPy v1.9.1 Manual](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.lagrange.html) to do lagrange interpolation of your data.

---

<div class="post-metadata">

**Author:** ![FenicsUser1](https://avatars.discourse-cdn.com/v4/letter/f/7bcc69/32.png) [@FenicsUser1](https://fenicsproject.discourse.group/u/FenicsUser1)\
**Post date:** [September 6, 2022, 8:36am UTC](https://fenicsproject.discourse.group/t/lagrange-interpolation-with-fenicsx/9224/3 "2022-09-06T08:36:44Z")

</div>

Thank you for the quick answer. How do I access the numpy array for a `<class 'dolfinx.fem.function.Function'>`?

---

<div class="post-metadata">

**Author:** ![dokken](https://yyz2.discourse-cdn.com/free1/user_avatar/fenicsproject.discourse.group/dokken/32/1560_2.png) [@dokken](https://fenicsproject.discourse.group/u/dokken)\
**Post date:** [September 6, 2022, 9:51am UTC](https://fenicsproject.discourse.group/t/lagrange-interpolation-with-fenicsx/9224/4 "2022-09-06T09:51:37Z")

</div>

```python
u = dolfinx.fem.Function(V)
print(u.x.array)

```

---

<div class="post-metadata">

**Author:** ![FenicsUser1](https://avatars.discourse-cdn.com/v4/letter/f/7bcc69/32.png) [@FenicsUser1](https://fenicsproject.discourse.group/u/FenicsUser1)\
**Post date:** [September 6, 2022, 11:08am UTC](https://fenicsproject.discourse.group/t/lagrange-interpolation-with-fenicsx/9224/5 "2022-09-06T11:08:24Z")

</div>

Do you also have a page for lagrange multipliers? Or is there a function for lagrange multipliers in fenicsx?

---

<div class="post-metadata">

**Author:** ![dokken](https://yyz2.discourse-cdn.com/free1/user_avatar/fenicsproject.discourse.group/dokken/32/1560_2.png) [@dokken](https://fenicsproject.discourse.group/u/dokken)\
**Post date:** [September 6, 2022, 11:11am UTC](https://fenicsproject.discourse.group/t/lagrange-interpolation-with-fenicsx/9224/6 "2022-09-06T11:11:47Z")

</div>

Lagrange multipliers (in real spaces) are under development, see:

> <https://github.com/FEniCS/dolfinx/issues/225>
>
> Snippet
> \`\`\`python
> import dolfin
> mesh = dolfin.UnitSquareMesh(dolfin.MPI.comm\_…world, 2, 2)
> dolfin.FunctionSpace(mesh, ("Real", 0)).dofmap().dofs(mesh, 2)
> \`\`\`
> returns
> \`\`\`python
> array(\[0, 1, 2, 3, 4, 5, 6, 7\], dtype=int32)
> \`\`\`
> but should return (as in 2018.1.0)
> \`\`\`python
> array(\[0, 0, 0, 0, 0, 0, 0, 0\], dtype=int32)
> \`\`\`
> 
> In other words, \`Real\` works now as \`DG0\`, having one scalar per each cell, instead of one scalar per whole domain.

For other Lagrange multipliers (say P-1), you need to write up your variational form using UFL syntax.
