LinearOperators.hpp
1 // 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 void logical_partial_directional_derivative_of_complex(
31  const Mesh<3>& mesh, size_t dimension_to_differentiate) noexcept;
32 } // namespace Cce
The set of utilities for performing Cauchy characteristic evolution and Cauchy characteristic matchin...
Definition: BoundaryComputeAndSendToEvolution.hpp:28
Holds the number of grid points, basis, and quadrature in each direction of the computational grid...
Definition: Mesh.hpp:50
Stores a collection of complex function values.
Definition: ComplexDataVector.hpp:47
Defines functions and classes from the GSL.
Require a pointer to not be a nullptr
Definition: Gsl.hpp:182