dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #01950
Re: Anonymous classes in Function definitions
> I just realized that there is a nice way to simplify the definition of
> Functions and BoundaryConditions. The typical way to create a Function
> (and similarly for BoundaryCondition) is to make a subclass of
> Function and then create an object of that class:
>
> class MyFunction : public Function
> {
> real eval(const Point& p, unsigned int i)
> {
> return p.x * sin(p.y);
> }
> };
>
> MyFunction f;
>
> A simpler way to do this is to create an anonymous class and directly
> initialize the Function. That way, you save a line of code and you
> don't have to come up with a name for the class:
>
> class : public Function
> {
> real eval(const Point& p, unsigned int i)
> {
> return p.x * sin(p.y);
> }
> } f;
>
> Also note that you can do this inside functions and other classes, so
> it's straightforward to create a new Function anywhere in the
> code. See new convection-diffusion demo for an illustration.
>
> Nice.
Very nice.
/Johan
References