$\frac{\partial C}{\partial t}={k}_{3}\left(\frac{{\partial}^{2}C}{\partial {r}^{2}}+\frac{1}{r}\frac{\partial C}{\partial r}+\frac{{\partial}^{2}C}{\partial {z}^{2}}\right)+{k}_{4}\left(\frac{{\partial}^{2}T}{\partial {r}^{2}}+\frac{1}{r}\frac{\partial T}{\partial r}+\frac{{\partial}^{2}T}{\partial {z}^{2}}\right)$ (2)

$0<z<2L$ , $a<r<b$ , $t>0$ , where $a=0,b=0.5$

for the experimental case here,

2L is the length of the material

r is the radius for capillary porous

Radially composite cylinder.

$\frac{\partial T}{\partial t}={k}_{11}\left(\frac{{\partial}^{2}T}{\partial {r}^{2}}+\frac{1}{r}\frac{\partial T}{\partial r}+\frac{{\partial}^{2}T}{\partial {z}^{2}}\right)+{k}_{21}\left(\frac{\partial C}{\partial t}\right)$ (1a)

$\frac{\partial C}{\partial t}={k}_{31}\left(\frac{{\partial}^{2}C}{\partial {r}^{2}}+\frac{1}{r}\frac{\partial C}{\partial r}+\frac{{\partial}^{2}C}{\partial {z}^{2}}\right)+{k}_{41}\left(\frac{{\partial}^{2}T}{\partial {r}^{2}}+\frac{1}{r}\frac{\partial T}{\partial r}+\frac{{\partial}^{2}T}{\partial {z}^{2}}\right)$ (2a)

$0<z<2L$ , $a<r<1$ , $t>0$ , where

2L is the length of the second

Material, r is the radius for capillary

porous radially composite cylinder and t is the time

a = 0.5, for this experimental case

for capillary porous composite cylinder.

Initial Conditions

$\begin{array}{l}T\left(r,z,0\right)=0\\ C\left(r,z,0\right)=1\end{array}$ (3)

Boundary Conditions

$T\left(r,0,t\right)={T}_{0}$

$C\left(r,0,t\right)={C}_{0}$ (4)

$T\left(1,z,t\right)={T}_{0}$

$C\left(1,z,t\right)={C}_{0}$ (5)

$\begin{array}{l}T\left(r,2L,t\right)={T}_{2L}=0\\ C\left(r,2L,0\right)={C}_{2L}=1\end{array}$ (6)

Interface Conditions at r = a: Continuity of Temperatures and Concentrations as well as their fluxes in the two materials.

Since the radially composite cylinder is assumed to be capillary porous, ${\mu}_{1}$ is the velocity of the fluid, ${T}_{p}$ the temperature of the fluid near the capillary porous radially composite cylinder, ${T}_{\infty}$ the temperature of the fluid far away from the capillary porous radially composite cylinder, ${C}_{p}$ the concentration near the capillary porous radially composite cylinder, ${C}_{2L}$ the concentration far end of the capillary porous radially composite cylinder, g the acceleration due to gravity, $\beta $ the coefficient of volume expansion for heat transfer, ${\beta}^{\prime}$ the coefficient of volume expansion for concentration, $\nu $ the kinematic viscosity, $\sigma $ the scalar electrical conductivity, $\omega $ the frequency of oscillation, k the thermal conductivity.

From Equation (1) we observe From Equation (1) we observe that ${v}_{1}$ is independent of space co-ordinates and may be taken as constant. We define the following non-dimensional variables and parameters.

$t=\frac{{t}_{1}{V}_{0}^{2}}{4v},z=\frac{{V}_{0}{z}_{1}}{4v}$ (7)

$u=\frac{{u}_{1}}{{V}_{0}},T=\frac{{T}_{1}-{T}_{\infty}}{{T}_{P}-{T}_{\infty}},C=\frac{{C}_{1}-{C}_{\infty}}{{C}_{P}-{C}_{\infty}},{P}_{r}=\frac{v}{k},{S}_{c}=\frac{v}{{D}^{\prime}}$

$M=\frac{\sigma {B}_{0}^{2}v}{\rho {V}_{0}^{2}},{G}_{r}=\frac{vg\beta \left({T}_{P}-{T}_{\infty}\right)}{{V}_{0}^{3}}$

${G}_{m}=\frac{vg{\beta}^{\prime}\left({C}_{P}-{C}_{\infty}\right)}{{V}_{0}^{3}},\omega =\frac{4v{\omega}_{i}}{{V}_{0}^{2}}$

Now taking into account Equations (5), (6), and (7) Equations (1) and (2) reduce to the following form:

$\frac{\partial T}{\partial t}+\frac{{\partial}^{2}T}{\partial {r}^{2}}-4\frac{\partial C}{\partial t}+\frac{1}{r}\frac{\partial T}{\partial r}=\frac{4}{{P}_{r}}\frac{{\partial}^{2}T}{\partial {z}^{2}}$ (8)

$\frac{\partial C}{\partial t}+\frac{{\partial}^{2}C}{\partial {r}^{2}}-4\frac{\partial T}{\partial t}+\frac{1}{r}\frac{\partial C}{\partial r}=\frac{4}{{P}_{r}}\frac{{\partial}^{2}C}{\partial {z}^{2}}$ (9)

4.2. Numerical Solutions

Here we sought a solution by finite difference technique of implicit type namely Crank-Nicolson implicit finite difference method which is always convergent and stable. This method has been used to solve Equations (8), and (9) subject to the conditions given by (4), (5) and (6). To obtain the difference equations, the region of the simulation is divided into a grid or mesh of lines parallel to z and r axes. Solutions of difference equations are obtained at the intersection of these mesh lines called nodes. The values of the dependent variables T, and C at the nodal points along the plane $z=0$ are given by $T\left(0,t\right)$ and $C\left(0,t\right)$ hence are known from the boundary conditions.

In Figure 2, $\Delta z$ & $\Delta r$ are constant mesh sizes along z and r directions respectively. We need an algorithm to find single values at next time level in terms of known values at an earlier time level. A forward difference approximation for the first order partial derivatives of T and C. And a central difference approximation for the second order partial derivative of T and C are used. On introducing finite difference approximations for:

For the purposes of coming up with a numerical solution for the problem, the radius of the capillary porous composite cylinder is 1.0

${\left(\frac{{\partial}^{2}T}{\partial {z}^{2}}\right)}_{i,j}=\frac{{T}_{i+1,j}-{T}_{i-1,j}+{T}_{i+1,j+1}-{T}_{i-1,j+1}-2{T}_{i,j}}{2{\left(\Delta z\right)}^{2}}$

Figure 2. Finite difference grid for capillary porous composite cylinder.

${\left(\frac{{\partial}^{2}T}{\partial {r}^{2}}\right)}_{i,j}=\frac{{T}_{i+1,j}-{T}_{i-1,j}+{T}_{i+1,j+1}-{T}_{i-1,j+1}-2{T}_{i,j}}{2{\left(\Delta r\right)}^{2}}$

${\left(\frac{\partial T}{\partial r}\right)}_{i,j}=\frac{{T}_{i+1,j}-{T}_{i-1,j}+{T}_{i+1,j+1}-{T}_{i-1,j+1}}{4(\; \Delta \; r\; )}$

${\left(\frac{\partial T}{\partial t}\right)}_{i,j}=\frac{{T}_{i,j+1}-{T}_{i,j}}{\Delta t},{\left(\frac{\partial C}{\partial t}\right)}_{i,j}=\frac{{C}_{i,j+1}-{C}_{i,j}}{\Delta t},{\left(\frac{\partial u}{\partial t}\right)}_{i,j}=\frac{{u}_{i,j+1}-{u}_{i,j}}{\Delta t}$

${\left(\frac{\partial C}{\partial t}\right)}_{i,j}=\frac{{C}_{i+1,j}-{C}_{i-1,j}+{C}_{i+1,j+1}-{C}_{i-1,j+1}}{4(\; \Delta \; t\; )}$

${\left(\frac{{\partial}^{2}C}{\partial {z}^{2}}\right)}_{i,j}=\frac{{C}_{i+1,j}-{C}_{i-1,j}+{C}_{i+1,j+1}-{C}_{i-1,j+1}-2{C}_{i,j}}{2{\left(\Delta z\right)}^{2}}$

${\left(\frac{{\partial}^{2}C}{\partial {r}^{2}}\right)}_{i,j}=\frac{{C}_{i+1,j}-{C}_{i-1,j}+{C}_{i+1,j+1}-{C}_{i-1,j+1}}{2{\left(\Delta r\right)}^{2}}$

${\left(\frac{\partial C}{\partial r}\right)}_{i,j}=\frac{{C}_{i+1,j}-{C}_{i-1,j}+{C}_{i+1,j+1}-{C}_{i-1,j+1}}{4(\; \Delta \; r\; )}$

The finite difference approximation of Equations (8) and (9) are obtained with substituting finite differences into Equations (8) and (9) and multiplying both sides by $\Delta t$ and after simplifying, we let $\frac{\Delta t}{{\left(\Delta z\right)}^{2}}={r}^{\prime}=1$ (method is always stable and convergent), under this condition the above equations can be written as:

$\frac{\partial C}{\partial t}=\frac{1}{2}\left(\frac{U+V-2\left({T}_{i,j}+{C}_{i,j}\right)}{{\left(\Delta r\right)}^{2}}+\frac{U+V}{2r\left(\Delta r\right)}+\frac{U+V-2\left({T}_{i,j}+{C}_{i,j}\right)}{{\left(\Delta z\right)}^{2}}\right)$

$\frac{\partial T}{\partial t}=\frac{1}{2}\left(\frac{2U+V-2\left(2{T}_{i,j}+{C}_{i,j}\right)}{{\left(\Delta r\right)}^{2}}+\frac{2U+V}{2r\left(\Delta r\right)}+\frac{2U+V-2\left(2{T}_{i,j}+{C}_{i,j}\right)}{{\left(\Delta z\right)}^{2}}\right)$

Let $U={T}_{i+1,j}-{T}_{i-1,j}+{T}_{i+1,j+1}-{T}_{i-1,j+1}$

Let $V={C}_{i+1,j}-{C}_{i-1,j}+{C}_{i+1,j+1}-{C}_{i-1,j+1}$

4.3. Grid Structure and Plane of Heat and Mass Continuity

The plane of heat continuity is the cylindrical plane along the horizontal axis of the solid Figure 3(a) and Figure 3(b)) where the material properties change i.e. where the two different materials are joined or merged together. So, the grid position in the above radially composite cylinder is as depicted in Figure 4.

(a)(b)

Figure 3. (a) Plane of heat and mass continuity in a composite solid cylinder; (b) Grid position in a composite solid cylinder.

Figure 4. Grid position in a composite solid cylinder.

At this point of interface, i.e., the temperature at the last grid point along any radius of the first material is approximately equal to the temperature at the first grid point in the second material and similarly heat flux continuity is assumed. Similarly, the concentration at the last grid point along any radius of the first material is approximately equal to the concentration at the first grid point in the second material and similarly the concentration flux. So, the heat and mass continuity equations can be written as follows:

${T}_{1}\left(r,{z}_{l},t\right)={T}_{2}\left(r,{z}_{0},t\right)$ (10)

${C}_{1}\left(r,{z}_{l},t\right)={C}_{2}\left(r,{z}_{0},t\right)$ (11)

The flux continuities can be similarly described.

5. Experimental Results and Discussion

5.1. Setup and Device Configuration

The experiment was executed using the CUDA Runtime Library, Quadro FX 4800 graphics card, Intel Core 2 Duo. The programming interface used was Visual Studio.

The experiments were performed using a 64-bit Lenovo ThinkStation D20 with an Intel Xeon CPU E5520 with processor speed of 2.27 GHZ and physical RAM of 4.00 GB. The Graphics Processing Unit (GPU) used was an NVIDIA Quadro FX 4800 with the following specifications:

CUDA Driver Version: 3.0

Total amount of global memory: 1.59 Gbytes

Number of multiprocessors: 24

Number of cores: 92

Total amount of constant memory: 65,536 bytes

Total amount of shared memory per block: 16,384 bytes

Total number of registers available per block: 16,384

Maximum number of threads per block: 512

Bandwidth:

Host to Device Bandwidth: 3412.1 (MB/s)

Device to Host Bandwidth: 3189.4 (MB/s)

Device to Device Bandwidth: 57,509.6 (MB/s)

In the experiments, we considered solving heat and mass transfer differential equations in capillary porous radially composite cylinder with boundary conditions of first kind using numerical methods. Our main purpose here was to obtain numerical solutions for Temperature T, and concentration C distributions across the various points in a capillary porous radially composite cylinder as heat and mass are transferred from one end of the capillary porous radially composite cylinder to the other. For our experiment, we compared the similarity of the CPU and GPU results. We also compared the performance of the CPU and GPU in terms of processing times of these results.

In the experimental setup, we are given the initial temperature T_{0} and concentration C_{0} at point z = 0 on the capillary porous radially composite cylinder. Also, there is a constant temperature and concentration N_{0} constantly working the surface of the capillary porous radially composite cylinder. The temperature at the other end of the capillary porous radially composite cylinder where z = ∞ is assumed to be ambient temperature (assumed to be zero). Also, the concentration at the other end of the capillary porous radially composite cylinder where z = ∞ is assumed to be negligible (≈0). Our initial problem was to derive the temperature T_{1} and concentration C_{1} associated with the initial temperature and concentration respectively. We did this by employing the finite difference technique. Hence, we obtained total initial temperature of (T_{0} + T_{1}) and total initial concentration of (C_{0} + C_{1}) at z = 0. These total initial conditions were then used to perform calculations.

For the purpose of implementation, we assumed a fixed length of 2L for the capillary porous radially composite cylinder and varied the number of nodal points N to be determined in the capillary porous radially composite cylinder. Since N is inversely proportional to the step size ∆z, increasing N decreases ∆z and therefore more accurate results are obtained with larger values of N. For easy implementation in Visual Studio, we employed the Forward Euler Method (FEM) for forward calculation of the temperature and concentration distributions at each nodal point in both the CPU and GPU. For a given array of size N, the nodal points are calculated iteratively until the values of temperature and concentration become stable. In this experiment, we performed the iteration for 10 different time steps. After the tenth step, the values of the temperature and concentration became stable and are recorded. We ran the tests for several different values of N and ∆z and the error between the GPU and CPU calculated results were increasingly smaller as N increased. Finally, our results were normalized in both the GPU and CPU.

5.2. Experimental Results

The normalized temperature and concentration distributions at various points in the capillary porous radially composite cylinder are depicted in Table 1 and Table 2 respectively. We can immediately see that, at each point in the capillary porous radially composite cylinder, the CPU and GPU computed results are similar. In addition, the value of temperature is highest and the value of concentration is lowest at the point on the capillary porous radially composite cylinder

Table 1. Comparison of GPU and CPU results for capillary porous composite cylinder (concentration).

Table 2. Comparison of GPU and CPU results for capillary porous composite cylinder (temperature).

where the heat resource and mass resource are constantly applied. As we move away from this point, the values of the temperature decrease and concentration increase. At a point near the designated end of the capillary porous radially composite cylinder, the values of the temperature approach zero and concentration approach one.

Furthermore, we also evaluated the performance of the GPU (NVIDIA Quadro FX 4800) in terms of solving heat and mass transfer equations by comparing its execution time to that of the CPU (Intel Xeon E5520).

For the purpose of measuring the execution time, the same functions were implemented in both the device (GPU) and the host (CPU), to initialize the temperature and concentration and to compute the numerical solutions. In this case, we measured the processing time for different values of N. The graph in Figure 5 depicts the performance of the GPU versus the CPU in terms of the processing time. We ran the test for N running from 10 to 550 with increments of 30 and generally, the GPU performed the calculations a lot faster than the CPU.

- When N was smaller than 16, the CPU performed the calculations faster than the GPU.

- For N larger than 16 the GPU performance began to increase considerably.

Figure 6(a) and Figure 6(b) show some of our experimental results for both capillary porous radially composite cylinder.

(a)(b)

Figure 5. (a) Temperature distribution; (b) Concentration distribution.

(a)(b)

Figure 6. (a) Performance of GPU and CPU implementations for capillary porous composite cylinder; (b) Performance of GPU and CPU implementations for capillary porous composite cylinder with incremental number of nodes.

Finally, the accuracy of our numerical solution was dependent on the number of iterations we performed in calculating each nodal point, where more iteration means more accurate results. In our experiment, we observed that after 9 or 10 iterations, the solution to the heat and mass equation at a given point became stable. For optimal performance, and to keep the number of iterations the same for both CPU and GPU, we used 10 iterations and experimental results for capillary porous radially composite cylinder show about 5 times speed-up

6. Conclusion and Future Work

We have presented our numerical approximations to the solution of the heat and mass transfer equation with the first kind of boundary and initial conditions for capillary porous radially composite cylinder using finite difference method on GPGPUs. Our conclusion shows that finite difference method is well suited for parallel programming. We implemented numerical solutions utilizing highly parallel computations capability of GPGPU on nVidia CUDA. We have demonstrated GPU can perform significantly faster than CPU in the field of numerical solution to heat and mass transfer. Experimental results for capillary porous radially composite cylinder indicate that our GPU-based implementation shows a significant performance improvement over CPU-based implementation and the maximum observed speedups are about 10 times.

There are several avenues for future work. We would like to test our algorithm on different GPUs and explore the new performance opportunities offered by newer generations of GPUs. It would also be interesting to explore more tests with large-scale data set. Finally, further attempts will be made to explore more complicated problems both in terms of boundary and initial conditions as well as other geometries.

Cite this paper

Narang, H. , Wu, F. and Mohammed, A. (2019) An Efficient Acceleration of Solving Heat and Mass Transfer Equations with the First Kind Boundary Conditions in Capillary Porous Radially Composite Cylinder Using Programmable Graphics Hardware.*Journal of Computer and Communications*, **7**, 267-281. doi: 10.4236/jcc.2019.77022.

Narang, H. , Wu, F. and Mohammed, A. (2019) An Efficient Acceleration of Solving Heat and Mass Transfer Equations with the First Kind Boundary Conditions in Capillary Porous Radially Composite Cylinder Using Programmable Graphics Hardware.

References

[1] Owens, J.D., Luebke, D., Govindaraju, N., Harris, M., Krüger, J., Lefohn, A.E. Purcell, T.J. (2007) A Survey of General-Purpose Computation on Graphics Hardware. Computer Graphics Forum, 26, 80-113.

https://doi.org/10.1111/j.1467-8659.2007.01012.x

[2] NVIDIA Corporation (2009) NVIDIA Programming Guide 2.3.

https://www.nvidia.com

[3] Luikov, A.V. (1966) Heat and Mass Transfer in Capillary Porous Bodies. Pergamon Press, Oxford, 233-303.

https://doi.org/10.1016/B978-1-4832-0065-1.50010-6

[4] Narang, H.N. and Nekkanti, R.K. (2001) Wavelet-Based Solution to Time-Dependent Two-Point Initial Boundary Value Problems with Non-Periodic Boundary Conditions. Proceedings of the IATED International Conference Signal Processing, Pattern Recognition & Applications, Rhodes, Greece, 3-6 July 2001.

[5] Narang, H.N. and Nekkanti, R.K. (2002) Wavelet-Based Solution of Boundary Value Problems Involving Hyperbolic Equations. Proceedings from the IATED International Conference Signal Processing, Pattern Recognition & Applications, Grete, Greece, 25-26 June 2002, 470-473.

[6] Narang, H. and Nekkanti, R. (2001) Wavelet-Based Solutions to Problems Involving Parabolic Equations. Proceedings of the IATED International Conference Signal Processing, Pattern Recognition & Applications, Rhodes, Greece, 3-6 July 2001.

[7] Narang, H.N. and Nekkanti, R.K. (2002) Wavelet-Based Solution to Elliptic Two-Point Boundary Value Problems with Non-Periodic Boundary Conditions. Proceedings from the WSEAS International Conference in Signal, Speech, and Image Processing, Skiathos, Skiathos Island, Greece, 25-28 September 2002.

[8] Narang, H.N. and Nekkanti, R.K. (2003) Wavelet-Based Solution to Some Time-Dependent Two-Point Initial Boundary Value Problems with Non-Linear Non-Periodic Boundary Conditions. International Conference on Scientific Computation and Differential Equations, SCICADE 2003, Trondheim, Norway, 30 June-4 July 2003.

[9] Narang, H.N. and Nekkanti, R.K. (2004) Wavelet Based Solution to Time-Dependent Two Point Initial Boundary Value Problems with Non-Periodic Boundary Conditions Involving High Intensity Heat and Mass Transfer in Capillary Porous Bodies. IATED International Conference Proceedings, Rhodes, Greece, 30 June-2 July 2003, 130-135.

[10] Ambethkar, V. (2008) Numerical Solutions of Heat and Mass Transfer Effects of an Unsteady MHD Free Conective Flow Past an Iffinite Vertical Plate with Constant Suction. Journal of Naval Architecture and Marine Engineering, 5, 27-36.

[11] Krüger, J. and Westermann, R. (2003) Linear Algebra Operators for GPU Implementation of Numerical Algorithms. ACM Transactions on Graphics, 22, 908-916.

https://doi.org/10.1145/882262.882363

[12] Bolz, J., Farmer, I., Grinspun, E. and Schröder, P. (2003) Sparse Matrix Solvers on the GPU: Conjugate Gradients and Multigrid. ACM Transactions on Graphics, 22, 917-924.

https://doi.org/10.1145/882262.882364

[13] Goodnight, N., Woolley, C., Luebke, D. and Humphreys, G. (2003) A Multigrid Solver for Boundary Value Problems Using Programmable Graphics Hardware. Proceeding of Graphics Hardware, San Diego, CA, 26-27 July 2003, 102-111.

[14] Harris, M., Baxter, W., Scheuermann, T. and Lastra, A. (2003) Simulation of Cloud Dynamics on Graphics Hardware. Proceeding of Graphics Hardware, San Diego, CA, 26-27 July 2003, 92-101.

[15] Harris, M. (2003) Real-Time Cloud Simulation and Rendering. Ph.D. Thesis, The University of North Carolina, Chapel Hill, NC.

[16] Kim, T. and Lin, M. (2003) Visual Simulation of Ice Crystal Growth. Proceedings of SIGGRAPH/Eurographics Symposium on Computer Amination, San Diego, CA, 26-27 July 2003, 86-97.

[17] Lefohn, A., Kniss, J., Hansen, C. and Whitaker, R. (2003) Interactive Deformation and Visualization of Level Set Surfaces Using Graphics Hardware. IEEE Visualization, Seattle, WA, 19-24 October 2003, 75-82.

[18] GPGPU Website.

http://www.gpgpu.org

[19] Narang, H.N., Wu, F., Ogunniyan, A. and Mohammed, A.R. (2017) An Efficient Acceleration of Solving Heat and Mass Transfer Equations with Second Kind Boundary and Initial Conditions in Solid and Hollow Cylinder Using Programmable Graphics Hardware. Journal of Computations & Modellling, 7, 29-50.

[20] Narang, H.N., Wu, F. and Mohammed, A.R. (2017) An Efficient Solution of Heat and Mass Transfer Equations using Programmable General Purpose Processing Unit under Natural Boundary Conditions in Capillary Porous Solid and Hollow Cylinder. International Advanced Research Journal in Science, Engineering and Technology, 4, 1-11.

[21] Narang, H.N., Wu, F. and Mohammed, A.R. (2018) An Efficient Solution of Heat and Mass Transfer Equations using Programmable General Purpose Processing Unit under Natural Boundary Conditions in Capillary Porous Solid and Composite Cylinder, with Boundary Conditions of Second Kind. International Journal of Computation and Communication, 6, 24-38.