SpECTRE  v2026.06.09.01
Loading...
Searching...
No Matches
ScalarTensor::sgb::CouplingFunctions::Exponential Class Reference

Coupling function of exponential type. More...

#include <Exponential.hpp>

Classes

struct  Lambda
struct  Gamma

Public Types

using options = tmpl::list<Lambda, Gamma>

Public Member Functions

 Exponential (double lambda, double gamma)
 Exponential (const Exponential &)=default
Exponential & operator= (const Exponential &)=default
 Exponential (Exponential &&)=default
Exponential & operator= (Exponential &&)=default
 Exponential (CkMigrateMessage *m)
 WRAPPED_PUPable_decl_template (Exponential)
void pup (PUP::er &p) override
double get_lambda () const
double get_gamma () const
Public Member Functions inherited from ScalarTensor::sgb::CouplingFunctions::CouplingFunction
 WRAPPED_PUPable_abstract (CouplingFunction)
 CouplingFunction (CkMigrateMessage *m)
void coupling_function (gsl::not_null< Scalar< DataVector > * > function_values, const Scalar< DataVector > &scalar_field) const
 Evaluates the coupling function on a scalar field profile, \(F[\Psi]\).
Scalar< DataVectorcoupling_function (const Scalar< DataVector > &scalar_field) const
 Evaluates the coupling function on a scalar field profile, \(F[\Psi]\).
void coupling_function_prime (gsl::not_null< Scalar< DataVector > * > function_values, const Scalar< DataVector > &scalar_field) const
 Evaluates the functional derivative of the coupling function, \(\frac{\delta F[\Psi]}{\delta \Psi} \), on a scalar field profile.
Scalar< DataVectorcoupling_function_prime (const Scalar< DataVector > &scalar_field) const
 Evaluates the functional derivative of the coupling function, \(\frac{\delta F[\Psi]}{\delta \Psi} \), on a scalar field profile.
void coupling_function_prime_prime (gsl::not_null< Scalar< DataVector > * > function_values, const Scalar< DataVector > &scalar_field) const
 Evaluates the second functional derivative of the coupling function, \(\frac{\delta^2 F[\Psi]}{\delta \Psi^2} \), on a scalar field profile.
Scalar< DataVectorcoupling_function_prime_prime (const Scalar< DataVector > &scalar_field) const
 Evaluates the second functional derivative of the coupling function, \(\frac{\delta^2 F[\Psi]}{\delta \Psi^2} \), on a scalar field profile.

Static Public Attributes

static constexpr Options::String help

Protected Member Functions

void coupling_function_impl (gsl::not_null< Scalar< DataVector > * > function_values, const Scalar< DataVector > &scalar_field) const override
 Specialization of the function that evaluates the coupling function on a scalar field profile.
void coupling_function_prime_impl (gsl::not_null< Scalar< DataVector > * > function_values, const Scalar< DataVector > &scalar_field) const override
 Specialization of the function that evaluates the first functional derivative of the coupling function on a scalar field profile.
void coupling_function_prime_prime_impl (gsl::not_null< Scalar< DataVector > * > function_values, const Scalar< DataVector > &scalar_field) const override
 Specialization of the function that evaluates the second functional derivative of the coupling function on a scalar field profile.

Detailed Description

Coupling function of exponential type.

Details

The functional form of this coupling is \(F[\Psi] = \lambda e^{\gamma \Psi}\), where both \(\lambda\) and \(\gamma\) are dimensionless.

In the case of exponential coupling the theory does not admit the Kerr metric as a stationary solution, and spontaneous scalarization cannot take place. For this type of coupling the theory is also referred to as Einstein-dilaton-Gauss-Bonnet.

Member Function Documentation

◆ coupling_function_impl()

void ScalarTensor::sgb::CouplingFunctions::Exponential::coupling_function_impl ( gsl::not_null< Scalar< DataVector > * > function_values,
const Scalar< DataVector > & scalar_field ) const
overrideprotectedvirtual

Specialization of the function that evaluates the coupling function on a scalar field profile.

It returns the profile \(F[\Psi] = \lambda e^{- \gamma \Psi}\).

Implements ScalarTensor::sgb::CouplingFunctions::CouplingFunction.

◆ coupling_function_prime_impl()

void ScalarTensor::sgb::CouplingFunctions::Exponential::coupling_function_prime_impl ( gsl::not_null< Scalar< DataVector > * > function_values,
const Scalar< DataVector > & scalar_field ) const
overrideprotectedvirtual

Specialization of the function that evaluates the first functional derivative of the coupling function on a scalar field profile.

It returns the profile \(\frac{\delta F[\Psi]}{\delta \Psi} = - \gamma \lambda e^{- \gamma \Psi}\).

Implements ScalarTensor::sgb::CouplingFunctions::CouplingFunction.

◆ coupling_function_prime_prime_impl()

void ScalarTensor::sgb::CouplingFunctions::Exponential::coupling_function_prime_prime_impl ( gsl::not_null< Scalar< DataVector > * > function_values,
const Scalar< DataVector > & scalar_field ) const
overrideprotectedvirtual

Specialization of the function that evaluates the second functional derivative of the coupling function on a scalar field profile.

It returns the profile \(\frac{\delta^2 F[\Psi]}{\delta \Psi^2} = \gamma^2 \lambda e^{- \gamma \Psi}\).

Implements ScalarTensor::sgb::CouplingFunctions::CouplingFunction.

Member Data Documentation

◆ help

Options::String ScalarTensor::sgb::CouplingFunctions::Exponential::help
staticconstexpr
Initial value:
= {
"Coupling function of exponential type"}

The documentation for this class was generated from the following file:
  • src/PointwiseFunctions/ScalarTensor/ScalarGaussBonnet/CouplingFunctions/Exponential.hpp