Add r, theta, phi for 3D PMFT

Issue #64 wontfix
Eric Harper created an issue

Per Andrew K, add a PMFT to look at energy due to theta, phi rotation about a face

Comments (11)

  1. Eric Harper reporter

    It may be more worthwhile to post-process the X,Y,Z to R,T,P rather than implement in the analysis, since the T,P range conventions aren't constant across disciplines, and the Jacobian isn't constant (you can look at R,T1,T2 for "2D" PMFTs for an example of how to handle the Jacobian.

  2. Vyas Ramasubramani

    To make sure that I understand correctly, the existing R-T1-T2 is for 2D systems where T1 is the orientation of the reference particle and T2 is the orientation of the second particle relative to the first, right?

  3. Eric Harper reporter

    That is correct, and the Jacobian calculation deals with the changing volume in the polar coordinate system. You would need to use solid angles to account for the same in the R,T,P 3D PMFT.

    One other thing I forgot to mention: you would have artifacts around the poles of the R, T, P representation (this is a problem that plagued the new BOD I was wanting to add, and eventually gave up on, since the new neighbor list makes computing the BOD relatively trivial). At this point I'm more inclined to believe that computing in X,Y,Z and converting to a different representation later is better since the X,Y,Z coordinate system will not suffer from those artifacts.

  4. Vyas Ramasubramani

    I'm a little confused though, if my previous comment is correct it sounds like what we want is actually the full 6D PMFT information accounting for the orientation of the second particle relative to the first (i.e. XYZ + the orientation of particle 2). Doesn't computing the 3D XYZ PMFT already average out that information?

  5. Eric Harper reporter

    It does; however, if you do the scaling calculations, you'll see that you'd need TB-PB of space to store a 6D PMFT with reasonable resolution without doing some kind of intelligent meshing.

  6. Vyas Ramasubramani

    @harperic right, that makes sense and I was not recommending that we actually do a 6D PMFT. I'm just not sure how you would back out the information that we want from a computed XYZ PMFT. If we have already computed it in XYZ, then we've already averaged out the information on the angle of the second particle, so what post-processing could we do to get that back? It seems like what we want here is to perform a different average of the raw data that instead looks at all orientations of a second particle relative to the first particle, which would require a different set of core loops in C++. Am I misunderstanding?

  7. Eric Harper reporter
    1. You are correct. My comment was referencing the ide that you may want to plot PMFT data in a different coordinate system relative to particle 1 ie plot the interparticle vector between particles i and j in spherical (R, T, P) rather than Cartesian (X, Y, Z) coordinates. This would not address the orientation of particle j being integrated over

    2. I'm not exactly sure what you would actually compute in your scenario (orientations of particle 2 relative to particle 1). I think you would want to take a unit vector, and rotate by the inverse of the quaternion for particle i, then rotate by the quaternion for particle j. That should be relatively trivial, but of course you now integrate out all information about particle i. It would be interesting, and possibly worth investigating.

  8. Vyas Ramasubramani

    OK, I see. So this issue is really just to convert the XYZ data into a different basis. I agree that that seems like it would be easy enough to do after the fact. I'm not necessarily even sure that this is something that needs to be done in freud since the XYZ PMFT array can be extracted into python and reshaped.

  9. Bradley Dice

    Any further comments on this, @harperic ? We would like to mark this as "wontfix" if you agree.

  10. Eric Harper reporter

    Issues regarding the partitioning of theta and phi make this version of the PMFT undesireable, and we therefore will not fix.

  11. Log in to comment