def __init__(self, system, grid, proatomdb, local=True, slow=False, lmax=3, epsilon=0, threshold=1e-6, maxiter=500, greedy=False): ''' **Optional arguments:** (that are not present in the base class) threshold The procedure is considered to be converged when the maximum change of the charges between two iterations drops below this threshold. maxiter The maximum number of iterations. If no convergence is reached in the end, no warning is given. ''' HirshfeldIMixin.__init__(self, threshold, maxiter, greedy) HirshfeldWPart.__init__(self, system, grid, proatomdb, local, slow, lmax, epsilon)
def __init__(self, coordinates, numbers, pseudo_numbers, grid, moldens, proatomdb, spindens=None, local=True, lmax=3, threshold=1e-6, maxiter=500): ''' **Arguments:** (that are not defined in ``WPart``) proatomdb In instance of ProAtomDB that contains all the reference atomic densities. **Optional arguments:** (that are not defined in ``WPart``) threshold The procedure is considered to be converged when the maximum change of the charges between two iterations drops below this threshold. maxiter The maximum number of iterations. If no convergence is reached in the end, no warning is given. ''' HirshfeldIMixin.__init__(self, threshold, maxiter) HirshfeldWPart.__init__(self, coordinates, numbers, pseudo_numbers, grid, moldens, proatomdb, spindens, local, lmax)
def __init__(self, coordinates, numbers, pseudo_numbers, grid, moldens, proatomdb, spindens=None, local=True, lmax=3, threshold=1e-6, maxiter=500, greedy=False): ''' **Arguments:** (that are not defined in ``WPart``) proatomdb In instance of ProAtomDB that contains all the reference atomic densities. **Optional arguments:** (that are not defined in ``WPart``) threshold The procedure is considered to be converged when the maximum change of the charges between two iterations drops below this threshold. maxiter The maximum number of iterations. If no convergence is reached in the end, no warning is given. greedy Reduce the CPU cost at the expense of more memory consumption. ''' HirshfeldIMixin.__init__(self, threshold, maxiter, greedy) HirshfeldWPart.__init__(self, coordinates, numbers, pseudo_numbers, grid, moldens, proatomdb, spindens, local, lmax)
def eval_proatom(self, index, output, grid=None): if self._greedy: HirshfeldIMixin.eval_proatom(self, index, output, grid) else: HirshfeldWPart.eval_proatom(self, index, output, grid)
def get_memory_estimates(self): return (HirshfeldWPart.get_memory_estimates(self) + HirshfeldIMixin.get_memory_estimates(self))
def get_memory_estimates(self): return ( HirshfeldWPart.get_memory_estimates(self) + HirshfeldIMixin.get_memory_estimates(self) )