1#ifndef PAULI_POTENTIAL_H
2#define PAULI_POTENTIAL_H
4#include <torch/torch.h>
13 void init(
const Input &input,
const int ninput,
const std::vector<std::string> &descriptor_type,
const std::vector<int> &kernel_index);
48 const torch::Tensor &F,
49 const torch::Tensor &gradient,
56 const torch::Tensor &gamma,
57 const torch::Tensor &gradient
60 const torch::Tensor &p,
61 const torch::Tensor &gradient
64 const torch::Tensor &q,
65 const torch::Tensor &gradient
68 const torch::Tensor &rho,
69 const torch::Tensor &gamma,
72 const torch::Tensor &tauTF,
73 const torch::Tensor &gradient
76 const torch::Tensor &rho,
77 const torch::Tensor &nablaRho,
78 const torch::Tensor &p,
81 const torch::Tensor &tauTF,
82 const torch::Tensor &gradient,
83 const std::vector<torch::Tensor> &grid
86 const torch::Tensor &rho,
87 const torch::Tensor &q,
90 const torch::Tensor &tauTF,
91 const torch::Tensor &gradient,
92 const torch::Tensor &gg
97 const torch::Tensor &rho,
98 const std::vector<torch::Tensor> &xi,
99 const torch::Tensor &gradient
102 const torch::Tensor &rho,
103 const std::vector<torch::Tensor> &xi,
104 const std::vector<torch::Tensor> &tanhxi,
105 const torch::Tensor &gradient
108 const torch::Tensor &p,
109 const torch::Tensor &tanhp,
110 const torch::Tensor &gradient
113 const torch::Tensor &q,
114 const torch::Tensor &tanhq,
115 const torch::Tensor &gradient
118 const torch::Tensor &rho,
121 const torch::Tensor &tauTF,
122 const torch::Tensor &gradient
125 const torch::Tensor &rho,
126 const std::vector<torch::Tensor> &tanhxi,
129 const torch::Tensor &tauTF,
130 const torch::Tensor &gradient
133 const torch::Tensor &rho,
134 const std::vector<torch::Tensor> &xi,
135 const std::vector<torch::Tensor> &tanhxi,
138 const torch::Tensor &tauTF,
139 const torch::Tensor &gradient
142 const torch::Tensor &rho,
143 const torch::Tensor &nablaRho,
144 const torch::Tensor &p,
145 const torch::Tensor &tanhp,
146 const std::vector<torch::Tensor> &tanh_pnl,
149 const torch::Tensor &tauTF,
150 const torch::Tensor &gradient,
151 const std::vector<torch::Tensor> &grid
154 const torch::Tensor &rho,
155 const torch::Tensor &q,
156 const torch::Tensor &tanhq,
157 const std::vector<torch::Tensor> &tanh_qnl,
160 const torch::Tensor &tauTF,
161 const torch::Tensor &gradient,
162 const torch::Tensor &gg
165 const torch::Tensor &rho,
166 const torch::Tensor &nablaRho,
167 const torch::Tensor &p,
168 const torch::Tensor &tanhp,
171 const torch::Tensor &tauTF,
172 const torch::Tensor &gradient,
173 const std::vector<torch::Tensor> &grid
176 const torch::Tensor &rho,
177 const torch::Tensor &q,
178 const torch::Tensor &tanhq,
181 const torch::Tensor &tauTF,
182 const torch::Tensor &gradient,
183 const torch::Tensor &gg
188 const torch::Tensor &input,
189 const std::vector<torch::Tensor> &grid
192 const torch::Tensor &input,
193 const torch::Tensor &gg
196 const torch::Tensor &tanhx,
200 const double cTF = 3.0/10.0 * std::pow(3*std::pow(M_PI, 2.0), 2.0/3.0) * 2;
201 const double pqcoef = 1.0 / (4.0 * std::pow(3*std::pow(M_PI, 2.0), 2.0/3.0));
Definition pauli_potential.h:10
bool ml_qnl
Definition pauli_potential.h:30
torch::Tensor potXiTerm1(const torch::Tensor &rho, const std::vector< torch::Tensor > &xi, const torch::Tensor &gradient)
Definition pauli_potential.cpp:310
torch::Tensor potTanhpTanh_pnlTerm(const torch::Tensor &rho, const torch::Tensor &nablaRho, const torch::Tensor &p, const torch::Tensor &tanhp, const std::vector< torch::Tensor > &tanh_pnl, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient, const std::vector< torch::Tensor > &grid)
Definition pauli_potential.cpp:431
torch::Tensor potTanhqTanh_qnlTerm(const torch::Tensor &rho, const torch::Tensor &q, const torch::Tensor &tanhq, const std::vector< torch::Tensor > &tanh_qnl, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient, const torch::Tensor &gg)
Definition pauli_potential.cpp:476
bool ml_tanhxi
Definition pauli_potential.h:32
torch::Tensor divergence(const torch::Tensor &input, const std::vector< torch::Tensor > &grid)
Definition pauli_potential.cpp:599
torch::Tensor potTanhxinlTerm(const torch::Tensor &rho, const std::vector< torch::Tensor > &tanhxi, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient)
Definition pauli_potential.cpp:379
bool ml_pnl
Definition pauli_potential.h:29
bool ml_tanh_qnl
Definition pauli_potential.h:35
double chi_p
Definition pauli_potential.h:39
torch::Tensor get_potential(const int istru, const Data &data, const torch::Tensor &F, const torch::Tensor &gradient, const Kernel *kernels, const Grid &grid)
Definition pauli_potential.cpp:67
std::map< std::string, std::vector< int > > descriptor2index
Definition pauli_potential.h:19
const double cTF
Definition pauli_potential.h:200
torch::Tensor potTanhxi_nlTerm(const torch::Tensor &rho, const std::vector< torch::Tensor > &xi, const std::vector< torch::Tensor > &tanhxi, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient)
Definition pauli_potential.cpp:402
bool ml_p
Definition pauli_potential.h:23
std::map< std::string, std::vector< int > > descriptor2kernel
Definition pauli_potential.h:18
torch::Tensor potGammanlTerm(const torch::Tensor &rho, const torch::Tensor &gamma, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient)
Definition pauli_potential.cpp:202
bool ml_q
Definition pauli_potential.h:24
int istru
Definition pauli_potential.h:16
torch::Tensor dtanh(const torch::Tensor &tanhx, const double chi)
Definition pauli_potential.cpp:619
double * chi_pnl
Definition pauli_potential.h:42
int fftdim
Definition pauli_potential.h:15
bool ml_tanhq
Definition pauli_potential.h:26
bool ml_tanhq_nl
Definition pauli_potential.h:37
double * chi_xi
Definition pauli_potential.h:41
void init(const Input &input, const int ninput, const std::vector< std::string > &descriptor_type, const std::vector< int > &kernel_index)
Definition pauli_potential.cpp:3
bool ml_gamma
Definition pauli_potential.h:22
bool ml_xi
Definition pauli_potential.h:31
torch::Tensor potPPnlTerm(const torch::Tensor &rho, const torch::Tensor &nablaRho, const torch::Tensor &p, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient, const std::vector< torch::Tensor > &grid)
Definition pauli_potential.cpp:225
torch::Tensor potTanhpTanhp_nlTerm(const torch::Tensor &rho, const torch::Tensor &nablaRho, const torch::Tensor &p, const torch::Tensor &tanhp, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient, const std::vector< torch::Tensor > &grid)
Definition pauli_potential.cpp:516
torch::Tensor potPTerm1(const torch::Tensor &p, const torch::Tensor &gradient)
Definition pauli_potential.cpp:186
bool ml_tanhp_nl
Definition pauli_potential.h:36
torch::Tensor potQQnlTerm(const torch::Tensor &rho, const torch::Tensor &q, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient, const torch::Tensor &gg)
Definition pauli_potential.cpp:271
double chi_q
Definition pauli_potential.h:40
bool ml_tanhp
Definition pauli_potential.h:25
const double pqcoef
Definition pauli_potential.h:201
torch::Tensor potGammaTerm(const torch::Tensor &gamma, const torch::Tensor &gradient)
Definition pauli_potential.cpp:178
torch::Tensor potTanhpTerm1(const torch::Tensor &p, const torch::Tensor &tanhp, const torch::Tensor &gradient)
Definition pauli_potential.cpp:340
torch::Tensor potTanhqTerm1(const torch::Tensor &q, const torch::Tensor &tanhq, const torch::Tensor &gradient)
Definition pauli_potential.cpp:349
double * chi_qnl
Definition pauli_potential.h:43
bool ml_tanhxi_nl
Definition pauli_potential.h:33
torch::Tensor potTanhqTanhq_nlTerm(const torch::Tensor &rho, const torch::Tensor &q, const torch::Tensor &tanhq, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient, const torch::Tensor &gg)
Definition pauli_potential.cpp:560
torch::Tensor potTanhxiTerm1(const torch::Tensor &rho, const std::vector< torch::Tensor > &xi, const std::vector< torch::Tensor > &tanhxi, const torch::Tensor &gradient)
Definition pauli_potential.cpp:324
bool ml_tanh_pnl
Definition pauli_potential.h:34
torch::Tensor Laplacian(const torch::Tensor &input, const torch::Tensor &gg)
Definition pauli_potential.cpp:614
bool ml_gammanl
Definition pauli_potential.h:28
torch::Tensor potQTerm1(const torch::Tensor &q, const torch::Tensor &gradient)
Definition pauli_potential.cpp:194
torch::Tensor potXinlTerm(const torch::Tensor &rho, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient)
Definition pauli_potential.cpp:358