Getting Started

The JCMsuite Python interface is implemented as a module named jcmwave, which you find in the sub-folder ThirdPartySupport/Python relative to the JCMsuite installation directory (here called JCMROOT).

Note

The JCMsuite package contains a full Python 3.10 distribution including the packages NumPy/Scipy [1] and MatplotLib [2].

To start the Python interpreter delivered with JCMsuite, run the executable python placed in the sub-folder ThirdPartySupport/Python/bin. The jcmwave module can be imported since the python module search path has been configured accordingly. Use the command info from the jcmwave module to check your installation

import jcmwave

jcmwave.info()

This will give details on the status of your JCMsuite installation, e.g., the JCMsuite version in use, license information and system properties such as the number of available CPU cores.

The entire Python interface consists of the following routines:

All routines provide detailed online help, e.g., use

help(jcmwave.solve)

to obtain help on jcmwave.solve.

Using your own Python interpreter

When you wish to use your own Python interpreter, make sure that the package NumPy is available. The tutorial examples in the next sections use the Matplotlib package when plotting the results.

To use the JCMsuite Python interface module jcmwave it is required to add the path ThirdPartySupport/Python to the python search path. This can be done by setting the environment variable PYTHONPATH accordingly before starting the interpreter. Alternatively, the python search path can be updated within Python before importing the module jcmwave:

import sys
import os

jcm_root = <JCMROOT> # -> set your JCMROOT installation directory
sys.path.append(os.path.join(jcm_root, 'ThirdPartySupport', 'Python'))

Or, when the environmental variable JCMROOT is set, e.g., on Windows:

import sys
import os

sys.path.append(os.path.join(os.getenv('JCMROOT'), 'ThirdPartySupport', 'Python'))

Use the command info to check that the Python interface is now properly available:

import sys
import os

jcm_root = <JCMROOT> # -> set your JCMROOT installation directory

# now import jcmwave
import jcmwave

# call jcmwave.info to check the JCMsuite installation
jcmwave.info()
[1]NumPy is the fundamental package needed for scientific computing with Python. SciPy is open-source software for mathematics, science, and engineering. NumPy and Scipy are licensed under the BSD license. (http://scipy.org/) For license details see also Legal information (search for Matplotlib).
[2]Matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. http://matplotlib.sourceforge.net. The license of Matplotlib is based on the PSF license, see http://matplotlib.sourceforge.net/users/license.html. Matplotlib is linked against the antigrain C++ rendering engine (version 2.4), the Olson tz database in Python (pytz), and the dateutil library. For license details see also Legal information (search for Matplotlib).