SpECTRE
v2023.09.07

Computes the largest magnitude of the characteristic speeds. More...
#include <Characteristics.hpp>
Public Types  
using  argument_tags = tmpl::list< Tags::ConstraintGamma1, gr::Tags::Lapse< DataVector >, gr::Tags::Shift< DataVector, SpatialDim >, gr::Tags::SpatialMetric< DataVector, SpatialDim > > 
using  return_type = double 
using  base = LargestCharacteristicSpeed 
Public Types inherited from CurvedScalarWave::Tags::LargestCharacteristicSpeed  
using  type = double 
Static Public Member Functions  
static void  function (const gsl::not_null< double * > max_speed, const Scalar< DataVector > &gamma_1, const Scalar< DataVector > &lapse, const tnsr::I< DataVector, SpatialDim, Frame::Inertial > &shift, const tnsr::ii< DataVector, SpatialDim, Frame::Inertial > &spatial_metric) 
Computes the largest magnitude of the characteristic speeds.
Returns the magnitude of the largest characteristic speed along any direction at a given point in space, considering all characteristic fields. This is useful, for e.g., in computing the Courant factor. The coordinate characteristic speeds for this system are \(\{(1+\gamma_1)n_k N^k, n_k N^k, n_k N^k \pm N\}\). At any point in space, these are maximized when the normal vector is parallel to the shift vector, i.e. \( n^j = N^j / \sqrt{N^i N_i}\), and \( n_k N^k = g_{jk} N^j N^k / \sqrt{N^i N_i} = \sqrt{N^i N_i} =\) magnitude(shift, spatial_metric)
. The maximum characteristic speed is therefore calculated as \( \rm{max}(\vert 1+\gamma_1\vert\sqrt{N^i N_i},\, \sqrt{N^i N_i}+\vert N\vert) \).