BubbleProfiler
0.3.0
by Peter Athron, Csaba Balazs, Michael Bardsley, Andrew Fowlie, Dylan Harries & Graham White
|
Potential composed of two multivariate Gaussian functions. More...
#include <gaussian_potential.hpp>
Public Member Functions | |
Gaussian_potential (double gamma_, double lambda_, std::size_t n_fields_) | |
instantiate a new Gaussian potential More... | |
virtual | ~Gaussian_potential ()=default |
Gaussian_potential * | clone () const |
return a copy of this potential More... | |
virtual double | operator() (const Eigen::VectorXd &coords) const override |
Evaluate potential at point. More... | |
virtual double | partial (const Eigen::VectorXd &coords, int i) const override |
Partial derivative WRT coordinate i at a point. More... | |
virtual double | partial (const Eigen::VectorXd &coords, int i, int j) const override |
Partial derivative WRT coordinates i, j at a a point. More... | |
virtual std::size_t | get_number_of_fields () const override |
virtual void | translate_origin (const Eigen::VectorXd &) override |
Shift the location of the origin by a specified vector. More... | |
virtual void | apply_basis_change (const Eigen::MatrixXd &) override |
Apply a change of basis matrix. More... | |
virtual void | add_constant_term (double) override |
Add a constant offset to the potential. More... | |
![]() | |
virtual | ~Potential ()=default |
Private Member Functions | |
double | gaussian (const Eigen::VectorXd &, const Eigen::VectorXd &) const |
double | gaussian_deriv (const Eigen::VectorXd &, const Eigen::VectorXd &, int i) const |
double | gaussian_deriv2 (const Eigen::VectorXd &, const Eigen::VectorXd &, int i, int j) const |
Private Attributes | |
double | gamma {2.} |
double | lambda {1.} |
std::size_t | n_fields {0} |
double | constant_term {0.} |
Eigen::VectorXd | origin {} |
Eigen::VectorXd | origin_translation {} |
Eigen::VectorXd | mu {} |
Eigen::MatrixXd | basis_transform {} |
Potential composed of two multivariate Gaussian functions.
This class implements a potential made of two (multivariate) Gaussian functions. The functional form of the potential is
\[ V(\phi) = -(N(\phi, 0) + \gamma N(\phi, \mu)), \]
where \(N(\phi,\mu) = \frac{1}{(2\pi)^{n/2}} \exp(-\frac{1}{2} | \phi - \mu|^2)\) is a unit Gaussian, \(\gamma\) controls the relative depth of the two minima, and \(\mu = \frac{1}{\sqrt{n_f}} (\lambda, \ldots, \lambda)\), where \(n_f\) is the number of fields and the parameter \(\lambda\) controls the geometric distance between the minima.
Note that we enforce \(\gamma > 1\), so that the Gaussian at the origin is a false vacuum.
Definition at line 53 of file gaussian_potential.hpp.
BubbleProfiler::Gaussian_potential::Gaussian_potential | ( | double | gamma_, |
double | lambda_, | ||
std::size_t | n_fields_ | ||
) |
instantiate a new Gaussian potential
gamma_ | relative depth of the two minima |
lambda_ | geometric distance between minima ( \(\mu = \frac{1}{\sqrt{n_fields}}(\lambda, ..., \lambda)\)) |
n_fields_ | number of fields |
Definition at line 31 of file gaussian_potential.cpp.
References basis_transform, gamma, lambda, mu, n_fields, origin, and origin_translation.
Referenced by clone().
|
virtualdefault |
|
overridevirtual |
Add a constant offset to the potential.
offset | constant term to add to potential |
Implements BubbleProfiler::Potential.
Definition at line 137 of file gaussian_potential.cpp.
References constant_term.
Referenced by clone().
|
overridevirtual |
Apply a change of basis matrix.
cob_matrix |
Implements BubbleProfiler::Potential.
Definition at line 131 of file gaussian_potential.cpp.
References basis_transform.
Referenced by clone().
|
inlinevirtual |
return a copy of this potential
Implements BubbleProfiler::Potential.
Definition at line 70 of file gaussian_potential.hpp.
References add_constant_term(), apply_basis_change(), Gaussian_potential(), get_number_of_fields(), operator()(), partial(), and translate_origin().
|
private |
Definition at line 53 of file gaussian_potential.cpp.
References n_fields.
Referenced by operator()().
|
private |
Definition at line 60 of file gaussian_potential.cpp.
Referenced by partial().
|
private |
Definition at line 68 of file gaussian_potential.cpp.
Referenced by partial().
|
overridevirtual |
Implements BubbleProfiler::Potential.
Definition at line 142 of file gaussian_potential.cpp.
References n_fields.
Referenced by clone().
|
overridevirtual |
Evaluate potential at point.
coords | Coordinates at which to evaluate |
Implements BubbleProfiler::Potential.
Definition at line 78 of file gaussian_potential.cpp.
References basis_transform, constant_term, gamma, gaussian(), mu, origin, and origin_translation.
Referenced by clone().
|
overridevirtual |
Partial derivative WRT coordinate i at a point.
coords | Coordinates at which to evaluate |
i | Index of coordinate to be differentiated |
Implements BubbleProfiler::Potential.
Definition at line 86 of file gaussian_potential.cpp.
References basis_transform, gamma, gaussian_deriv(), mu, n_fields, origin, and origin_translation.
Referenced by clone().
|
overridevirtual |
Partial derivative WRT coordinates i, j at a a point.
coords | Coordinates at which to evaluate |
i | Index of first coordinate to be differentiated |
j | Index of second coordinate to be differentiated |
Implements BubbleProfiler::Potential.
Definition at line 104 of file gaussian_potential.cpp.
References basis_transform, gamma, gaussian_deriv2(), mu, n_fields, origin, and origin_translation.
|
overridevirtual |
Shift the location of the origin by a specified vector.
translation | shift of origin |
Implements BubbleProfiler::Potential.
Definition at line 126 of file gaussian_potential.cpp.
References origin_translation.
Referenced by clone().
|
private |
Definition at line 92 of file gaussian_potential.hpp.
Referenced by apply_basis_change(), Gaussian_potential(), operator()(), and partial().
|
private |
Definition at line 88 of file gaussian_potential.hpp.
Referenced by add_constant_term(), and operator()().
|
private |
Definition at line 85 of file gaussian_potential.hpp.
Referenced by Gaussian_potential(), operator()(), and partial().
|
private |
Definition at line 86 of file gaussian_potential.hpp.
Referenced by Gaussian_potential().
|
private |
Definition at line 91 of file gaussian_potential.hpp.
Referenced by gaussian_deriv(), gaussian_deriv2(), Gaussian_potential(), operator()(), and partial().
|
private |
Definition at line 87 of file gaussian_potential.hpp.
Referenced by gaussian(), gaussian_deriv(), gaussian_deriv2(), Gaussian_potential(), get_number_of_fields(), and partial().
|
private |
Definition at line 89 of file gaussian_potential.hpp.
Referenced by Gaussian_potential(), operator()(), and partial().
|
private |
Definition at line 90 of file gaussian_potential.hpp.
Referenced by Gaussian_potential(), operator()(), partial(), and translate_origin().