Solvers of Conservation Laws

SOLVCON is a collection of Python-based conservation-law solvers that use the space-time Conservation Element and Solution Element (CESE) method [Chang95]. SOLVCON targets at solving problems that can be formulated as a system of first-order, linear or non-linear partial differential equations (PDEs) [Lax73]:

\dpd{\bvec{u}}{t}
+ \sum_{k=1}^3 \mathrm{A}^{(k)}(\bvec{u})\dpd{\bvec{u}}{x_k}
= \bvec{s}(\bvec{u})

where \bvec{u} is the unknown vector, \mathrm{A}^{(1)}, \mathrm{A}^{(2)}, and \mathrm{A}^{(3)} the Jacobian matrices, and \bvec{s} the source term. SOLVCON is designed to be a software framework to house various solvers. The design of SOLVCON is discussed in [Chen11].

Install

Please use the development version in the Mercurial repository:

hg clone https://bitbucket.org/solvcon/solvcon

Prerequisites

Like many scientific packages, SOLVCON has a lot of dependencies: gcc 4.3+, SCons 2+, Python 2.7, Cython 0.16+, Numpy 1.5+, LAPACK, NetCDF 4+, SCOTCH 6.0+, Nose 1.0+, gmsh 2.5+, VTK 5.6+. Building document requires: pygraphviz 1.1+, Sphinx 1.1.2+, Sphinxcontrib issue tracker 0.11.

The hard way to install the dependencies is to build them manually, but SOLVCON has a $SCSRC/ground/ directory that provides scripts for some help:

cd $SCSRC/ground
../contrib/get
make all
source $SCSRC/opt/etc/scvars.sh

A directory $SCSRC/opt will be created to hold the built binaries. The last line will enable the runtime environment, and also export SCROOT=$SCSRC/opt. If we don’t even have a compatible gcc, the $SCSRC/soil/ directory can help:

cd $SCSRC/soil
../contrib/get
make
source $SCSRC/opt/etc/scgccvars.sh

$SCROOT/etc/scvars.sh and $SCROOT/etc/scgccvars.sh can be separately sourced. The two sets of packages reside in different directories and do not mix with each other nor system software.

With a package management system, life can be easier. On Debian jessie, the following command will install the dependencies:

sudo apt-get install build-essential gcc gfortran scons \
liblapack-pic liblapack-dev libnetcdf-dev libnetcdfc7 netcdf-bin \
libscotch-dev libscotchmetis-dev libscotch-5.1 \
python2.7 python2.7-dev cython python-numpy python-nose gmsh python-vtk \
python-pygraphviz python-sphinx python-sphinxcontrib.issuetracker \
mercurial

and on Ubuntu 12.04LTS please use:

sudo apt-get install build-essential gcc gfortran scons \
liblapack-pic liblapack-dev libnetcdf-dev libnetcdf6 netcdf-bin \
libscotch-dev libscotchmetis-dev libscotch-5.1 \
python2.7 python2.7-dev cython python-numpy python-nose gmsh python-vtk \
python-pygraphviz python-sphinx python-sphinxcontrib.issuetracker \
mercurial

Note

On Debian 6.x (squeeze), you need also apt-get install python-profiler for the Python built-in profiler.

Build

The binary part of SOLVCON should be built with SCons:

cd $SCSRC
scons

The source tarball supports distutils and can be built alternatively:

python setup.py build_ext --inplace

SOLVCON is designed to work without explicit installation. Setting the environment variables $PATH and $PYTHONPATH is sufficient.

Run Tests

Tests should be run with Nose:

nosetests

in the project root directory $SCSRC. Another set of tests are collected in $SCSRC/ftests/ directory, and can be run with:

nosetests ftests/*

Some tests in $SCSRC/ftests/ involve remote procedure call (RPC) that uses ssh, so you need to set up the public key authentication of ssh.

Appendices

Other Resources

  • Papers and presentations:
  • The CESE method:
    • The CE/SE working group: http://www.grc.nasa.gov/WWW/microbus/
    • The CESE research group at OSU: http://cfd.solvcon.net/research.html
    • Selected papers:
      • Sin-Chung Chang, “The Method of Space-Time Conservation Element and Solution Element – A New Approach for Solving the Navier-Stokes and Euler Equations”, Journal of Computational Physics, Volume 119, Issue 2, July 1995, Pages 295-324. doi: 10.1006/jcph.1995.1137
      • Xiao-Yen Wang, Sin-Chung Chang, “A 2D Non-Splitting Unstructured Triangular Mesh Euler Solver Based on the Space-Time Conservation Element and Solution Element Method”, Computational Fluid Dynamics Journal, Volume 8, Issue 2, 1999, Pages 309-325.
      • Zeng-Chan Zhang, S. T. John Yu, Sin-Chung Chang, “A Space-Time Conservation Element and Solution Element Method for Solving the Two- and Three-Dimensional Unsteady Euler Equations Using Quadrilateral and Hexahedral Meshes”, Journal of Computational Physics, Volume 175, Issue 1, Jan. 2002, Pages 168-199. doi: 10.1006/jcph.2001.6934
  • Related Links
  • Other Software for Solving PDEs

Contributors

Bibliography

[Chang95]Sin-Chung Chang, “The Method of Space-Time Conservation Element and Solution Element – A New Approach for Solving the Navier-Stokes and Euler Equations”, Journal of Computational Physics, Volume 119, Issue 2, July 1995, Pages 295-324. doi: 10.1006/jcph.1995.1137
[Chen11]Yung-Yu Chen, A Multi-Physics Software Framework on Hybrid Parallel Computing for High-Fidelity Solutions of Conservation Laws, Ph.D. Thesis, The Ohio State University, United States, Aug. 2011. (OhioLINK)
[Chen12]Yung-Yu Chen, Lixiang Yang, and Sheng-Tao John Yu, “Hyperbolicity of Velocity-Stress Equations for Waves in Anisotropic Elastic Solids”, Journal of Elasticity, Volume 106, Issue 2, Feb. 2012, Page 149-164. doi: 10.1007/s10659-011-9315-8
[Lax73]Peter D. Lax, “Hyperbolic Systems of Conservation Laws and the Mathematical Theory of Shock Waves”, Society for Industrial Mathematics, 1973. ISBN 0898711770.
[Mavriplis97]D. J. Mavriplis, Unstructured grid techniques, Annual Review of Fluid Mechanics 29. (1997)
[Warming75]R. F. Warming, Richard M. Beam, and B. J. Hyett, “Diagonalization and Simultaneous Symmetrization of the Gas-Dynamic Matrices”, Mathematics of Computation, Volume 29, Issue 132, Oct. 1975, Page 1037-1045. http://www.jstor.org/stable/2005742
[Yang13]Lixiang Yang, Yung-Yu Chen, Sheng-Tao John Yu, “Viscoelasticity determined by measured wave absorption coefficient for modeling waves in soft tissues”, Wave Motion, Volume 50, Issue 2, March 2013, Page 334-346. doi: 10.1016/j.wavemoti.2012.09.002.

Indices and Tables