andreww / MSAT

MATLAB Seismic Anisotropy Toolkit
http://www1.gly.bris.ac.uk/MSAT/
Other
42 stars 29 forks source link

Group Velocity #29

Open alanfbaird opened 8 years ago

alanfbaird commented 8 years ago

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 commented 8 years ago

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 commented 7 years ago

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

andreww commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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.