SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
CurvedScalarWave::Tags::ComputeLargestCharacteristicSpeed< SpatialDim > Struct Template Reference

Computes the largest magnitude of the characteristic speeds. More...

#include <Characteristics.hpp>

Public Types

using argument_tags = implementation defined
 
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)
 

Detailed Description

template<size_t SpatialDim>
struct CurvedScalarWave::Tags::ComputeLargestCharacteristicSpeed< SpatialDim >

Computes the largest magnitude of the characteristic speeds.

Details

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+γ1)nkNk,nkNk,nkNk±N}. At any point in space, these are maximized when the normal vector is parallel to the shift vector, i.e. nj=Nj/NiNi, and nkNk=gjkNjNk/NiNi=NiNi= magnitude(shift, spatial_metric). The maximum characteristic speed is therefore calculated as max(|1+γ1|NiNi,NiNi+|N|).


The documentation for this struct was generated from the following file: