# Evalute derivative of a function

I've got a function defined on a 2D array. I compute the spacial derivative of this function

by using the "dx(i)" function from FEniCS. It works.

But I further have to evalute the derivative function on a certain mesh point. How can I do that? I tried the

"eval" function but I did not succeed. I'm not sure if "eval" is the right function here.

Here is an example

mesh = Rectangle(

V = FunctionSpace(mesh, "CG", 2)

c = Function(V)

deriv_c = c.dx

# I like to get "deriv_c" at mesh point (0.1,0.1)

cord = [0.1, 0.1]

deriv_c.

Thanks for any help!

## Question information

- Language:
- English Edit question

- Status:
- Solved

- For:
- DOLFIN Edit question

- Assignee:
- No assignee Edit question

- Solved by:
- Jan Blechta

- Solved:
- 2013-03-21

- Last query:
- 2013-03-21

- Last reply:
- 2013-03-21

Jan Blechta (blechta) said : | #1 |

c.dx is UFL expression - so you need to project it to some Function (DG1 would be appropriate here) and use eval on it.

Vd = FunctionSpace(mesh, "DG", 1)

deriv_c = project(c.dx, Vd)

Second option is to use ufl.expr.

Jan

Melanie Jahny (melanie-jahny) said : | #2 |

Thanks you, Jan, for your helpful advices. The projection works well.

But unfortunately I did not succeed in applying the eval function.

I don't understand which arguments it needs, if the coordinates

where I want to evaluate deriv_c are (0.5, 0.1) for example.

I tried:

mesh = Rectangle(

V = FunctionSpace(mesh, "CG", 2)

c = Function(V)

Vd = FunctionSpace(mesh, "DG", 1)

deriv_c = project(c.dx(0), Vd)

cords = np.array([0.5, 0.1])

values = np.array([])

deriv_c.

Jan Blechta (blechta) said : | #3 |

On Thu, 21 Mar 2013 16:56:08 -0000

Melanie Jahny <email address hidden> wrote:

> Question #224828 on DOLFIN changed:

> https:/

>

> Status: Answered => Open

>

> Melanie Jahny is still having a problem:

> Thanks you, Jan, for your helpful advices. The projection works well.

> But unfortunately I did not succeed in applying the eval function.

> I don't understand which arguments it needs, if the coordinates

> where I want to evaluate deriv_c are (0.5, 0.1) for example.

> I tried:

>

> mesh = Rectangle(

> V = FunctionSpace(mesh, "CG", 2)

> c = Function(V)

> Vd = FunctionSpace(mesh, "DG", 1)

> deriv_c = project(c.dx(0), Vd)

>

> cords = np.array([0.5, 0.1])

> values = np.array([])

> deriv_c.

>

values shape needs to correspond with deriv_c value shape:

values = np.array([0.0])

Melanie Jahny (melanie-jahny) said : | #4 |

Thanks a lot, it works!

Johan Hake (johan-hake) said : | #5 |

On 03/21/2013 05:56 PM, Melanie Jahny wrote:

> Question #224828 on DOLFIN changed:

> https:/

>

> Status: Answered => Open

>

> Melanie Jahny is still having a problem:

> Thanks you, Jan, for your helpful advices. The projection works well.

> But unfortunately I did not succeed in applying the eval function.

> I don't understand which arguments it needs, if the coordinates

> where I want to evaluate deriv_c are (0.5, 0.1) for example.

> I tried:

>

> mesh = Rectangle(

> V = FunctionSpace(mesh, "CG", 2)

> c = Function(V)

> Vd = FunctionSpace(mesh, "DG", 1)

> deriv_c = project(c.dx(0), Vd)

>

> cords = np.array([0.5, 0.1])

> values = np.array([])

> deriv_c.

Try:

deriv_c(0.5, 0.1)

Johan

Melanie Jahny (melanie-jahny) said : | #6 |

That also works, thank you!

I tried that in my first tests, but without the projection

onto V_d I always got errors. But it is really an easy solution.

thank you.