CDT++ 1.0.0
Causal Dynamical Triangulations in C++
Loading...
Searching...
No Matches
S3Action.hpp File Reference

Calculate S3 bulk actions on 3D Delaunay Triangulations. More...

#include <cmath>
#include <stdexcept>
#include <utility>
#include "Mpfr_value.hpp"
Include dependency graph for S3Action.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cdt::s3_action::PhysicalParameters
 Finite physical couplings used to evaluate the Euclidean action. More...

Namespaces

namespace  cdt
 clang-15 does not support std::format

Functions

auto cdt::s3_action::detail::make_finite_couplings (long double const k, long double const lambda) -> std::pair< long double, long double >
auto cdt::s3_action::make_physical_parameters (long double const alpha, long double const k, long double const lambda) -> PhysicalParameters
 Validate physical couplings for three-dimensional action APIs.
auto cdt::s3_action::s3_bulk_action (Int_precision const n1_tl_count, Int_precision const n3_31_13_count, Int_precision const n3_22_count, PhysicalParameters const &parameters) -> mpfr_values::Value
 Calculates the generalized S3 bulk action in terms of \(\alpha\), \(k\), \(\lambda\), \(N_1^{TL}\), \(N_3^{(3,1)}\), and \(N_3^{(2,2)}\).
auto cdt::s3_action::s3_bulk_action_alpha_minus_one_imaginary_coefficient (Int_precision const n1_tl_count, Int_precision const n3_31_13_count, Int_precision const n3_22_count, long double const k_value, long double const lambda_value) -> mpfr_values::Value
 Calculates the coefficient of \(i\) in the \(\alpha=-1\) S3 bulk action.
auto cdt::s3_action::s3_bulk_action_alpha_one (Int_precision const n1_tl_count, Int_precision const n3_31_13_count, Int_precision const n3_22_count, long double const k_value, long double const lambda_value) -> mpfr_values::Value
 Calculates S3 bulk action for \(\alpha\)=1.

Detailed Description

Calculate S3 bulk actions on 3D Delaunay Triangulations.

Author
Adam Getchell

Calculates the S3 Bulk (and later, boundary) actions. Uses the GNU MPFR library for arbitrary precision arithmetic on floating point numbers. See http://www.mpfr.org for more details. Note: for performance reasons, variables should not hold successively increasing values. We avoid this by setting each variable only once. See https://gmplib.org/manual/Efficiency.html#Efficiency for details.

See also
Regge calculus
Three-dimensional CDT

Definition in file S3Action.hpp.

Function Documentation

◆ make_finite_couplings()

auto cdt::s3_action::detail::make_finite_couplings ( long double const k,
long double const lambda ) -> std::pair< long double, long double >
inlinenodiscard

Definition at line 86 of file S3Action.hpp.

◆ make_physical_parameters()

auto cdt::s3_action::make_physical_parameters ( long double const alpha,
long double const k,
long double const lambda ) -> PhysicalParameters
inlinenodiscard

Validate physical couplings for three-dimensional action APIs.

Parameters
alphaWick-rotation parameter; must be finite and greater than 1/2.
kInverse Newton coupling; must be finite.
lambdaCosmological coupling; must be finite.
Returns
Validated coupling values.
Exceptions
std::invalid_argumentif any coupling is non-finite.
std::domain_errorif alpha is not greater than 1/2.

Definition at line 68 of file S3Action.hpp.

◆ s3_bulk_action()

auto cdt::s3_action::s3_bulk_action ( Int_precision const n1_tl_count,
Int_precision const n3_31_13_count,
Int_precision const n3_22_count,
PhysicalParameters const & parameters ) -> mpfr_values::Value
inlinenodiscard

Calculates the generalized S3 bulk action in terms of \(\alpha\), \(k\), \(\lambda\), \(N_1^{TL}\), \(N_3^{(3,1)}\), and \(N_3^{(2,2)}\).

The formula is:

\begin{eqnarray*}S^{(3)} &=& 2\pi k\sqrt{\alpha}N_1^{TL} \\ &+& N_3^{(3,1)}\left[-3k\text{arcsinh}\left(\frac{1}{\sqrt{3} \sqrt{4\alpha +1}}\right)-3k\sqrt{\alpha}\text{arccos}\left(\frac{2\alpha+1} {4\alpha+1}\right)-\frac{\lambda}{12}\sqrt{3\alpha+1}\right] \\ &+& N_3^{(2,2)}\left[2k\text{arcsinh}\left(\frac{2\sqrt{2}\sqrt{2\alpha+1}} {4\alpha +1}\right)-4k\sqrt{\alpha}\text{arccos}\left(\frac{-1}{4\alpha+1} \right)-\frac{\lambda}{12}\sqrt{4\alpha +2}\right]\end{eqnarray*}

Parameters
n1_tl_count\(N_1^{TL}\) is the number of timelike links
n3_31_13_count\(N_3^{(3,1)}\) is the number of (3,1) and (1,3) simplices
n3_22_count\(N_3^{(2,2)}\) is the number of (2,2) simplices
parametersValidated physical parameters for the action
Returns
\(S^{(3)}(\alpha)\) as a 256-bit MPFR value
See also
Regge calculus
Three-dimensional CDT action

Definition at line 253 of file S3Action.hpp.

◆ s3_bulk_action_alpha_minus_one_imaginary_coefficient()

auto cdt::s3_action::s3_bulk_action_alpha_minus_one_imaginary_coefficient ( Int_precision const n1_tl_count,
Int_precision const n3_31_13_count,
Int_precision const n3_22_count,
long double const k_value,
long double const lambda_value ) -> mpfr_values::Value
inlinenodiscard

Calculates the coefficient of \(i\) in the \(\alpha=-1\) S3 bulk action.

The Lorentzian expression at \(\alpha=-1\) is purely imaginary. This real-valued API returns its coefficient of \(i\); it does not return a complex number or a Wick-rotated Euclidean action. The formula is:

\[S^{(3)}(\alpha=-1)=-2\pi ik N_1^{TL}+N_3^{(3,1)}\left(2.673ik+0.118i \lambda\right)+N_3^{(2,2)}\left(7.386ik+0.118i\lambda\right) \equiv iS^3_{EDT}\]

Parameters
n1_tl_count\(N_1^{TL}\) is the number of timelike links
n3_31_13_count\(N_3^{(3,1)}\) is the number of (3,1) and (1,3) simplices
n3_22_count\(N_3^{(2,2)}\) is the number of (2,2) simplices
k_value\(k=\frac{1}{8\pi G_{Newton}}\)
lambda_value\(\lambda=k*\Lambda\) where \(\Lambda\) is the Cosmological constant
Returns
The real coefficient \(S^{(3)}(\alpha=-1)/i\) as a 256-bit MPFR value

Definition at line 119 of file S3Action.hpp.

◆ s3_bulk_action_alpha_one()

auto cdt::s3_action::s3_bulk_action_alpha_one ( Int_precision const n1_tl_count,
Int_precision const n3_31_13_count,
Int_precision const n3_22_count,
long double const k_value,
long double const lambda_value ) -> mpfr_values::Value
inlinenodiscard

Calculates S3 bulk action for \(\alpha\)=1.

The formula is:

\[S^{(3)}(\alpha=1)=2\pi k N_1^{TL}+N_3^{(3,1)}\left(-3.548k-0.167\lambda \right)+N_3^{(2,2)}\left(-5.355k-0.204\lambda\right)\]

Parameters
n1_tl_count\(N_1^{TL}\) is the number of timelike links
n3_31_13_count\(N_3^{(3,1)}\) is the number of (3,1) and (1,3) simplices
n3_22_count\(N_3^{(2,2)}\) is the number of (2,2) simplices
k_value\(k=\frac{1}{8\pi G_{Newton}}\)
lambda_value\(\lambda=k*\Lambda\) where \(\Lambda\) is the Cosmological constant
Returns
\(S^{(3)}(\alpha=1)\) as a 256-bit MPFR value

Definition at line 180 of file S3Action.hpp.