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

Coupling function of polynomial type with degree up to four: \(F[\Psi] = \sum_{i = 1}^4 a_i \Psi^i\). More...

#include <QuarticPolynomial.hpp>

Classes

struct  Linear
struct  Quadratic
struct  Cubic
struct  Quartic

Public Types

using options = tmpl::list<Linear, Quadratic, Cubic, Quartic>

Public Member Functions

 QuarticPolynomial (double linear, double quadratic, double cubic, double quartic)
 QuarticPolynomial (const QuarticPolynomial &)=default
QuarticPolynomial & operator= (const QuarticPolynomial &)=default
 QuarticPolynomial (QuarticPolynomial &&)=default
QuarticPolynomial & operator= (QuarticPolynomial &&)=default
 QuarticPolynomial (CkMigrateMessage *m)
 WRAPPED_PUPable_decl_template (QuarticPolynomial)
void pup (PUP::er &p) override
double get_linear () const
double get_quadratic () const
double get_cubic () const
double get_quartic () 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 polynomial type with degree up to four: \(F[\Psi] = \sum_{i = 1}^4 a_i \Psi^i\).

Details

This expression can be used to model the weak-field limit of a generic coupling. Also, by appropriately setting the values of the coefficients \(a_i\) it can be used to study different phenomenological scenario. For example, the theory admits the Kerr metric with vanishing scalar field as a stationary solution in the case \(a_1 = 0\), and can feature spontanous scalarization for sufficiently large values of \(a_2\). Furthermore, if \(a_2 = 0\), the theory can feature nonlinear scalarization. See [65] for a review on spontanous scalarization.

Member Function Documentation

◆ coupling_function_impl()

void ScalarTensor::sgb::CouplingFunctions::QuarticPolynomial::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] = a_1 \Psi + a_2 \Psi^2 + a_3 \Psi^3 + a_4 \Psi^4\).

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

◆ coupling_function_prime_impl()

void ScalarTensor::sgb::CouplingFunctions::QuarticPolynomial::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} = a_1 + 2 a_2 \Psi + 3 a_3 \Psi^2 + 4 a_4 \Psi^3\).

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

◆ coupling_function_prime_prime_impl()

void ScalarTensor::sgb::CouplingFunctions::QuarticPolynomial::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} = 2 a_2 + 6 a_3 \Psi + 12 a_4 \Psi^2\).

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

Member Data Documentation

◆ help

Options::String ScalarTensor::sgb::CouplingFunctions::QuarticPolynomial::help
staticconstexpr
Initial value:
= {
"Coupling function of polynomial type with degree up to four"}

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