Skip to content
Snippets Groups Projects
comsol-multiphysics.md 5.03 KiB
Newer Older
Lukáš Krupčík's avatar
Lukáš Krupčík committed
# COMSOL Multiphysics
David Hrbáč's avatar
David Hrbáč committed

## Introduction
Lukáš Krupčík's avatar
Lukáš Krupčík committed

[COMSOL](http://www.comsol.com) is a powerful environment for modelling and solving various engineering and scientific problems based on partial differential equations. COMSOL is designed to solve coupled or multiphysics phenomena. For many
Lukáš Krupčík's avatar
Lukáš Krupčík committed
standard engineering problems COMSOL provides add-on products such as electrical, mechanical, fluid flow, and chemical
applications.

Lukáš Krupčík's avatar
Lukáš Krupčík committed
* [Structural Mechanics Module](http://www.comsol.com/structural-mechanics-module),
* [Heat Transfer Module](http://www.comsol.com/heat-transfer-module),
* [CFD Module](http://www.comsol.com/cfd-module),
* [Acoustics Module](http://www.comsol.com/acoustics-module),
* and [many others](http://www.comsol.com/products)
Lukáš Krupčík's avatar
Lukáš Krupčík committed

COMSOL also allows an interface support for equation-based modelling of partial differential equations.

David Hrbáč's avatar
David Hrbáč committed
## Execution

Lukáš Krupčík's avatar
Lukáš Krupčík committed
On the Anselm cluster COMSOL is available in the latest stable version. There are two variants of the release:

Lukáš Krupčík's avatar
Lukáš Krupčík committed
* **Non commercial** or so called **EDU variant**, which can be used for research and educational purposes.
* **Commercial** or so called **COM variant**, which can used also for commercial activities. **COM variant** has only subset of features compared to the **EDU variant** available. More about licensing will be posted here soon.
Lukáš Krupčík's avatar
Lukáš Krupčík committed

To load the of COMSOL load the module

```bash
Lukáš Krupčík's avatar
Lukáš Krupčík committed
    $ module load comsol
Lukáš Krupčík's avatar
Lukáš Krupčík committed
```

By default the **EDU variant** will be loaded. If user needs other version or variant, load the particular version. To obtain the list of available versions use

```bash
Lukáš Krupčík's avatar
Lukáš Krupčík committed
    $ module avail comsol
Lukáš Krupčík's avatar
Lukáš Krupčík committed
```

If user needs to prepare COMSOL jobs in the interactive mode it is recommend to use COMSOL on the compute nodes via PBS Pro scheduler. In order run the COMSOL Desktop GUI on Windows is recommended to use the Virtual Network Computing (VNC).
Lukáš Krupčík's avatar
Lukáš Krupčík committed

```bash
    $ xhost +
    $ qsub -I -X -A PROJECT_ID -q qprod -l select=1:ncpus=16
    $ module load comsol
    $ comsol
```

To run COMSOL in batch mode, without the COMSOL Desktop GUI environment, user can utilized the default (comsol.pbs) job script and execute it via the qsub command.

```bash
#!/bin/bash
#PBS -l select=3:ncpus=16
#PBS -q qprod
#PBS -N JOB_NAME
Lukáš Krupčík's avatar
Lukáš Krupčík committed
#PBS -A PROJECT_ID
Lukáš Krupčík's avatar
Lukáš Krupčík committed

cd /scratch/$USER/ || exit

echo Time is `date`
echo Directory is `pwd`
echo '**PBS_NODEFILE***START*******'
cat $PBS_NODEFILE
echo '**PBS_NODEFILE***END*********'

text_nodes < cat $PBS_NODEFILE

module load comsol
# module load comsol/43b-COM

ntask=$(wc -l $PBS_NODEFILE)

comsol -nn ${ntask} batch -configuration /tmp –mpiarg –rmk –mpiarg pbs -tmpdir /scratch/$USER/ -inputfile name_input_f.mph -outputfile name_output_f.mph -batchlog name_log_f.log
```

Working directory has to be created before sending the (comsol.pbs) job script into the queue. Input file (name_input_f.mph) has to be in working directory or full path to input file has to be specified. The appropriate path to the temp directory of the job has to be set by command option (-tmpdir).

David Hrbáč's avatar
David Hrbáč committed
## LiveLink for MATLAB
David Hrbáč's avatar
David Hrbáč committed
COMSOL is the software package for the numerical solution of the partial differential equations. LiveLink for MATLAB allows connection to the COMSOL API (Application Programming Interface) with the benefits of the programming language and computing environment of the MATLAB.
Lukáš Krupčík's avatar
Lukáš Krupčík committed

LiveLink for MATLAB is available in both **EDU** and **COM** **variant** of the COMSOL release. On Anselm 1 commercial (**COM**) license and the 5 educational (**EDU**) licenses of LiveLink for MATLAB (please see the [ISV Licenses](../isv_licenses/)) are available.
Lukáš Krupčík's avatar
Lukáš Krupčík committed
Following example shows how to start COMSOL model from MATLAB via LiveLink in the interactive mode.

```bash
$ xhost +
$ qsub -I -X -A PROJECT_ID -q qexp -l select=1:ncpus=16
$ module load matlab
$ module load comsol
$ comsol server matlab
```

At the first time to launch the LiveLink for MATLAB (client-MATLAB/server-COMSOL connection) the login and password is requested and this information is not requested again.

To run LiveLink for MATLAB in batch mode with (comsol_matlab.pbs) job script you can utilize/modify the following script and execute it via the qsub command.

```bash
#!/bin/bash
#PBS -l select=3:ncpus=16
#PBS -q qprod
#PBS -N JOB_NAME
Lukáš Krupčík's avatar
Lukáš Krupčík committed
#PBS -A PROJECT_ID
Lukáš Krupčík's avatar
Lukáš Krupčík committed

cd /scratch/$USER || exit

echo Time is `date`
echo Directory is `pwd`
echo '**PBS_NODEFILE***START*******'
cat $PBS_NODEFILE
echo '**PBS_NODEFILE***END*********'

text_nodes < cat $PBS_NODEFILE

module load matlab
module load comsol/43b-EDU

ntask=$(wc -l $PBS_NODEFILE)

comsol -nn ${ntask} server -configuration /tmp -mpiarg -rmk -mpiarg pbs -tmpdir /scratch/$USER &
cd /apps/engineering/comsol/comsol43b/mli
matlab -nodesktop -nosplash -r "mphstart; addpath /scratch/$USER; test_job"
```

Lubomir Prda's avatar
Lubomir Prda committed
This example shows, how to run LiveLink for MATLAB with following configuration: 3 nodes and 16 cores per node. Working directory has to be created before submitting (comsol_matlab.pbs) job script into the queue. Input file (test_job.m) has to be in working directory or full path to input file has to be specified. The MATLAB command option (-r ”mphstart”) created a connection with a COMSOL server using the default port number.