SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
Punctures::AnalyticData::MultiplePunctures Class Reference

Superposition of multiple punctures. More...

#include <MultiplePunctures.hpp>

Classes

struct  Punctures

Public Types

using options = tmpl::list<Punctures>

Public Member Functions

 MultiplePunctures (const MultiplePunctures &)=default
MultiplePuncturesoperator= (const MultiplePunctures &)=default
 MultiplePunctures (MultiplePunctures &&)=default
MultiplePuncturesoperator= (MultiplePunctures &&)=default
 MultiplePunctures (std::vector< Puncture > punctures)
 MultiplePunctures (CkMigrateMessage *m)
 WRAPPED_PUPable_decl_template (MultiplePunctures)
template<typename... RequestedTags>
tuples::TaggedTuple< RequestedTags... > variables (const tnsr::I< DataVector, 3, Frame::Inertial > &x, tmpl::list< RequestedTags... >) const
template<typename... RequestedTags>
tuples::TaggedTuple< RequestedTags... > variables (const tnsr::I< DataVector, 3, Frame::Inertial > &x, const Mesh< 3 > &, const InverseJacobian< DataVector, 3, Frame::ElementLogical, Frame::Inertial > &, tmpl::list< RequestedTags... >) const
void pup (PUP::er &p) override
const std::vector< Puncture > & punctures () const

Static Public Attributes

static constexpr Options::String help = "Any number of black holes"

Detailed Description

Superposition of multiple punctures.

This class provides the source fields \(\alpha\) and \(\beta\) for the puncture equation (see Punctures) representing any number of black holes. Each black hole is characterized by its "puncture mass" (or "bare mass") \(M_I\), position \(\mathbf{C}_I\), linear momentum \(\mathbf{P}_I\), and angular momentum \(\mathbf{S}_I\). The corresponding Bowen-York solution to the momentum constraint for the conformal traceless extrinsic curvature is:

\begin{equation}\bar{A}^{ij} = \frac{3}{2} \sum_I \frac{1}{r_I^2} \left( 2 P_I^{(i} n_I^{j)} - (\delta^{ij} - n_I^i n_I^j) P_I^k n_I^k + \frac{4}{r_I} n_I^{(i} \epsilon^{j)kl} S_I^k n_I^l\right) \end{equation}

From it, we compute \(\alpha\) and \(\beta\) as:

\begin{align}\frac{1}{\alpha} &= \sum_I \frac{M_I}{2 r_I} \\ \beta &= \frac{1}{8} \alpha^7 \bar{A}_{ij} \bar{A}^{ij} \end{align}

See also
Punctures

The documentation for this class was generated from the following file:
  • src/PointwiseFunctions/AnalyticData/Punctures/MultiplePunctures.hpp