This is a second attempt at creating a modular Python side code. The old Node-based codes is still around but will be soon be replaced by the Module system. This PR takes the more pragmatic approach of adapting current code, and slowly porting functionality to the Module system.
The new Module system works this way. The class ForteData holds the forte objects (MOSpaceInfo, etc.) and modules implement a function run() that takes a ForteData object and returns a new one, like this:
import forte
from forte.modules import HF, FCI, Ints, GraphVisualizer
from forte import ForteData
data = ForteData()
ints = Ints()
hf = HF(ints)
fci = FCI(hf)
fci.run(data)
User Notes
[x] Implement the OptionsFactory module (creates the option object)
[x] Implement the ActiveSpaceIntsFactory module (creates an ActiveSpaceIntegral from forte objects)
[x] Implement the ObjectsFactoryFCIDUMP module (create objects from a INTDUMP/FCIDUMP file)
[x] Implement the ObjectsFactoryPsi4 module (create objects from psi4)
[x] Implements the ObjectsUtilPsi4 module (one-line convenience function to create objects from psi4)
[x] Implements the Sequential module (for tying up a sequence of modules)
Checklist
[x] Documented source code
[x] Checked for redundant headers
[x] Checked for consistency in the formatting of the output file
Description
This is a second attempt at creating a modular Python side code. The old
Node
-based codes is still around but will be soon be replaced by theModule
system. This PR takes the more pragmatic approach of adapting current code, and slowly porting functionality to theModule
system.The new
Module
system works this way. The classForteData
holds the forte objects (MOSpaceInfo
, etc.) and modules implement a functionrun()
that takes aForteData
object and returns a new one, like this:User Notes
OptionsFactory
module (creates the option object)ActiveSpaceIntsFactory
module (creates anActiveSpaceIntegral
from forte objects)ObjectsFactoryFCIDUMP
module (create objects from a INTDUMP/FCIDUMP file)ObjectsFactoryPsi4
module (create objects from psi4)ObjectsUtilPsi4
module (one-line convenience function to create objects from psi4)Sequential
module (for tying up a sequence of modules)Checklist