3 research outputs found

    Fast Matlab compatible sparse assembly on multicore computers

    Full text link
    We develop and implement in this paper a fast sparse assembly algorithm, the fundamental operation which creates a compressed matrix from raw index data. Since it is often a quite demanding and sometimes critical operation, it is of interest to design a highly efficient implementation. We show how to do this, and moreover, we show how our implementation can be parallelized to utilize the power of modern multicore computers. Our freely available code, fully Matlab compatible, achieves about a factor of 5 times in speedup on a typical 6-core machine and 10 times on a dual-socket 16 core machine compared to the built-in serial implementation

    SciPy 1.0: fundamental algorithms for scientific computing in Python.

    Get PDF
    SciPy is an open-source scientific computing library for the Python programming language. Since its initial release in 2001, SciPy has become a de facto standard for leveraging scientific algorithms in Python, with over 600 unique code contributors, thousands of dependent packages, over 100,000 dependent repositories and millions of downloads per year. In this work, we provide an overview of the capabilities and development practices of SciPy 1.0 and highlight some recent technical developments

    Interaction of a Turbulent Wind with Ocean Surface Waves - Numerical Modeling

    Get PDF
    Wave-modeling can be categorized in terms of different scales and theoretical frameworks. This dissertation focuses on the numerical modeling of wind-wave generation and its effects on wave growth and propagations. As categorized by scales and methodologies, wind-wave modeling in this dissertation covers two main topics: 1) Large-scale modeling: wind-wave development in real seas. As a phase-average model, SWAN is employed to study the wind-wave environment in the Persian Gulf and Qatar. The wind-wave generation is parameterized as source terms in a spectral model. The special wind condition, called shamal, is particularly investigated. An experimental tower is installed around Doha Port, and by using video imagery, the in situ wave features are extracted and compared. 2) Small-scale modeling: de-tailed wave development using CFD (Computational Fluid Dynamics). A curvilinear surface-fitted moving grid model for three-dimensional Navier-Stokes equations is developed and used to simulate linear and non-linear waves with fully nonlinear surface conditions. Also, by simplifying it to a fixed rectilinear grid based on Cartesian formulations, a DNS (Direct Numerical Simulation) model is developed with an air-water fully-coupled domain and improved coupled interface conditions. By using this DNS model, the detail of wind-wave generation is investigated from still water and the applied top shear wind. For the second topic, the CFD problems are solved by an in-house numerical tool, SPX. SPX is a general PDE (Partial Differential Equations) framework, developed by using C++1y (shortened form of C++11/14/17), currently aiming at the structural domain. It is designed by modern software methodologies, such as generic programming, meta-programming and object-oriented programming. In addition, concept-based generic programming, an ongoing advanced software technology, is first introduced into the PDE numerical tool design. By using these modern design methodologies, all significant components used for solving PDE, particularly for fluid and wave problems, are all implemented in SPX. These components include high-performance numerical array, implicit solvers, grids, differential basis and operators, time integrators, and system infrastructures such as serializations and timer. On structured domain, a general PDE can be expressed by the arbitrary combination of any general differential operator and any arithmetic operator, which is the most challenging part of SPX design. This research proposes a general stencil operator design that integrates with the concept-based expression template. It is successfully demonstrated that the proposed design can automatically deduce the resulting stencils to represent the resulting field operator by giving an arbitrary PDE expression at any given grid point. With the deduced stencils, the user-defined PDE expression is therefore, numerically-solvable by using any solver. In consequence, SPX can be easily applied to any user-defined PDE problem on structural grids with arbitrary user-specified numerical components. Its design shows high flexibility and re-usability without sacrificing efficiency. The development of SPX, therefore, justifies the success of C++-Concept applications on the large-scale numerical framework design
    corecore