---
name: "compose"
section: "4rheolef"
platform: "linux"
package: "librheolef-dev"
version: "7.0-2+b1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/compose/4rheolef"
---

# compose(4rheolef)

a n-ary function with n fields

## NAME

**compose** - a n-ary function with n fields

## DESCRIPTION

Compose a n-ary function f with n fields.

```
        geo omega ("circle");
        space Xh (omega, "P1");
        field uh (Xh, 1.0);
        field vh = interpolate (compose(f,uh));

```

The **compose** operator could be used in all non-linear expressions involved in either the **interpolate** or the **integrate** functions (see interpolate(4) and integrate(4)). The **f** function could be either a usual function or a functor.

## CHARACTERISTIC

The **compose** function supports also the characteristic algorithm (see characteristic(2)) used for convection.

```
        characteristic X (-delta_t*uh);
        test v (Xh);
        field lh = integrate (compose(uh,X)*v);

```

## IMPLEMENTATION

The n-arity bases on the variadic template feature of the 2011 c++ normalisation. When this feature is not available, only unary and binary functions are supported.

## SEE ALSO

interpolate(4), integrate(4), characteristic(2)

## COPYRIGHT

Copyright (C) 2000-2018 Pierre Saramito \<Pierre.Saramito@imag.fr\> GPLv3+: GNU GPL version 3 or later \<http://gnu.org/licenses/gpl.html\>. This is free software: you are free to change and redistribute it.  There is NO WARRANTY, to the extent permitted by law.
