Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Group Velocity #29

Open
alanfbaird opened this issue Feb 5, 2016 · 6 comments
Open

Group Velocity #29

alanfbaird opened this issue Feb 5, 2016 · 6 comments

Comments

@alanfbaird
Copy link
Contributor

It would be useful to be able to calculate group velocities (as opposed to just phase velocities) using MSAT. I've already written some python code to do this, and would be happy to rewrite it in matlab. Would it be better to write it as a new stand alone function (e.g. MS_groupvels) or perhaps as an optional output for MS_phasevels?

@andreww
Copy link
Owner

andreww commented Feb 6, 2016

I would be delighted to see a pull request adding this to MSAT. I think it is probably best to have this as a stand alone function modelled on MS_phasevels (MS_groupvels would be fine). Internally I guess this would rely on MS_phasevels and that you would need to add output arguments to that function giving the polarisation directions on the same frame of reference as the elastic constants tensor, solving #23.

Do you have any test cases (are there analytical solutions or published results we can use)? Let me know if I can do anything to help with this.

@chaovite
Copy link

Is the group velocity implemented in the updated version? Thanks.

@andreww
Copy link
Owner

andreww commented Jun 20, 2017

Not on master (or in any of the released versions) but @alanfbaird has a pull request (#30) that is almost ready to merge. It could use a test case or two. A general way to sort the group velocities (see the plot at the top of #30) would be really nice too.

@chaovite
Copy link

Thanks a lot for the prompt reply! I am a little confused on what's returned in MS_phase_vels. It seems the input of this function inc and azi are used to define the ray path, which specifies the group angle \phi (in Thomsen 1986 paper). However, the returned velocities are phase velocities, which should be functions of the phase angle \theta (in Thomsen 1986 paper). Did you converted the \phi into \theta before evaluating the eigenvalue problem? The current code is indeed calculating phase velocities for different group angles (ray path angles), right?

@alanfbaird
Copy link
Contributor Author

I do have a test case I could add, but I'm on holiday for the next week and will be quite busy the following couple weeks, so it might be a while before I get the chance to implement it.

In MS_phasevels I believe inc and azi define the plane wave normal direction, so the phase angle not the group angle. MS_groupvels finds the group velocity vector corresponding to a given phase angle.

@chaovite
Copy link

Thanks for the clarification. According to Thomsen 1986, this difference between phase velocity and group velocity is small in the case of weak anisotropy. v_phase(phase_angle) = V_group(group_angle) if phase_angle and group_angle are correctly linked. However, this would not be the case for strong anisotropy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants