A flexible numerical approach for non-destructive ultrasonic testing based on a time-domain spectral-element method: Ultrasonic modeling of Lamb waves in immersed defective structures and of bulk waves in damaged anisotropic materials. (January 2019)