1 research outputs found

    Parallelisation of the SWAN Surface Wave Analysis Code

    No full text
    Abstract. This paper describes the parallelisation of the Swan code, an industrial simulation tool for the interaction between surface waves and a moving ship hull. Two different parallel prototypes have been developed. One is based on parallel execution of the main loop over a set of independent parameter combinations. The other version aims at the cpu and memory intensive linear algebra part of the code, and a distributed linear solver based on the ScaLAPACK library has been implemented. 1 Introduction The Swan (Surface Wave ANalysis) code simulates the interaction between surface waves and a moving ship hull. The original three dimensional problem is transformed to an integral equation over the hull and the free surface. The discrete problem will typically have 4-5 thousand degrees of freedom, and the coupling matrix will be dense. Stationary and time harmonic solutions demand real and complex arithmetic, respectively. The code reads the input data, generates the grid and computes some basis flow parameters. Then it enters a loop over combinations of speeds, frequencies and headings in order to test the hull under a variety of conditions. For each case matrices and load vectors are assembled, and the linear systems are solved. Due to the large memory requirements, matrices will usually be generated and referenced row by row, and stored out of core. As a preparation for the block iterative scheme, the matrices are typically partitioned into 5 \Theta 5 blocks and the diagonal blocks are LU-decomposed using LAPACK [3] routines. About 2=3 of the total time is used for the linear solver, most of it for the LU-decomposition
    corecore