(sec:run-aspect:parameters-overview:muparser-format)=
# A note on the syntax of formulas in input files
Input files have different ways of describing certain things to
ASPECT. For example, you could select a plugin for
the temperature initial values that prescribes a constant temperature, or a
plugin that implements a particular formula for these initial conditions in
C++ in the code of the plugin, or a plugin that allows you to describe this
formula in a symbolic way in the input file (see
{ref}`parameters:Initial_20temperature_20model`). An example
of this latter case is this snippet of code discussed in
{ref}`sec:cookbooks:convection_box_3d`:
```{literalinclude} ../../cookbooks/cookbooks/convection_box_3d/doc/initial.part.prm
```
The formulas you can enter here need to use a syntax that is understood by the
functions and classes that interpret what you write. Internally, this is done
using the muparser library, see . The syntax
is mostly self-explanatory in that it allows you to use the usual symbols `x`, `y`
and `z` to reference coordinates (unless a particular plugin uses different
variables, such as the depth), the symbol `t` for time in many situations, and
allows you to use all of the typical mathematical functions such as sine and
cosine. Based on the muparser library, deal.II supports additional functions,
including `|` (the logical OR), `&` (the logical AND), `int()`, `ceil()`,
`floor()`, `cot()`, `csc()`, `sec()`, `pow()`, `log()`, `erfc()`, `rand()`,
and `rand_seed()`. For more detailed information, see
.
A common need for function expression is an if-else-statement, for example
"if $1