Package maths_fns :: Module weights
[hide private]
[frames] | no frames]

Module weights

source code

Functions [hide private]
 
calc_iso_ci(data, diff_data)
Weight equations for isotropic diffusion.
source code
 
calc_axial_ci(data, diff_data)
Weight equations for axially symmetric diffusion.
source code
 
calc_axial_dci(data, diff_data)
Weight gradient for axially symmetric diffusion.
source code
 
calc_axial_d2ci(data, diff_data)
Weight Hessian for axially symmetric diffusion.
source code
 
calc_aniso_ci(data, diff_data)
Weight equations for anisotropic diffusion.
source code
 
calc_aniso_dci(data, diff_data)
Weight gradient for anisotropic diffusion.
source code
 
calc_aniso_d2ci(data, diff_data)
Weight Hessian for anisotropic diffusion.
source code

Imports: sqrt, outerproduct


Function Details [hide private]

calc_iso_ci(data, diff_data)

source code 

Weight equations for isotropic diffusion.

c0 = 1

calc_axial_ci(data, diff_data)

source code 
Weight equations for axially symmetric diffusion.

The equations are:

    c0 = 1/4 (3delta**2 - 1)**2
    c1 = 3delta**2 (1 - delta**2)
    c2 = 3/4 (1 - delta**2)**2

where delta is the dot product of the unit bond vector and the unit vector along Dpar.

calc_axial_dci(data, diff_data)

source code 
Weight gradient for axially symmetric diffusion.

The equations are:

     dc0                             ddelta
    -----  =  3delta (3delta**2 - 1) ------
    dpsii                            dpsii

     dc1                             ddelta
    -----  =  6delta (1 - 2delta**2) ------
    dpsii                            dpsii

     dc2                            ddelta
    -----  =  3delta (delta**2 - 1) ------
    dpsii                           dpsii

where psi = {theta, phi}

calc_axial_d2ci(data, diff_data)

source code 
Weight Hessian for axially symmetric diffusion.

The equations are:

       d2c0           /                ddelta   ddelta                             d2delta   \ 
    -----------  =  3 |(9delta**2 - 1) ------ . ------  +  delta (3delta**2 - 1) ----------- |
    dpsii.dpsij       \                dpsii    dpsij                            dpsii.dpsij /

       d2c1           /                ddelta   ddelta                             d2delta   \ 
    -----------  =  6 |(1 - 6delta**2) ------ . ------  +  delta (1 - 2delta**2) ----------- |
    dpsii.dpsij       \                dpsii    dpsij                            dpsii.dpsij /

       d2c2           /                ddelta   ddelta                            d2delta   \ 
    -----------  =  3 |(3delta**2 - 1) ------ . ------  +  delta (delta**2 - 1) ----------- |
    dpsii.dpsij       \                dpsii    dpsij                           dpsii.dpsij /

where psi = {theta, phi}

calc_aniso_ci(data, diff_data)

source code 
Weight equations for anisotropic diffusion.

In the following equations, the following short-hand notation will be used:

    da = delta_alpha

    db = delta_beta

    dg = delta_gamma


The equations are:

    c-2 = 3da**2.db**2


    c-1 = 3da**2.dg**2


    c0  = 1/4 (3(da**4 + db**4 + dg**4) - 1 - e)


    c1  = 3db**2.dg**2


    c2  = 1/4 (3(da**4 + db**4 + dg**4) - 1 + e)


          Da - Dr                          Da + Dr                          2Da
    e  =  ------- (da**4 + 2db**2.dg**2) + ------- (db**4 + 2da**2.dg**2) - --- (dg**4 + 2da**2.db**2)
            mu                               mu                             mu


where:
          __________________
    mu = V Da**2 + Dr**2 / 3

    delta_alpha is the dot product of the unit bond vector and the unit vector along Dx.

    delta_beta is the dot product of the unit bond vector and the unit vector along Dy.

    delta_gamma is the dot product of the unit bond vector and the unit vector along Dz.

    alpha (in delta_alpha) is the directional cosine along Dx.

    beta (in delta_beta) is the directional cosine along Dy.

    gamma (in delta_gamma) is the directional cosine along Dz.

calc_aniso_dci(data, diff_data)

source code 
Weight gradient for anisotropic diffusion.

psii partial derivatives
~~~~~~~~~~~~~~~~~~~~~~~~

    dc-2             /     dda          ddb  \ 
    -----  =  6da.db | db -----  +  da ----- |
    dpsii            \    dpsii        dpsii /


    dc-1             /     dda          ddg  \ 
    -----  =  6da.dg | dg -----  +  da ----- |
    dpsii            \    dpsii        dpsii /


     dc0        /        dda             ddb             ddg  \      de
    -----  =  3 | da**3 -----  +  db**3 -----  +  dg**3 ----- |  -  -----
    dpsii       \       dpsii           dpsii           dpsii /     dpsii


     dc1             /     ddb          ddg  \ 
    -----  =  6db.dg | dg -----  +  db ----- |
    dpsii            \    dpsii        dpsii /


     dc2        /        dda             ddb             ddg  \      de
    -----  =  3 | da**3 -----  +  db**3 -----  +  dg**3 ----- |  +  -----
    dpsii       \       dpsii           dpsii           dpsii /     dpsii



     de         Da - Dr /        dda            /     ddb          ddg  \ \ 
    -----  =    ------- | da**3 -----  +  db.dg | dg -----  +  db ----- | |
    dpsii         mu    \       dpsii           \    dpsii        dpsii / /

                Da + Dr /        ddb            /     dda          ddg  \ \ 
              + ------- | db**3 -----  +  da.dg | dg -----  +  da ----- | |
                  mu    \       dpsii           \    dpsii        dpsii / /

                2Da /        ddg            /     dda          ddb  \ \ 
              - --- | dg**3 -----  +  da.db | db -----  +  da ----- | |
                mu  \       dpsii           \    dpsii        dpsii / /


where psi = {alpha, beta, gamma}.


Da partial derivatives
~~~~~~~~~~~~~~~~~~~~~~

    dc-2
    ----  =  0
    dDa

    dc-1
    ----  =  0
    dDa

    dc0        1 de
    ---   =  - - ---
    dDa        4 dDa

    dc1
    ---   =  0
    dDa

    dc2      1 de
    ---   =  - ---
    dDa      4 dDa


    de      1 / (3Da + Dr)Dr                          (3Da - Dr)Dr                          2Dr**2                        \ 
    ---  =  - | ------------ (da**4 + 2db**2.dg**2) - ------------ (db**4 + 2da**2.dg**2) - ------ (dg**4 + 2da**2.db**2) |
    dDa     3 \    mu**3                                 mu**3                              mu**3                         /



Dr partial derivatives
~~~~~~~~~~~~~~~~~~~~~~

    dc-2
    ----  =  0
    dDr

    dc-1
    ----  =  0
    dDr

    dc0        1 de
    ---   =  - - ---
    dDr        4 dDr

    dc1
    ---   =  0
    dDr

    dc2      1 de
    ---   =  - ---
    dDr      4 dDr


    de        1 / (3Da + Dr)Da                          (3Da - Dr)Da                          2Da.Dr                        \ 
    ---  =  - - | ------------ (da**4 + 2db**2.dg**2) - ------------ (db**4 + 2da**2.dg**2) - ------ (dg**4 + 2da**2.db**2) |
    dDr       3 \    mu**3                                 mu**3                              mu**3                         /


tm partial derivatives
~~~~~~~~~~~~~~~~~~~~~~

    dc-2
    ----  =  0
    dtm

    dc-1
    ----  =  0
    dtm

    dc0
    ---   =  0
    dtm

    dc1
    ---   =  0
    dtm

    dc2
    ---   =  0
    dtm

calc_aniso_d2ci(data, diff_data)

source code 
Weight Hessian for anisotropic diffusion.

psii-psij partial derivatives
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

       d2c-2          /       /  dda     dda          d2da     \            /  dda     ddb     ddb     dda  \           /  ddb     ddb          d2db     \ \ 
    -----------  =  6 | db**2 | ----- . ----- + da ----------- |  +  2da.db | ----- . ----- + ----- . ----- |  +  da**2 | ----- . ----- + db ----------- | |
    dpsii.dpsij       \       \ dpsii   dpsij      dpsii.dpsij /            \ dpsii   dpsij   dpsii   dpsij /           \ dpsii   dpsij      dpsii.dpsij / /


       d2c-1          /       /  dda     dda          d2da     \            /  dda     ddg     ddg     dda  \           /  ddg     ddg          d2dg     \ \ 
    -----------  =  6 | dg**2 | ----- . ----- + da ----------- |  +  2da.dg | ----- . ----- + ----- . ----- |  +  da**2 | ----- . ----- + dg ----------- | |
    dpsii.dpsij       \       \ dpsii   dpsij      dpsii.dpsij /            \ dpsii   dpsij   dpsii   dpsij /           \ dpsii   dpsij      dpsii.dpsij / /


       d2c0           /       /  dda     dda          d2da     \           /  ddb     ddb          d2db     \           /  ddg     ddg          d2dg     \ \         d2e
    -----------  =  3 | da**2 | ----- . ----- + da ----------- |  +  db**2 | ----- . ----- + db ----------- |  +  dg**2 | ----- . ----- + dg ----------- | |  -  -----------
    dpsii.dpsij       \       \ dpsii   dpsij      dpsii.dpsij /           \ dpsii   dpsij      dpsii.dpsij /           \ dpsii   dpsij      dpsii.dpsij / /     dpsii.dpsij


       d2c1           /       /  ddb     ddb          d2db     \            /  ddb     ddg     ddg     ddb  \           /  ddg     ddg          d2dg     \ \ 
    -----------  =  6 | dg**2 | ----- . ----- + db ----------- |  +  2db.dg | ----- . ----- + ----- . ----- |  +  db**2 | ----- . ----- + dg ----------- | |
    dpsii.dpsij       \       \ dpsii   dpsij      dpsii.dpsij /            \ dpsii   dpsij   dpsii   dpsij /           \ dpsii   dpsij      dpsii.dpsij / /


       d2c2           /       /  dda     dda          d2da     \           /  ddb     ddb          d2db     \           /  ddg     ddg          d2dg     \ \         d2e
    -----------  =  3 | da**2 | ----- . ----- + da ----------- |  +  db**2 | ----- . ----- + db ----------- |  +  dg**2 | ----- . ----- + dg ----------- | |  +  -----------
    dpsii.dpsij       \       \ dpsii   dpsij      dpsii.dpsij /           \ dpsii   dpsij      dpsii.dpsij /           \ dpsii   dpsij      dpsii.dpsij / /     dpsii.dpsij



        d2e         Da - Dr /       /    dda     dda          d2da     \ 
    -----------  =  ------- | da**2 | 3 ----- . ----- + da ----------- |
    dpsii.dpsij       mu    \       \   dpsii   dpsij      dpsii.dpsij /

                                       /  ddb     ddb          d2db     \            /  ddb     ddg     ddg     ddb  \           /  ddg     ddg          d2dg     \ \ 
                              +  dg**2 | ----- . ----- + db ----------- |  +  2db.dg | ----- . ----- + ----- . ----- |  +  db**2 | ----- . ----- + dg ----------- | |
                                       \ dpsii   dpsij      dpsii.dpsij /            \ dpsii   dpsij   dpsii   dpsij /           \ dpsii   dpsij      dpsii.dpsij / /

                    Da + Dr /       /    ddb     ddb          d2db     \ 
                 +  ------- | db**2 | 3 ----- . ----- + db ----------- |
                      mu    \       \   dpsii   dpsij      dpsii.dpsij /

                                       /  dda     dda          d2da     \            /  dda     ddg     ddg     dda  \           /  ddg     ddg          d2dg     \ \ 
                              +  dg**2 | ----- . ----- + da ----------- |  +  2da.dg | ----- . ----- + ----- . ----- |  +  da**2 | ----- . ----- + dg ----------- | |
                                       \ dpsii   dpsij      dpsii.dpsij /            \ dpsii   dpsij   dpsii   dpsij /           \ dpsii   dpsij      dpsii.dpsij / /

                    2Da /       /    ddg     ddg          d2dg     \ 
                 -  --- | dg**2 | 3 ----- . ----- + da ----------- |
                    mu  \       \   dpsii   dpsij      dpsii.dpsij /

                                       /  dda     dda          d2da     \            /  dda     ddb     ddb     dda  \           /  ddb     ddb          d2db     \ \ 
                              +  db**2 | ----- . ----- + da ----------- |  +  2da.db | ----- . ----- + ----- . ----- |  +  da**2 | ----- . ----- + db ----------- | |
                                       \ dpsii   dpsij      dpsii.dpsij /            \ dpsii   dpsij   dpsii   dpsij /           \ dpsii   dpsij      dpsii.dpsij / /


psii-Da partial derivatives
~~~~~~~~~~~~~~~~~~~~~~~~~~~

      d2c-2
    ---------  =  0
    dpsii.dDa


      d2c-1
    ---------  =  0
    dpsii.dDa


      d2c0             d2e
    ---------  =  - ---------
    dpsii.dDa       dpsii.dDa


      d2c1
    ---------  =  0
    dpsii.dDa


      d2c2           d2e
    ---------  =  ---------
    dpsii.dDa     dpsii.dDa



       d2e          1 (3Da + Dr)Dr /        dda            /     ddb          ddg  \ \ 
    ---------  =    - ------------ | da**3 -----  +  db.dg | dg -----  +  db ----- | |
    dpsii.dDa       3    mu**3     \       dpsii           \    dpsii        dpsii / /

                    1 (3Da - Dr)Dr /        ddb            /     dda          ddg  \ \ 
                  - - ------------ | db**3 -----  +  da.dg | dg -----  +  da ----- | |
                    3    mu**3     \       dpsii           \    dpsii        dpsii / /

                    2 Dr**2 /        ddg            /     dda          ddb  \ \ 
                  - - ----- | dg**3 -----  +  da.db | db -----  +  da ----- | |
                    3 mu**3 \       dpsii           \    dpsii        dpsii / /


psii-Dr partial derivatives
~~~~~~~~~~~~~~~~~~~~~~~~~~~

      d2c-2
    ---------  =  0
    dpsii.dDr


      d2c-1
    ---------  =  0
    dpsii.dDr


      d2c0             d2e
    ---------  =  - ---------
    dpsii.dDr       dpsii.dDr


      d2c1
    ---------  =  0
    dpsii.dDr


      d2c2           d2e
    ---------  =  ---------
    dpsii.dDr     dpsii.dDr



       d2e          1 (3Da + Dr)Da /        dda            /     ddb          ddg  \ \ 
    ---------  =  - - ------------ | da**3 -----  +  db.dg | dg -----  +  db ----- | |
    dpsii.dDr       3    mu**3     \       dpsii           \    dpsii        dpsii / /

                    1 (3Da - Dr)Da /        ddb            /     dda          ddg  \ \ 
                  - - ------------ | db**3 -----  +  da.dg | dg -----  +  da ----- | |
                    3    mu**3     \       dpsii           \    dpsii        dpsii / /

                    2 Dr**2 /        ddg            /     dda          ddb  \ \ 
                  - - ----- | dg**3 -----  +  da.db | db -----  +  da ----- | |
                    3 mu**3 \       dpsii           \    dpsii        dpsii / /


psii-tm partial derivatives
~~~~~~~~~~~~~~~~~~~~~~~~~~~

      d2c-2
    ---------  =  0
    dpsii.dtm


      d2c-1
    ---------  =  0
    dpsii.dtm


      d2c0
    ---------  =  0
    dpsii.dtm


      d2c1
    ---------  =  0
    dpsii.dtm


      d2c2
    ---------  =  0
    dpsii.dtm


Da-Da partial derivatives
~~~~~~~~~~~~~~~~~~~~~~~~~

    d2c-2
    ------  =  0
    dDa**2


    d2c-1
    ------  =  0
    dDa**2


     d2c0        1  d2e
    ------  =  - - ------
    dDa**2       4 dDa**2


     d2c1
    ------  =  0
    dDa**2


     d2c2      1  d2e
    ------  =  - ------
    dDa**2     4 dDa**2



     d2e         1 / (6Da**2 + 3Da.Dr - Dr**2)Dr                          (6Da**2 - 3Da.Dr - Dr**2)Dr                          6Da.Dr**2                        \ 
    ------  =  - - | --------------------------- (da**4 + 2db**2.dg**2) - --------------------------- (db**4 + 2da**2.dg**2) - --------- (dg**4 + 2da**2.db**2) |
    dDa**2       3 \           mu**5                                                mu**5                                        mu**5                          /


Da-Dr partial derivatives
~~~~~~~~~~~~~~~~~~~~~~~~~

     d2c-2
    -------  =  0
    dDa.dDr


     d2c-1
    -------  =  0
    dDa.dDr


     d2c0         1   d2e
    -------  =  - - -------
    dDa.dDr       4 dDa.dDr


     d2c1
    -------  =  0
    dDa.dDr


     d2c2       1   d2e
    -------  =  - -------
    dDa.dDr     4 dDa.dDr



      d2e       1 / 9Da**3 + 6Da**2.Dr - 6Da.Dr**2 - Dr**3                          9Da**3 - 6Da**2.Dr - 6Da.Dr**2 + Dr**3
    -------  =  - | -------------------------------------- (da**4 + 2db**2.dg**2) - -------------------------------------- (db**4 + 2da**2.dg**2)
    dDa.dDr     9 \                mu**5                                                           mu**5

                      2(Da**2 - Dr**2)Dr                        \ 
                    - ------------------ (dg**4 + 2da**2.db**2) |
                            mu**5                               /


Da-tm partial derivatives
~~~~~~~~~~~~~~~~~~~~~~~~~

     d2c-2
    -------  =  0
    dDa.dtm


     d2c-1
    -------  =  0
    dDa.dtm


     d2c0
    -------  =  0
    dDa.dtm


     d2c1
    -------  =  0
    dDa.dtm


     d2c2
    -------  =  0
    dDa.dtm



Dr-Dr partial derivatives
~~~~~~~~~~~~~~~~~~~~~~~~~

    d2c-2
    ------  =  0
    dDr**2


    d2c-1
    ------  =  0
    dDr**2


     d2c0        1  d2e
    ------  =  - - ------
    dDr**2       4 dDr**2


     d2c1
    ------  =  0
    dDr**2


     d2c2      1  d2e
    ------  =  - ------
    dDr**2     4 dDr**2



     d2e         1 / (3Da**2 - 9Da.Dr - 2Dr**2)Da                          (3Da**2 + 9Da.Dr - 2Dr**2)Da                          2(3Da**2 - 2Dr**2)Da                                ------  =  - - | ---------------------------- (da**4 + 2db**2.dg**2) + ---------------------------- (db**4 + 2da**2.dg**2) - -------------------- (dg**4 + 2da**2.db**2) |
    dDr**2       9 \            mu**5                                                 mu**5                                             mu**5                                /


Dr-tm partial derivatives
~~~~~~~~~~~~~~~~~~~~~~~~~

     d2c-2
    -------  =  0
    dDr.dtm


     d2c-1
    -------  =  0
    dDr.dtm


     d2c0
    -------  =  0
    dDr.dtm


     d2c1
    -------  =  0
    dDr.dtm


     d2c2
    -------  =  0
    dDr.dtm