Skip to content

Commit

Permalink
Version 4.0
Browse files Browse the repository at this point in the history
**Major points:**
* Removed the version numbers of the input file names (break compatibility with previous version).
* Possibility to use finite pressure relaxation on UEq model for more than two phases. More information in: Schmidmayer _et al._ [https://doi.org/10.1002/fld.5142](https://doi.org/10.1002/fld.5142).
* Possibility to initialize an unstructured simulation with the result of a previous simulation performed on a similar mesh and/or a different number of CPUs. This feature is particularly useful to fasten steady state convergence on a fine mesh using coarse mesh results. More information in: Cazé _et al._ (2023). Modelling and simulation of the cavitation phenomenon in space-engine turbopumps. [http://dx.doi.org/10.2139/ssrn.4479910](http://dx.doi.org/10.2139/ssrn.4479910).
* PUEq phase-change model (handled through PTMu relaxation) does not require mass fraction threshold anymore to trigger mass transfer. Also more information in: Cazé _et al._ (2023). [http://dx.doi.org/10.2139/ssrn.4479910](http://dx.doi.org/10.2139/ssrn.4479910).
* Add Moving Reference Frame coupling of a rotating region with a static one. Also more information in: Cazé _et al._ (2023). [http://dx.doi.org/10.2139/ssrn.4479910](http://dx.doi.org/10.2139/ssrn.4479910).
* Renamed boundary condition names (break compatibility with previous version).
* Immersed boundaries can be added in a Cartesian mesh domain (physicalEntity = -1). Similarly to: Trummler _et al._ [https://doi.org/10.1017/jfm.2020.432](https://doi.org/10.1017/jfm.2020.432).

**Minor points:**
* Option to record boundary quantities such as pressure forces and shear stress (useful for aerodynamic coefficient computation).
* Possibility to display cells' reference length on XML output with unstructured mesh.
* Add a tutorial on mesh mapping and low-Mach preconditionning options.
* Add scripts related to droplet shock-induced cavitation. More information in: Biasiori-Poulanges & Schmidmayer (2023) [https://doi.org/10.1063/5.0127105](https://doi.org/10.1063/5.0127105) and Schmidmayer & Biasiori-Poulanges (2023) [https://doi.org/10.1063/5.0151404](https://doi.org/10.1063/5.0151404).
* Improve variable name style for Gnuplot output.
* Increase code coverage by nonreg.
* Updated AMR refinement criteria to match the different modelling.
* Always a little more source code translation from French to English.
* A wall is now considered as a symmetry BC if viscosity is ignored.
* Update of documentation.

**Fixes:**
* Fix the getTemperature() and copyPhase() methods for multiphase models.
* Fix restart bug when using alphaNull on PUEq model.
* Fix bug on simulation progress when using iteration control mode.
* Fix a MPI data type that caused a crash during MPI_Allreduce on some compilers.
* Minor fix for Euler-Korteweg model.
* Correction on UEq BC for volume fraction flux, using sM instead of uStar to respect transport equation.
* Update non-regression scripts to make them compatible with OS X.
* Correction for phase change with a second-order method.
  • Loading branch information
code-mphi committed Sep 15, 2023
1 parent dd550d1 commit dab2c84
Show file tree
Hide file tree
Showing 1,250 changed files with 19,955 additions and 8,287 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@ venv
*.v12.suo
*.ods
error_*
*.msh
21 changes: 14 additions & 7 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
ECOGEN is under GPLv3 or later license. Here is the name and contact information of contributors of the project.

Contributors : S. Le Martelot, F. Petitpas, K. Schmidmayer, E. Daniel, B. Dorschner, J. Caze
ECOGEN is under GPLv3 or later license. Here is the name and contact information of contributors of the project (from first to last to join).

F. Petitpas
-----------
Expand All @@ -13,8 +11,8 @@ Expert enginneer turbopumps at CNES, France.

K. Schmidmayer
--------------
Permanent researcher at Inria Sud Ouest, France.
e-mail adress: kevin.schmidmayer@gmail.com
Permanent researcher at Inria Center of the University of Bordeaux, France. Teaching at Université de Pau et des Pays de l'Adour.
e-mail adress: kevin.schmidmayer@inria.fr
Personal web page: https://kevinschmidmayer.github.io/

E. Daniel
Expand All @@ -29,5 +27,14 @@ Personal web page: https://benedikt-dorschner.com/

J. Caze
-------
Phd student at CNES / Aix Marseille Universite, France.
Personal web page: https://joriscaze.github.io/website/
Senior developer at SII group. Was PhD student and postdoc at CNES / Aix Marseille Universite, France.
Personal web page: https://joriscaze.github.io/

F. Gadiri
---------
Was a Master student at Aix Marseille Universite, France.

S. Schropff
-----------
PhD student at Aix Marseille Universite, France.
e-mail adress: [email protected]
4 changes: 3 additions & 1 deletion COPYRIGHT
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@ Copyright © 2016-2017 Fabien Petitpas, Kevin Schmidmayer
Copyright © 2018 Fabien Petitpas, Kevin Schmidmayer, Eric Daniel
Copyright © 2019 Fabien Petitpas, Kevin Schmidmayer, Eric Daniel, Benedikt Dorschner
Copyright © 2020 Fabien Petitpas, Kevin Schmidmayer, Eric Daniel, Benedikt Dorschner, Joris Caze
Copyright © 2021-2022 Fabien Petitpas, Kevin Schmidmayer, Eric Daniel, Joris Caze
Copyright © 2021 Fabien Petitpas, Kevin Schmidmayer, Eric Daniel, Joris Caze, Fatima Gadiri
Copyright © 2022 Fabien Petitpas, Kevin Schmidmayer, Eric Daniel, Joris Caze
Copyright © 2023 Fabien Petitpas, Kevin Schmidmayer, Eric Daniel, Joris Caze, Solene Schropff
43 changes: 36 additions & 7 deletions ECOGEN.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,28 @@
<!-- <testCase>libTests/referenceTestCases/euler/1D/shockTubes/HPRight/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/1D/shockTubes/spherical/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/transports/rectangleDiagonal/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/transports/rectangleDiagonalUnstruct/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/transports/transport1dCartesian/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/HPCenter/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/HPUnstructured/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/HPUnstructuredMeshMappingRestart/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/nozzles/tankWithShock/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/nozzles/supersonicInjection/</testCase> --> <!-- Something is wrong with the results of this test case (certainly coming from injection boundary condition), maybe something missing in initialConditionsV4.xml -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/nozzles/subsonicInjection/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/nozzles/injectionTemp/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/nozzles/injectionStagState/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/nozzles/lowMachSmoothCrossSection/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/shockTubes/cylindrical/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/shockTubes/unstruct/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/shockTubes/cartesian/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/Blasius/BlasiusLaminar/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/Blasius/BlasiusTurbulent/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/Blasius/BlasiusLEIS/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/RayleighTaylor/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/disc/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/foil/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/immersedBoundaries/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/2D/venturi/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/3D/LPCenter/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/euler/3D/shockTubeCylinder/</testCase> -->

<!-- Pressure- and velocity-equilibrium-model reference test cases -->
<!-- ------------------------------------------------------------- -->
Expand All @@ -34,22 +44,33 @@
<!-- <testCase>libTests/referenceTestCases/PUEq/1D/shockTubes/interfaceWaterAirNASG/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/1D/shockTubes/epoxySpinel/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/1D/cavitation/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/1D/heating/heatedVapourAir/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/1D/sphericalCollapse/Pratio1427/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/1D/sphericalCollapse/Pratio353/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/transportWaterSquareInAir/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/shockTubeUnstruct/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/shockTubeUnstructRotated/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/squareWaterExplosion/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/shockBubble/heliumAir/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/RichtmyerMeshkov/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/RayleighTaylor/sameDynamicViscosity/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/RayleighTaylor/sameKinematicViscosity/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/sphericalCollapse/Pratio1427/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/sphericalCollapse/Pratio353/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/underwaterExplosion/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/discLimitSinglePhase/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/nozzles/tank/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/nozzles/injection/</testCase> --> <!-- Something is wrong with the results of this test case (certainly coming from injection boundary condition), maybe something missing in initialConditionsV4.xml -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/nozzles/injection/</testCase> --> <!-- Something is wrong with the results of this test case (certainly coming from injection boundary condition), maybe something missing in initialConditions.xml -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/nozzles/lowMachSmoothCrossSection/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/nozzles/outletPressurePathological/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/testUnstructured/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/shockTubeFreeSurface/</testCase> --> <!-- Works but initial conditions (mesh) might not be the best ones -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/foil/noCavitation/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/foil/cavitation/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/evap/evapShockTube/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/2D/venturi/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/phaseChange/evapExpansionTubeEquilibrium/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/phaseChange/condensation/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/phaseChange/evaporation/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/surfaceTension/squareToCircle/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/surfaceTension/squareToCircleSymmetry/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/surfaceTension/waterCylinderInAir/</testCase> -->
Expand All @@ -58,6 +79,7 @@
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/surfaceTension/dropletImpact/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/surfaceTension/dropletImpact_restart/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/gravity/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/AddPhysicalEffects/heatConduction/simple/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/3D/shockBubble/heliumAir/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/3D/sphericalCollapse/Pratio1427/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PUEq/3D/unstructured/</testCase> -->
Expand All @@ -66,11 +88,14 @@
<!-- --------------------------------------------------------------------------- -->
<!-- <testCase>libTests/referenceTestCases/PTUEq/transports/interfaceAirHelium/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PTUEq/shockTubes/interfaceWaterAir/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PTUEq/shockTubes/interfaceDodecane/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PTUEq/shockTubes/interfaceDodecane/cartesian/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PTUEq/shockTubes/interfaceDodecane/unstructured/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/PTUEq/heating/heatedVapourAir/</testCase> -->

<!-- Homogeneous-Euler reference test cases -->
<!-- -------------------------------------- -->
<!-- <testCase>libTests/referenceTestCases/eulerHomogeneous/shockTubes/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/eulerHomogeneous/shockTubes/cartesian/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/eulerHomogeneous/shockTubes/unstructured/</testCase> -->

<!-- Velocity-equilibrium-model reference test cases -->
<!-- ----------------------------------------------- -->
Expand All @@ -80,14 +105,18 @@
<!-- <testCase>libTests/referenceTestCases/UEq/1D/shockTubes/interfaceWaterAirNASG/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/1D/shockTubes/epoxySpinel/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/1D/shockTubes/mixtures/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/1D/shockTubes/HMXWaterAir/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/1D/mixture/waterAir/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/1D/shockOnInterface/sharpInterfaceWaterAir/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/1D/shockOnInterface/diffusedInterfaceWaterAir/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/1D/cavitation/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/1D/sphericalCollapse/Pratio1427/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/2D/nonSphericalCollapseNearWall/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/2D/RichtmyerMeshkov/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/2D/squareToCircleSymmetry/</testCase> -->

<!-- <testCase>libTests/referenceTestCases/UEq/2D/dropletShockInducedCavitation/Mach2_4/</testCase> -->
<!-- <testCase>libTests/referenceTestCases/UEq/2D/dropletShockInducedCavitation/Mach2_4_pureWater/</testCase> -->

<!-- Velocity-equilibrium-model with total energy reference test cases -->
<!-- ----------------------------------------------------------------- -->
<!-- <testCase>libTests/referenceTestCases/UEqTotEnergy/1D/transports/interfaceWaterAir/</testCase> -->
Expand Down
10 changes: 5 additions & 5 deletions coverage_and_profile/README_coverage.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ Here is described how to compute a code coverage for ECOGEN.
./scripts/run.sh ./nonreg/ECOGEN_nonReg_full.list
This will generate .gcda files in the sources.

5. Install lcov if not already done and execute the following command to interprete the gcda files. Note that the "--capture" option may be "--coverage" on some systems.
lcov --capture --directory . --output-file coverage/coverage.info
5. Install lcov if not already done and execute the following command to interprete the gcda files. Note that the "--capture" option may be "--coverage" on some systems. You may also add the following options "--ignore-errors inconsistent,inconsistent,gcov,gcov --filter range".
lcov --capture --directory . --output-file coverage_and_profile/coverage.info

6. Execute the following command to generate html files from the previous coverage files.
genhtml coverage/coverage.info --output-directory coverage/html
6. Execute the following command to generate html files from the previous coverage files. You may also add the following options "--ignore-errors inconsistent".
genhtml coverage_and_profile/coverage.info --output-directory coverage_and_profile/html

7. Open coverage/html/index.html with your browser to have a look at the report.
7. Open coverage_and_profile/html/index.html with your browser to have a look at the report.

Note that the .gcno and .gcda files are voluntarily not added in the .gitignore to remind you to delete them after the analysis (and obviously if you do not want to keep them).
2 changes: 1 addition & 1 deletion docs/doxygen_docs/doxygen.conf
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = ECOGEN
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 1.0
PROJECT_NUMBER = 4.0

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
42 changes: 42 additions & 0 deletions docs/sphinx_docs/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# -- Dockerfile --
# This Dockerfile provides a simple way to build documentation
# without requiring to install all dependencies locally

# Pull Ubuntu latest version
FROM ubuntu:20.04

# Minimal Python installation
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y python3 \
python3-pip

# Install Sphinx
RUN pip3 install sphinx sphinx_rtd_theme sphinx-numfig sphinxcontrib-bibtex

# # Install LaTeX (to build PDF version of the doc)
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get install -y texlive \
texlive-latex-extra \
latexmk

WORKDIR /home
ENTRYPOINT ["make"]
CMD ["html"]

# -- User guide --

# To build the container image using this Dockerfile
# docker image build -t ecogen/sphinx-doc .

# To run the container
# For HTML output
# docker container run --mount type=bind,source=${PWD},target=/home ecogen/sphinx-doc
# Or
# docker container run --mount type=bind,source=${PWD},target=/home ecogen/sphinx-doc html
# For PDF output
# docker container run --mount type=bind,source=${PWD},target=/home ecogen/sphinx-doc pdf

# To troubleshoot any bug it is also possible to run the container interactively
# docker container run --mount type=bind,source=${PWD},target=/home -it -w /home --entrypoint /bin/bash ecogen/sphinx-doc
# make html
10 changes: 10 additions & 0 deletions docs/sphinx_docs/source/Biblio.bib
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
% Encoding: UTF-8
@article{chiapolino2017sharpening,
title={Sharpening diffuse interfaces with compressible fluids on unstructured meshes},
author={Chiapolino, Alexandre and Saurel, Richard and Nkonga, Boniface},
journal={Journal of Computational Physics},
volume={340},
pages={389--417},
year={2017},
publisher={Elsevier}
}

@article{schmidmayer2021UEq,
title={Modelling interactions between waves and diffused interfaces},
author={Schmidmayer, K. and Caz{\'e}, J. and Petitpas, F. and Daniel, E. and Favrie, N.},
Expand Down
Loading

0 comments on commit dab2c84

Please sign in to comment.