Skip to main content

A supercomputing framework for solving PDEs by hybrid parallelism.

Project description

SOLVCON: a multi-physics software framework for high-fidelity solutions of partial differential equations by hybrid parallelism.

Python is the primary programming language for constructing SOLVCON. Number-crunching is performed by high-speed subroutines written in C. By taking the mixed-language approach, PDE solvers can be rapidly developed and simultaneously utilize hundreds of nodes in a supercomputer by parallel computing. SOLVCON is multi-physics, and stocking numerical algorithms and physical models are ready to be used in the namespace solvcon.kerpak. See or contact the author Yung-Yu Chen for detail.

The default numerical algorithm in SOLVCON is the space-time Conservation Element and Solution Element (CESE) method. The CESE method deliver time-accurate solutions for hyperbolic PDEs.

SOLVCON is free software (for freedom, not price) and released under GPLv2. See or COPYING for the complete license. SOLVCON is still in alpha and subjects to changes. No backward compatibility is guaranteed at current stage.

Key Features

  • Unstructured mesh consisting of mixed elements in two- and three-dimensional space.
  • Use of advanced Message-Passing Interface (MPI) libraries.
  • Automatic distributed-memory parallelization by domain decomposition.
  • Highly modularized solving kernels of PDEs to decouple pthread and CUDA from domain decomposition for hybrid parallelism.
  • Integration to supercomputer (cluster) batch systems: automatic construction of submit scripts.
  • Built-in writers to VTK legacy and XML formats.
  • Built-in communication layer by using socket: working without MPI installed.


The C codes in SOLVCON are intentionally made to be generic shared libraries rather than Python extension modules. SOLVCON uses ctypes to load and call these binary codes. In this way, the binary codes can be flexibly built and optimized for performance. Hence, installing SOLVCON requires building these libraries. SOLVCON uses SCons as the binary builder.

For SOLVCON to be built and run, it requires the following packages: (i) Python 2.6, (ii) SCons, (iii) a C compiler, gcc or icc is OK, (iv) Numpy, and (v) METIS for graph partitioning (SOLVCON will download it for you on building). If you want to run the unit tests after building SOLVCON, you should also install Nose. It is recommended to run SOLVCON on 64-bits Linux for high-resolution simulations.

Procedures to install are:

  1. First, obtain the latest release from . Unpack the source tarball. Assume $SCSRC indicates the root directory of unpacked source tree.

  2. Get into the source tree and run SCons to build the binary codes:

    $ cd $SCSRC
    $ scons --download --extract --apply-patches=metislog2
  3. Install everything:

    $ python install

The option --download used above asks the building script to download necessary external packages, e.g., METIS, from Internet. Option --extract extracts the downloaded packages. Since METIS is incompatible to the current release of gcc, a patch is supplied with SOLVCON and can be automatically applied to the downloaded METIS source with the --apply-patches option.

If you want to rebuild the binary after the installation, you can run:

$ cd $SCSRC
$ scons
$ python install

without using the options --download, --extract, and --apply-patches. If you want a clean rebuild, run scons -c before scons.

Optionally, if you have Nose installed, you can run:

$ nosetests

for unit tests. Every test should pass, except something specific to cluster batch systems could be skipped (indicated by S).

How to Use

To be written.

Project details

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page