ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
PauliPotential Class Reference

#include <pauli_potential.h>

Collaboration diagram for PauliPotential:

Public Member Functions

void init (const Input &input, const int ninput, const std::vector< std::string > &descriptor_type, const std::vector< int > &kernel_index)
 
torch::Tensor get_potential (const int istru, const Data &data, const torch::Tensor &F, const torch::Tensor &gradient, const Kernel *kernels, const Grid &grid)
 

Public Attributes

int fftdim = 0
 
int istru = 0
 
std::map< std::string, std::vector< int > > descriptor2kernel = {}
 
std::map< std::string, std::vector< int > > descriptor2index = {}
 
bool ml_gamma = false
 
bool ml_p = false
 
bool ml_q = false
 
bool ml_tanhp = false
 
bool ml_tanhq = false
 
bool ml_gammanl = false
 
bool ml_pnl = false
 
bool ml_qnl = false
 
bool ml_xi = false
 
bool ml_tanhxi = false
 
bool ml_tanhxi_nl = false
 
bool ml_tanh_pnl = false
 
bool ml_tanh_qnl = false
 
bool ml_tanhp_nl = false
 
bool ml_tanhq_nl = false
 
double chi_p = 1.
 
double chi_q = 1.
 
double * chi_xi = nullptr
 
double * chi_pnl = nullptr
 
double * chi_qnl = nullptr
 

Private Member Functions

torch::Tensor potGammaTerm (const torch::Tensor &gamma, const torch::Tensor &gradient)
 
torch::Tensor potPTerm1 (const torch::Tensor &p, const torch::Tensor &gradient)
 
torch::Tensor potQTerm1 (const torch::Tensor &q, const torch::Tensor &gradient)
 
torch::Tensor potGammanlTerm (const torch::Tensor &rho, const torch::Tensor &gamma, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient)
 
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)
 
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)
 
torch::Tensor potXiTerm1 (const torch::Tensor &rho, const std::vector< torch::Tensor > &xi, const torch::Tensor &gradient)
 
torch::Tensor potTanhxiTerm1 (const torch::Tensor &rho, const std::vector< torch::Tensor > &xi, const std::vector< torch::Tensor > &tanhxi, const torch::Tensor &gradient)
 
torch::Tensor potTanhpTerm1 (const torch::Tensor &p, const torch::Tensor &tanhp, const torch::Tensor &gradient)
 
torch::Tensor potTanhqTerm1 (const torch::Tensor &q, const torch::Tensor &tanhq, const torch::Tensor &gradient)
 
torch::Tensor potXinlTerm (const torch::Tensor &rho, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient)
 
torch::Tensor potTanhxinlTerm (const torch::Tensor &rho, const std::vector< torch::Tensor > &tanhxi, const Kernel *kernels, const torch::Tensor &tauTF, const torch::Tensor &gradient)
 
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)
 
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)
 
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)
 
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)
 
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)
 
torch::Tensor divergence (const torch::Tensor &input, const std::vector< torch::Tensor > &grid)
 
torch::Tensor Laplacian (const torch::Tensor &input, const torch::Tensor &gg)
 
torch::Tensor dtanh (const torch::Tensor &tanhx, const double chi)
 

Private Attributes

const double cTF = 3.0/10.0 * std::pow(3*std::pow(M_PI, 2.0), 2.0/3.0) * 2
 
const double pqcoef = 1.0 / (4.0 * std::pow(3*std::pow(M_PI, 2.0), 2.0/3.0))
 

Member Function Documentation

◆ divergence()

torch::Tensor PauliPotential::divergence ( const torch::Tensor &  input,
const std::vector< torch::Tensor > &  grid 
)
private

◆ dtanh()

torch::Tensor PauliPotential::dtanh ( const torch::Tensor &  tanhx,
const double  chi 
)
private
Here is the caller graph for this function:

◆ get_potential()

torch::Tensor PauliPotential::get_potential ( const int  istru,
const Data data,
const torch::Tensor &  F,
const torch::Tensor &  gradient,
const Kernel kernels,
const Grid grid 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ init()

void PauliPotential::init ( const Input input,
const int  ninput,
const std::vector< std::string > &  descriptor_type,
const std::vector< int > &  kernel_index 
)
Here is the caller graph for this function:

◆ Laplacian()

torch::Tensor PauliPotential::Laplacian ( const torch::Tensor &  input,
const torch::Tensor &  gg 
)
private

◆ potGammanlTerm()

torch::Tensor PauliPotential::potGammanlTerm ( const torch::Tensor &  rho,
const torch::Tensor &  gamma,
const Kernel kernels,
const torch::Tensor &  tauTF,
const torch::Tensor &  gradient 
)
private
Here is the caller graph for this function:

◆ potGammaTerm()

torch::Tensor PauliPotential::potGammaTerm ( const torch::Tensor &  gamma,
const torch::Tensor &  gradient 
)
private
Here is the caller graph for this function:

◆ potPPnlTerm()

torch::Tensor PauliPotential::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 
)
private
Here is the caller graph for this function:

◆ potPTerm1()

torch::Tensor PauliPotential::potPTerm1 ( const torch::Tensor &  p,
const torch::Tensor &  gradient 
)
private
Here is the caller graph for this function:

◆ potQQnlTerm()

torch::Tensor PauliPotential::potQQnlTerm ( const torch::Tensor &  rho,
const torch::Tensor &  q,
const Kernel kernels,
const torch::Tensor &  tauTF,
const torch::Tensor &  gradient,
const torch::Tensor &  gg 
)
private
Here is the caller graph for this function:

◆ potQTerm1()

torch::Tensor PauliPotential::potQTerm1 ( const torch::Tensor &  q,
const torch::Tensor &  gradient 
)
private
Here is the caller graph for this function:

◆ potTanhpTanh_pnlTerm()

torch::Tensor PauliPotential::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 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ potTanhpTanhp_nlTerm()

torch::Tensor PauliPotential::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 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ potTanhpTerm1()

torch::Tensor PauliPotential::potTanhpTerm1 ( const torch::Tensor &  p,
const torch::Tensor &  tanhp,
const torch::Tensor &  gradient 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ potTanhqTanh_qnlTerm()

torch::Tensor PauliPotential::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 
)
private
Here is the caller graph for this function:

◆ potTanhqTanhq_nlTerm()

torch::Tensor PauliPotential::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 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ potTanhqTerm1()

torch::Tensor PauliPotential::potTanhqTerm1 ( const torch::Tensor &  q,
const torch::Tensor &  tanhq,
const torch::Tensor &  gradient 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ potTanhxi_nlTerm()

torch::Tensor PauliPotential::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 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ potTanhxinlTerm()

torch::Tensor PauliPotential::potTanhxinlTerm ( const torch::Tensor &  rho,
const std::vector< torch::Tensor > &  tanhxi,
const Kernel kernels,
const torch::Tensor &  tauTF,
const torch::Tensor &  gradient 
)
private
Here is the caller graph for this function:

◆ potTanhxiTerm1()

torch::Tensor PauliPotential::potTanhxiTerm1 ( const torch::Tensor &  rho,
const std::vector< torch::Tensor > &  xi,
const std::vector< torch::Tensor > &  tanhxi,
const torch::Tensor &  gradient 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ potXinlTerm()

torch::Tensor PauliPotential::potXinlTerm ( const torch::Tensor &  rho,
const Kernel kernels,
const torch::Tensor &  tauTF,
const torch::Tensor &  gradient 
)
private
Here is the caller graph for this function:

◆ potXiTerm1()

torch::Tensor PauliPotential::potXiTerm1 ( const torch::Tensor &  rho,
const std::vector< torch::Tensor > &  xi,
const torch::Tensor &  gradient 
)
private
Here is the caller graph for this function:

Member Data Documentation

◆ chi_p

double PauliPotential::chi_p = 1.

◆ chi_pnl

double* PauliPotential::chi_pnl = nullptr

◆ chi_q

double PauliPotential::chi_q = 1.

◆ chi_qnl

double* PauliPotential::chi_qnl = nullptr

◆ chi_xi

double* PauliPotential::chi_xi = nullptr

◆ cTF

const double PauliPotential::cTF = 3.0/10.0 * std::pow(3*std::pow(M_PI, 2.0), 2.0/3.0) * 2
private

◆ descriptor2index

std::map<std::string, std::vector<int> > PauliPotential::descriptor2index = {}

◆ descriptor2kernel

std::map<std::string, std::vector<int> > PauliPotential::descriptor2kernel = {}

◆ fftdim

int PauliPotential::fftdim = 0

◆ istru

int PauliPotential::istru = 0

◆ ml_gamma

bool PauliPotential::ml_gamma = false

◆ ml_gammanl

bool PauliPotential::ml_gammanl = false

◆ ml_p

bool PauliPotential::ml_p = false

◆ ml_pnl

bool PauliPotential::ml_pnl = false

◆ ml_q

bool PauliPotential::ml_q = false

◆ ml_qnl

bool PauliPotential::ml_qnl = false

◆ ml_tanh_pnl

bool PauliPotential::ml_tanh_pnl = false

◆ ml_tanh_qnl

bool PauliPotential::ml_tanh_qnl = false

◆ ml_tanhp

bool PauliPotential::ml_tanhp = false

◆ ml_tanhp_nl

bool PauliPotential::ml_tanhp_nl = false

◆ ml_tanhq

bool PauliPotential::ml_tanhq = false

◆ ml_tanhq_nl

bool PauliPotential::ml_tanhq_nl = false

◆ ml_tanhxi

bool PauliPotential::ml_tanhxi = false

◆ ml_tanhxi_nl

bool PauliPotential::ml_tanhxi_nl = false

◆ ml_xi

bool PauliPotential::ml_xi = false

◆ pqcoef

const double PauliPotential::pqcoef = 1.0 / (4.0 * std::pow(3*std::pow(M_PI, 2.0), 2.0/3.0))
private

The documentation for this class was generated from the following files: