A globalized and preconditioned Newton-CG solver for metric-aware curved high-order mesh optimization
<|reference_start|>A globalized and preconditioned Newton-CG solver for metric-aware curved high-order mesh optimization: We present a specific-purpose globalized and preconditioned Newton-CG solver to minimize a metric-aware curved high-order mesh distortion. The solver is specially devised to optimize curved high-order meshes for high polynomial degrees with a target metric featuring non-uniform sizing, high stretching ratios, and curved alignment -- exactly the features that stiffen the optimization problem. To this end, we consider two ingredients: a specific-purpose globalization and a specific-purpose Jacobi-$\text{iLDL}^{\text{T}}(0)$ preconditioning with varying accuracy and curvature tolerances (dynamic forcing terms) for the CG method. These improvements are critical in stiff problems because, without them, the large number of non-linear and linear iterations makes curved optimization impractical. Finally, to analyze the performance of our method, the results compare the specific-purpose solver with standard optimization methods. For this, we measure the matrix-vector products indicating the solver computational cost and the line-search iterations indicating the total amount of objective function evaluations. When we combine the globalization and the linear solver ingredients, we conclude that the specific-purpose Newton-CG solver reduces the total number of matrix-vector products by one order of magnitude. Moreover, the number of non-linear and line-search iterations is mainly smaller but of similar magnitude.<|reference_end|>
@article{aparicio-estrems2024a,
    title={A globalized and preconditioned Newton-CG solver for metric-aware curved
  high-order mesh optimization},
    author={Guillermo Aparicio-Estrems, Abel Gargallo-Peir'o, Xevi Roca},
    journal={Computer-Aided Design, Volume 168, March 2024, 103651},
    year={2024},
    doi={10.1016/j.cad.2023.103651},
    archivePrefix={arXiv},
    eprint={2403.13654},
    primaryClass={cs.CE}
}