add function tangential_and_normal_decomposition