Gaussian G4

Issue #33 resolved
Alireza Khorshidi created an issue

I am seeing that division by cutoff has been removed at: https://bitbucket.org/andrewpeterson/amp/src/11ad04a3b6c658e183b9cc1b90fc71c7c298115c/descriptor/gaussian.py?at=master&fileviewer=file-view-default#gaussian.py-503

as compared to https://bitbucket.org/andrewpeterson/amp/src/365f306491297448ddf482af9963dcb5fab16fb3/descriptor/behler.py?at=v0.4&fileviewer=file-view-default#behler.py-341

If we remove this division, then the goodness or badness of Gaussian descriptor depends on the cutoff the user-employed.

Do you think we should return it back?

Comments (10)

  1. andrew_peterson repo owner

    I'm not sure what you mean by the "goodness or badness" of the descriptor. Please explain.

  2. Alireza Khorshidi reporter

    Lets assume the user want to take cuoff=100 Ang. Then without this division, all fingerprints will be ~ zero at say R_{ij} = 99, whereas if we have division by cutoff, it still sees the difference at R_{ij}=99.

  3. andrew_peterson repo owner

    So is it dividing by 100^2 or by 0^2? E.g., is it the cutoff radius or the cutoff function? The latter would amplify, I guess, while the former would diminish. However, wouldn't the latter create a discontinuity at Rc?

  4. andrew_peterson repo owner

    In either case we should think of a mechanism to allow the user to choose. I still think we should have the baseline be a standard published fingerprint, perhaps the Artrith/Kolpack version, then if the user wants to customize they can specify that explicitly. E.g., just like for your custom cutoff function.

  5. Alireza Khorshidi reporter

    It will be divided by 100^2, and so in the power we will have \eta * (R_{ij}^2) / (100 ^ 2).

    I think it's good to introduce dimensionless parameter \era like above. In contrast, in Behler, Artrith definition, \eta is not dimensionless.

  6. andrew_peterson repo owner

    Oh, I see it's in an exponent. Well, in either case it is about what you want to emphasize in the fingerprint, so you might want to make an argument for it. My point from earlier stands; we should have a clear standard, then if the user wants to modify (and demonstrate it's better in some tests), go for it.

  7. Log in to comment