Skip to main content

Towards a Modular and Variability-Aware Aerodynamic Simulator

  • Chapter
  • First Online:
The Logic of Software. A Tasting Menu of Formal Methods

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 13360))

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).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Mathematical DSLs like sympy that could be translated in efficient code did not yet exist when elsA was already mature.

  2. 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

  1. 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

  2. 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

  3. 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

  4. 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

  5. Biedron, R.T., et al.: FUN3D manual: 13.7. National Aeronautics and Space Administration, Langley Research Center (2020)

    Google Scholar 

  6. 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

    Chapter  Google Scholar 

  7. 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

  8. 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

    Article  Google Scholar 

  9. 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

  10. 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

    Chapter  Google Scholar 

  11. 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

    Book  MATH  Google Scholar 

  12. Constantin, P., Foias, C.: Navier-Stokes Equations. University of Chicago Press (1988)

    Google Scholar 

  13. 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

    Chapter  Google Scholar 

  14. 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

    Chapter  Google Scholar 

  15. 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

  16. 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

    Article  MathSciNet  Google Scholar 

  17. Fay, M.: First-order unification in an equational theory. Technical report 78-5-002, University of California at Santa Cruz (1978)

    Google Scholar 

  18. 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

    Article  Google Scholar 

  19. 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

    Chapter  Google Scholar 

  20. 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

  21. 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

    Chapter  Google Scholar 

  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

    Chapter  Google Scholar 

  23. 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

    Chapter  Google Scholar 

  24. 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

    Chapter  Google Scholar 

  25. 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

    Article  Google Scholar 

  26. 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

    Chapter  Google Scholar 

  27. 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

  28. 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

    Article  Google Scholar 

  29. 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/

  30. 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

  31. 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

    Article  Google Scholar 

  32. 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

  33. 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

    Chapter  Google Scholar 

  34. 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

    Article  Google Scholar 

  35. 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

    Article  Google Scholar 

  36. 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

    Article  Google Scholar 

  37. 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

  38. 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

    Article  MATH  Google Scholar 

  39. 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/

  40. 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

    Article  Google Scholar 

  41. 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

  42. McAlister, K.W., Carr, L.W., McCroskey, W.J.: Dynamic stall experiments on the NACA 0012 airfoil. Technical report, NASA (1978)

    Google Scholar 

  43. 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)

    Google Scholar 

  44. 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

    Article  MathSciNet  MATH  Google Scholar 

  45. Metcalf, M., Reid, J.K.: Fortran 90/95 Explained. Oxford University Press, Inc. (1999)

    Google Scholar 

  46. 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

  47. 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

    Chapter  Google Scholar 

  48. NRC: Trace v5.0 theory manual - field equations, solution methods, and physical models. Technical report, United States Nuclear Regulartory Commission (2012)

    Google Scholar 

  49. 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

  50. 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

    Article  Google Scholar 

  51. 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

  52. 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

  53. 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

    Chapter  Google Scholar 

  54. 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

  55. Stroustrup, B.: A Tour of C++. Addison-Wesley Professional (2018)

    Google Scholar 

  56. 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)

  57. 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

    Article  MATH  Google Scholar 

  58. 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

  59. 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

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michael Lienhardt .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics