Sundance

Version of the Day

Introduction

Sundance is a system for rapid development of high-performance parallel finite-element solutions of partial differential equations. It is built on top of an engine for in-place Frechet differentiation of symbolic objects, thereby enabling differentiable simulations for use in optimization, uncertainty quantification, and adaptive error control.

The motivation for creating Sundance is a conviction that you should be able to code a finite element problem using the same level of abstraction you would use to describe the problem and its discretization on a blackboard. Sundance provides a set of high-level components with which you can specify and solve a problem. The high-level nature of the components means that you need not worry about tedious and error-prone bookkeeping details. In addition to the advantage of conceptual simplicity and freedom from bookkeeping, this component-based approach allows a high degree of flexibility in the formulation, discretization, and solution of a problem.

Please send any questions or comments to Kevin Long

WARNING: This documentation is sometimes incomplet, inackurate, and is very much a work in progress trying to keep up with a rapidly-evolving project.

PySundance

Python wrappers for most Sundance capabilities are now available. These greatly simplify simulator development. See the Installation page for information on how to set up PySundance.

Getting Started

User's Guide

An online Sundance User's Guide is available.

Sandia Software

Other software for computational mathematics is available at the Sandia math software server.

People

Site Contact