Los Alamos National LaboratoryGo to the Lab's home pageSearch for people in the Lab's directorySearch the Laboratory's Web site

CartaBlanca, A Pure Java, Component-based, Object-Oriented, Systems Simulation Tool for Non-Linear Physics On Unstructured Grids and Graphs

CartaBlanca, a 2005 R&D100 award-winning project, concerns the development of a pure Java, component-based systems simulation and prototyping tool for non-linear physics on unstructured grids and graphs. (See also R&D 100 Award Application Brochure, Design News Article


Modern scientific simulation projects have become large-scale and complex endeavors. These projects typically require constant and on-going attention from a variety of developers.  In fact, on some scientific software projects, software developers outnumber the actual users for a significant portion of the lifetime of the application. Thus, it is just as important for such software to be developer-friendly as it is to be user-friendly. As such it is useful for scientific software projects to use modern productive software languages to try to produce a developer-friendly simulation code. This is different from an alternative point of view wherein user-friendly interfaces are wrapped around less developer-friendly legacy software.  In CartaBlanca, we take the former point of view and have constructed a Java-based, object-oriented physics simulation and prototyping tool which we believe is not only friendly to users but also developers. We have based our design on the following principles and capabilities: 

-        We use Java, a commercially robust, type-safe modern computing language.

-        Jacobian-Free Newton-Krylov is employed as the solver strategy since it can provide robust fully-coupled solutions for non-linear systems.

-        Material point method (MPM), an advanced version of the Particle-in-cell (PIC) technology, embedded in a multiphase flow framework is used to enable fluid structure interaction simulations.

-        Careful use of object-orientation is employed to provide developer friendliness without sacrificing performance. 

Why Java?

Java is a clean, type-safe programming language that supports full object oriented programming, built-in threads, networking and GUI’s.  Java has been shown to be a much more efficient development language compared to older alternatives (Phipps Paper on Java Programming Efficiency versus C++, Concurrency & Practice Article on Parsek and Java Performance versus C++ and FORTRAN ). Java has a very strong and growing marketplace presence so there are many programmer tools being developed for Java and there is a great deal of effort being put into Java compilers to make Java a very competitive general purpose language for applications from e-business to scientific computing. Modern Java compilers are quite good. (See Fox Review article on Java Grande Applications ; see also http://math.nist.gov/scimark2/index.html ).


CartaBlanca runs in a thread-parallel and distributed-parallel mode. Problems in 1, 2, and 3 dimensions can be run on unstructured grids built from triangular, quadrilateral, tetrahedral and hexahedral elements. Mesh partitioning files from Metis can be read and used by CartaBlanca to perform calculations in parallel on shared memory machines and distributed clusters.

Sample Calculations

Nuclear blast between buildings: This 3D calculation shows the effect of a 5 kt blast set off at ground level between 4 high rise buildings. The buildings and the ground are represented by the blue marker particles and obey a simple elastic behavior with brittle fracture. The tallest building is 100 meeters. Air surrounds the buildings and is seeded the blast energy in the red cube at time zero. The red surface marks the high temperature of the high energy gas. As time evolves, the high temperature surface moves out with the blast wave. The blast punches a crater in the ground and blows the buildings back. This last effect is an artifact of not having ground material behind the buildings. This is a prototype calculation so there is much simplification.

Re-enforced Concrete Slab Blast: This 3D calculation shows the effect of a contact charge on a re-enforced concrete slab. Both the concrete and the re-bar are represented by particles. The RC concrete wall is surrounded by air and the contact charge was modeled as a high energy (temperature) volume of air near a section of the concrete. In the simulation, the blast energy blows a hole through the wall and breaks up the concrete material and deforms the re-bar. The concrete debris is shown to be accelerated by pressure gradients and drag forces in the air. This calculation was performed by Acta, Inc. of Torrance, CA using the CartaBlanca code.

Bouncing Hemi: This 2D calculation shows the impact of a semi circular body (hemispherical in 3D) on the floor of the calculation space. The calculation includes a gas filling the space around the body. The body is elastic and responds to the impact by vibrating. The color of the marker particles that make up the body shows the yy component of the stress in the body.

Reactive Hemi: This 2D calculation shows the impact of a semi circular body on a strike plate. The materials are surrounded by gas. The semi circular body obeys an elastic material law with brittle fracture. Upon impact, the semi circular body undergoes rapid decomposition to a gas, like what could happen with an explosive material.

Reactive Armor: This is a very simplified simulation of a prototype reactive armor situation. In the simulation, a bullet penetrates a steel plate from above and then penetrates to a reactive material that simulates an explosive. This material explodes a short time later. This is an old calculation with some instabilities in it but it shows the rough capability.

2-layer IED blast container: This is a simulation of the explosition of a semicircular improvised explosive devise (IED) inside a 2-layer blast container. The application is field disposal of the IED. The IED is composed of a semicircular shell with an energized gas inside. The blast container wall on the right is composed of two materials. As time evolves, pieces of the IED shell impact the blast container wall.

Foam-based IED blast container: This is a 3D version of the above calculation with a foamy material playing the role of the blast container. The blast wave transmitted through the air is seen to impact the container before the pieces fo the IED shell hit.

Projectile-Target Plastic Strain: This is a 2D axisymmetric simualtion of the impact of a tungsten cylindrical projectile on a steel target block. The colors of the marker particles show plastic strain computed with the Johnson-Cook law for the two materials. This calculation includes a gas surrounding the projectile and target bodies.

Projectile-Target Temperature: This show the temperature profile of the calculation described above.

High Explosive Plane Wave: This calculation show a plane wave transitting through a high explosive (HE) material composed of HE crystals and binder material. The HE and binder materials are represented by the yellow and blue marker particles, respectively. The geometrical arrangement of the binder and HE materials were set by using a micrograph of an actual material and placing a marker particle for each pixel in the micrograph.

Reactor Heat Flow: This calculation shows a prototype reactor with heating elements represented by the vertical bars. The heating elements are bathed in a heat transfer fluid that flows in from the bottom of the vessel and out the top. At a time late in the simualtion one of the heating elements breaks and falls.

Oscillation of one-dimensional block: In this movie, a piston is placed inside a pipe with air on both sides. The pipe is sealed at the both ends. The solid piston is given an initial velocity. Because of its interaction with the air in the pipe, the piston moves back and forth in the pipe. The middle and bottom figures show the results of solid density, representing the location of the piston, calculated using the Material Point Method (MPM) implemented in CartaBlanca and using a pure Eulerian method. The pure Eulerian calculation, using 100 computational cells, cannot keep the sharp interface and generates unphysical peaks in the density; while the MPM calculation, using only 20 cells, produces much more accurate results. The blue line shows the solid density based on the Eulerian mesh and the red line shows the density based on the material points. The red dots show the locations of the material points.



CartaBlanca Theory Manual

CartaBlanca User Manual

Related Recent Publications

Volume Fraction Algorithm

Multipressure Algorithm

Centrifugal Contactor Simulation Spent Nuclear Waste

Concurrency & Practice Article on Parsek and Java Performance versus C++ and FORTRAN

Article on 2007 Symposium on Interaction of the Effects of Munitions with Structures

Concurrency & Practice Article II on CartaBlanca

Concurrency & Practice Article I on CartaBlanca

Advection Algorithm Developed in CartaBlanca

Compatible Van Leer Advection Algorithm

Director's Talk

Overview Slides


For licensing information (including OEM/ISV licensing), please visit the Technology Transfer web site (see http://www.lanl.gov/partnerships/)  

More Information

For more information email: dzhang@lanl.gov

Authorized Source Code Users

Authorized Executable File Users

Last Modified: February, 27, 2008