Περιγραφή¶
openEMS is a free and open electromagnetic field solver using the FDTD method. Matlab or Octave are used as an easy and flexible scripting interface.
openEMS 0.0.35¶
Παράδειγμα χρήσης¶
Η εφαρμογή openEMS
μπορεί να τρέξει απευθείας ως εξής:
# module load openEMS
# openEMS
ή μέσω του matlab για παράδειγμα ως εξής:
# module load openEMS
# matlab -nodisplay
>> addpath('/mnt/apps/prebuilt/openEMS/0.0.35/share/openEMS/matlab')
>> addpath('/mnt/apps/prebuilt/openEMS/0.0.35/share/CSXCAD/matlab')
>> RunOpenEMS( '.', 'nonexistant.xml', '' )
Το script υποβολής της εργασίας θα έχει την ακόλουθη μορφή:
SLURM submission script
#!/bin/bash
#SBATCH -J openEMS-0.0.35-case
#SBATCH -p batch
#SBATCH -t 15:00
#### load module ####
module load openEMS
#### RUN MATLAB JOB ####
echo "Starting Matlab"
matlab -nodisplay << EOF &> matlab-openems.out
parallel_plate_waveguide
exit
EOF
Για το συγκεκριμένο παράδειγμα θα χρησιμοποιήσουμε το M-file: parallel_plate_waveguide.m που είναι βασισμένο σε ένα από τα παραδείγματα της εφαρμογής (Tutorial: Parallel Plate Waveguide.
Στο $HOME
μας στο login node, δημιουργούμε ένα νέο φάκελο όπου τοποθετούμε τα αρχεία εισόδου, το script υποβολής της εργασίας, έστω openems-0.0.35-case.sh και τον κώδικα που θα τρέξουμε (εδώ το αρχείο parallel_plate_waveguide.m).
# mkdir openems-0.0.35-case
# cd openems-0.0.35-case
Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh>
ως εξής:
# sbatch openems-0.0.35-case.sh
Παρακολουθούμε με την εντολή squeue
την εξέλιξη της εργασίας.
Eφόσον η εργασία έχει εκκινήσει μπορούμε να ελέγχουμε την πρόοδο της επίλυσης μέσω των αρχείων εξόδου. Π.χ.:
# cat slurm-*.out
# tail -f matlab-openems.out
Μόλις η εργασία ολοκληρωθεί, μπορούμε να δούμε ότι στον φάκελο υποβολής έχει παραχθεί το directory tmp
που περιλαμβάνει τα αρχεία εξόδου.
Μπορούμε να δούμε τα περιεχόμενά του, για παράδειγμα ως εξής:
# ls tmp