# MATC

Elmer uses MATC to evaluate mathematical expressions in the Solver Input Files. Also ElmerPost includes MATC.

MATC was written by Juha Ruokolainen.

You can find the official manual at http://www.nic.funet.fi/pub/sci/physics/elmer/doc/MATCManual.pdf

## Contents

## Using MATC

### Embedding in sif files

There are two options for embedding MATC in Solver Input Files. Variables can be defined as

gravity = Real $ 0 0 -1 *9.81 ! evaluation at program start

Which would be evaluated once at program start. or by

gravity = Real MATC 0 0 -1 * 9.81 ! evaluation at every use

which is evaluated every time the gravity variable is used.

### Calling MATC from the command line

MATC can be called from the command line by calling `$ELMER_HOME/bin/matc`. Under Unix/Linux this should be part of your `$PATH` and calling `matc` should suffice.

To quit using command line MATC type ` quit `.

## Operator Precedence

The mathematical operations are evaluated from high to low precedence and within each level from left to right (everything as usual).

The most important operators ordered from high to low precedence:

() (parentheses) ' ' (SPACE as a separator for vector components) ^ (power) */ +-

A full list can be found in the MATC Manual.

### Scalars and Vectors

Vectors in MATC are written by separating their entries with spaces. Since the space forming vectors has a higher precedence than the algebraic operations

min(3*4 2) = min(12 6) = 6

while

min((3*4) 2) = min(12 2) = 2

this can lead to strange behavior of boundary conditions if the parentheses are forgotten.