OpenFOAM is an open source educational, research an industrial CFD tool, which contains a vast variety of applications or solvers for incompressible flow, compressible flow, combustion, heat transfer and electromagnetic simulations. OpenFOAM uses C++ programming language as its base language and it is possible to improve existing applications by object-oriented programming or even create a totally new solver. A common approach to accelerate computation and reduce the simulation time is to employ more powerful computers and even supercomputers. However, with the increasing availability of multicore processors and newer GPU technologies, developing efficient and fast solvers is critically needed to improve the usage of the present hardware. To accomplish this task, one needs to use parallel programming techniques specially for intensive computational applications. In the present thesis, we intend to improve the speed-up of the PCG linear solver used in the icoFoam application of OpenFOAM. OpenFOAM uses the MPI protocol as its default parallel programming model to accelerate the computations. Through an analysis of the current code structure of the PCG solver in OpenFOAM, a two-level parallelism structure using both distributed memory parallel programming model (i.e. MPI) and shared memory parallel programming model (i.e. OpenMP) is proposed and implemented. The structure of the present method is comprised of a coarse grain parallelization between different sub-domains by the MPI and fine grain loop-level parallelization in the linear solver functions using the OpenMP constructs. After a domain decomposition of entire computational domain, each sub-domain with its specific geometric information and initial values is assigned to a distinct MPI process. Each sub-domain exchange its information through MPI commands. However, within each sub-domain, some of the computations are accelerated by running them on available processor cores using the OpenMP protocol. The key idea here, is to use the thread parallelism feature of OpenMP and employ available processor cores on each single machines which contribute to the parallel run of the application. In theory, this should reduce the unnecessary MPI communication overhead and results in a higher code performance. Our results show that by using the present hybrid parallel programming technique, the speed-up of the PCG solver is improved compared to that of the native MPI implementation. Based on the performance results, we conclude that the present hybrid parallel model is an appropriate technique to further improve the efficiency of the PCG parallel solver and employ available hardware more efficiency. Also through the discussions presented in this study, some suggestions for future work are presented. Key words: Hybrid parallel programming, OpenMP, MPI, Conjugate gradient, Open FOAM, Eclipse