diff --git a/CMakeLists.txt b/CMakeLists.txt index 17f9b64e0..c953c8d5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.25) # Needed for CUDA, MPI, and CTest features project( EXP - VERSION "7.11.0" + VERSION "7.11.1" HOMEPAGE_URL https://github.com/EXP-code/EXP LANGUAGES C CXX Fortran) diff --git a/doc/exp.cfg b/doc/exp.cfg index ad7c5326d..a7ab835dd 100644 --- a/doc/exp.cfg +++ b/doc/exp.cfg @@ -48,7 +48,7 @@ PROJECT_NAME = EXP # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 7.11.0 +PROJECT_NUMBER = 7.11.1 # 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 diff --git a/doc/exp.cfg.breathe b/doc/exp.cfg.breathe index 699d2b6fa..6e41b40db 100644 --- a/doc/exp.cfg.breathe +++ b/doc/exp.cfg.breathe @@ -48,7 +48,7 @@ PROJECT_NAME = EXP # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 7.11.0 +PROJECT_NUMBER = 7.11.1 # 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 diff --git a/exputil/EmpCylSL.cc b/exputil/EmpCylSL.cc index 2bc068a51..5030c42df 100644 --- a/exputil/EmpCylSL.cc +++ b/exputil/EmpCylSL.cc @@ -2412,6 +2412,11 @@ void EmpCylSL::generate_eof(int numr, int nump, int numt, orthoTest(ortho->orthoCheck(std::max(NMAX*50, 200)), "EmpCylSL[SLGridSph]", "l"); } + // Save quadrature parameters for provenance + // + eof_vars.numr = numr; + eof_vars.nump = nump; + eof_vars.numt = numt; // Initialize fixed variables and storage // @@ -7413,29 +7418,51 @@ void EmpCylSL::WriteH5Cache() std::string forceID("Cylinder"), geometry("cylinder"); std::string model = EmpModelLabs[mtype]; - file.createAttribute("geometry", HighFive::DataSpace::From(geometry)).write(geometry); - file.createAttribute("forceID", HighFive::DataSpace::From(forceID)).write(forceID); - file.createAttribute("Version", HighFive::DataSpace::From(Version)).write(Version); + file.createAttribute("geometry", HighFive::DataSpace::From(geometry)).write(geometry); + file.createAttribute("forceID", HighFive::DataSpace::From(forceID)). write(forceID); + file.createAttribute("Version", HighFive::DataSpace::From(Version)). write(Version); - // Write the specific parameters + // Write the grid specific parameters // - file.createAttribute("model", HighFive::DataSpace::From(model)). write(model); - file.createAttribute ("mmax", HighFive::DataSpace::From(MMAX)). write(MMAX); - file.createAttribute ("numx", HighFive::DataSpace::From(NUMX)). write(NUMX); - file.createAttribute ("numy", HighFive::DataSpace::From(NUMY)). write(NUMY); - file.createAttribute ("nmax", HighFive::DataSpace::From(NORDER)). write(NORDER); - file.createAttribute ("lmaxfid", HighFive::DataSpace::From(LMAX)). write(LMAX); - file.createAttribute ("nmaxfid", HighFive::DataSpace::From(NMAX)). write(NMAX); - file.createAttribute ("neven", HighFive::DataSpace::From(Neven)). write(Neven); - file.createAttribute ("nodd", HighFive::DataSpace::From(Nodd)). write(Nodd); - file.createAttribute ("cmapr", HighFive::DataSpace::From(CMAPR)). write(CMAPR); - file.createAttribute ("cmapz", HighFive::DataSpace::From(CMAPZ)). write(CMAPZ); - file.createAttribute ("rmin", HighFive::DataSpace::From(RMIN)). write(RMIN); - file.createAttribute ("rmax", HighFive::DataSpace::From(RMAX)). write(RMAX); - file.createAttribute ("ascl", HighFive::DataSpace::From(ASCALE)). write(ASCALE); - file.createAttribute ("hscl", HighFive::DataSpace::From(HSCALE)). write(HSCALE); - file.createAttribute ("cmass", HighFive::DataSpace::From(cylmass)). write(cylmass); - + file.createAttribute("model", HighFive::DataSpace::From(model)). write(model); + file.createAttribute ("mmax", HighFive::DataSpace::From(MMAX)). write(MMAX); + file.createAttribute ("numx", HighFive::DataSpace::From(NUMX)). write(NUMX); + file.createAttribute ("numy", HighFive::DataSpace::From(NUMY)). write(NUMY); + file.createAttribute ("nmax", HighFive::DataSpace::From(NORDER)). write(NORDER); + file.createAttribute ("lmaxfid", HighFive::DataSpace::From(LMAX)). write(LMAX); + file.createAttribute ("nmaxfid", HighFive::DataSpace::From(NMAX)). write(NMAX); + file.createAttribute ("neven", HighFive::DataSpace::From(Neven)). write(Neven); + file.createAttribute ("nodd", HighFive::DataSpace::From(Nodd)). write(Nodd); + file.createAttribute ("cmapr", HighFive::DataSpace::From(CMAPR)). write(CMAPR); + file.createAttribute ("cmapz", HighFive::DataSpace::From(CMAPZ)). write(CMAPZ); + file.createAttribute ("rmin", HighFive::DataSpace::From(RMIN)). write(RMIN); + file.createAttribute ("rmax", HighFive::DataSpace::From(RMAX)). write(RMAX); + file.createAttribute ("ascl", HighFive::DataSpace::From(ASCALE)). write(ASCALE); + file.createAttribute ("hscl", HighFive::DataSpace::From(HSCALE)). write(HSCALE); + file.createAttribute ("cmass", HighFive::DataSpace::From(cylmass)). write(cylmass); + + // Additional unchecked variables + // + file.createAttribute ("PCAVAR", HighFive::DataSpace::From(PCAVAR)). write(PCAVAR); + file.createAttribute ("PCAVTK", HighFive::DataSpace::From(PCAVTK)). write(PCAVTK); + file.createAttribute ("PCAEOF", HighFive::DataSpace::From(PCAEOF)). write(PCAEOF); + file.createAttribute ("numr", HighFive::DataSpace::From(NUMR)). write(NUMR); + file.createAttribute ("hexp", HighFive::DataSpace::From(HEXP)). write(HEXP); + file.createAttribute ("hfac", HighFive::DataSpace::From(HFAC)). write(HFAC); + file.createAttribute ("ppow", HighFive::DataSpace::From(PPOW)). write(PPOW); + + // Options + // + file.createAttribute ("logarithmic", HighFive::DataSpace::From(logarithmic)). write(logarithmic); + file.createAttribute ("enforce_limits", HighFive::DataSpace::From(enforce_limits)).write(enforce_limits); + + // EOF quadrature parameters + // + file.createAttribute ("eof_numr", HighFive::DataSpace::From(eof_vars.numr)).write(eof_vars.numr); + file.createAttribute ("eof_nump", HighFive::DataSpace::From(eof_vars.nump)).write(eof_vars.nump); + file.createAttribute ("eof_numt", HighFive::DataSpace::From(eof_vars.numt)).write(eof_vars.numt); + + // Cosine functions auto cosine = file.createGroup("Cosine"); diff --git a/include/EmpCylSL.H b/include/EmpCylSL.H index dff248f2b..3b92175fc 100644 --- a/include/EmpCylSL.H +++ b/include/EmpCylSL.H @@ -78,6 +78,11 @@ protected: double HSCALE; double pfac, dfac, ffac; + // For provenance +struct eof_variables { + int numr{-1}, nump{-1}, numt{-1}; +} eof_vars; + std::vector facC, facS; int rank2, rank3;