Abstract
Computational Fluid Dynamics (CFD) consists of numerically solving the fluid dynamics equations and has become a major tool in designing and evaluating any physical structures, like airplane, rotors, or even nuclear plants, where the flow of a fluid can be a critical efficiency or security aspect of these structures. Our first contribution is a brief review of the core characteristics a CFD solver should have (based on two common functionalities they usually provide) and the state of the art of CFD tools. Indeed, research on this field principally focuses on specific numerical or computation methods, software architecture is rarely discussed. Moreover, to the best of our knowledge, all CFD tools have major structural flaws that limit their capacities to integrate new methods and take advantage of new hardware. Our second contribution is a new approach that aims to solve these flaws. We exploit formal methods (namely, order-sorted algebra and Delta-Oriented Programming) to build a flexible CFD framework in which new methods can be added as modules. By exploiting dataflow automatic generation, our approach adds no runtime overhead. We implemented our approach and tested it on a simple example.
The authors of this paper are listed in alphabetical order. This work was partially supported by the SONICE project, granted by the French Directorate General for Civil Aviation (DGAC).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Mathematical DSLs like sympy that could be translated in efficient code did not yet exist when elsA was already mature.
- 2.
The flexibility of terms and ease to specify algebra was also a key element in the development of our approach: many trials and errors went into the design of a term structure that captures the necessary features of a CFD data.
References
Agosta, G., Fornaciari, W., Massari, G., Pupykina, A., Reghenzani, F., Zanella, M.: Managing heterogeneous resources in HPC systems. In: Proceedings of the 9th Workshop and 7th Workshop on Parallel Programming and RunTime Management Techniques for Manycore Architectures and Design Tools and Architectures for Multicore Embedded Computing Platforms, PARMA-DITAM 2018, pp. 7–12. Association for Computing Machinery, New York (2018). https://doi.org/10.1145/3183767.3183769
Ahrendt, W., Beckert, B., Bubel, R., Hähnle, R., Ulbrich, M. (eds.): Deductive Software Verification: Future Perspectives - Reflections on the Occasion of 20 Years of KeY. Lecture Notes in Computer Science, vol. 12345. Springer, Heidelberg (2020). https://doi.org/10.1007/978-3-030-64354-6
Apel, S., Kästner, C., Lengauer, C.: FEATUREHOUSE: language-independent, automated software composition. In: Proceedings of 31st International Conference on Software Engineering, ICSE 2009, 16–24 May 2009, Vancouver, Canada, pp. 221–231. IEEE (2009). https://doi.org/10.1109/ICSE.2009.5070523
Aupoix, B., Spalart, P.: Extensions of the Spalart-Allmaras turbulence model to account for wall roughness. Int. J. Heat Fluid Flow 24(4), 454–462 (2003). https://doi.org/10.1016/S0142-727X(03)00043-2. Selected Papers from the Fifth International Conference on Engineering Turbulence Modelling and Measurements
Biedron, R.T., et al.: FUN3D manual: 13.7. National Aeronautics and Space Administration, Langley Research Center (2020)
Bourgeois, K., Robert, S., Limet, S., Essayan, V.: GeoSkelSL: a Python high-level DSL for parallel computing in geosciences. In: Shi, Y., et al. (eds.) ICCS 2018. LNCS, vol. 10862, pp. 839–845. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-93713-7_83
Broquedis, F., et al.: hwloc: a generic framework for managing hardware affinities in HPC applications. In: PDP 2010 - The 18th Euromicro International Conference on Parallel, Distributed and Network-Based Computing. IEEE, Pisa, February 2010. https://doi.org/10.1109/PDP.2010.67
Cambier, L., Heib, S., Plot, S.: The Onera elsA CFD software: input from research and feedback from industry. Mech. Ind. 14(3), 159–174 (2013). https://doi.org/10.1051/meca/2013056
Ciżnicki, M., Kurowski, K., eglarz, J.W.: Energy and performance improvements in stencil computations on multi-node HPC systems with different network and communication topologies. Future Gener. Comput. Syst. 115, 45–58 (2021). https://doi.org/10.1016/j.future.2020.08.018
Clarke, D., et al.: Modeling spatial and temporal variability with the HATS abstract behavioral modeling language. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 417–457. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21455-4_13
Clavel, M., et al.: All About Maude-A High-Performance Logical Framework: How to Specify, Program, and Verify Systems in Rewriting Logic, vol. 4350. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-71999-1
Constantin, P., Foias, C.: Navier-Stokes Equations. University of Chicago Press (1988)
Czarnecki, K., Helsen, S., Eisenecker, U.: Staged configuration using feature models. In: Nord, R.L. (ed.) SPLC 2004. LNCS, vol. 3154, pp. 266–283. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-28630-1_17
Damiani, F., Hähnle, R., Kamburjan, E., Lienhardt, M.: A unified and formal programming model for deltas and traits. In: Huisman, M., Rubin, J. (eds.) FASE 2017. LNCS, vol. 10202, pp. 424–441. Springer, Heidelberg (2017). https://doi.org/10.1007/978-3-662-54494-5_25
Damiani, F., Hähnle, R., Kamburjan, E., Lienhardt, M., Paolini, L.: Variability modules for java-like languages. In: Mousavi, M., Schobbens, P. (eds.) SPLC 2021: 25th ACM International Systems and Software Product Line Conference, Leicester, UK, 6–11 September 2021, vol. A, pp. 1–12. ACM (2021). https://doi.org/10.1145/3461001.3471143
Dick, A.J.J., Watson, P.: Order-sorted term rewriting. Comput. J. 34(1), 16–19 (1991). https://doi.org/10.1093/comjnl/34.1.16
Fay, M.: First-order unification in an equational theory. Technical report 78-5-002, University of California at Santa Cruz (1978)
Flich, J., et al.: Exploring manycore architectures for next-generation HPC systems through the mango approach. Microprocess. Microsyst. 61, 154–170 (2018). https://doi.org/10.1016/j.micpro.2018.05.011
Focht, E.: VEO and PyVEO: vector engine offloading for the NEC SX-Aurora tsubasa. In: Resch, M.M., Kovalenko, Y., Bez, W., Focht, E., Kobayashi, H. (eds.) Sustained Simulation Performance 2018 and 2019, pp. 95–109. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-39181-2_9
Goglin, B.: Towards the structural modeling of the topology of next-generation heterogeneous cluster nodes with hwloc. Research report, Inria, November 2016. https://hal.inria.fr/hal-01400264
Goguen, J., Kirchner, C., Kirchner, H., Mégrelis, A., Meseguer, J., Winkler, T.: An introduction to OBJ 3. In: Kaplan, S., Jouannaud, J.-P. (eds.) CTRS 1987. LNCS, vol. 308, pp. 258–263. Springer, Heidelberg (1988). https://doi.org/10.1007/3-540-19242-5_22
Hähnle, R.: HATS: highly adaptable and trustworthy software using formal methods. In: Margaria, T., Steffen, B. (eds.) ISoLA 2010. LNCS, vol. 6416, pp. 3–8. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16561-0_2
Hähnle, R.: Task forces in the EternalS coordination action. In: Margaria, T., Steffen, B. (eds.) ISoLA 2010. LNCS, vol. 6416, pp. 20–22. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16561-0_6
Hähnle, R.: The abstract behavioral specification language: a tutorial introduction. In: Giachino, E., Hähnle, R., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2012. LNCS, vol. 7866, pp. 1–37. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40615-7_1
Hähnle, R., Johnsen, E.B.: Designing resource-aware cloud applications. Computer 48(6), 72–75 (2015). https://doi.org/10.1109/MC.2015.172
Hähnle, R., Schaefer, I.: A Liskov principle for delta-oriented programming. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012, Part I. LNCS, vol. 7609, pp. 32–46. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-34026-0_4
Han, Z., Devarajegowda, K., Werner, M., Ecker, W.: Towards a python-based one language ecosystem for embedded systems automation. In: 2019 IEEE Nordic Circuits and Systems Conference (NORCAS): NORCHIP and International Symposium of System-on-Chip (SoC), pp. 1–7 (2019). https://doi.org/10.1109/NORCHIP.2019.8906949
He, P., Mader, C.A., Martins, J.R.R.A., Maki, K.J.: DAFoam: an open-source adjoint framework for multidisciplinary design optimization with OpenFOAM. AIAA J. 58(3), 1304–1319 (2020). https://doi.org/10.2514/1.J058853
Hink, R., Hannemann, V., Eggers, T.: Extension of the Spalart-Allmaras one-equation turbulence model for effusion cooling problems. In: Deutscher Luft - und Raumfahrtkongress 2013, September 2013. https://elib.dlr.de/84638/
Hoefler, T., Schneider, T.: Optimization principles for collective neighborhood communications. In: SC 2012: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, pp. 1–10. IEEE (2012). https://doi.org/10.1109/SC.2012.86
Jasak, H.: OpenFOAM: open source CFD in research and industry. Int. J. Naval Archit. Ocean Eng. 1(2), 89–94 (2009). https://doi.org/10.2478/IJNAOE-2013-0011
Jung, Y.S., Baeder, J.: \(\gamma -\overline{\mathit{re}_{\theta t}}\) Spalart–Allmaras with crossflow transition model using Hamiltonian–strand approach. J. Aircr. 56(3), 1040–1055 (2019). https://doi.org/10.2514/1.C035149
Kamburjan, E., Hähnle, R.: Deductive verification of railway operations. In: Fantechi, A., Lecomte, T., Romanovsky, A.B. (eds.) RSSRail 2017. LNCS, vol. 10598, pp. 131–147. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-68499-4_9
Kenway, G.K., Mader, C.A., He, P., Martins, J.R.: Effective adjoint approaches for computational fluid dynamics. Prog. Aerosp. Sci. 110, 100542 (2019). https://doi.org/10.1016/j.paerosci.2019.05.002
Khaleghzadeh, H., Manumachu, R.R., Lastovetsky, A.: A novel data-partitioning algorithm for performance optimization of data-parallel applications on heterogeneous HPC platforms. IEEE Trans. Parallel Distrib. Syst. 29(10), 2176–2190 (2018). https://doi.org/10.1109/TPDS.2018.2827055
Knopp, T., Eisfeld, B., Calvo, J.B.: A new extension for k-\(\omega \) turbulence models to account for wall roughness. Int. J. Heat Fluid Flow 30(1), 54–65 (2009). https://doi.org/10.1016/j.ijheatfluidflow.2008.09.009
Koscielny, J., Holthusen, S., Schaefer, I., Schulze, S., Bettini, L., Damiani, F.: DeltaJ 1.5: delta-oriented programming for Java. In: International Conference on Principles and Practices of Programming on the Java Platform Virtual Machines, Languages and Tools, PPPJ 2014, pp. 63–74 (2014). https://doi.org/10.1145/2647508.2647512
Ladyzhenskaya, O.A.: Sixth problem of the millennium: Navier-stokes equations, existence and smoothness. Russ. Math. Surv. 58(2), 251–286 (2003). https://doi.org/10.1070/rm2003v058n02abeh000610
Leicht, T., Jägersküpper, J., Vollmer, D., Schwöppe, A., Hartmann, R., Fiedler, J., Schlauch, T.: DLR-project digital-X - next generation CFD solver ‘flucs’. In: Deutscher Luft-und Raumfahrtkongress 2016, February 2016. https://elib.dlr.de/111205/
Louboutin, M., et al.: Devito (v3.1.0): an embedded domain-specific language for finite differences and geophysical exploration. Geosci. Model Dev. 12(3), 1165–1187 (2019). https://doi.org/10.5194/gmd-12-1165-2019
Mader, C.A., Kenway, G.K.W., Yildirim, A., Martins, J.R.R.A.: ADflow–an open-source computational fluid dynamics solver for aerodynamic and multidisciplinary optimization. J. Aerosp. Inf. Syst. (2020). https://doi.org/10.2514/1.I010796
McAlister, K.W., Carr, L.W., McCroskey, W.J.: Dynamic stall experiments on the NACA 0012 airfoil. Technical report, NASA (1978)
McCroskey, W.: A critical assessment of wind tunnel results for the NACA 0012 airfoil. Technical report, National Aeronautics And Space Administration Moffett Field Ca Ames ... (1987)
Meseguer, J., Goguen, J.A., Smolka, G.: Order-sorted unification. J. Symb. Comput. 8(4), 383–413 (1989). https://doi.org/10.1016/S0747-7171(89)80036-7
Metcalf, M., Reid, J.K.: Fortran 90/95 Explained. Oxford University Press, Inc. (1999)
Mofrad, M.H., Melhem, R., Ahmad, Y., Hammoud, M.: Graphite: a NUMA-aware HPC system for graph analytics based on a new MPI * X parallelism model. Proc. VLDB Endow. 13(6), 783–797 (2020). https://doi.org/10.14778/3380750.3380751
Nielsen, F.: Introduction to MPI: the message passing interface. In: Nielsen, F. (ed.) Introduction to HPC with MPI for Data Science. Undergraduate Topics in Computer Science, pp. 21–62. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-21903-5_2
NRC: Trace v5.0 theory manual - field equations, solution methods, and physical models. Technical report, United States Nuclear Regulartory Commission (2012)
Palacios, F., et al.: Stanford university unstructured (SU\(^2\)): An open-source integrated computational environment for multi-physics simulation and design. In: 51st AIAA Aerospace Sciences Meeting including the New Horizons Forum and Aerospace Exposition 2013, January 2013. https://doi.org/10.2514/6.2013-287
Perraud, J., Durant, A.: Stability-based mach zero to four longitudinal transition prediction criterion. J. Spacecr. Rock. 53(4), 730–742 (2016). https://doi.org/10.2514/1.A33475
Poinot, M., Rumsey, C.L.: Seven keys for practical understanding and use of CGNS. American Institute of Aeronautics and Astronautics (2018). https://doi.org/10.2514/6.2018-1503
Poirier, D., Allmaras, S., McCarthy, D., Smith, M., Enomoto, F.: The CGNS system. American Institute of Aeronautics and Astronautics (1998). https://doi.org/10.2514/6.1998-3007
Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 77–91. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-15579-6_6
Seidl, C., Schaefer, I., Aßmann, U.: DeltaEcore - a model-based delta language generation framework. In: Fill, H., Karagiannis, D., Reimer, U. (eds.) Modellierung 2014, 19–21 March 2014, Wien, Österreich. LNI, vol. P-225, pp. 81–96. GI (2014). https://dl.gi.de/20.500.12116/17067
Stroustrup, B.: A Tour of C++. Addison-Wesley Professional (2018)
Thüm, T., Kästner, C., Benduhn, F., Meinicke, J., Saake, G., Leich, T.: FeatureIDE: an extensible framework for feature-oriented software development. Sci. Comput. Program. 79, 70–85 (2014). https://doi.org/10.1016/j.scico.2012.06.002. Experimental Software and Toolkits (EST 4): A special issue of the Workshop on Academic Software Development Tools and Techniques (WASDeTT-3 2010)
Witherden, F., Farrington, A., Vincent, P.: PyFR: an open source framework for solving advection-diffusion type problems on streaming architectures using the flux reconstruction approach. Comput. Phys. Commun. 185(11), 3028–3040 (2014). https://doi.org/10.1016/j.cpc.2014.07.011
Young, V., Jaleel, A., Bolotin, E., Ebrahimi, E., Nellans, D., Villa, O.: Combining HW/SW mechanisms to improve NUMA performance of multi-GPU systems. In: 2018 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), pp. 339–351 (2018). https://doi.org/10.1109/MICRO.2018.00035
Zhang, N., Driscoll, M., Markley, C., Williams, S., Basu, P., Fox, A.: Snowflake: a lightweight portable stencil DSL. In: 2017 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), pp. 795–804 (2017). https://doi.org/10.1109/IPDPSW.2017.89
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Damiani, F., Lienhardt, M., Maugars, B., Michel, B. (2022). Towards a Modular and Variability-Aware Aerodynamic Simulator. In: Ahrendt, W., Beckert, B., Bubel, R., Johnsen, E.B. (eds) The Logic of Software. A Tasting Menu of Formal Methods. Lecture Notes in Computer Science, vol 13360. Springer, Cham. https://doi.org/10.1007/978-3-031-08166-8_8
Download citation
DOI: https://doi.org/10.1007/978-3-031-08166-8_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-08165-1
Online ISBN: 978-3-031-08166-8
eBook Packages: Computer ScienceComputer Science (R0)