DRAFT: Diffraction model with intragranular misorientation#28
DRAFT: Diffraction model with intragranular misorientation#28MACarlsen wants to merge 17 commits into
Conversation
|
This looks amazing! ❤️ is the idea to allow each tet in a mesh to be associated to such a Guassian ODF expansion? I feel like this could be overlaid the classical rendering. I.e each splat is simply scaled with origin tet - beam intersection volume. Exciting! Let us know if we can help! Cheers |
|
Hi Axel, I have two suggestions. I'd like to implement number one first and then see if there is time for number two, but I understand if you don't want to pollute the codebase with two separate workflows.
The second solution of course requires a lot more work, but I think it's manageable, since you are anyways already convolving the projected tet with the (gaussian) detector point spread, the propagated beam divergence could just be added to this point-spread kernel. The second solution requires a lot more work and modifying a lot of the existing classes (and if I'm not home with a flu, I only have a couple of hours a week to play with this most likely, so the timescale would be a year or so :-) ) One issue I see is that I can only do continuous rotations by approximating it with a Gaussian time window, or by numerical integration. (a top hat is pretty well fit by 3 gaussians for most applications I guess) If you want to understand what I'm doing, you really only need to look at |
|
I am happy for both of these ideas to go into I am not opposed to multi-workflows, as long as it is clear in the docs how things work. It also makes sense to me to put this bigger goal on a two stage development track. Thanks for looking into this Mads, we are excited to see what comes out of this. Best, |
Hi All,
I was reading a very nice paper-draft this wednesday, which was using this package to simulate diffraction from deformed microstructures. But I couldn't help to thing that there must be a better way to make such a simulation. So I tried to implement a concept where the sample consists of a collection of gaussian-shaped "grains" with a narrow anisotropic gaussian ODF each.
If you make a the right approximations, the diffraction peaks produced by such a grain is also a "gaussian" in the detector coordinates, so you can use some concept from "gaussian splatting" to do fast evaluation. Since this package already has a few different model for rendering diffraction peaks, I figured why not add another one.
There is still a lot of work to be done testing and optimizing, but if you are interested and can give me some pointers about how to implement it, I would try to do it.
The model is also fully differentiable, so one can dream about doing proper gaussian-splatting fitting...
In the jupyternotebook from the front-page of the documentation you can run this: