SpECTRE  v2024.09.29
hydro::initial_data::irrotational_bns Namespace Reference

Items related to solving for irrotational bns initial data See e.g. [13] Ch. 15 (P. 523) More...

Functions

template<typename DataType >
void rotational_shift (gsl::not_null< tnsr::I< DataType, 3 > * > result, const tnsr::I< DataType, 3 > &shift, const tnsr::I< DataType, 3 > &spatial_rotational_killing_vector)
 Compute the shift plus a spatial vector \( k^i\) representing the local binary rotation \(B^i = \beta^i + k^i\).
 
template<typename DataType >
tnsr::I< DataType, 3 > rotational_shift (const tnsr::I< DataType, 3 > &shift, const tnsr::I< DataType, 3 > &spatial_rotational_killing_vector)
 Compute the shift plus a spatial vector \( k^i\) representing the local binary rotation \(B^i = \beta^i + k^i\).
 
template<typename DataType >
void rotational_shift_stress (gsl::not_null< tnsr::II< DataType, 3 > * > result, const tnsr::I< DataType, 3 > &rotational_shift, const Scalar< DataType > &lapse)
 Compute the stress-energy corresponding to the rotation shift. (this has no corresponding equation number in [13], it is defined for convenience in evaluating fluxes and sources for the DG scheme.) More...
 
template<typename DataType >
tnsr::II< DataType, 3 > rotational_shift_stress (const tnsr::I< DataType, 3 > &rotational_shift, const Scalar< DataType > &lapse)
 Compute the stress-energy corresponding to the rotation shift. (this has no corresponding equation number in [13], it is defined for convenience in evaluating fluxes and sources for the DG scheme.) More...
 
template<typename DataType >
void derivative_rotational_shift_over_lapse_squared (gsl::not_null< tnsr::iJ< DataType, 3 > * > result, const tnsr::I< DataType, 3 > &rotational_shift, const tnsr::iJ< DataType, 3 > &deriv_of_shift, const Scalar< DataType > &lapse, const tnsr::i< DataType, 3 > &deriv_of_lapse, const tnsr::iJ< DataType, 3 > &deriv_of_spatial_rotational_killing_vector)
 Compute derivative \( \partial_i (B^j / \alpha^2) \). More...
 
template<typename DataType >
tnsr::iJ< DataType, 3 > derivative_rotational_shift_over_lapse_squared (const tnsr::I< DataType, 3 > &rotational_shift, const tnsr::iJ< DataType, 3 > &deriv_of_shift, const Scalar< DataType > &lapse, const tnsr::i< DataType, 3 > &deriv_of_lapse, const tnsr::iJ< DataType, 3 > &deriv_of_spatial_rotational_killing_vector)
 Compute derivative \( \partial_i (B^j / \alpha^2) \). More...
 
template<typename DataType >
void specific_enthalpy_squared (gsl::not_null< Scalar< DataType > * > result, const tnsr::I< DataType, 3 > &rotational_shift, const Scalar< DataType > &lapse, const tnsr::i< DataType, 3 > &velocity_potential_gradient, const tnsr::II< DataType, 3 > &inverse_spatial_metric, double euler_enthalpy_constant)
 Compute the specific enthalpy squared from other hydro variables and the spacetime. More...
 
template<typename DataType >
Scalar< DataType > specific_enthalpy_squared (const tnsr::I< DataType, 3 > &rotational_shift, const Scalar< DataType > &lapse, const tnsr::i< DataType, 3 > &velocity_potential_gradient, const tnsr::II< DataType, 3 > &inverse_spatial_metric, double euler_enthalpy_constant)
 Compute the specific enthalpy squared from other hydro variables and the spacetime. More...
 
template<typename DataType >
void spatial_rotational_killing_vector (gsl::not_null< tnsr::I< DataType, 3 > * > result, const tnsr::I< DataType, 3 > &x, double orbital_angular_velocity, const Scalar< DataType > &sqrt_det_spatial_metric)
 Compute the spatial rotational killing vector associated with uniform rotation around the z-axis. More...
 
template<typename DataType >
tnsr::I< DataType, 3 > spatial_rotational_killing_vector (const tnsr::I< DataType, 3 > &x, double orbital_angular_velocity, const Scalar< DataType > &sqrt_det_spatial_metric)
 Compute the spatial rotational killing vector associated with uniform rotation around the z-axis. More...
 
template<typename DataType >
void divergence_spatial_rotational_killing_vector (gsl::not_null< Scalar< DataType > * > result, const tnsr::I< DataType, 3 > &x, double orbital_angular_velocity, const Scalar< DataType > &sqrt_det_spatial_metric)
 The spatial derivative of the spatial rotational killing vector. More...
 
template<typename DataType >
Scalar< DataType > divergence_spatial_rotational_killing_vector (const tnsr::I< DataType, 3 > &x, double orbital_angular_velocity, const Scalar< DataType > &sqrt_det_spatial_metric)
 The spatial derivative of the spatial rotational killing vector. More...
 

Detailed Description

Items related to solving for irrotational bns initial data See e.g. [13] Ch. 15 (P. 523)

Function Documentation

◆ derivative_rotational_shift_over_lapse_squared() [1/2]

template<typename DataType >
tnsr::iJ< DataType, 3 > hydro::initial_data::irrotational_bns::derivative_rotational_shift_over_lapse_squared ( const tnsr::I< DataType, 3 > &  rotational_shift,
const tnsr::iJ< DataType, 3 > &  deriv_of_shift,
const Scalar< DataType > &  lapse,
const tnsr::i< DataType, 3 > &  deriv_of_lapse,
const tnsr::iJ< DataType, 3 > &  deriv_of_spatial_rotational_killing_vector 
)

Compute derivative \( \partial_i (B^j / \alpha^2) \).

Here \( \partial_i \) is the spatial partial derivative, \( \alpha\) is the lapse and \(B^i\) the rotational shift). The derivatives passed as arguments should be spatial partial derivatives.

◆ derivative_rotational_shift_over_lapse_squared() [2/2]

template<typename DataType >
void hydro::initial_data::irrotational_bns::derivative_rotational_shift_over_lapse_squared ( gsl::not_null< tnsr::iJ< DataType, 3 > * >  result,
const tnsr::I< DataType, 3 > &  rotational_shift,
const tnsr::iJ< DataType, 3 > &  deriv_of_shift,
const Scalar< DataType > &  lapse,
const tnsr::i< DataType, 3 > &  deriv_of_lapse,
const tnsr::iJ< DataType, 3 > &  deriv_of_spatial_rotational_killing_vector 
)

Compute derivative \( \partial_i (B^j / \alpha^2) \).

Here \( \partial_i \) is the spatial partial derivative, \( \alpha\) is the lapse and \(B^i\) the rotational shift). The derivatives passed as arguments should be spatial partial derivatives.

◆ divergence_spatial_rotational_killing_vector() [1/2]

template<typename DataType >
Scalar< DataType > hydro::initial_data::irrotational_bns::divergence_spatial_rotational_killing_vector ( const tnsr::I< DataType, 3 > &  x,
double  orbital_angular_velocity,
const Scalar< DataType > &  sqrt_det_spatial_metric 
)

The spatial derivative of the spatial rotational killing vector.

As for spatial_rotational_killing_vector, assumes uniform rotation around the z-axis

◆ divergence_spatial_rotational_killing_vector() [2/2]

template<typename DataType >
void hydro::initial_data::irrotational_bns::divergence_spatial_rotational_killing_vector ( gsl::not_null< Scalar< DataType > * >  result,
const tnsr::I< DataType, 3 > &  x,
double  orbital_angular_velocity,
const Scalar< DataType > &  sqrt_det_spatial_metric 
)

The spatial derivative of the spatial rotational killing vector.

As for spatial_rotational_killing_vector, assumes uniform rotation around the z-axis

◆ rotational_shift_stress() [1/2]

template<typename DataType >
tnsr::II< DataType, 3 > hydro::initial_data::irrotational_bns::rotational_shift_stress ( const tnsr::I< DataType, 3 > &  rotational_shift,
const Scalar< DataType > &  lapse 
)

Compute the stress-energy corresponding to the rotation shift. (this has no corresponding equation number in [13], it is defined for convenience in evaluating fluxes and sources for the DG scheme.)

\[\Sigma^i_j = \frac{1}{2}\frac{B^iB_j}{\alpha^2}\]

◆ rotational_shift_stress() [2/2]

template<typename DataType >
void hydro::initial_data::irrotational_bns::rotational_shift_stress ( gsl::not_null< tnsr::II< DataType, 3 > * >  result,
const tnsr::I< DataType, 3 > &  rotational_shift,
const Scalar< DataType > &  lapse 
)

Compute the stress-energy corresponding to the rotation shift. (this has no corresponding equation number in [13], it is defined for convenience in evaluating fluxes and sources for the DG scheme.)

\[\Sigma^i_j = \frac{1}{2}\frac{B^iB_j}{\alpha^2}\]

◆ spatial_rotational_killing_vector() [1/2]

template<typename DataType >
tnsr::I< DataType, 3 > hydro::initial_data::irrotational_bns::spatial_rotational_killing_vector ( const tnsr::I< DataType, 3 > &  x,
double  orbital_angular_velocity,
const Scalar< DataType > &  sqrt_det_spatial_metric 
)

Compute the spatial rotational killing vector associated with uniform rotation around the z-axis.

Taking \(\Omega_j\) to be the uniform rotation axis (assumed in the z-direction) and \( \epsilon^{ijk}\) to be the Levi-Civita tensor ( \(\epsilon_{ijk} = \sqrt{\gamma} e_{ijk}\), with \(e_{ijk}\) totally antisymmetric with \( e_{123} = 1\)) , then the killing vector is given by ([13] 15.13) :

\[ k^i = \epsilon^{ijk}\Omega_j x_k \]

◆ spatial_rotational_killing_vector() [2/2]

template<typename DataType >
void hydro::initial_data::irrotational_bns::spatial_rotational_killing_vector ( gsl::not_null< tnsr::I< DataType, 3 > * >  result,
const tnsr::I< DataType, 3 > &  x,
double  orbital_angular_velocity,
const Scalar< DataType > &  sqrt_det_spatial_metric 
)

Compute the spatial rotational killing vector associated with uniform rotation around the z-axis.

Taking \(\Omega_j\) to be the uniform rotation axis (assumed in the z-direction) and \( \epsilon^{ijk}\) to be the Levi-Civita tensor ( \(\epsilon_{ijk} = \sqrt{\gamma} e_{ijk}\), with \(e_{ijk}\) totally antisymmetric with \( e_{123} = 1\)) , then the killing vector is given by ([13] 15.13) :

\[ k^i = \epsilon^{ijk}\Omega_j x_k \]

◆ specific_enthalpy_squared() [1/2]

template<typename DataType >
Scalar< DataType > hydro::initial_data::irrotational_bns::specific_enthalpy_squared ( const tnsr::I< DataType, 3 > &  rotational_shift,
const Scalar< DataType > &  lapse,
const tnsr::i< DataType, 3 > &  velocity_potential_gradient,
const tnsr::II< DataType, 3 > &  inverse_spatial_metric,
double  euler_enthalpy_constant 
)

Compute the specific enthalpy squared from other hydro variables and the spacetime.

The eqn. is identical in content to [13] 15.76, it computes the specific enthalpy \( h \)

\[ h^2 = \frac{1}{\alpha^2} \left(C + B^i D_i \Phi\right)^2 - D_i \Phi D^i \Phi \]

Where \(\Phi \) is the velocity potential, and \(C\) is the Euler-constant, which in a slowly rotating, slowly orbiting configuration becomes the central specific enthalpy times the central lapse

◆ specific_enthalpy_squared() [2/2]

template<typename DataType >
void hydro::initial_data::irrotational_bns::specific_enthalpy_squared ( gsl::not_null< Scalar< DataType > * >  result,
const tnsr::I< DataType, 3 > &  rotational_shift,
const Scalar< DataType > &  lapse,
const tnsr::i< DataType, 3 > &  velocity_potential_gradient,
const tnsr::II< DataType, 3 > &  inverse_spatial_metric,
double  euler_enthalpy_constant 
)

Compute the specific enthalpy squared from other hydro variables and the spacetime.

The eqn. is identical in content to [13] 15.76, it computes the specific enthalpy \( h \)

\[ h^2 = \frac{1}{\alpha^2} \left(C + B^i D_i \Phi\right)^2 - D_i \Phi D^i \Phi \]

Where \(\Phi \) is the velocity potential, and \(C\) is the Euler-constant, which in a slowly rotating, slowly orbiting configuration becomes the central specific enthalpy times the central lapse