Sometimes it's useful to do multi step calculations, e.g. start the hybrid functional from a converged GGA wavefunction. It's not clear exactly how to best implement this. In one way you might think it should be done via the generic calculator, and pass multiple calculator constructors. However, for VASP for example the runs are most easily done in the same rundir, so the WAVECAR file doesn't have to be copied. It's a bit hard to imagine how to make this entirely general, but perhaps the way we handle FileIO calculators' temporary rundir is general enough that we could do something universal.
For now I plan to do something specific in wfl.calculators.vasp.Vasp (see #275), but it might be good to generalize it.
Sometimes it's useful to do multi step calculations, e.g. start the hybrid functional from a converged GGA wavefunction. It's not clear exactly how to best implement this. In one way you might think it should be done via the generic calculator, and pass multiple calculator constructors. However, for VASP for example the runs are most easily done in the same rundir, so the WAVECAR file doesn't have to be copied. It's a bit hard to imagine how to make this entirely general, but perhaps the way we handle FileIO calculators' temporary rundir is general enough that we could do something universal.
For now I plan to do something specific in
wfl.calculators.vasp.Vasp
(see #275), but it might be good to generalize it.