Computational techniques for fluid dynamics
Computational techniques for fluid dynamics
Hybrid Krylov methods for nonlinear systems of equations
SIAM Journal on Scientific and Statistical Computing
The node-centred finite volume approach: bridge between finite differences and finite elements
Computer Methods in Applied Mechanics and Engineering
Java Threads
Java Swing
Computers in Physics
Java for engineers and scientists
Java for engineers and scientists
Iterative Methods for Sparse Linear Systems
Iterative Methods for Sparse Linear Systems
Parsek: object oriented particle in cell. implementation and performance issues
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
A toolkit for efficient numerical applications in Java
Advances in Engineering Software
Hi-index | 0.01 |
This paper describes a component-based non-linear physical system simulation prototyping package written entirely in Java using object-oriented design to provide scientists and engineers a “developer-friendly” software environment for large-scale computational method and physical model development. The software design centers on the Jacobian-Free Newton-Krylov solution method surrounding a finite-volume treatment of conservation equations. This enables a clean component-based implementation. We first provide motivation for the development of the software and then describe software structure. Discussion of software structure includes a description of the use of Java's built-in thread facility that enables data-parallel, shared-memory computations on a wide variety of unstructured grids with triangular, quadrilateral, tetrahedral and hexahedral elements. We also discuss the use of Java's inheritance mechanism in the construction of a hierarchy of physics-systems objects and linear and non-linear solver objects that simplify development and foster software re-use. As a compliment to the discussion of these object hierarchies, we provide a brief review of the Jacobian-Free Newton-Krylov nonlinear system solution method and discuss how it fits into our design. Following this, we show results from preliminary calculations and then discuss future plans including the extension of the software to distributed memory computer systems.