besselnumba#

Bessel functions for line elements with numba acceleration.

Functions#

besselk0near(z, Nt)

besselk0near.

besselk0cheb(z, Nt)

besselk0cheb.

besselk0(x, y, lab)

besselk0.

besselk1near(z, Nt)

besselk1near.

besselk1cheb(z, Nt)

besselk1cheb.

besselk1(x, y, lab)

besselk1.

lapls_int_ho(x, y, z1, z2, order)

lapls_int_ho.

lapls_gauss_ho(x, y, z1, z2, order)

lapls_gauss_ho.

lapls_int_ho_wdis(x, y, z1, z2, order)

Note this is W andReturns Qx - iQy.

lapls_gauss_ho_wdis(x, y, z1, z2, order)

lapls_gauss_ho_wdis.

lapld_int_ho(x, y, z1, z2, order)

lapld_int_ho.

lapld_int_ho_d1d2(x, y, z1, z2, order, d1, d2)

lapld_int_ho_d1d2.

lapld_gauss_ho(x, y, z1, z2, order)

lapld_gauss_ho.

lapld_int_ho_wdis(x, y, z1, z2, order)

lapld_int_ho_wdis.

lapld_int_ho_wdis_d1d2(x, y, z1, z2, order, d1, d2)

lapld_int_ho_wdis_d1d2.

lapld_gauss_ho_wdis(x, y, z1, z2, order)

lapld_gauss_ho_wdis.

isinside(z1, z2, zc, R)

Checks whether point zc is within oval with 'radius' R from line element.

find_d1d2(z1, z2, zc, R)

find_d1d2.

bessells_int_ho(x, y, z1, z2, lab, order, d1, d2[, nt])

Docs.

bessells_gauss_ho(x, y, z1, z2, lab, order)

bessells_gauss_ho.

bessells_gauss_ho_d1d2(x, y, z1, z2, lab, order, d1, d2)

Returns integral from d1 to d2 along real axis.

bessellsv2(x, y, z1, z2, lab, order, R)

bessellsv2.

bessells(x, y, z1, z2, lab, order, d1in, d2in)

Bessells.

bessells_int_ho_qxqy(x, y, z1, z2, lab, order, d1, d2)

Docs.

bessells_gauss_ho_qxqy(x, y, z1, z2, lab, order)

bessells_gauss_ho_qxqy.

bessells_gauss_ho_qxqy_d1d2(x, y, z1, z2, lab, order, ...)

Returns integral from d1 to d2 along real axis.

bessellsqxqyv2(x, y, z1, z2, lab, order, R)

bessellsqxqyv2.

bessellsqxqy(x, y, z1, z2, lab, order, d1in, d2in)

Bessellsqxqy.

besselld_int_ho(x, y, z1, z2, lab, order, d1, d2)

Docs.

besselld_gauss_ho(x, y, z1, z2, lab, order)

besselld_gauss_ho.

besselld_gauss_ho_d1d2(x, y, z1, z2, lab, order, d1, d2)

besselld_gauss_ho_d1d2.

besselldv2(x, y, z1, z2, lab, order, R)

besselldv2.

besselld(x, y, z1, z2, lab, order, d1in, d2in)

Besselld.

besselld_int_ho_qxqy(x, y, z1, z2, lab, order, d1, d2)

Docs.

besselld_gauss_ho_qxqy(x, y, z1, z2, lab, order)

besselld_gauss_ho_qxqy.

besselld_gauss_ho_qxqy_d1d2(x, y, z1, z2, lab, order, ...)

Returns integral from d1 to d2 along real axis.

besselldqxqyv2(x, y, z1, z2, lab, order, R)

besselldqxqyv2.

besselldqxqy(x, y, z1, z2, lab, order, d1in, d2in)

Besselldqxqy.

potbeslsv(x, y, z1, z2, lab, order, ilap, naq[, R])

Potential of line-sink for use in timflow.steady.

disbeslsv(x, y, z1, z2, lab, order, ilap, naq[, R])

Disvec of line-sink for use in timflow.steady.

potbesldv(x, y, z1, z2, lab, order, ilap, naq[, R])

Potential of line-doublet for use in timflow.steady.

disbesldv(x, y, z1, z2, lab, order, ilap, naq[, R])

Disvec of line-doublet for use in timflow.steady.

Module Contents#

besselk0near(z, Nt)[source]#

besselk0near.

implicit none complex(kind=8), intent(in) :: z integer, intent(in) :: Nt complex(kind=8) :: omega complex(kind=8) :: rsq, log1, term integer :: n

besselk0cheb(z, Nt)[source]#

besselk0cheb.

implicit none complex(kind=8), intent(in) :: z integer, intent(in) :: Nt complex(kind=8) :: omega integer :: n, n2, ts real(kind=8) :: a, b, c, A3, u complex(kind=8) :: A1, A2, cn, cnp1, cnp2, cnp3 complex(kind=8) :: z1, z2, S, T

besselk0(x, y, lab)[source]#

besselk0.

implicit none real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: lab complex(kind=8) :: z, omega real(kind=8) :: cond

besselk1near(z, Nt)[source]#

besselk1near.

implicit none complex(kind=8), intent(in) :: z integer, intent(in) :: Nt complex(kind=8) :: omega complex(kind=8) :: zsq, log1, term integer :: n

besselk1cheb(z, Nt)[source]#

besselk1cheb.

implicit none complex(kind=8), intent(in) :: z integer, intent(in) :: Nt complex(kind=8) :: omega integer :: n, n2, ts real(kind=8) :: a, b, c, A3, u complex(kind=8) :: A1, A2, cn, cnp1, cnp2, cnp3 complex(kind=8) :: z1, z2, S, T

besselk1(x, y, lab)[source]#

besselk1.

implicit none real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: lab complex(kind=8) :: z, omega real(kind=8) :: cond

lapls_int_ho(x, y, z1, z2, order)[source]#

lapls_int_ho.

! Near field only implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 complex(kind=8), dimension(0:order) :: omega, qm integer :: m, n real(kind=8) :: L complex(kind=8) :: z, zplus1, zmin1

lapls_gauss_ho(x, y, z1, z2, order)[source]#

lapls_gauss_ho.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 complex(kind=8), dimension(0:order) :: omega integer :: n, p real(kind=8) :: L, x0 complex(kind=8) :: bigz complex(kind=8), dimension(8) :: log

lapls_int_ho_wdis(x, y, z1, z2, order)[source]#

Note this is W andReturns Qx - iQy.

lapls_gauss_ho_wdis(x, y, z1, z2, order)[source]#

lapls_gauss_ho_wdis.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 integer :: n, p real(kind=8) :: L complex(kind=8) :: bigz complex(kind=8), dimension(8) :: pole complex(kind=8), dimension(0:order) :: W

lapld_int_ho(x, y, z1, z2, order)[source]#

lapld_int_ho.

! Near field only implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 complex(kind=8), dimension(0:order) :: omega, qm integer :: m, n real(kind=8) :: L complex(kind=8) :: z, zplus1, zmin1

lapld_int_ho_d1d2(x, y, z1, z2, order, d1, d2)[source]#

lapld_int_ho_d1d2.

Near field only Returns integral from d1 to d2 along real axis while strength is still Delta^order from -1 to +1 implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,d1,d2 complex(kind=8), intent(in) :: z1,z2 complex(kind=8), dimension(0:order) :: omega, omegac integer :: n, m real(kind=8) :: xp, yp, dc, fac complex(kind=8) :: z1p,z2p,bigz1,bigz2

lapld_gauss_ho(x, y, z1, z2, order)[source]#

lapld_gauss_ho.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 complex(kind=8), dimension(0:order) :: omega integer :: n, p real(kind=8) :: L, x0 complex(kind=8) :: bigz complex(kind=8), dimension(8) :: pole

lapld_int_ho_wdis(x, y, z1, z2, order)[source]#

lapld_int_ho_wdis.

# Near field only implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 complex(kind=8), dimension(0:order) :: wdis complex(kind=8), dimension(0:10) :: qm # Max order is 10 integer :: m, n complex(kind=8) :: z, zplus1, zmin1, term1, term2, zterm

lapld_int_ho_wdis_d1d2(x, y, z1, z2, order, d1, d2)[source]#

lapld_int_ho_wdis_d1d2.

# Near field only # Returns integral from d1 to d2 along real axis while strength is still # Delta^order from -1 to +1 implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,d1,d2 complex(kind=8), intent(in) :: z1,z2 complex(kind=8), dimension(0:order) :: wdis, wdisc integer :: n, m real(kind=8) :: xp, yp, dc, fac complex(kind=8) :: z1p,z2p,bigz1,bigz2

lapld_gauss_ho_wdis(x, y, z1, z2, order)[source]#

lapld_gauss_ho_wdis.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 integer :: n, p real(kind=8) :: L complex(kind=8) :: bigz complex(kind=8), dimension(8) :: pole complex(kind=8), dimension(0:order) :: W

isinside(z1, z2, zc, R)[source]#

Checks whether point zc is within oval with ‘radius’ R from line element.

implicit none complex(kind=8), intent(in) :: z1, z2, zc real(kind=8), intent(in) :: R integer :: irv real(kind=8) :: Lover2, d, xa, xb complex(kind=8) :: bigz

find_d1d2(z1, z2, zc, R)[source]#

find_d1d2.

implicit none complex(kind=8), intent(in) :: z1, z2, zc real(kind=8), intent(in) :: R real(kind=8), intent(inout) :: d1, d2 real(kind=8) :: Lover2, d, xa, xb complex(kind=8) :: bigz

bessells_int_ho(x, y, z1, z2, lab, order, d1, d2, nt=20)[source]#

Docs.

To come here

bessells_gauss_ho(x, y, z1, z2, lab, order)[source]#

bessells_gauss_ho.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 complex(kind=8), intent(in) :: lab complex(kind=8), dimension(0:order) :: omega integer :: n, p real(kind=8) :: L, x0 complex(kind=8) :: bigz, biglab complex(kind=8), dimension(8) :: k0

bessells_gauss_ho_d1d2(x, y, z1, z2, lab, order, d1, d2)[source]#

Returns integral from d1 to d2 along real axis.

While strength is still Delta^order from -1 to +1.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,d1,d2 complex(kind=8), intent(in) :: z1,z2,lab complex(kind=8), dimension(0:order) :: omega, omegac integer :: n, m real(kind=8) :: xp, yp, dc, fac complex(kind=8) :: z1p,z2p,bigz1,bigz2

bessellsv2(x, y, z1, z2, lab, order, R)[source]#

bessellsv2.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,R complex(kind=8), intent(in) :: z1,z2 integer, intent(in) :: nlab real(kind=8) :: d1, d2 complex(kind=8), dimension(nlab), intent(in) :: lab complex(kind=8), dimension(order+1,nlab) :: omega integer :: n, nterms

bessells(x, y, z1, z2, lab, order, d1in, d2in)[source]#

Bessells.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,d1in,d2in complex(kind=8), intent(in) :: z1,z2 complex(kind=8), intent(in) :: lab complex(kind=8), dimension(0:order) :: omega

integer :: Nls, n real(kind=8) :: Lnear, L, d1, d2, delta complex(kind=8) :: z, delz, za, zb

bessells_int_ho_qxqy(x, y, z1, z2, lab, order, d1, d2)[source]#

Docs.

To come here

bessells_gauss_ho_qxqy(x, y, z1, z2, lab, order)[source]#

bessells_gauss_ho_qxqy.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 complex(kind=8), intent(in) :: lab complex(kind=8), dimension(0:2*order+1) :: qxqy integer :: n, p real(kind=8) :: L, bigy, angz complex(kind=8) :: bigz, biglab real(kind=8), dimension(8) :: r, xmind complex(kind=8), dimension(8) :: k1 complex(kind=8), dimension(0:order) :: qx,qy

bessells_gauss_ho_qxqy_d1d2(x, y, z1, z2, lab, order, d1, d2)[source]#

Returns integral from d1 to d2 along real axis.

While strength is still Delta^order from -1 to +1.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,d1,d2 complex(kind=8), intent(in) :: z1,z2,lab complex(kind=8), dimension(0:2*order+1) :: qxqy, qxqyc integer :: n, m real(kind=8) :: xp, yp, dc, fac complex(kind=8) :: z1p,z2p,bigz1,bigz2

bessellsqxqyv2(x, y, z1, z2, lab, order, R)[source]#

bessellsqxqyv2.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,R complex(kind=8), intent(in) :: z1,z2 integer, intent(in) :: nlab real(kind=8) :: d1, d2 complex(kind=8), dimension(nlab), intent(in) :: lab complex(kind=8), dimension(2*(order+1),nlab) :: qxqy complex(kind=8), dimension(0:2*order+1) :: qxqylab integer :: n, nterms, nhalf

bessellsqxqy(x, y, z1, z2, lab, order, d1in, d2in)[source]#

Bessellsqxqy.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,d1in,d2in complex(kind=8), intent(in) :: z1,z2 complex(kind=8), intent(in) :: lab complex(kind=8), dimension(0:2*order+1) :: qxqy

integer :: Nls, n real(kind=8) :: Lnear, L, d1, d2, delta complex(kind=8) :: z, delz, za, zb

besselld_int_ho(x, y, z1, z2, lab, order, d1, d2)[source]#

Docs.

To come here

besselld_gauss_ho(x, y, z1, z2, lab, order)[source]#

besselld_gauss_ho.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 complex(kind=8), intent(in) :: lab complex(kind=8), dimension(0:order) :: omega integer :: n, p real(kind=8) :: L, x0, r complex(kind=8) :: bigz, biglab complex(kind=8), dimension(8) :: k1overr

besselld_gauss_ho_d1d2(x, y, z1, z2, lab, order, d1, d2)[source]#

besselld_gauss_ho_d1d2.

# Returns integral from d1 to d2 along real axis while strength is still # Delta^order from -1 to +1 implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,d1,d2 complex(kind=8), intent(in) :: z1,z2,lab complex(kind=8), dimension(0:order) :: omega, omegac integer :: n, m real(kind=8) :: xp, yp, dc, fac complex(kind=8) :: z1p,z2p,bigz1,bigz2

besselldv2(x, y, z1, z2, lab, order, R)[source]#

besselldv2.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,R complex(kind=8), intent(in) :: z1,z2 integer, intent(in) :: nlab real(kind=8) :: d1, d2 complex(kind=8), dimension(nlab), intent(in) :: lab complex(kind=8), dimension(order+1,nlab) :: omega integer :: n, nterms

besselld(x, y, z1, z2, lab, order, d1in, d2in)[source]#

Besselld.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,d1in,d2in complex(kind=8), intent(in) :: z1,z2 complex(kind=8), intent(in) :: lab complex(kind=8), dimension(0:order) :: omega

integer :: Nls, n real(kind=8) :: Lnear, L, d1, d2, delta complex(kind=8) :: z, delz, za, zb

besselld_int_ho_qxqy(x, y, z1, z2, lab, order, d1, d2)[source]#

Docs.

To come here

besselld_gauss_ho_qxqy(x, y, z1, z2, lab, order)[source]#

besselld_gauss_ho_qxqy.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y complex(kind=8), intent(in) :: z1,z2 complex(kind=8), intent(in) :: lab complex(kind=8), dimension(0:2*order+1) :: qxqy integer :: n, p real(kind=8) :: L, bigy, angz complex(kind=8) :: bigz, biglab real(kind=8), dimension(8) :: r, xmind complex(kind=8), dimension(8) :: k0,k1 complex(kind=8), dimension(0:order) :: qx,qy

besselld_gauss_ho_qxqy_d1d2(x, y, z1, z2, lab, order, d1, d2)[source]#

Returns integral from d1 to d2 along real axis.

While strength is still Delta^order from -1 to +1.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,d1,d2 complex(kind=8), intent(in) :: z1,z2,lab complex(kind=8), dimension(0:2*order+1) :: qxqy, qxqyc integer :: n, m real(kind=8) :: xp, yp, dc, fac complex(kind=8) :: z1p,z2p,bigz1,bigz2

besselldqxqyv2(x, y, z1, z2, lab, order, R)[source]#

besselldqxqyv2.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,R complex(kind=8), intent(in) :: z1,z2 integer, intent(in) :: nlab real(kind=8) :: d1, d2 complex(kind=8), dimension(nlab), intent(in) :: lab complex(kind=8), dimension(2*(order+1),nlab) :: qxqy complex(kind=8), dimension(0:2*order+1) :: qxqylab integer :: n, nterms, nhalf

besselldqxqy(x, y, z1, z2, lab, order, d1in, d2in)[source]#

Besselldqxqy.

implicit none integer, intent(in) :: order real(kind=8), intent(in) :: x,y,d1in,d2in complex(kind=8), intent(in) :: z1,z2 complex(kind=8), intent(in) :: lab complex(kind=8), dimension(0:2*order+1) :: qxqy

integer :: Nls, n real(kind=8) :: Lnear, L, d1, d2, delta complex(kind=8) :: z, delz, za, zb

potbeslsv(x, y, z1, z2, lab, order, ilap, naq, R=8)[source]#

Potential of line-sink for use in timflow.steady.

disbeslsv(x, y, z1, z2, lab, order, ilap, naq, R=8)[source]#

Disvec of line-sink for use in timflow.steady.

potbesldv(x, y, z1, z2, lab, order, ilap, naq, R=8)[source]#

Potential of line-doublet for use in timflow.steady.

disbesldv(x, y, z1, z2, lab, order, ilap, naq, R=8)[source]#

Disvec of line-doublet for use in timflow.steady.