SpECTRE  v2026.06.09.01
Loading...
Searching...
No Matches
ScalarTensor::sgb::CouplingFunctions::CouplingFunction Class Referenceabstract

Basic interface for the object defining the coupling function. More...

#include <CouplingFunction.hpp>

Public Member Functions

 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.

Protected Member Functions

virtual void coupling_function_impl (gsl::not_null< Scalar< DataVector > * > function_values, const Scalar< DataVector > &scalar_field) const =0
 Evaluates the coupling function on a scalar field profile, \(F[\Psi]\).
virtual void coupling_function_prime_impl (gsl::not_null< Scalar< DataVector > * > function_values, const Scalar< DataVector > &scalar_field) const =0
 Implementation of the function that evaluates the first functional derivative of the coupling function on a scalar field profile, \(\frac{\delta F[\Psi]}{\delta \Psi}\).
virtual void coupling_function_prime_prime_impl (gsl::not_null< Scalar< DataVector > * > function_values, const Scalar< DataVector > &scalar_field) const =0
 Implementation of the function that evaluates the second functional derivative of the coupling function on a scalar field profile, \(\frac{\delta^2 F[\Psi]}{\delta \Psi^2}\).

Detailed Description

Basic interface for the object defining the coupling function.

Details

This class is pure virtual and factory creatable, so that it acts as a unique interface for all forms of coupling functions. The public member functions that compute the profiles of \(F[\Psi]\) and its functional derivatives are: coupling_function, coupling_function_prime and coupling_function_prime_prime; they internally call coupling_function_impl, coupling_function_prime_impl and coupling_function_prime_prime_impl, which are pure virtual and protected. Any class implementing a coupling function should inherit publicly from this class and override only the latter three methods.

Member Function Documentation

◆ coupling_function() [1/2]

Scalar< DataVector > ScalarTensor::sgb::CouplingFunctions::CouplingFunction::coupling_function ( const Scalar< DataVector > & scalar_field) const

Evaluates the coupling function on a scalar field profile, \(F[\Psi]\).

This methods act as an external interface and internally calls coupling_function_impl, which is the virtual function that needs to be specialized for the different types of couplings.

See also
CouplingFunction::coupling_function_impl

◆ coupling_function() [2/2]

void ScalarTensor::sgb::CouplingFunctions::CouplingFunction::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]\).

This methods act as an external interface and internally calls coupling_function_impl, which is the virtual function that needs to be specialized for the different types of couplings.

See also
CouplingFunction::coupling_function_impl

◆ coupling_function_impl()

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

Evaluates the coupling function on a scalar field profile, \(F[\Psi]\).

This is the virtual function that is called by coupling_function, and needs to be specialized for the different types of couplings.

See also
CouplingFunction::coupling_function

Implemented in ScalarTensor::sgb::CouplingFunctions::Exponential, and ScalarTensor::sgb::CouplingFunctions::QuarticPolynomial.

◆ coupling_function_prime() [1/2]

Scalar< DataVector > ScalarTensor::sgb::CouplingFunctions::CouplingFunction::coupling_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.

This methods act as an external interface and internally calls coupling_function_prime_impl, which is the virtual function that needs to be specialized for the different types of couplings.

See also
CouplingFunction::coupling_function_prime_impl

◆ coupling_function_prime() [2/2]

void ScalarTensor::sgb::CouplingFunctions::CouplingFunction::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.

This methods act as an external interface and internally calls coupling_function_prime_impl, which is the virtual function that needs to be specialized for the different types of couplings.

See also
CouplingFunction::coupling_function_prime_impl

◆ coupling_function_prime_impl()

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

Implementation of the function that evaluates the first functional derivative of the coupling function on a scalar field profile, \(\frac{\delta F[\Psi]}{\delta \Psi}\).

This is the virtual function that is called by coupling_function_prime, and needs to be specialized for the different types of couplings.

See also
CouplingFunction::coupling_function_prime

Implemented in ScalarTensor::sgb::CouplingFunctions::Exponential, and ScalarTensor::sgb::CouplingFunctions::QuarticPolynomial.

◆ coupling_function_prime_prime() [1/2]

Scalar< DataVector > ScalarTensor::sgb::CouplingFunctions::CouplingFunction::coupling_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.

This methods act as an external interface and internally calls coupling_function_prime_prime_impl, which is the virtual function that needs to be specialized for the different types of couplings.

See also
CouplingFunction::coupling_function_prime_prime_impl

◆ coupling_function_prime_prime() [2/2]

void ScalarTensor::sgb::CouplingFunctions::CouplingFunction::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.

This methods act as an external interface and internally calls coupling_function_prime_prime_impl, which is the virtual function that needs to be specialized for the different types of couplings.

See also
CouplingFunction::coupling_function_prime_prime_impl

◆ coupling_function_prime_prime_impl()

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

Implementation of the function that evaluates the second functional derivative of the coupling function on a scalar field profile, \(\frac{\delta^2 F[\Psi]}{\delta \Psi^2}\).

This is the virtual function that is called by coupling_function_prime_prime, and needs to be specialized for the different types of couplings.

See also
CouplingFunction::coupling_function_prime_prime

Implemented in ScalarTensor::sgb::CouplingFunctions::Exponential, and ScalarTensor::sgb::CouplingFunctions::QuarticPolynomial.


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