RHALE - A MMALE SHOCK PHYSICS CODE WRITTEN IN C++

被引:20
|
作者
BUDGE, KG
PEERY, JS
机构
[1] Computational Physics Research and Development (1431) Sandia National Laboratories Albuquerque
关键词
D O I
10.1016/0734-743X(93)90013-W
中图分类号
TH [机械、仪表工业];
学科分类号
0802 ;
摘要
This paper describes RHALE, a multi-material arbitrary Lagrangian-Eulerian (MMALE) shock physics code. RHALE is the successor to CTH, Sandia's 3-D Eulerian shock physics code, and will be capable of solving problems that CTH cannot adequately address. We discuss the new Lagrangian capabilities of RHALE, which include arbitrary mesh connectivity, superior artificial viscosity, and improved equations of state. We also discuss some of the issues we have encountered in the choice of an axisymmetric element technology and our resolution of these issues. We discuss the MMALE algorithms that have been extended for arbitrary grids in both two and three dimensions and present the results of calculations that are of interest to the hypervelocity impact community. The MMALE addition to RHALE provides the accuracy of a Lagrangian code while allowing a calculation to proceed under very large distortions. Coupling an arbitrary quadrilateral or hexahedral grid to the MMALE solution facilitates modeling of complex shapes with a minimum number of computational cells. RHALE allows regions of a problem to be modeled with Lagrangian, Eulerian or ALE meshes. In addition, regions can switch from Lagrangian to ALE to Eulerian based on user input or mesh distortion. For ALE meshes, new node locations are determined with equipotential schemes. Element quantities are advected with donor, van Leer, or Super-B algorithms. Nodal quantities are advected with the second order SHALE or HIS algorithms. Currently, material interfaces are determined with the SLIC algorithm; however, both two and three dimensional versions of Youngs' interface tracker are being investigated. To facilitate the development of such a lengthy code, we choose to write in the C++ programming language. We feel that object-oriented programming techniques are superior to conventional programming techniques. However, we discuss a few of the efficiency problems we have encountered using these techniques and how we have addressed these problems.
引用
收藏
页码:107 / 120
页数:14
相关论文
共 50 条
  • [1] Bulletproofing C++ code
    Sokolov, Sergei
    [J]. DR DOBBS JOURNAL, 2007, 32 (02): : 37 - 42
  • [2] OPTIMIZING C++ CODE
    BRIGHT, W
    [J]. DR DOBBS JOURNAL, 1995, 20 (08): : 88 - 89
  • [3] Keeping C/C++ code scalable
    Krauss, KJ
    [J]. DR DOBBS JOURNAL, 2006, 31 (03): : 28 - +
  • [4] Statically testing C++ code
    Milanesi, Carlo
    [J]. DR DOBBS JOURNAL, 2008, 33 (02): : 66 - 70
  • [5] Performance testing C++ code
    Hunt, N
    [J]. JOURNAL OF OBJECT-ORIENTED PROGRAMMING, 1996, 8 (08): : 22 - 25
  • [6] Fast analysis of source code in C and C++
    V. O. Savitskii
    D. V. Sidorov
    [J]. Programming and Computer Software, 2013, 39 : 49 - 55
  • [7] TUAnalyzer - Analyzing templates in C++ code
    Gschwind, T
    Pinzger, M
    Gall, H
    [J]. 11TH WORKING CONFERENCE ON REVERSE ENGINEERING, PROCEEDINGS, 2004, : 48 - 57
  • [8] A C++ code library for metabolic modelling
    Abecasis, JPR
    Ferreira, AEN
    [J]. FEBS JOURNAL, 2005, 272 : 105 - 105
  • [9] Experiences reviewing scientific C++ code
    Paterno, M
    [J]. ADVANCED COMPUTING AND ANALYSIS TECHNIQUES IN PHYSICS RESEARCH, 2001, 583 : 287 - 290
  • [10] High-fidelity C/C++ code transformation
    Waddingtona, Daniel
    Yao, Bin
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2007, 68 (02) : 64 - 78