7#ifndef FIELD_POTENTIAL_INCLUDED
8#define FIELD_POTENTIAL_INCLUDED
25 const int rw,
const int cl);
37 extern double DiffLU (
const MatrixXcd &m,
38 const PartialPivLU<MatrixXcd> &lu);
44 extern int SignDet (
const MatrixXcd &m,
const int debug = 0);
192 virtual void show()
const;
236 int N = (
Li+1)*(
Li+1);
237 field2 = MatrixXcd::Zero(
N,
num_f);
238 field3 = MatrixXcd::Zero(
N,
num_f);
254 if (
m2.rows()!=
N ||
m3.rows()!=
N
256 field2 =
m2; field3 =
m3;
257 }
catch (
const int i) {
Generate normal distributions; Compute convolutions.
void setconf(const int num_col, const Distribution n, const double mean=0.0, const double dev=1.0)
int Li
Physical box size, N_0=N_1.
int num_f
Number of superfields.
Compute Jacobian and its sign determinant.
Potential()
Constructor of Potential.
virtual bool operator==(const Potential &p)
Is identical (Li, num_f) ?
virtual void show() const
Output Li, field.
int sign_det(const int debug=0) const
Sign determinant with a fast algorithm (num_f < 4)
int sign_det4multifield(const int debug=0) const
Sign determinant for mutli-superfield.
virtual bool operator!=(const Potential &p)
Not identical (Li, num_f) ?
Potential(const MatrixXcd &m)
Set Li and field from MatrixXcd, but num_f such as num_f(num_f+1)/2==field.cols()
Potential(const int n1, const int n2, const Distribution n3=Distribution::Zero_conf)
Set Li, num_f, and field.
Potential(const MatrixXcd &m, const int num_field)
Set Li and field from MatrixXcd, but num_f=num_field
virtual ~Potential()
Destructor of Potential.
Compute Matrix and Vector for NR method.
bool operator==(const PotentialNR &p)
Is identical (Li, num_f) ?
VectorXd nr_pvec() const
Compute Vector for NR method (Real type)
PotentialNR(const int num_field, const MatrixXcd &m1, const MatrixXcd &m2, const MatrixXcd &m3)
Set Li, num_f, and field-field2-field3.
MatrixXd nr_mat() const
Compute Matrix for NR method (Real type)
PotentialNR()
Constructor of PotentialNR.
PotentialNR(const int n1, const int n2, const Distribution n3=Distribution::Zero_conf)
Set Li, num_f, and field-field2-field3 with zeros.
void show() const
Output Li, field, field2, field3.
VectorXcd nrerr_pvec() const
Compute Vector for NR error estimate (complex type)
~PotentialNR()
Destructor of PotentialNR.
bool operator!=(const PotentialNR &p)
Not identical (Li, num_f) ?
Definition of the class Field.
Distribution
Types of normal distributions.
Mainly functions to compute Jacobian for uni-superfield.
MatrixXcd DeleteZeroLine(const MatrixXcd &m)
Delete a row and a column with p=0, q=0.
double DiffLU(const MatrixXcd &m, const PartialPivLU< MatrixXcd > &lu)
Difference between a matrix and its LU decomposition.
int SignDet(const MatrixXcd &m, const int debug=0)
Sign of determinant with LU Decomposition.
MatrixXcd ResizeMatrix(const MatrixXcd &m, const int rw, const int cl)
Output m as MatrixXcd(rw, cl) with zeros.