# Feel++

## Evaluating function

Once you have created an element, you may want to give it a value, that can depends on a lot of parameters ( mainly spaces, but others may apply ).

To do so, Feel++ relies on expressions. We may use various kind of expressions :

### Built-in

Let’s begin with the evaluation of the expression sin(\pi x) on a unit circle.

First at all, we define the unit circle and its function space :

``Unresolved directive in 05-EvaluatingFunctions.adoc - include::../../../codes/05-myexporter.cpp[tags=meshspace]``

Then the expression we would like to evaluate :

``Unresolved directive in 05-EvaluatingFunctions.adoc - include::../../../codes/05-myexporter.cpp[tags=expr]``

`Px()` refers to the variable x of our space.

With this,we can `project` it on our function space :

``Unresolved directive in 05-EvaluatingFunctions.adoc - include::../../../codes/05-myexporter.cpp[tags=project]``

The expression will be evaluated on each point of our mesh.

In order to visualize the result, we create an exporter, named `exhi`, and add to it the projection.

``Unresolved directive in 05-EvaluatingFunctions.adoc - include::../../../codes/05-myexporter.cpp[tags=project]``

#### Code

``Unresolved directive in 05-EvaluatingFunctions.adoc - include::../../../codes/05-myexporter.cpp[tags=all]``

The list of the Feel++ Keyword is here.

### Hard Coded

In this second method, we will use Functor :

``Unresolved directive in 05-EvaluatingFunctions.adoc - include::../../../codes/myfunctor.cpp[tags=functor]``

We create a unit square meshed by triangles and we define the associated function space :

``Unresolved directive in 05-EvaluatingFunctions.adoc - include::../../../codes/myfunctor.cpp[tags=meshspace]``

From this space, we can define two elements, here one equals to the variable x and the other to the variable y, obtain from `Functor` class.

``Unresolved directive in 05-EvaluatingFunctions.adoc - include::../../../codes/myfunctor.cpp[tags=elements]``

The data exportation is the final step to visualize our expression x and y on the defined mesh.

``Unresolved directive in 05-EvaluatingFunctions.adoc - include::../../../codes/myfunctor.cpp[tags=exporter]``

#### Code

The complete code reads as follows

``Unresolved directive in 05-EvaluatingFunctions.adoc - include::../../../codes/myfunctor.cpp[tags=all]``

The list of the Feel++ Keyword is here.