6/26/2019 0 Comments Bi-cgstab C ImplementationBi-CGSTAB: a fast and smoothly converging variant of Bi-CG for the solution of nonsymmetric linear systems (1992) by H A VAN DER VORST Venue. As an example, the implementation of various types of turbulence modelling in a FOAM computational uid-dynamics (CFD) code is discussed, and calculations performed on a standard test case, that of. Test configuration for a BiCGStab implementation in Fortran using CUDA cuSparse routines This repos contains a set of files for testing implementations of a BiCGStab solverwritten in fortran and using CUDA cuSparse routines; the repo was created in orderto ask for help on StackOverflow while providing source code. These solvers werewritten for a legacy Fortran 77 code with the added restriction of only being ableto use a fortran compiler (as opposed to having a c/c++ interface). Testing has been performed using the CUDA 9.1 Toolkit and iFort 17.0.4.196 GPU being used is a Tesla P4 card maklefile_testcuda : Makefile (with debugging flags) used for the test case test_fortcuda.for : Main test program with a simple test system (5x5 matrix with 13 non-zeros,a right hand side, and a known solution) and three logical flagsfor using the three implemented solvers. This is written in f77standard to emulate the legacy code. cuda_fortran_solvers.f90 : Fortran header-equivalent module for referencing CUDAfunctions and three solvers implemented as subroutines. ---> module cuda_cusolve_map : Interface module to cuda functions for reference withinfortran code. This was largely modeled on the correctedanswer fromhttps://devtalk.nvidia.com/default/topic/882492/gpu-accelerated-libraries/using-cusolverdn-in-fortran-code/ ![]() ---> subroutine cuda_sparse_solve_qr : Direct solver using QR decomposition. This solveris working and is used to confirm that theinterface module is performing correctly. This wasmodeled from the CUDA sample cuSolverSp_LinearSolver.cpp-- method1 in test_fortcuda.for ---> subroutine cuda_BiCGStab : Iterative BiCGStab solver based on the CUDA samplepbicgstab.cpp using the standard ILU preconditioner.-- method2 in test_fortcuda.for ---> subroutine cuda_BiCGStab2 : Iterative BiCGStab solver based off of the previous subroutineand the example usage domino scheme cusparseDcsrilu02 (section 10.9-11of the CUDA 9.1 Toolkit documentation). This wasmainly implemented as a sanity check of the previous cuda_BiCGStab. AbstractAbstract. In this paper we apply the generalized Taylor–Galerkin finite element model to simulate bore wave propagation in a domain of two dimensions. For stability and accuracy reasons, we generalize the model through the introduction of four free parameters. One set of parameters is rigorously determined to obtain the high-order finite element solution. The other set of free parameters is determined from the underlying discrete maximum principle to obtain the monotonic solutions. The resulting two models are used in combination through the flux correct transport technique of Zalesak, thereby constructing a finite element model which has the ability to capture hydraulic discontinuities. In addition, this paper highlights the implementation of two Krylov subspace iterative solvers, namely, the bi-conjugate gradient stabilized (Bi-CGSTAB) and the generalized minimum residual (GMRES) methods. For the sake of comparison, the multifrontal direct solver is also considered. The performance characteristics of the investigated solvers are assessed using results of a standard test widely used as a benchmark in hydraulic modeling. Based on numerical results, it is shown that the present finite element method can render the technique suitable for solving shallow water equations with sharply varying solution profiles. Also, the GMRES solver is shown to have a much better convergence rate than the Bi-CGSTAB solver, thereby saving much computing time compared to the multifrontal solver. Key words. Taylor–Galerkin finite element model, discrete maximum principle, flux correct transport technique, Bi-CGSTAB, GMRES, multifrontal direct solver, sharply varying
0 Comments
Leave a Reply. |