|
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... | |
Public Member Functions inherited from BubbleProfiler::Potential | |
| 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().
1.8.11