def __init__(self, system, ai, settings, ffrefs=[]): ''' **Arguments** system a Yaff `System` instance defining the system ai a `Reference` instance corresponding to the ab initio input data settings a `Settings` instance defining all QuickFF settings **Optional Arguments** ffrefs a list of `Reference` instances defining the a-priori force field contributions. ''' with log.section('INIT', 1, timer='Initializing'): log.dump('Initializing program') self.settings = settings self.system = system self.ai = ai self.ffrefs = ffrefs self.valence = ValenceFF(system, settings) self.perturbation = RelaxedStrain(system, self.valence, settings) self.trajectories = None self.print_system()
def __init__(self, system, ai, **kwargs): ''' **Arguments** system a Yaff `System` object defining the system ai a `Reference` instance corresponding to the ab initio input data **Keyword Arguments** ffrefs a list of `Reference` objects corresponding to a priori determined contributions to the force field (such as eg. electrostatics or van der Waals contributions) fn_yaff the name of the file to write the final parameters to in Yaff format. The default is `pars.txt`. fn_sys the name of the file to write the system to. The default is `system.chk`. fn_traj a cPickle filename to read/write the perturbation trajectories from/to. If the file exists, the trajectories are read from the file. If the file does not exist, the trajectories are written to the file. only_traj specifier to determine for which terms a perturbation trajectory needs to be constructed. If ONLY_TRAJ is a single string, it is interpreted as a task (only terms that have this task in their tasks attribute will get a trajectory). If ONLY_TRAJ is a list of strings, each string is interpreted as the basename of the term for which a trajectory will be constructed. plot_traj if set to True, all energy contributions along each perturbation trajectory will be plotted using the final force field. xyz_traj if set to True, each perturbation trajectory will be written to an XYZ file. ''' with log.section('PROG', 2, timer='Initializing'): log.dump('Initializing program') self.system = system self.ai = ai self.kwargs = kwargs self.valence = ValenceFF(system) self.perturbation = RelaxedStrain(system, self.valence) self.trajectories = None