Graph-Based Software Framework for Implementation of Complex Computational Methods

This paper presents a graph-based approach to the implementation of complex computational methods. The approach is aimed at providing the researcher or engineer with a set of software tools for the organization of his or her source code, which makes it possible to reduce the cost of its further verification, validation, and support. The proposed approach is based on three levels of abstraction: categorical level (description of algorithm data transformations in algebraic terms of category theory), graphical level (description of the algorithm in the form of a directed graph), and interface level (particular software implementation of tools for algorithm construction based on the introduced concept of graph model for complex computational methods). Some features of the implemented software framework for building and traversing graph models are described. The effectiveness of the graph-based approach is exemplified by the computational methods for micromechanics of composite materials.

[1]  Ian M. Mitchell,et al.  Best Practices for Scientific Computing , 2012, PLoS biology.

[2]  C. Comstock Perturbation methods in applied mathematics : by Julian D. Cole. 260 pages, diagrams, 6x9 in. Waltham, Mass., Ginn-Blaisdell 1968. Price $9.50 (approx. £2·75). , 1973 .

[3]  Steve Awodey,et al.  Category Theory , 2006 .

[4]  John Boyle,et al.  Managing Chaos: Bridging the cultural divide between engineers and scientists working within the life sciences , 2009 .

[5]  Dusko Pavlovic,et al.  Monoidal computer I: Basic computability by string diagrams , 2012, Inf. Comput..

[6]  V. Buryachenko Micromechanics of Heterogeneous Materials , 2007 .

[7]  Joachim Schöberl,et al.  NETGEN An advancing front 2D/3D-mesh generator based on abstract rules , 1997 .

[8]  Keming Zhang,et al.  SCIRun2: a CCA framework for high performance computing , 2004, Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings..

[9]  Vitaly Schetinin,et al.  Strength surface reconstruction using special parallel algorithm based on Intel MIC (Intel Many Integrated Core) architecture , 2016 .

[10]  Filippo Bonchi,et al.  Full Abstraction for Signal Flow Graphs , 2015, POPL.

[11]  Anders Logg,et al.  Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book , 2012 .

[12]  Scott R. Kohn,et al.  Toward a Common Component Architecture for High-Performance Scientific Computing , 1999, HPDC.

[13]  David V. Hutton,et al.  Fundamentals of Finite Element Analysis , 2003 .

[14]  Christopher J. Roy,et al.  A comprehensive framework for verification, validation, and uncertainty quantification in scientific computing , 2011 .

[15]  Kenton O'Hara,et al.  Troubling Trends in Scientific Software Use , 2013, Science.

[16]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[17]  J. Westerink,et al.  Modeling the physics of storm surges , 2008 .

[18]  W. Press,et al.  Numerical Recipes: The Art of Scientific Computing , 1987 .

[19]  C.R. Johnson,et al.  SCIRun: A Scientific Programming Environment for Computational Steering , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[20]  O. Sigmund Materials with prescribed constitutive parameters: An inverse homogenization problem , 1994 .

[21]  R Klein,et al.  ASC Predictive Science Academic Alliance Program Verification and Validation Whitepaper , 2006 .

[22]  Hans Petter Langtangen,et al.  A FEniCS-Based Programming Framework for Modeling Turbulent Flow by the Reynolds-Averaged Navier-Stokes Equations , 2011, ArXiv.

[23]  J. Paul Morrison,et al.  Flow-Based Programming, 2nd Edition: A New Approach to Application Development , 2010 .

[24]  Frances E. Allen,et al.  Control-flow analysis , 2022 .

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

[26]  Janice Singer,et al.  How do scientists develop and use scientific software? , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[27]  A. P. Sokolov,et al.  Software Tools for Development of Input Data Subsystems of Computer-Aided Engineering Complexes , 2017 .

[28]  John C. Baez,et al.  Props in Network Theory , 2017, 1707.08321.

[29]  V. Buryachenko Micromehcanics of Heterogenous Materials , 2007 .

[30]  Aleksandar Jemcov,et al.  OpenFOAM: A C++ Library for Complex Physics Simulations , 2007 .

[31]  John C. Baez,et al.  Categories in Control , 2014, 1405.6881.