Constructing stable, high-order finite-difference operators on point clouds over complex geometries
<|reference_start|>Constructing stable, high-order finite-difference operators on point clouds over complex geometries: High-order difference operators with the summation-by-parts (SBP) property can be used to build stable discretizations of hyperbolic conservation laws; however, most high-order SBP operators require a conforming, high-order mesh for the domain of interest. To circumvent this requirement, we present an algorithm for building high-order, diagonal-norm, first-derivative SBP operators on point clouds over complex geometries. The algorithm is not mesh-free, since it uses a Cartesian cut-cell mesh to define the sparsity pattern of the operators and to provide intermediate quadrature rules; however, the mesh is generated automatically and can be discarded once the SBP operators have been constructed. Using this temporary mesh, we construct local, cell-based SBP difference operators that are assembled into global SBP operators. We identify conditions for the existence of a positive-definite diagonal mass matrix, and we compute the diagonal norm by solving a sparse system of linear inequalities using an interior-point algorithm. We also describe an artificial dissipation operator that complements the first-derivative operators when solving hyperbolic problems, although the dissipation is not required for stability. The numerical results confirm the conditions under which a diagonal norm exists and study the distribution of the norm's entries. In addition, the results verify the accuracy and stability of the point-cloud SBP operators using the linear advection equation.<|reference_end|>
@article{hicken2024constructing,
    title={Constructing stable, high-order finite-difference operators on point
  clouds over complex geometries},
    author={Jason Hicken and Ge Yan and Sharanjeet Kaur},
    journal={arXiv preprint arXiv:2409.00809},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.00809},
    primaryClass={math.NA cs.NA}
}