A Multi-threaded Method to Assemble a Sparse Stiffness Matrix for Quasi-static Solutions of Linearized Bond-Based Peridynamics

2020 
Peridynamics is generally applied to obtain dynamic solutions of crack propagation problems where crack initiation, crack branching and usually fast fracture are involved. A fairly straightforward explicit time-stepping scheme is most commonly used. Quasi-static solutions can be obtained using an adaptive dynamic relaxation method or an energy minimization method applied to the dynamic equations of motion or by solving a linear system of equations in the case of linearized peridynamics for an implicit solution. A direct solution approach by forming a linear system of equations is advantageous as the implementation is fairly straightforward and does not require multiple iterations. However, memory requirements for storing full stiffness matrices scale quadratically with the number of degrees of freedom. For example, in 2D, a grid of nominal size, say 104 particles, would require memory of nearly 3 gigabytes when using double precision. This work presents detailed algorithms that use coordinate and neighbor information to directly generate the sparse matrices required to solve a peridynamic system of equations for quasi-static simulations. The algorithms are first prototyped in MATLAB®; and the stiffness matrix and solutions are verified by comparing with their counterparts obtained by assembling the full stiffness matrix. The algorithms are also implemented in a C++ code that is run on multiple threads and the performance is evaluated as a function of parameters such as problem size, horizon, and the number of threads used. The performance and solutions of two problems with a static crack and a propagating crack are compared with solutions obtained using more traditional methods. It is found that a massive computational gain can be achieved in terms of both memory and performance by taking advantage of multi-threading and sparse implementation simultaneously.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    48
    References
    4
    Citations
    NaN
    KQI
    []