The aim of this work is to extend an existing CFD solver, named Shock/Boundary-Layer Interaction (SBLI) code, to include a fully 3D curvilinear capability in order to perform direct numerical simulation (DNS) of turbulent flows over complex geometries. The SBLI code solves the compressible Navier-Stokes equations by the finite difference method and uses the body-fitted curvilinear coordinate system approach to treat complex geometries. The extended version of the code has been used to perform a DNS of a channel flow with longitudinally ridged walls and a DNS of a turbulent flow over an axisymmetric hill geometry. Validation and comparison with previous experimental data and numerical results are also presented. In the first part of the work, the Navier-Stokes equations are presented in a strong conservation form and test validations of the code extension have been carried out such as free stream flow preservation on a wavy grid and a laminar plane channel flow on a skewed mesh. The free stream preservation test consists of a uniform flow computation on a cosinusoidal mesh and the objective is to evaluate the velocity components changes from their initial values due to the effect of a highly skewed mesh. The maximum discrepancy found is around 10-16. For the laminar plane channel flow simulation on a skewed mesh, the purpose is to verify the symmetrical propriety of numerical errors obtained in the velocity components while the main flow direction and the position of the walls are altered in rotation around the three physical coordinates. The symmetry of the numerical error is found to be well preserved as expected. The second part of the work contains DNS of laminar and turbulent flows in a channel with longitudinally ridged walls at different Reynolds numbers. The goal is to investigate the effect of ridged walls on the turbulent flow behavior and to provide quality DNS data-for assessing other numerical simulations, such as Large Eddy Simu-lation (LES) and Reynolds-Averaged Navier Stokes (RANS) modeling. Two Reynolds numbers have been simulated (ReT = 150 and ReT = 360, based on a reference velocity UT = vol Pb( -dPldx), the bulk density and the wall viscosity) on a domain of 1.257r0 x 20 X 0.3757r0 in the streamwise, wall normal and spanwise directions, respectively. This domain is similar to the minimal flow unit for a turbulent plane channel flow. Comparisons with previous experimental data and numerical prediction have show good agreement for the ReT = 150 case and a similar flow dynamics for the ReT = 360 case. In general, the effects of ridged walls on the turbulent flow, like the reduction of the normal Reynolds stress peak values, seems to be smaller when the Reynolds number increases. The third part of this work describes the main simulation of this thesis. DNS of a turbulent flow around an axisymmetric hill is carried out in order to investigate the three-dimensional boundary-layer flow separation which occurs behind the hill. Different domain sizes and grid resolutions have been tested up to a maximum of about 54 million points. A methodology for generating inflow conditions has been implemented and tested. Results are compared with previous experimental and numerical studies. Due to a low Reynolds number used (Reo* = 500, only 5% of an experimental simulation), the time averaged separation bubbles is much bigger and the flow seems to have a laminarisation process due to a strong adverse pressure gradient presented. A small recirculation bubble detected on the top of the hill seems to be the cause of the earlier separation of the turbulent boundary layer and, then, the bigger separation observed. However, similar to the full Reynolds number experiment, same flow dynamics, consisting in the formation of a counter rotating vortex pair merging in the streamwise current, have been captured well. The final part of the work presents an extension of the single-block SBLI code to a multiblock version. A pre-processor program has been developed in order to simplify the treatment of the interface between different blocks and a description of the algorithm is also given. As a demonstration study, DNS of a square jet in a turbulent cross flow has been performed at two Reynolds numbers (Reo* = 1000 and Res- = 2000) and different jet to cross flow velocity ratios. Compared with the available data, the results are in good agree, despite the lower Reynolds number used (half of value simulated in the available data). In conclusion, a fully 3D version of the SBLI code has been successfully derived and tested for various flow configurations. The 3D curvilinear capability has also been implemented and tested by simple, but not trivial, test cases. An option for simplified treatment of Cartesian mesh has been implemented and tests have shown a factor of 2 speedup in overall performance. Two main simulations have been carried out and for the turbulent flow in a ridged channel, the results are in good agreement with published data, while, for the flow over an axisymmetric hill case, simulation is compared qualitatively well and the noticeable discrepancies are primarily due to a reduced Reynolds number conditions. The code has also been successfully extended to a multiblock version and demonstrated on a two-block domain for a jet in cross flow case. Future works includes simulations of the hill problem at higher Reynolds number and LES extension of the SBLI code to fully 3D curvilinear capability.