Bayesian force fields
-
class SparseGP
Public Functions
-
SparseGP()
-
SparseGP(std::vector<Kernel*> kernels, double energy_noise, double force_noise, double stress_noise)
-
void add_training_structure(const Structure &structure, const std::vector<int> atom_indices = {-1}, double rel_e_noise = 1, double rel_f_noise = 1, double rel_s_noise = 1)
-
void update_Kuu(const std::vector<ClusterDescriptor> &cluster_descriptors)
-
void update_Kuf(const std::vector<ClusterDescriptor> &cluster_descriptors)
-
void stack_Kuu()
-
void stack_Kuf()
-
void update_matrices_QR()
-
void compute_likelihood_stable()
-
double compute_likelihood_gradient_stable(bool precomputed_KnK = false)
-
void precompute_KnK()
-
void compute_KnK(bool precomputed = false)
-
Eigen::MatrixXd compute_dKnK(int i)
-
void compute_likelihood()
-
double compute_likelihood_gradient(const Eigen::VectorXd &hyperparameters)
-
void set_hyperparameters(Eigen::VectorXd hyps)
-
void write_mapping_coefficients(std::string file_name, std::string contributor, int kernel_index)
-
void write_varmap_coefficients(std::string file_name, std::string contributor, int kernel_index)
-
void write_sparse_descriptors(std::string file_name, std::string contributor)
-
void write_L_inverse(std::string file_name, std::string contributor)
Public Members
-
Eigen::VectorXd hyperparameters
-
std::vector<Eigen::MatrixXd> Kuu_kernels
-
std::vector<Eigen::MatrixXd> Kuf_kernels
-
Eigen::MatrixXd Kuu
-
Eigen::MatrixXd Kuf
-
std::vector<Eigen::MatrixXd> Kuf_e_noise_Kfu
-
std::vector<Eigen::MatrixXd> Kuf_f_noise_Kfu
-
std::vector<Eigen::MatrixXd> Kuf_s_noise_Kfu
-
Eigen::MatrixXd KnK_e
-
Eigen::MatrixXd KnK_f
-
Eigen::MatrixXd KnK_s
-
int n_kernels = 0
-
double Kuu_jitter
-
Eigen::MatrixXd Sigma
-
Eigen::MatrixXd Kuu_inverse
-
Eigen::MatrixXd R_inv
-
Eigen::MatrixXd L_inv
-
Eigen::VectorXd alpha
-
Eigen::VectorXd R_inv_diag
-
Eigen::VectorXd L_diag
-
std::vector<ClusterDescriptor> sparse_descriptors
-
std::vector<std::vector<std::vector<int>>> sparse_indices
-
std::vector<std::vector<int>> training_atom_indices
-
Eigen::VectorXd noise_vector
-
Eigen::VectorXd y
-
Eigen::VectorXd label_count
-
Eigen::VectorXd e_noise_one
-
Eigen::VectorXd f_noise_one
-
Eigen::VectorXd s_noise_one
-
Eigen::VectorXd inv_e_noise_one
-
Eigen::VectorXd inv_f_noise_one
-
Eigen::VectorXd inv_s_noise_one
-
int n_energy_labels = 0
-
int n_force_labels = 0
-
int n_stress_labels = 0
-
int n_sparse = 0
-
int n_labels = 0
-
int n_strucs = 0
-
double energy_noise
-
double force_noise
-
double stress_noise
-
double log_marginal_likelihood
-
double data_fit
-
double complexity_penalty
-
double trace_term
-
double constant_term
-
Eigen::VectorXd likelihood_gradient
-
Eigen::MatrixXd varmap_coeffs
Public Static Functions
- static NLOHMANN_DEFINE_TYPE_INTRUSIVE(SparseGP, hyperparameters, kernels, Kuu_kernels, Kuf_kernels, Kuu, Kuf, n_kernels, Kuu_jitter, Sigma, Kuu_inverse, R_inv, L_inv, alpha, R_inv_diag, L_diag, sparse_descriptors, training_structures, sparse_indices, noise_vector, y, label_count, n_energy_labels, n_force_labels, n_stress_labels, n_sparse, n_labels, n_strucs, energy_noise, force_noise, stress_noise, log_marginal_likelihood, data_fit, complexity_penalty, trace_term, constant_term, likelihood_gradient) void to_json(std SparseGP from_json (std::string file_name)
-
SparseGP()