# Mathematica

Mathematica is a technical computing environment and programming language with strong symbolic and numerical abilities.

## Batch Submission

Unfortunately, it is not possible to run Mathematica notebook .nb files directly in batch. Instead, you need to create a simple text file that contains all of the Mathematica commands you want to execute. Typically, such files are given the extension .m. Let’s run the following simple Mathematica script as a batch job.

```
(*Find out what version of Mathematica this machine is running*)
Print["Mathematica version is " <> $Version]
(*Find out the name of the machine we are running on*)
Print["The machine name is " <> $MachineName]
(*Do a calculation*)
Print["The result of the integral is "]
Print [ Integrate[Sin[x]^2, x]]
```

Copy and paste the above into a text file called `very_simple_mathematica.m`

An example batch submission script for this file is

```
#!/bin/bash
# Request 4 gigabytes of real memory
#SBATCH --mem=4G
#SBATCH --mail-user=a.person@sheffield.ac.uk
#SBATCH --mail-type=ALL
module load Mathematica/13.2.1
math -script very_simple_mathematica.m
```

Copy and paste the above into a file called `run_job.sh`

and submit with

```
sbatch run_job.sh
```

Once the job has successfully completed, the output will be in a file named like `slurm-4835.out`

. The number at the end refers to the job-ID given to this job by the system and will be different for you. The contents of this file is

```
more slurm-4835.out
Mathematica version is 13.2.1 for Linux x86 (64-bit) (January 27, 2023)
The machine name is node301
The result of the integral is
x/2 - Sin[2*x]/4
```

## GUI Usage

To use Mathematica in GUI mode you will need to be in a flight graphical session on Stanage and start a terminal inside of the flight session.

Load both the Mathematica and QT modules (Mathematica requires the Qt framework/library to create its graphical user interface). To start the IDE you will need to type `Mathematica`

.

```
#load the necessary modules
module load Mathematica/13.2.1
module load Qt5/5.15.7-GCCcore-12.2.0
#Start Mathematica in GUI mode
Mathematica
```

## Installation notes

These are primarily for administrators of the system.

Set the the University network Mathematica license in `/opt/apps/testapps/common/easybuild/hooks/default.py`

.

Download the Mathematica package, Mathematica_13.2.1_LINUX.sh, from Wolfram.

```
mkdir -p /opt/apps/testapps/media/eb-srcs/m/Mathematica/
mv Mathematica_13.2.1_LINUX.sh /opt/apps/testapps/media/eb-srcs/m/Mathematica/
```

Mathematica was installed using Easybuild 4.7.0, build details can be found in `$EBDEVELMATHEMATICA`

Testing was performed using the above examples.