卡塔布兰卡

卡塔布兰卡-一个纯Java,基于组件的系统仿真工具,用于非结构网格上耦合非线性物理-更新。本文介绍了一个基于组件的非线性物理系统仿真原型软件包,它完全用Java语言编写,采用面向对象的设计方法。该软件包为科学家和工程师提供了一个开发人员友好的软件环境,用于大规模计算算法和物理模型开发。软件设计的中心是围绕守恒方程的有限体积处理的Jacobian-free-Newton-Krylov解方法。这使得一个干净的组件式实现成为可能。我们首先提供软件开发的动机,然后讨论软件结构。讨论包括对Java内置线程工具的使用的描述,该工具支持在具有三角形、四边形、四面体和六面体元素的各种非结构化网格上进行并行、共享内存计算。我们还讨论了在物理系统对象和线性和非线性解算器对象的层次结构中使用Java的继承机制来简化开发和促进软件重用。我们简要回顾了Jacobian-free-Newton-Krylov非线性系统的求解方法,并讨论了它如何适合我们的设计。接下来,我们将展示示例计算的结果,然后讨论包括将软件扩展到分布式内存计算机系统的计划