Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <cstddef> 7 : 8 : #include "Utilities/Gsl.hpp" 9 : 10 : /// \cond 11 : template <size_t Dim> 12 : class Mesh; 13 : class ComplexDataVector; 14 : /// \endcond 15 : 16 : namespace Cce { 17 : /*! 18 : * \brief Computes the partial derivative along a particular direction 19 : * determined by the `dimension_to_differentiate`. 20 : * The input `u` is differentiated with the spectral matrix and the solution is 21 : * placed in `d_u`. 22 : * 23 : * \note This is placed in Cce Utilities for its currently narrow use-case. If 24 : * more general uses desire a single partial derivative of complex values, this 25 : * should be moved to `NumericalAlgorithms`. This utility currently assumes the 26 : * spatial dimensionality is 3, which would also need to be generalized, likely 27 : * by creating a wrapping struct with partial template specializations. 28 : */ 29 1 : void logical_partial_directional_derivative_of_complex( 30 : gsl::not_null<ComplexDataVector*> d_u, const ComplexDataVector& u, 31 : const Mesh<3>& mesh, size_t dimension_to_differentiate); 32 : } // namespace Cce