Skip to content

Releases: gemini3d/gemini3d

bugfix h5fortran

05 Feb 18:36
34121de

Choose a tag to compare

Update h5fortran to v3.4.9, which fixes the problem of detecting a broken HDF5 install, but then ZLIB::ZLIB conflicts with the autobuild HDF5.

BUGFIX autogrid, more robust CPU detect via hwloc

05 Feb 08:19
6a1e209

Choose a tag to compare

BUGFIX: add auto_mpi check and fix 2d mpi partition

  • enhance UI/UX for gemini3d.compare--print all errors then fail, rather than fail instantly on first mismatch. Also check for more types of errors

  • gemini3d.run: find hwloc more reliably. HWLOC is recommended to make gemini3d.run auto-CPU detect more robust. Otherwise, you might need to manually specify your computer CPU count, which can lead to mistakes eventually.

  • MSISE00: ap(7) for > Fortran 77 compliance on Intel compilers

Installers added: gemini_prereq.cmake, install_hwloc.cmake

ci: autobuild in own workflow to save CI resources

gemini.bin: print MSIS 2.0/00 status at start

full self-test without Python/Matlab, bugfixes

03 Feb 17:41
b8550a0

Choose a tag to compare

  • correct long-standing bug in auto-grid partition that could lead to runtime crashes or extremely erroneous results
  • make Gemini3D self-tests completely work without Python or Matlab. This is beneficial to HPC environments where Python setup can take additional setup configuration.
  • allow reference data download to work with CMake >= 3.13
  • add CI case for CMake 3.13

gemini3d.run

  • Detect CPU count of host. This is an open computing problem in general across operating systems; we have made a reasonable effort. CPU count can be manually specified.

gemini3d.compare

Add basic output file comparison for self-test

ctest list

cmake -B build
cmake --build build
ctest -N

Test project gemini3d/build
  Test  #1: gemini:hdf5:2dns_fang:dryrun
  Test  #2: gemini:hdf5:2dns_fang
  Test  #3: gemini:compare:hdf5:2dns_fang
  Test  #4: gemini:hdf5:2dew_fang:dryrun
  Test  #5: gemini:hdf5:2dew_fang
  Test  #6: gemini:compare:hdf5:2dew_fang
  Test  #7: gemini:hdf5:3d_fang:dryrun
  Test  #8: gemini:hdf5:3d_fang
  Test  #9: gemini:compare:hdf5:3d_fang
  Test #10: gemini:hdf5:2dns_glow:dryrun
  Test #11: gemini:hdf5:2dns_glow
  Test #12: gemini:compare:hdf5:2dns_glow
  Test #13: gemini:hdf5:2dew_glow:dryrun
  Test #14: gemini:hdf5:2dew_glow
  Test #15: gemini:compare:hdf5:2dew_glow
  Test #16: gemini:hdf5:3d_glow:dryrun
  Test #17: gemini:hdf5:3d_glow
  Test #18: gemini:compare:hdf5:3d_glow
  Test #19: unit:gemini_exe_ok
  Test #20: unit:magcalc_exe_ok
  Test #21: unit:mpi_basic
  Test #22: unit:scalapack
  Test #23: unit:mumps_basic
  Test #24: unit:fangIonize
  Test #25: glow_basic
  Test #26: unit:interp1
  Test #27: unit:interp2
  Test #28: unit:interp3
  Test #29: unit:diffusion1
  Test #30: unit:potential2
  Test #31: unit:mpi:excessCPU
  Test #32: unit:pathlib
  Test #33: unit:namelist
  Test #34: unit:compiler_vendor
  Test #35: unit:DateFormats
  Test #36: unit:DateRollover
  Test #37: unit:SolarZenithAngle

CMake >= 3.13 compatible

31 Jan 21:33
21d176c

Choose a tag to compare

  • allow CMake >= 3.13. CMake >= 3.17 + Ninja recommended for speed + stability
  • add hwm14 stub and test
  • add MPI fortran config test

better cmake

25 Jan 04:04
a2ec92f

Choose a tag to compare

cmake -Ddownload=yes -Dpython=no to run some more simulation tests without PyGemini--previously, no simulation tests could be run without PyGemini (Gemini itself however runs without needing Python, Python just makes it easer)

Added Intel Fortran discovery again

Made MatGemini and PyGemini integrations more robust

Made all external libraries more robust and command line switchable sync

add MSIS 2.0 option

19 Jan 22:11
2b94147

Choose a tag to compare

By default Gemini3D uses MSISE00. The new MSIS 2.0 is more accurate in many regards, and can be enabled by:

cmake -B build -Dmsis20=yes

cmake --build build

As part of this upgrade, the MSIS data exchange now uses HDF5 files under the simulation inputs/ directory.

Enhance compiler detection

28 Oct 21:24
fa61981

Choose a tag to compare

Better auto-detection of compatible compilers. This is especially useful for MacOS where clang masquerades as GCC.

many bugfixes

26 Oct 19:52
de4b445

Choose a tag to compare

bugfixes

  • check_finite_output checks on all images, not just root (more robust early failure when a sim doesn't converge)
  • correct linking of Mumps-Scalapack-Lapack--remove linking hacks, use modern CMake INTERFACE to eliminate redundant and buggy duplicate link specifications
  • improve PyGemini interface robustness to use python -m gemini.<method>
  • fix CMake infinite loop when called from MatGemini

Features

  • select Fang 2008 (maxwellian) or Fang 2010 (monoenergetic) models
  • improve test parallelism

Improve HDF5 finding, make many self-tests optional

21 Sep 18:56
df1a1b5

Choose a tag to compare

While normally new users or new systems should have all self-tests run, to save build time we add the option to disable many self-tests with cmake -DBUILD_TESTING=off. If any problem is experienced, it's best to use self-tests as they tell more specifically where the problem is occurring.

HDF5 finding behavior improved.

Can use without MPI

28 Aug 05:38

Choose a tag to compare

New users may not have MPI or Scalapack installed, or may have broken versions of those libraries. Although real work with Gemini benefits greatly from parallelism, we don't want to lose new users who get frustrated. Better to have their simulations successfully run, then they can get MPI working to speed up their runs.

This works with either autobuild Mumps or if a user separately installed Mumps with cmake -Dparallel=no option.