Useful resources for Computational Geomechanics Research
Finite Element Systems
-
Z_SOIL.PC 2007
Soil, rock and underground structures mechanics on microcomputers using
plasticity theory, a software package for geotechnical engineering.
-
Getfem++ is a
project focusing on the development of a generic and efficient C++ library for
finite element methods elementary computations.
-
CASTEM,
An Object oriented Finite Element Method framework.
-
CESAR-LCPC is a software of the
Laboratoire Central des Ponts et Chaussees, and is distributed by Itech SARL.
-
OpenFOAM(Field Operation and
Manipulation) software package can simulate anything from complex fluid flows
involving chemical reactions, turbulence and heat transfer, to solid dynamics,
electromagnetics and the pricing of financial options.
-
FreeFEM++ is an implementation of a
language dedicated to the finite element method.
-
OpenSees is a software framework for
developing applications to simulate the performance of structural and
geotechnical systems subjected to earthquakes.
-
deal.II (A Finite Element
Differential Equations Analysis Library)is a C++ program library targeted at the
computational solution of partial differential equations using adaptive finite
elements. It uses state-of-the-art programming techniques to offer you a modern
interface to the complex data structures and algorithms required.
-
The libMesh library provides a
framework for the numerical simulation of partial differential equations using
arbitrary unstructured discretizations on serial and parallel platforms. A
major goal of the library is to provide support for adaptive mesh refinement
(AMR) computations in parallel while allowing a research scientist to focus on
the physics they are modeling.
-
OpenFEM is an open-source
software freely distributed under the terms of the "GNU Lesser Public License"
(LGPL). It is a general purpose multi-physic FEM environment.
-
Tahoe is a research-oriented, open
source platform for the development of numerical methods and material models.
The goal of the work surrounding Tahoe is the simulation of stresses and
deformations for situations that cannot be treated by standard continuum
simulation techniques. These situations include material fracture or failure,
interfacial adhesion and debonding, shear banding, length-scale dependent
elasticity and plasticity, and deformation in small-scale structures. Aside
from a collection of standard finite elements, Tahoe includes meshfree
simulation capability and particle methods. Tahoe includes a number of
"cohesive" approaches for modeling fracture. These include both surface and
bulk constitutive models that incorporate cohesive behavior. Tahoe is capable
of performing static and transient dynamic coupled-physics analysis in two and
three dimensions. Many capabilities support parallel execution.
-
OOFEM
is free finite element code with object oriented architecture for solving
mechanical, transport and fluid mechanics problems that operates on various
platforms. The aim of this project is to develop efficient and robust tool for
FEM computations as well as to provide modular and extensible environment for
future development. OOFEM is released under GNU General Public License (GPL).
-
Rheolef,
A finite element environment, i.e. some C++ classes and unix commands
-
Code_Aster
provides, well beyond the standard function of any other thermo-mechanic
calculation code, a whole array of analysis methods and multi-physic models.
Its application domain extends from seismic analysis, to porous medium,
without forgetting acoustics, fatigue, stochastic dynamics\u2026 Its models,
its algorithms and its solvers have improved in robustness and thoroughness
(1000000 lines of code, 200 operators). Completely open, it is chained,
coupled and encapsulated in thousands of ways. All in all, the user has
complete freedom of choice.
-
Elmer
is an open source multiphysical simulation software developed by CSC. Elmer
development was started 1995 in collaboration with Finnish Universities,
research institutes and industry.
-
Kratos
is a framework for building multi-disciplinary finite element programs. It
provides several tools for easy implementation of finite element applications
and a common platform for natural interaction of the same in different ways.
Software Database
is a comprehensive online database of software for Architecture, Engineering
and Construction.
Reading material
The science, art and technology of writing, presenting:
PDF reference Fourth Edition, from
Adobe specifications site.
Creating Presentations in PDFLaTeX by Matt Welsh.
Local (UCD CG) PDFLaTeX examples.
Local (UCD CG) LaTeX examples.
Internet Resources for POSTSCRIPT and GHOSTSCRIPT.
Customised BibTeX styles.
PPower4 P^4, Pdf Presentation Post Processor.
W3Schools
A collection of free HTML, CSS, JavaScript, DHTML, XML, XHTML,
WAP, ASP, SQL tutorials with lots of working examples and source code.
Visualization related links:
-
VISIT is a free
interactive parallel visualization and graphical analysis tool for viewing
scientific data on Unix and PC platforms.
-
CGAL: The goal of the CGAL Open Source
Project is to provide easy access to efficient and reliable geometric algorithms
in the form of a C++ library.
-
Vis5D is a free OpenGL-based
volumetric visualization program for scientific datasets in 3+ dimensions.
-
Java 3D is the extension to Java for
displaying three dimensional graphics.
-
FLTK (pronounced "fulltick") is a
cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows,
and MacOS X. FLTK provides modern GUI functionality without the bloat and
supports 3D graphics via OpenGL and its built-in GLUT emulation.
-
VTK The Visualization ToolKit.
-
Rocketeer
is a powerful tool for visualizing 3 dimensional scientific data sets.
-
Qt is a
multiplatform, C++ framework for GUI applications with ``write once, compile
anywhere'' approach.
-
Coin
is a high-level 3D graphics library with a C++ Application Programming Interface.
-
OpenInventor is an
object-oriented 3D toolkit for interactive graphics programming.
-
Tensor Visualization at UCSC.
Mesh Generation related links:
High Performance - Parallel Computing, Hardware and Software links:
-
GPGPU stands for General-Purpose computation on
GPUs. With the increasing programmability of commodity graphics processing units
(GPUs), these chips are capable of performing more than the specific graphics
computations for which they were designed. They are now capable coprocessors,
and their high speed makes them useful for a variety of applications. The goal
of this page is to catalog the current and historical use of GPUs for
general-purpose computation.
-
ggcov
is a GTK+ GUI for exploring test coverage data produced by C and C++ programs
compiled with gcc -fprofile-arcs -ftest-coverage.
-
LCOV
is a graphical front-end for GCC's coverage testing tool gcov.
-
Breakin
is Advanced Clustering's stress-test and hardware diagnostics tool.
-
COVTOOL is an open source test coverage analyzer for C++ programs.
-
On
comparing floating point numbers, since floating point math is not exact.
-
memtest86 is thorough, stand alone memory
test for x86 architecture computers.
-
MPFRCPP is free object oriented
interface to the MPFR library.
-
The MPFR library is a C library for
multiple-precision floating-point computations with correct rounding.
-
SystemImager is
software which automates Linux installs, software distribution, and production
deployment.
- IEEE 754
standard governs binary floating-point arithmetic.
- KAOS: A high-performance
computing system is not created by accident, but by the careful design and
implementation of interactions between Compilers, Hardware Architectures, and
Operating Systems.
- The Aggregate refers to a collection of researchers and the
technologies that they use to make the components of a computing system work
better together.
- GMP is a free library for arbitrary
precision arithmetic, operating on signed integers, rational numbers, and
floating point numbers. There is no practical limit to the precision except the
ones implied by the available memory in the machine GMP runs on. GMP has a rich
set of functions, and the functions have a regular interface.
library which allows to estimate the
round-off error propagation on every scientific code written in
FORTRAN or C/C++ language.
-
Omega is a tool that works with Valgrind and shows where the block of memory was leaked.
-
GotoBLAS
codes are currently the fastest implementations of the Basic Linear Algebra Subroutines.
-
SmartHeap is a fast (3X-100X faster
than compiler-supplied libraries), portable (Windows, Linux, Solaris, HP-UX,
IBM-AIX, Dec OSF Tru64, SGI Irix), reliable, ANSI-compliant malloc/operator new
library. SmartHeap supports multiple memory pools, includes a fixed-size
allocator, and is thread-safe. SmartHeap also includes comprehensive memory
debugging APIs to detect leakage, overwrites, double-frees, wild pointers, out
of memory, references to previously freed memory, and other memory errors.
-
Valkyrie is an
open-source graphical user interface for the Valgrind 3.X line.
-
C++ Reference
Guide by Danny Kalev.
-
OProfile is a system-wide
profiler for Linux systems, capable of profiling all running code at low
overhead.
-
Alleyoop is a graphical front-end
to the increasingly popular Valgrind memory checker for x86 GNU/ Linux using the
Gtk+ widget set and other GNOME libraries for the X-Windows environment.
-
Valgui a GPL front-end for Valgrind.
-
Stream: Sustainable Memory
Bandwidth in High Performance Computers.
-
SPEC, the Standard Performance Evaluation
Corporation is a non-profit corporation formed to establish, maintain and
endorse a standardized set of relevant benchmarks that can be applied to the
newest generation of high-performance computers.
-
Acovea (Analysis of
Compiler Options via Evolutionary Algorithm) implements a genetic algorithm to
find the "best" options for compiling programs with the GNU Compiler Collection
(GCC) C and C++ compilers. "Best", in this context, is defined as those options
that produce the fastest executable program from a given source code. Acovea is
a C++ framework that can be extended to test other programming languages and
non-GCC compilers.
-
FTEnsor
is a high performance tensor library written in C++.
-
GCOV
is a test coverage program.
-
The Paradyn project develops
technology that aids tool and application developers in their pursuit of
high-performance, scalable, parallel and distributed software.
-
TBCI Temporary Base Class Idiom, a
templated library of numerical base classes which implement basic data
structures like complex numbers, dynamic vectors, static vectors, different
types of matrices like full matrices, band matrices, sparse matrices, etc. and
also included a representation for Tensors and its typical operations like
contraction, direct product and multiplication with contraction. Further-on,
some standard matrix solvers like gauss-jordan LU-decomposition or iterative
solvers have been implemented as well as several interfaces to libraries as
CLAPACK or SuperLU. .
-
Boost Timer Library
supplies a timer class for measuring elapsed time, a progress_timer class for
reporting elapsed time, and a progress_display class for displaying an
indication of progress toward a goal.
-
The Linux Clusters Institute.
-
The Cornell Theory Center.
-
OSCAR
Open Source Cluster Application Resources.
-
Rocks Cluster Distribution
An Open Source High Performance Linux Cluster Solution.
-
The Warewulf Cluster Project
The Distributed Linux Distribution.
-
WebCT-HPC is
the web-based training site for High Performance Computing sponsored by the
National Center for Supercomputing Applications (NCSA).
-
Brahma
The Duke Physics Department's Beowulf Compute Cluster (lots of good links).
-
Techniques for Scientific C++
by
Todd Veldhuizen.
-
PAPI
Performance Application Programming Interface.
-
Vector arithmetic speed.
-
METIS is a family of
programs for partitioning unstructured graphs and hypergraphs and computing
fill-reducing orderings of sparse matrices.
-
Zoltan Data-Management Services
for Parallel Applications.
-
SuperLU is a general
purpose library for the direct solution of large, sparse, nonsymmetric systems
of linear equations on high performance machines. The library is written in C
and is callable from either C or Fortran.
-
Tiny Vector
Matrix library using Expression Templates (TVMET):
Project Page and
Home Page by Olaf Petzold.
-
Blitz++ at
OONUMERICS.
- Run time program performance profiling:
OProfile, and
PAPI.
-
WSMP Watson
Sparse Matrix Package (including an MPICH-based parallel WSMP library for IA32
Linux clusters).
-
etLAP expression template
Linear Algebra Package (aka "excessively templated LAP") Extremely lightweight
C++ library providing real and complex Matrices and Vectors with simple and
intuitive operations offering ultimate speed.
-
ATLAS Automatically Tuned Linear Algebra Software.
-
Benchmark for Templated Libraries project.
- CADNA
library which allows to estimate the
round-off error propagation on every scientific code written in
FORTRAN or C/C++ language.
-
Valgrind is a GPL'd system for debugging and profiling x86-Linux programs.
- KCachegrind
is a visualisation tool for the profiling data generated by Cachegrind.
-
Debugging PARALLEL programs
by Norm Matloff of UCD.
- MPICH A Portable Implementation of MPI.
- MPICH FAQ .
- Configuring MPICH with ssh .
Compiler, interpreter, programming language and programming systems related links:
-
Ch is an embeddable C/C++
interpreter for cross-platform scripting, shell programming, 2D/3D plotting,
numerical computing, and embedded scripting. Ch is a free and user-friendly
alternative to C/C++ compilers for beginners to learn C/C++.
-
The C++ Virtual Library
-
C++ Annotations Version 5.0.0: This document is intended for knowledgeable
users of C who would like to make the transition to C++. It is a guide for
Frank's C++ programming courses, which are given yearly at the University of
Groningen. As such, this document is not a complete C++ handbook. Rather, it
serves as an addition to other documentation sources. If you want a hard-copy
version of the C++ annotations: hard copies are available in postscript, pdf and
other formats in
ftp://ftp.icce.rug.nl/pub/documents
-
ViewVC
is a browser interface for CVS and Subversion version control repositories. It
generates templatized HTML to present navigable directory, revision, and change
log listings. It can display specific versions of files as well as diffs between
those versions. Basically, ViewVC provides the bulk of the report-like
functionality you expect out of your version control tool, but much more
prettily than the average textual command-line program output.
-
Boost Tools:
Boost developers, testers, and maintainers have developed various tools to help
with the administration of the Boost Libraries.
-
Jam is a software build tool
that makes building simple things simple and building complicated things
manageable.
-
Jambase is
a base set of Jam rules which provide roughly make(1)-like functionality for
jam, the Jam executable program.
-
CVMLCPP, Common Versatile Multi-purpose Library for C++.
-
Clang: Clang: a C language front-end for LLVM
-
Elsa: The Elkhound-based C/C++ Parser
-
The C++ Tutorial
-
Bruce Eckel's books online:
Free Electronic Book
Volume 1 & Volume 2
-
Programming Tutorials
-
WWW C++ Information
-
C++ Language Tutorial
-
SAX is the Simple API for XML.
-
The Document Object Model (DOM), is a platform-
and language-neutral interface that will allow programs and scripts to
dynamically access and update the content, structure and style of documents.
-
The Meta Programming System (MPS),
is a new programming environment which makes it easy to define your own
specialized languages, and use them together with any other language, as you see
fit.
-
GIT, Tree History Storage Tool. GIT is a
"directory content manager" designed to handle absolutely massive projects with
speed and efficiency. Replacement for BitKeeper on linux kernel project.
-
BitKeeper is a
scalable configuration management system.
-
TRAC is an enhanced wiki and issue tracking system for software development projects.
-
Open Software License
v. 2.1.
-
Doc++ is a documentation
system for C/C++ and Java generating both, LaTeX output for high quality
hardcopies and HTML output for sophisticated online browsing of your
documentation.
-
CodeViz - A call graph
generation utility for C/C++.
-
Graphviz - Graph Visualization Software.
-
Doxygen is a documentation
system for C++, C, Java, Objective-C, IDL (Corba and Microsoft flavors) and to
some extent PHP, C# and D.
-
Doxywizard
is a GUI front-end for configuring and running doxygen.
-
Boost Regression Test User
Documentation,
and
example of Boost CVS health summary for developers.
-
OOtips: Object Oriented Tips, a free service
devoted to object oriented technologies.
-
TUT: C++ Unit Test Framework.
-
Front Page, for the
PortlandPatternRepository and WikiWikiWeb.
-
Extreme Programming Roadmap, from C2.
-
New User Pages, Wiki from C2.
-
Testing Framework, from C2.
-
Inspect Tools, for BOOST.
-
++ FAQ Lite, by Marshall Cline.
-
Parsing Techniques - A
Practical Guide, is a 320-page book that treats parsing in its own right, in greater
depth than is found in most computer science and linguistics books.
-
Spirit is an object oriented
recursive descent parser generator framework implemented using template
meta-programming techniques.
Related references are
here.
Quick Start.
Spirit Application Repository.
-
Boost Pool Library
is a memory allocation scheme that is very fast, but limited in its usage.
-
The Boost MPL library
is a C++ template metaprogramming framework of compile-time algorithms,
sequences and metafunction classes.
-
BOOST WIKI.
-
BOOST provides free peer-reviewed portable C++ source libraries.
-
CINT
is a C/C++ interpreter aimed at processing C/C++ scripts.
-
Free C/C++ Compilers;
Compilers, cross-compilers, interpreters for ANSI C and ANSI C++.
-
OpenTop Cross-Platform C++.
-
JavaCC Java Compiler Compiler [tm]
(JavaCC [tm]) - The Java Parser Generator.
BUILD your own language with JavaCC.
-
Examples for Creating Your
Own Tcl Interpreter in C or C++ (from Eric Foster-Johnson).
-
Catalog of Free Compilers and Interpreters.
-
djgpp -> gcc DOS compiler.
-
gcc -> DOS cross compiler.
More info, and
yet more here.
-
Python Language;
Python is an OO scripting language that does all the things that you can do with
Perl or TCL - only better (sic) , since it was designed from the ground up as an OO
language.
Lots of Python documentation is available at
http://www.python.org, as
well as source code and binaries for UNIX, Macintosh, Win95/NT, DOS, etc.
-
PHP is a widely-used general-purpose scripting
language that is especially suited for Web development and can be embedded into
HTML.
-
ActiveState Tcl.
-
Incr Tcl.
-
The 11 rules of the Tcl syntax.
-
The Tcler's Wiki.
-
Tcl/Tk headquarters.
-
Tcl/Tk man pages.
-
Visual Tcl.
-
XSLT for libxml2.
Other useful links awaiting categorization
-
Today's Wolfram|Alpha is the first step
in an ambitious, long-term project to make all systematic knowledge immediately
computable by anyone.
-
Cheat Sheets.
-
Amanda
The Advanced Maryland Automatic Network Disk Archiver.
-
Mathematica, an amazing
symbolic/computational system.
-
The Interactive Data Language (IDL), is
the ideal software for data analysis, visualization, and cross-platform
application development.
-
GNU Octave is a high-level language,
primarily intended for numerical computations.
-
Matlab is a high-level
technical computing language and interactive environment for algorithm
development, data visualization, data analysis, and numerical computation.
-
Plagiarism in natural and programming languages: an overview of current tools and technologies
a paper by Paul Clough.
-
SCons is an Open Source software
construction tool--that is, a next-generation build tool. Think of SCons as an
improved, cross-platform substitute for the classic Make utility with integrated
functionality similar to autoconf/automake and compiler caches such as ccache.
-
Program
Development, at linuxlist.
-
Scientific Toolworks, understand your
software. Reverse engineering, documentation and metrics tools for C, C++, JAVA
source code.
-
Lint for C/C++ , programe checking and testing.
-
CodeCheck, PCyacc, CodeFix, programming
language analysis tools.
-
Parasoft, automatic testing of C++, C and Java programs.
-
MK toolkit, for porting UNIX
applications top Windows.
-
The Oilfield Glossary, useful solid and fluid mechanics terms and brief
explanations (from Schlumberger).
-
Procmail mail processing. Also very good
Procmail Tips. Also useful is
man 5 procmailex.
-
Verification and Validation
in Computational Mechanics.
-
Expect is a tool for automating
interactive applications such as telnet, ftp, passwd, fsck, rlogin, tip, etc.
-
The Globus Alliance is developing fundamental technologies needed to build computational grids.
-
6dof Simulation and Finite Elements web Portal.
-
UPX the Ultimate Packer for eXecutables.
-
hypersrc a
freeware source code browser.
-
Subversion, a compelling
replacement for CVS. A new book
just came out.
-
First steps with UNIX
by Norm Matloff of UCD.
-
Unix Tutorial Center including the elementary C programming
by Norm Matloff of UCD.
-
Debugging programs
by Norm Matloff of UCD.
-
The QUAKE project at CMU.
-
CVS manuals
- How to setup batch ssh2 jobs,
Paul Keck's tutorial.
- Yet another ssh Tutorial at
Deadman.org .
- OpenSees Commands for:
- Stochastic Differential Equations.
- Useful
Resources
for Parsing Tools such as YACC - LEX - Bison - FLEX. Collection maintained by
Nima Tafazzoli.
Interesting People:
Boris Jeremic