-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Restart file collection + POD training #216
Conversation
* add libROM to CMakelists.txt * Add shell_script * Minor changes * Add module file
* Update script to analyze forces on constraints * initial ci workflow files. * default branch name release. * create build directory for compilation. * minor fix --------- Co-authored-by: Jean-Luc Fattebert <fattebertj@ornl.gov>
* changed the Signal.h header file name. * additional routine to find scalapack library, if nothing is found. * ci workflow with test and format * changed branch name * ctest verbose * added --oversubscribe to cmake MPIEXEC_PREFLAGS variable. * parallel hdf5 package fix. also librom is included. * ci workflow only checks the first 20 tests. * minor fix * rom-fpmd driver and librom dependency in cmake. librom must be compiled before mgmol cmake. * cmake fix and toolchain file for LC quartz. * bug fix on FindSCALAPACK.cmake * librom-mgmol installation script for LC quartz.
@jeanlucf22 , this PR is still work-in-progress, but I'd like to ask you to review one function I drafted: The main intention with this function is to load wavefunctions from an existing restart file. Once the wavefunction data is loaded, we could convert/store the data into libROM matrix. This function will be called at least after Although, I'm not confident whether I put all the necessary routines in this function. Ultimately I should set up a unit test for this, but I just wanted to check with you if I missed something important or did not use some routines properly. |
Look at mgmol/src/ExtendedGridOrbitals.cc Line 781 in 6dc6067
This function loads the wavefunctions from an HDF5 file for the case OrbitalsType=ExtendedGridOrbitals. Would that fill your needs? |
…_info > 2) actions.
eeb3de8
to
5ec2dbe
Compare
This PR implements the restart file collection for libROM snapshot/POD matrix generation. This PR also includes some groundworks for overall ROM workflow.
libROM snapshot generation at FOM simulation
If
ROM.offline.save_librom_snapshot
is set true, then the offline FOM simulation will generate libROM snapshot matrix files withct.md_print_filename + "_mdstep" + std::to_string(mdstep) + "_orbital" + "." + std::to_string(rank)
, e.g.,MD_mdstep1_snapshot.000000
.The libROM snapshot files will be generated at
(md_iteration_ % ct.checkpoint) == 0
.ROM workflow main driver
rom_main.cc
and ROM workflow routinesrom_main.cc
will handle the entire workflow of ROM. Currently, only the restart file collection + POD training is implemented.src/rom_workflows.h
andsrc/rom_workflows.cc
.readRestartFiles
.MGmol<OrbitalsType>::loadOrbitalFromRestartFile
MGmol<OrbitalsType>::loadOrbitalFromRestartFile
reads the data from a restart file and generates a newOrbitalsType
class.OrbitalsType::read_func_hdf5
reads the wavefunction from the restart file, further manipulation is required with additional routines, at least the extrapolation if used.loadOrbitalFromRestartFile
used most routines that are usedif (ct.restart_info > 2)
.Option description separated
src/main.cc
are now moved into a separate headertools/OptionDescription.h
. The ROM driversrc/rom_main.cc
shares the same option parsing routines.ROM-related options/controls
Control
class has the ROM-related options all packed into one member variableROMPrivateOption rom_pri_options
. This member variable is private in order to prevent changes from outside.src/rom_Control.h
will contain all enumeration/options related to ROM workflow.Pointer initialization
MGmol<OrbitalsType>::orbitals_extrapol_
andOrbitalsExtrapolation::orbitals_minus1_
are initialized asnullptr
at class declaration. This is a change reflecting the issuenullptr
initialization of pointer member variables in class definition #223 .Minor changes
src/mgmol_config.h.in
generates a compile-time header file, which has the libROM flagMGMOL_HAS_LIBROM
. mgmol can be installed with/without libROM.src/tools/Signal_mgmol.h
->src/tools/mgmol_Signal.h