This is a good idea, standardising these calculations!  That should
remove a potential source of bugs.

Cheers,

Edward

On 28 July 2014 12:56,  <[email protected]> wrote:
> Author: tlinnet
> Date: Mon Jul 28 12:56:51 2014
> New Revision: 24780
>
> URL: http://svn.gna.org/viewcvs/relax?rev=24780&view=rev
> Log:
> Added function to calculate rotating frame paramters for lib/nmr.py.
>
> This function is called several times in specific_analyses/relax_disp/data.py 
> by plotting functions.
>
> sr #3124(https://gna.org/support/?3124): Grace graphs production for R1rho 
> analysis with R2_eff as function of Omega_eff.
> sr #3138(https://gna.org/support/?3138): Interpolating theta through 
> spin-lock offset [Omega], rather than spin-lock field strength [w1].
>
> Modified:
>     branches/r1rho_plotting/lib/nmr.py
>
> Modified: branches/r1rho_plotting/lib/nmr.py
> URL: 
> http://svn.gna.org/viewcvs/relax/branches/r1rho_plotting/lib/nmr.py?rev=24780&r1=24779&r2=24780&view=diff
> ==============================================================================
> --- branches/r1rho_plotting/lib/nmr.py  (original)
> +++ branches/r1rho_plotting/lib/nmr.py  Mon Jul 28 12:56:51 2014
> @@ -23,7 +23,7 @@
>  """Module containing functions related to basic NMR concepts."""
>
>  # Python module imports.
> -from math import pi
> +from math import atan2, pi, sqrt
>
>  # relax module imports.
>  from lib.physical_constants import g1H, return_gyromagnetic_ratio
> @@ -95,3 +95,35 @@
>
>      # Convert and return.
>      return frq * 2.0 * pi * B0 / g1H * return_gyromagnetic_ratio(isotope) * 
> 1e-6
> +
> +
> +def rotating_frame_params(chemical_shift=None, spin_lock_offset=None, 
> omega1=None):
> +    """Calculate the rotating frame paramaters.
> +
> +    @keyword chemical_shift:    The chemical shift in rad/s.
> +    @type chemical_shift:       float
> +    @keyword spin_lock_offset:  spin-lock offset in rad/s.
> +    @type spin_lock_offset:     float
> +    @keyword omega1:            Spin-lock field strength in rad/s.
> +    @type omega1:               float
> +    @return:                    The average resonance offset in the rotating 
> frame, angle describing the tilted rotating frame relative to the laboratory, 
> effective field in rotating frame.
> +    @rtype:                     float, float, float
> +    """
> +
> +    # The average resonance offset in the rotating frame.
> +    Delta_omega = chemical_shift - spin_lock_offset
> +
> +    # Calculate the theta angle describing the tilted rotating frame 
> relative to the laboratory.
> +    # theta = atan(omega1 / Delta_omega).
> +    # If Delta_omega is negative, there follow the symmetry of atan, that 
> atan(-x) = - atan(x).
> +    # Then it should be: theta = pi + atan(-x) = pi - atan(x) = pi - 
> abs(atan( +/- x)).
> +    # This is taken care of with the atan2(y, x) function, which return 
> atan(y / x), in radians, and the result is between -pi and pi.
> +    if Delta_omega == 0.0:
> +        theta = pi / 2.0
> +    else:
> +        theta = atan2(omega1, Delta_omega)
> +
> +    # Calculate effective field in rotating frame.
> +    w_eff = sqrt( Delta_omega*Delta_omega + omega1*omega1 )
> +
> +    return Delta_omega, theta, w_eff
>
>
> _______________________________________________
> relax (http://www.nmr-relax.com)
>
> This is the relax-commits mailing list
> [email protected]
>
> To unsubscribe from this list, get a password
> reminder, or change your subscription options,
> visit the list information page at
> https://mail.gna.org/listinfo/relax-commits

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to