Verifying ParamGen: A case study in scientific software abstraction and modeling. Altuntas, A., Baugh, J., & Nusbaumer, J. In Proceedings of the 2023 Improving Scientific Software Conference, pages 1-9, 2023. (No. NCAR/TN-576+PROC)
Verifying ParamGen: A case study in scientific software abstraction and modeling [pdf]Pdf  doi  abstract   bibtex   8 downloads  
We introduce ParamGen, an infrastructure library for climate models to generate input files that specify physics, parameterizations, and other behavior. ParamGen supports arbitrary Python expressions for specifying a default set of runtime parameters and values, thereby providing a high level of expressiveness and flexibility. Initially developed for the MOM6 ocean component in Community Earth System Model (CESM), ParamGen is now used by several additional CESM components. Therefore, it is of high importance that it operates correctly, i.e., absent any undesired and unexpected behavior. To that end, we develop an abstract verification model of ParamGen in Alloy, a software modeling and analysis tool with a declarative language that combines first-order logic and relational calculus. We evaluate the correctness of ParamGen via Alloy and discuss how abstract models and formal verification can help quickly frame questions and get answers regarding the structure and behavior of our scientific computing applications. We also describe our experience in coming to a cleaner and well-formed software design and abstractions as a result of the modeling exercise we present in this study.

Downloads: 8