Exemple #1
0
    def from_molecule(cls, molecule, model, points):
        r"""
        Initialize class from `Molecule` object(s).

        Parameters
        ----------
        molecule : Molecule or Sequence of Molecule
            Instance of Molecule class, or sequence of Molecule class instances.
        model : str
            Energy model used to calculate local reactivity descriptors.
            Available models are "linear" and "quadratic".
        points : np.array
            Coordinates of points on which the local properties are evaluated given as a 2D
            array with 3 columns.
        """
        # check molecule
        molecule = check_arg_molecule(molecule)
        # if points is None:
        #     # make molecular grid which also checks for matching atomic numbers & coordinates
        #     grid = get_molecular_grid(molecule, grid=None)
        #     points, numbers, coords = grid.points, grid.numbers, grid.centers
        numbers = get_matching_attr(molecule, "numbers", 1.e-8)
        coords = get_matching_attr(molecule, "coordinates", 1.e-4)
        dict_dens = get_dict_density(molecule, points)
        return cls(dict_dens, model, coords, numbers)
Exemple #2
0
    def from_molecule(cls, molecule, model, approach="FMR", scheme="h", **kwargs):
        r"""
        Initialize class from `Molecule` object(s).

        Parameters
        ----------
        molecule : Molecule or Sequence of Molecule
            Instance of Molecule class, or sequence of Molecule class instances.
        model : str
            Energy model used to calculate condensed reactivity descriptors.
            Available models are "linear" and "quadratic".
        approach : str, optional
            Choose between "FMR" (fragment of molecular response) or "RMF"
            (response of molecular fragment).
        scheme : str, optional
            Partitioning scheme. Options: "h", "hi", "mbis".
        kwargs : dict, optional
            Extra keyword arguments required for partitioning, like 'grid' and 'proatomdb'.
        """
        # check molecule
        molecule = check_arg_molecule(molecule)
        # check type of grid
        if "grid" in list(kwargs.keys()) and not isinstance(kwargs["grid"], MolecularGrid):
            raise ValueError("Currently, only 'MolecularGrid' is supported for condensing!")
        # get atomic number, coordinates, N_max, and global softness
        gcdft = GlobalConceptualDFT.from_molecule(molecule, model)
        coords, nums, n_max, s = gcdft.coordinates, gcdft.numbers, gcdft.n_max, gcdft.softness
        # get dictionary of populations
        dict_pops = get_dict_population(molecule, approach, scheme, **kwargs)
        return cls(dict_pops, model, coords, nums, n_max, s)
Exemple #3
0
    def from_molecule(cls, molecule, model):
        r"""
        Initialize class from `Molecule` object(s).

        Parameters
        ----------
        molecule : Molecule or Sequence of Molecule
            Instance of Molecule class, or sequence of Molecule class instances.
        model : str
            Energy model used to calculate global reactivity descriptors.
        """
        # check molecule
        molecule = check_arg_molecule(molecule)
        # get atomic number and atomic coordinates
        number = get_matching_attr(molecule, "numbers", 1.e-8)
        coords = get_matching_attr(molecule, "coordinates", 1.e-4)
        dict_energy = get_dict_energy(molecule)
        return cls(dict_energy, model, coords, number)