# Pointwise evaluation of functions and UFL expressions in fenicsx

I would like to know what the best (computational efficient) methods

are to evaluate functions and UFL expressions for specific points.

The reason for this post is that I did not find a (straightforward) solution in other posts that would cover the following case: Evaluate a function (or UFL expression) for a **subset of integration points** chosen among the integration points of the (full) FE mesh.

Context: This kind of operation is necessary in Empirical Cubature Methods(ECM).

## Existing methods

### function.eval

As described in the dolfinx-tutorial one can use the `eval`

method of a `function`

given `points`

and the `cells`

containing those points.

In another post in this forum @dokken commented that this might not be the most performant approach.

### dolfinx.fem.Expression

Using dolfinx.fem.Expression allows to evaluate an UFL expression at a set of pre-defined points on the reference cell.

After definition of the `dolfinx.fem.Expression`

one would call its `eval`

method to evaluate the expression in given `cells`

.

In the context of ECM, this does not seem to help, because I would not want to evaluate at the *same* integration point(s) in each cell.

## Question

- What would be the best way to approach this?
- Would a solution involving
`dolfinx.fem.Expression`

make sense? (Given a mapping from integration point to cell containing this point, one could create several expressions … up to N expressions if N is the number of integration points.)

Best,

Philipp