Computational implementation of integral equations: Difference between revisions

From SklogWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 19: Line 19:
Picard iteration generates a solution of an initial value problem for an ordinary differential equation (ODE) using fixed-point iteration.
Picard iteration generates a solution of an initial value problem for an ordinary differential equation (ODE) using fixed-point iteration.
Here are the four steps used to solve integral equations:
Here are the four steps used to solve integral equations:
===1. Closure relation===
===1. Closure relation <math>\gamma_{mns}^{\mu \nu} (r) \rightarrow c_{mns}^{\mu \nu} (r)</math>===
<math>\gamma_{mns}^{\mu \nu} (r) \rightarrow c_{mns}^{\mu \nu} (r)</math>
(Note: for linear fluids <math>\mu = \nu =0</math>)
(Note: for linear fluids <math>\mu = \nu =0</math>)


Line 42: Line 41:
:<math>\left. y\right.= \cos \phi_{12}</math>
:<math>\left. y\right.= \cos \phi_{12}</math>


Thus <math>\gamma(12)=\gamma (r,x_1x_2,y,z_1z_2)</math>.
Thus  
:<math>\gamma(12)=\gamma (r,x_1x_2,y,z_1z_2)</math>.


====Evaluate====
====Evaluate====
Line 60: Line 60:
where
where


<math>\hat{d}_{s \mu}^m (x) = (2m+1)^{1/2} d_{s \mu}^m(\theta)</math>
:<math>\hat{d}_{s \mu}^m (x) = (2m+1)^{1/2} d_{s \mu}^m(\theta)</math>


where <math>d_{s \mu}^m(\theta)</math> is the angular, <math>\theta</math>, part of the
where <math>d_{s \mu}^m(\theta)</math> is the angular, <math>\theta</math>, part of the
Line 66: Line 66:
and
and


<math>e_s(y)=\exp(is\phi)</math>
:<math>e_s(y)=\exp(is\phi)</math>




<math>e_{\mu}(z)= \exp(i\mu \chi)</math>
:<math>e_{\mu}(z)= \exp(i\mu \chi)</math>


For the limits in the summations
For the limits in the summations


<math>L_1= \max (s,\nu_1)</math>
:<math>L_1= \max (s,\nu_1)</math>


<math>L_2= \max (s,\nu_2)</math>
:<math>L_2= \max (s,\nu_2)</math>


The above equation constitutes a separable five-dimensional transform. To rapidly evaluate
The above equation constitutes a separable five-dimensional transform. To rapidly evaluate
this expression it is broken down into five one-dimensional transforms:
this expression it is broken down into five one-dimensional transforms:


<math>\gamma_{l_2m}^{n_1n_2}(r,x_{1_i})=\sum_{l_1=L_1}^M  \gamma_{l_1 l_2 m}^{n_1 n_2}(r) \hat{d}_{m n_1}^{l_1} (x_{1_i})</math>
:<math>\gamma_{l_2m}^{n_1n_2}(r,x_{1_i})=\sum_{l_1=L_1}^M  \gamma_{l_1 l_2 m}^{n_1 n_2}(r) \hat{d}_{m n_1}^{l_1} (x_{1_i})</math>


<math>\gamma_{m}^{n_1n_2}(r,x_{1_i},x_{2_i})=\sum_{l_2=L_2}^M  \gamma_{l_2 m}^{n_1 n_2}(r,x_{1_i}) \hat{d}_{\overline{m} n_2}^{l_2} (x_{2_i})</math>
:<math>\gamma_{m}^{n_1n_2}(r,x_{1_i},x_{2_i})=\sum_{l_2=L_2}^M  \gamma_{l_2 m}^{n_1 n_2}(r,x_{1_i}) \hat{d}_{\overline{m} n_2}^{l_2} (x_{2_i})</math>


<math>\gamma^{n_1n_2}(r,x_{1_i},x_{2_i},j)=\sum_{m=-M}^M  \gamma_{m}^{n_1 n_2}(r,x_{1_i},x_{2_i})  e_m(j)</math>
:<math>\gamma^{n_1n_2}(r,x_{1_i},x_{2_i},j)=\sum_{m=-M}^M  \gamma_{m}^{n_1 n_2}(r,x_{1_i},x_{2_i})  e_m(j)</math>


<math>\gamma^{n_2}(r,x_{1_i},x_{2_i},z_{1_k})=\sum_{n_1=-M}^M  \gamma^{n_1 n_2}(r,x_{1_i},x_{2_i},j)  e_{n_1}(z_{1_k})</math>
:<math>\gamma^{n_2}(r,x_{1_i},x_{2_i},z_{1_k})=\sum_{n_1=-M}^M  \gamma^{n_1 n_2}(r,x_{1_i},x_{2_i},j)  e_{n_1}(z_{1_k})</math>


<math>\gamma(r,x_{1_i},x_{2_i},z_{1_k},z_{2_k})=\sum_{n_2=-M}^M  \gamma^{n_2}(r,x_{1_i},x_{2_i},j,z_{1_k})  e_{n_2}(z_{2_k})</math>
:<math>\gamma(r,x_{1_i},x_{2_i},z_{1_k},z_{2_k})=\sum_{n_2=-M}^M  \gamma^{n_2}(r,x_{1_i},x_{2_i},j,z_{1_k})  e_{n_2}(z_{2_k})</math>


Operations involving the <math>e_m(y)</math> and <math>e_n(z)</math> basis functions are performed in  
Operations involving the <math>e_m(y)</math> and <math>e_n(z)</math> basis functions are performed in  
Line 96: Line 96:


====Integrate over angles <math>c_2(12)</math>====
====Integrate over angles <math>c_2(12)</math>====
~\\
 
Use Gauss-Legendre quadrature for $x_1$ and $x_2$\\
Use [[Gauss-Legendre quadrature]] for <math>x_1</math> and <math>x_2</math>
Use Gauss-Chebyshev  quadrature for $y$, $z_1$ and $z_2$\\
Use [[Gauss-Chebyshev  quadrature]] for <math>y</math>, <math>z_1</math> and <math>z_2</math>
thus
thus
\begin{equation}
 
c_{mns}^{\mu \nu} (r) = w^3  
:<math>c_{mns}^{\mu \nu} (r) = w^3  
\sum_{x_{1_i},x_{2_i},j,z_{1_k},z_{2_k}=1}^{NG}
\sum_{x_{1_i},x_{2_i},j,z_{1_k},z_{2_k}=1}^{NG}
w_{i_1}w_{i_2}c_2(r,x_{1_i},x_{2_i},j,z_{1_k},z_{2_k})
w_{i_1}w_{i_2}c_2(r,x_{1_i},x_{2_i},j,z_{1_k},z_{2_k})
\hat{d}_{s \mu}^m (x_{1_i}) \hat{d}_{\overline{s} \nu}^n (x_{2_i})
\hat{d}_{s \mu}^m (x_{1_i}) \hat{d}_{\overline{s} \nu}^n (x_{2_i})
e_{\overline{s}}(j) e_{\overline{\mu}} (z_{1_k}) e_{\overline{\nu}} (z_{2_k})
e_{\overline{s}}(j) e_{\overline{\mu}} (z_{1_k}) e_{\overline{\nu}} (z_{2_k})</math>
 
where the Gauss-Legendre quadrature weights are given by
 
:<math>w_i= \frac{1}{(1-x_i^2)}[P_{NG}^{'} (x_i)]^2</math>
 
while the  Gauss-Chebyshev  quadrature has the constant weight
 
:<math>w=\frac{1}{NG}</math>
 
===Perform FFT from Real to Fourier space=== $ c_{mns}^{\mu \nu} (r) \rightarrow  \tilde{c}_{mns}^{\mu \nu} (k)$ \\
~\\
This is non-trivial and is undertaken in three steps:\\
i) Conversion from axial reference frame to spatial reference frame, {\it i.e.}
\begin{equation} 
c_{mns}^{\mu \nu} (r)  \rightarrow  c_{\mu \nu}^{mnl} (r)
\end{equation}
this is done using the Blum transformation \cite{JCP_1972_56_00303,JCP_1972_57_01862,JCP_1973_58_03295}:
\begin{equation}
g_{\mu \nu}^{mnl}(r) = \sum_{s=-\min (m,n)}^{\min (m,n)} \left(
\begin{array}{ccc}
m&n&l\\
s&\overline{s}&0
\end{array}
\right)g_{mns}^{\mu \nu} (r)
\end{equation}
{\bf ii}) {\bf Fourier-Bessel Transforms}: $  c_{\mu \nu}^{mnl} (r) \rightarrow \tilde{c}_{\mu \nu}^{mnl} (k)
$\\
\begin{equation}
\tilde{c}_{\mu \nu}^{mnl} (k; l_1 l_2 l n_1 n_2) = 4\pi i^l \int_0^{\infty}  c_{\mu \nu}^{mnl} (r; l_1 l_2 l n_1 n_2) J_l (kr) ~r^2 {\rm d}r
\end{equation}
(see Blum and Torruella Eq. 5.6 \cite{JCP_1972_56_00303} or Lado Eq. 39 \cite{MP_1982_47_0283}),
where $J_l(x)$ is a Bessel function of order $l$.\\
`step-down' operations can be performed by way of sin and cos operations
of Fourier transforms, see Eqs. 49a, 49b, 50 of Lado  \cite{MP_1982_47_0283}.\\
The  Fourier-Bessel transform is also known as a {\bf Hankel transform}.
It is equivalent to a two-dimensional Fourier transform with a radially symmetric integral kernel.
\begin{equation}
g(q)=2\pi \int_0^\infty f(r) J_0(2 \pi qr)r ~{\rm d}r
\end{equation}
\begin{equation}
f(r)=2\pi \int_0^\infty g(q) J_0(2 \pi qr)q ~{\rm d}q
\end{equation}
\end{equation}
where the Gauss-Legendre quadrature weights are given by
%The step-down operator
iii) Conversion from the spatial reference frame back to the  axial reference frame, {\it i.e.}
\begin{equation}
\begin{equation}
w_i= \frac{1}{(1-x_i^2)}[P_{NG}^{'} (x_i)]^2
\tilde{c}_{\mu \nu}^{mnl} (k) \rightarrow  \tilde{c}_{mns}^{\mu \nu} (k)  
\end{equation}
\end{equation}
while the Gauss-Chebyshev  quadrature has the constant weight
this is done using the Blum transformation
\begin{equation}
\begin{equation}
w=\frac{1}{NG}
g_{mns}^{\mu \nu} (r)
= \sum_{l=|m-n|}^{m+n} \left(
\begin{array}{ccc}
m&n&l\\
s&\overline{s}&0
\end{array}
\right)
g_{\mu \nu}^{mnl}(r)
\end{equation}
\end{equation}
===Perform FFT from Real to Fourier space===
 
==Ng acceleration==
==Ng acceleration==



Revision as of 11:10, 30 May 2007

Integral equations are solved numerically. One has the Ornstein-Zernike relation, γ(12) and a closure relation, c2(12) (which incorporates the bridge function B(12)). The numerical solution is iterative;

  1. trial solution for γ(12)
  2. calculate c2(12)
  3. use the Ornstein-Zernike relation to generate a new γ(12) etc.

Note that the value of c2(12) is local, i.e. the value of c2(12) at a given point is given by the value of γ(12) at this point. However, the Ornstein-Zernike relation is non-local. The way to convert the Ornstein-Zernike relation into a local equation is to perform a (fast) Fourier transform (FFT). Note: convergence is poor for liquid densities. (See Ref.s 1 to 6).

Picard iteration

Picard iteration generates a solution of an initial value problem for an ordinary differential equation (ODE) using fixed-point iteration. Here are the four steps used to solve integral equations:

1. Closure relation γmnsμν(r)→cmnsμν(r)

(Note: for linear fluids μ=ν=0)

Perform the summation

g(12)=g(r12,ω1,ω2)=∑mnsμνgmnsμν(r12)Ψμνsmn(ω1,ω2)

where r12 is the separation between molecular centers and ω1,ω2 the sets of Euler angles needed to specify the orientations of the two molecules, with

Ψμνsmn(ω1,ω2)=(2m+1)(2n+1)Dsμm(ω1)Ds¯νn(ω2)

with s¯=−s.

Define the variables

x1=cosθ1
x2=cosθ2
z1=cosχ1
z2=cosχ2
y=cosϕ12

Thus

γ(12)=γ(r,x1x2,y,z1z2).

Evaluate

Evaluations of γ(12) are performed at the discrete points xi1xi2,yj,zk1zk2 where the xi are the ν roots of the Legendre polynomial Pν(cosθ) where yj are the ν roots of the Chebyshev polynomial Tν(cosϕ) and where z1k,z2k are the ν roots of the Chebyshev polynomial Tν(cosχ) thus

γ(r,x1i,x2i,j,z1k,z2k)=∑ν,μ,s=−MM∑m=L2M∑n=L1Mγmnsμν(r)d^sμm(x1i)d^s¯νn(x2i)es(j)eμ(z1k)eν(z2k)

where

d^sμm(x)=(2m+1)1/2dsμm(θ)

where dsμm(θ) is the angular, θ, part of the rotation matrix Dsμm(ω), and

es(y)=exp(isϕ)


eμ(z)=exp(iμχ)

For the limits in the summations

L1=max(s,ν1)
L2=max(s,ν2)

The above equation constitutes a separable five-dimensional transform. To rapidly evaluate this expression it is broken down into five one-dimensional transforms:

γl2mn1n2(r,x1i)=∑l1=L1Mγl1l2mn1n2(r)d^mn1l1(x1i)
γmn1n2(r,x1i,x2i)=∑l2=L2Mγl2mn1n2(r,x1i)d^m¯n2l2(x2i)
γn1n2(r,x1i,x2i,j)=∑m=−MMγmn1n2(r,x1i,x2i)em(j)
γn2(r,x1i,x2i,z1k)=∑n1=−MMγn1n2(r,x1i,x2i,j)en1(z1k)
γ(r,x1i,x2i,z1k,z2k)=∑n2=−MMγn2(r,x1i,x2i,j,z1k)en2(z2k)

Operations involving the em(y) and en(z) basis functions are performed in complex arithmetic. The sum of these operations is asymptotically smaller than the previous expression and thus constitutes a ``fast separable transform". NG and M are parameters; NG is the number of nodes in the Gauss integration, and M the the max index in the truncated rotational invariants expansion.

Integrate over angles c2(12)

Use Gauss-Legendre quadrature for x1 and x2 Use Gauss-Chebyshev quadrature for y, z1 and z2 thus

cmnsμν(r)=w3∑x1i,x2i,j,z1k,z2k=1NGwi1wi2c2(r,x1i,x2i,j,z1k,z2k)d^sμm(x1i)d^s¯νn(x2i)es¯(j)eμ¯(z1k)eν¯(z2k)

where the Gauss-Legendre quadrature weights are given by

wi=1(1−xi2)[PNG'(xi)]2

while the Gauss-Chebyshev quadrature has the constant weight

w=1NG

===Perform FFT from Real to Fourier space=== $ c_{mns}^{\mu \nu} (r) \rightarrow \tilde{c}_{mns}^{\mu \nu} (k)$ \\ ~\\ This is non-trivial and is undertaken in three steps:\\ i) Conversion from axial reference frame to spatial reference frame, {\it i.e.} \begin{equation} c_{mns}^{\mu \nu} (r) \rightarrow c_{\mu \nu}^{mnl} (r) \end{equation} this is done using the Blum transformation \cite{JCP_1972_56_00303,JCP_1972_57_01862,JCP_1973_58_03295}: \begin{equation} g_{\mu \nu}^{mnl}(r) = \sum_{s=-\min (m,n)}^{\min (m,n)} \left( \begin{array}{ccc} m&n&l\\ s&\overline{s}&0 \end{array} \right)g_{mns}^{\mu \nu} (r) \end{equation} {\bf ii}) {\bf Fourier-Bessel Transforms}: $ c_{\mu \nu}^{mnl} (r) \rightarrow \tilde{c}_{\mu \nu}^{mnl} (k) $\\ \begin{equation}

\tilde{c}_{\mu \nu}^{mnl} (k; l_1 l_2 l n_1 n_2) = 4\pi i^l \int_0^{\infty}  c_{\mu \nu}^{mnl} (r; l_1 l_2 l n_1 n_2) J_l (kr) ~r^2 {\rm d}r

\end{equation} (see Blum and Torruella Eq. 5.6 \cite{JCP_1972_56_00303} or Lado Eq. 39 \cite{MP_1982_47_0283}), where $J_l(x)$ is a Bessel function of order $l$.\\ `step-down' operations can be performed by way of sin and cos operations of Fourier transforms, see Eqs. 49a, 49b, 50 of Lado \cite{MP_1982_47_0283}.\\ The Fourier-Bessel transform is also known as a {\bf Hankel transform}. It is equivalent to a two-dimensional Fourier transform with a radially symmetric integral kernel. \begin{equation} g(q)=2\pi \int_0^\infty f(r) J_0(2 \pi qr)r ~{\rm d}r \end{equation} \begin{equation} f(r)=2\pi \int_0^\infty g(q) J_0(2 \pi qr)q ~{\rm d}q \end{equation} %The step-down operator iii) Conversion from the spatial reference frame back to the axial reference frame, {\it i.e.} \begin{equation} \tilde{c}_{\mu \nu}^{mnl} (k) \rightarrow \tilde{c}_{mns}^{\mu \nu} (k) \end{equation} this is done using the Blum transformation \begin{equation} g_{mns}^{\mu \nu} (r) = \sum_{l=|m-n|}^{m+n} \left( \begin{array}{ccc} m&n&l\\ s&\overline{s}&0 \end{array} \right) g_{\mu \nu}^{mnl}(r) \end{equation}

Ng acceleration

References

  1. M. J. Gillan "A new method of solving the liquid structure integral equations" Molecular Physics 38 pp. 1781-1794 (1979)
  2. Stanislav Labík, Anatol Malijevský and Petr Voncaronka "A rapidly convergent method of solving the OZ equation", Molecular Physics 56 pp. 709-715 (1985)
  3. F. Lado "Integral equations for fluids of linear molecules I. General formulation", Molecular Physics 47 pp. 283-298 (1982)
  4. F. Lado "Integral equations for fluids of linear molecules II. Hard dumbell solutions", Molecular Physics 47 pp. 299-311 (1982)
  5. F. Lado "Integral equations for fluids of linear molecules III. Orientational ordering", Molecular Physics 47 pp. 313-317 (1982)
  6. Enrique Lomba "An efficient procedure for solving the reference hypernetted chain equation (RHNC) for simple fluids" Molecular Physics 68 pp. 87-95 (1989)