A program of research and development has resulted in some advances in algorithms for computational fluid dynamics (CFD), finite-element simulation of solid objects undergoing large deformations, and some related topics. The main advances are summarized as follows:
- A previously developed algorithm that implements a particlelevel- set method for numerical simulation of flows involving two fluid regions (e.g., ocean waves driven by wind) was extended to enable simulation of flows involving as many regions as desired. The various regions can be liquids or gases of any type, and can have differing properties, including (but not limited to) viscosities, densities, and viscoelastic properties. Included in the extension are proposed techniques for simulating interactions between materials, whether the interactions take the form of simple surface-tension forces or are more complex, involving chemical reactions (in which, for example, one material is converted to another or two materials combine to form a third material). A separate particle-level-set method is used for each region, and it has been proposed to use a novel projection algorithm that decodes the resulting vector of level-set values, providing the equivalent of a dictionary that translates between those values and a standard single-valued level-set representation.
- A new coding paradigm was developed to address the following issue: When discretizing the underlying Navier- Stokes equations for multiphase flow, difficulties and errors can arise because discretization stencils can cross boundaries between different phase and flow regions, naïvely combining non-smooth or even discontinuous data. The approach embodied in the new coding paradigm enables incorporation of physical jump conditions into data “on the fly.” This approach makes the coding process significantly more efficient for flows involving multiple regions, especially at triple-phase points or near boundaries between flows and solid objects. This approach also eliminates the need for any algorithm changes that might reduce the accuracy of the numerical solution scheme, and even eliminates the need to make changes in the code itself. A “smart” discretization class is used to encode both the region in which the programmer is working and the required jump conditions. The programmer simply writes the code as if it were for a single region, relying on the “smart” discretization class to create the correct code.
- Motivated by a need for discretizing flows involving large bodies of water, issues involving scalability were addressed through development of a method, based on run-length encoding (RLE) from image-data processing, to reduce the sizes of data structures. In RLE, one compresses raw pixel image data by storing row subsets of the data in a smaller data structure. Applying the same idea to the discretization of the Navier-Stokes equations of incompressible flow, one starts with a uniform Cartesian grid and merges any two or more cells along the vertical direction to make tall cells, within which pressures are approximated as varying linearly with height. Another aspect of the issue of scalability has been addressed through conversion of flow-simulating code to run on parallel processors.
- An algorithm to automatically generate tetrahedral finite-element meshes was developed to improve finite-element simulations of solid bodies undergoing large deformations (as in collisions). In a related development, prior work on fracture was extended to enable simulation of fracture of a rigid body into multiple rigid bodies.
This work was done by Ronald Fedkiw of Stanford University for the Naval Research Laboratory. For more information, download the Technical Support Package (free white paper) at www.defensetechbriefs.com/tsp under the Information Sciences category. NRL-0009
This Brief includes a Technical Support Package (TSP).
Advances in Algorithms for CFD and Finite-Element Simulation
(reference NRL-0009) is currently available for download from the TSP library.
Don't have an account? Sign up here.