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]:

where is the unknown vector, , , and the Jacobian matrices, and the source term. SOLVCON is designed to be a software framework to house various solvers. The design of SOLVCON is discussed in [Chen11].

- The project page https://bitbucket.org/solvcon/solvcon
- Report bugs and request features at https://bitbucket.org/solvcon/solvcon/issues?status=new&status=open
- Ask questions in our mailing list: solvcon@googlegroups.com

Please clone the development version from BitBucket (using Mercurial):

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

SOLVCON has the following dependencies: gcc 4.3+,
SCons 2+, Python 2.7,
Cython 0.16+, Numpy
1.5+, LAPACK, NetCDF 4+, SCOTCH 6.0+, Nose 1.0+, Paramiko 1.14+, boto 2.29.1+, gmsh 2.5+,
and VTK 5.6+. You can install them by running the scripts
`aptget.*.sh` (Debian/Ubuntu) or `conda.sh` (Miniconda/Anaconda) provided in the `contrib/`
directory.

The binary part of SOLVCON should be built with SCons:

```
scons scmods
```

After worth, it can be built with distutils:

```
python setup.py build_ext --inplace
```

SOLVCON needs not explicit installation. Setting the environment variables
`$PATH` and `$PYTHONPATH` is sufficient.

Building document requires Sphinx 1.1.2+, Sphinxcontrib issue tracker 0.11, and graphviz 2.28+. Once the binary of SOLVCON is built, the following commands can build the document:

```
cd doc
make html
```

The built document will be available at `doc/build/html/`.

Tests should be run with Nose:

```
nosetests
```

Another set of tests are collected in `ftests/` directory, and can be run
with:

```
nosetests ftests/*
```

Some tests in `ftests/` involve remote procedure call (RPC) that uses ssh. You need to set up the public key authentication
to properly run them.

A hard way to install the dependencies is to build everything from source with
the scripts provided in the `ground/` directory:

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

A directory `opt/` will be created for the binaries. The last line will
enable the runtime environment. It also export an environment variable
`SCROOT` that points to `opt/`.

If we don’t even have a compatible gcc, scripts in the `soil/` directory can
be used:

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

`$SCROOT/etc/scvars.sh` and `$SCROOT/etc/scgccvars.sh` must be separately
sourced. The two sets of packages reside in different directories.

- Papers and presentations:
*Published Applications of SOLVCON*- PyCon US 2011 talk: slides and video
- Yung-Yu Chen, David Bilyeu, Lixiang Yang, and Sheng-Tao John Yu,
“SOLVCON: A Python-Based CFD Software Framework for Hybrid
Parallelization”,
*49th AIAA Aerospace Sciences Meeting*, January 4-7 2011, Orlando, Florida. AIAA Paper 2011-1065

- 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

- Sin-Chung Chang, “The Method of Space-Time Conservation Element and
Solution Element – A New Approach for Solving the Navier-Stokes and
Euler Equations”,

*Related Links**Other Software for Solving PDEs*

Copyright (c) 2008, Yung-Yu Chen <yyc@solvcon.net>

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of the SOLVCON nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

- Yung-Yu Chen <yyc@solvcon.net>
- Sheng-Tao John Yu <yu.274@osu.edu>
- David Bilyeu <bilyeu.4@osu.edu>
- Tzu-Wei Lin <evolutionlin@gmail.com>
- Po-Hsien Lin <lin.880@buckeyemail.osu.edu>
- Taihsiang Ho <tai271828@gmail.com>

[Anderson03] | John David Anderson,
Modern Compressible Flow: With Historical Perspective,
McGraw-Hill, 2003. ISBN 0072424435. |

[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. |