CartaBlanca— a pure-Java, component-based systems simulation tool for coupled non-linear physics on unstructured grids

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.

[1]  Masayuki Hatakeyama,et al.  Object-oriented fluid flow simulation system , 1998 .

[2]  George K. Thiruvathukal Java Grande Forum Report: Making Java Work for High-End Computing , 1998 .

[3]  Henri E. Bal,et al.  Runtime optimizations for a Java DSM implementation , 2001, JGI '01.

[4]  W. VanderHeyden,et al.  A cell-centered ICE method for multiphase flow simulations , 1993 .

[5]  Kirk Reinholtz Java will be faster than C++ , 2000, SIGP.

[6]  C. Zemach,et al.  CAVEAT: A computer code for fluid dynamics problems with large distortion and internal slip. Revision 1 , 1992 .

[7]  Yousef Saad,et al.  Hybrid Krylov Methods for Nonlinear Systems of Equations , 1990, SIAM J. Sci. Comput..

[8]  C. K. Thornhill,et al.  Part IV. An experimental study of the collapse of liquid columns on a rigid horizontal plane , 1952, Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences.

[9]  Julian Cummings,et al.  The POOMA framework , 1998 .

[10]  Robert Eckstein,et al.  Java Swing , 1998 .

[11]  C. Kelley Iterative Methods for Linear and Nonlinear Equations , 1987 .

[12]  D. Drew,et al.  Theory of Multicomponent Fluids , 1998 .

[13]  Jack Shirazi Java Performance Tuning , 2000 .

[14]  C. Fletcher Computational techniques for fluid dynamics , 1992 .

[15]  Michael Philippsen,et al.  JavaParty - Transparent Remote Objects in Java , 1997, Concurr. Pract. Exp..

[16]  W. B. VanderHeyden,et al.  A general-purpose finite-volume advection scheme for continuous and discontinuous fields on unstructured grids , 2002 .

[17]  Java Grande,et al.  Java Grande Forum Report: Making Java Work for High-end Computing , 2022 .

[18]  Roy Williams,et al.  A Pure Java Parallel Flow Solver , 1999 .

[19]  Yousef Saad,et al.  Iterative methods for sparse linear systems , 2003 .

[20]  Elliotte Rusty Harold Java I/O , 1999 .

[21]  Michael Philippsen,et al.  Java and numerical computing , 2001, Comput. Sci. Eng..

[22]  Richard Barrett,et al.  Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods , 1994, Other Titles in Applied Mathematics.

[23]  Michael Philippsen,et al.  JavaParty – transparent remote objects in Java , 1997 .

[24]  V. Selmin,et al.  The node-centred finite volume approach: bridge between finite differences and finite elements , 1993 .

[25]  Scott Oaks,et al.  Java Threads , 1997 .

[26]  Stephen J. Chapman Java for Engineers and Scientists , 1999 .

[27]  George Karypis,et al.  A Software Package for Partitioning Unstructured Graphs , Partitioning Meshes , and Computing Fill-Reducing Orderings of Sparse Matrices Version 5 . 0 , 1998 .