Adjoint-based goal-oriented implicit shock tracking using full space mesh optimization
<|reference_start|>Adjoint-based goal-oriented implicit shock tracking using full space mesh optimization: Solutions to the governing partial differential equations obtained from a discrete numerical scheme can have significant errors, especially near shocks when the discrete representation of the solution cannot fully capture the discontinuity in the solution. A recent approach to shock tracking [1, 2] has been to implicitly align the faces of mesh elements with the shock, yielding accurate solutions on coarse meshes. In engineering applications, the solution field is often used to evaluate a scalar functional of interest, such as lift or drag over an airfoil. While functionals are sensitive to errors in the flow solution, certain regions in the domain are more important for accurate evaluation of the functional than the rest. Using this fact, we formulate a goal-oriented implicit shock tracking approach that captures a segment of the shock that is important for evaluating the functional. Shock tracking is achieved using Lagrange-Newton-Krylov-Schur (LNKS) full space optimizer, with the objective of minimizing the adjoint-weighted residual error indicator. We also present a method to evaluate the sensitivity and the Hessian of the functional error. Using available block preconditioners for LNKS [3, 4] makes the full space approach scalable. The method is applied to test cases of two-dimensional advection and inviscid compressible flows to demonstrate functional-dependent shock tracking. Tracking the entire shock without using artificial dissipation results in the error converging at the orders of $\mathcal{O}(h^{p+1})$.<|reference_end|>
@article{thakur2024adjoint-based,
    title={Adjoint-based goal-oriented implicit shock tracking using full space
  mesh optimization},
    author={Pranshul Thakur, Siva Nadarajah},
    journal={arXiv preprint arXiv:2405.00904},
    year={2024},
    archivePrefix={arXiv},
    eprint={2405.00904},
    primaryClass={math.NA cs.NA}
}