SpECTRE  v2024.04.12
gr::AnalyticData::BrillLindquist Class Reference

Brill Lindquist data [30] corresponding to two black holes momentarily at rest. More...

#include <BrillLindquist.hpp>

Classes

struct  CenterA
 
struct  CenterB
 
class  IntermediateComputer
 Computes the intermediates and quantities that we do not want to recompute across the solution's implementation. More...
 
class  IntermediateVars
 Computes and returns spacetime quantities of interest. More...
 
struct  internal_tags
 Tags defined for intermediates specific to BrillLindquist data. More...
 
struct  MassA
 
struct  MassB
 

Public Types

using options = tmpl::list< MassA, MassB, CenterA, CenterB >
 
template<typename DataType , typename Frame >
using DerivSpatialMetric = ::Tags::deriv< gr::Tags::SpatialMetric< DataType, volume_dim, Frame >, tmpl::size_t< volume_dim >, Frame >
 
template<typename DataType , typename Frame >
using CachedBuffer = CachedTempBuffer< internal_tags::x_minus_center_a< DataType, Frame >, internal_tags::r_a< DataType >, internal_tags::x_minus_center_b< DataType, Frame >, internal_tags::r_b< DataType >, internal_tags::conformal_factor< DataType >, internal_tags::deriv_conformal_factor< DataType, Frame >, gr::Tags::SpatialMetric< DataType, 3, Frame >, DerivSpatialMetric< DataType, Frame > >
 Buffer for caching computed intermediates and quantities that we do not want to recompute across the solution's implementation. More...
 
- Public Types inherited from gr::AnalyticDataBase< 3 >
using DerivLapse = ::Tags::deriv< gr::Tags::Lapse< DataType >, tmpl::size_t< volume_dim >, Frame >
 
using DerivShift = ::Tags::deriv< gr::Tags::Shift< DataType, volume_dim, Frame >, tmpl::size_t< volume_dim >, Frame >
 
using DerivSpatialMetric = ::Tags::deriv< gr::Tags::SpatialMetric< DataType, volume_dim, Frame >, tmpl::size_t< volume_dim >, Frame >
 
using tags = tmpl::list< gr::Tags::Lapse< DataType >, ::Tags::dt< gr::Tags::Lapse< DataType > >, DerivLapse< DataType, Frame >, gr::Tags::Shift< DataType, volume_dim, Frame >, ::Tags::dt< gr::Tags::Shift< DataType, volume_dim, Frame > >, DerivShift< DataType, Frame >, gr::Tags::SpatialMetric< DataType, volume_dim, Frame >, ::Tags::dt< gr::Tags::SpatialMetric< DataType, volume_dim, Frame > >, DerivSpatialMetric< DataType, Frame >, gr::Tags::SqrtDetSpatialMetric< DataType >, gr::Tags::ExtrinsicCurvature< DataType, volume_dim, Frame >, gr::Tags::InverseSpatialMetric< DataType, volume_dim, Frame > >
 

Public Member Functions

 BrillLindquist (double mass_a, double mass_b, const std::array< double, 3 > &center_a, const std::array< double, 3 > &center_b, const Options::Context &context={})
 
 BrillLindquist (CkMigrateMessage *)
 
 BrillLindquist (const BrillLindquist &)=default
 
BrillLindquistoperator= (const BrillLindquist &)=default
 
 BrillLindquist (BrillLindquist &&)=default
 
BrillLindquistoperator= (BrillLindquist &&)=default
 
template<typename DataType , typename Frame , typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, volume_dim, Frame > &x, tmpl::list< Tags... >) const
 Computes and returns spacetime quantities for BrillLindquist data at a specific Cartesian position. More...
 
void pup (PUP::er &p)
 
double mass_a () const
 Return the mass of black hole A.
 
double mass_b () const
 Return the mass of black hole B.
 
const std::array< double, 3 > & center_a () const
 Return the center of black hole A.
 
const std::array< double, 3 > & center_b () const
 Return the center of black hole B.
 

Static Public Attributes

static constexpr Options::String help
 
- Static Public Attributes inherited from gr::AnalyticDataBase< 3 >
static constexpr size_t volume_dim
 

Detailed Description

Brill Lindquist data [30] corresponding to two black holes momentarily at rest.

The spatial metric is given by \(\gamma_{ij} = \psi^4 \delta_{ij}\) where the conformal factor is given by \(\psi = 1 + \frac{m_A}{2 r_A} + \frac{m_B}{2 r_B}\) where \(m_{A,B}\) are the masses of the black holes and \(r_{A,B}\) are the positions of a point relative to the center of each black hole

The data is time symmetric ( \(K_{ij} = 0\)) and we arbitrarily choose unit lapse and zero shift.

Member Typedef Documentation

◆ CachedBuffer

template<typename DataType , typename Frame >
using gr::AnalyticData::BrillLindquist::CachedBuffer = CachedTempBuffer<internal_tags::x_minus_center_a<DataType, Frame>, internal_tags::r_a<DataType>, internal_tags::x_minus_center_b<DataType, Frame>, internal_tags::r_b<DataType>, internal_tags::conformal_factor<DataType>, internal_tags::deriv_conformal_factor<DataType, Frame>, gr::Tags::SpatialMetric<DataType, 3, Frame>, DerivSpatialMetric<DataType, Frame> >

Buffer for caching computed intermediates and quantities that we do not want to recompute across the solution's implementation.

Details

See internal_tags documentation for details on what quantities the internal tags represent

Member Function Documentation

◆ variables()

template<typename DataType , typename Frame , typename... Tags>
tuples::TaggedTuple< Tags... > gr::AnalyticData::BrillLindquist::variables ( const tnsr::I< DataType, volume_dim, Frame > &  x,
tmpl::list< Tags... >   
) const
inline

Computes and returns spacetime quantities for BrillLindquist data at a specific Cartesian position.

Parameters
xCartesian coordinates of the position at which to compute spacetime quantities

Member Data Documentation

◆ help

constexpr Options::String gr::AnalyticData::BrillLindquist::help
staticconstexpr
Initial value:
{
"Brill-Lindquist data for two black holes"}

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