Loading...
Searching...
No Matches
GPRPotential.h
Go to the documentation of this file.
1/*
2** This file is part of eOn.
3**
4** SPDX-License-Identifier: BSD-3-Clause
5**
6** Copyright (c) 2010--present, eOn Development Team
7** All rights reserved.
8**
9** Repo:
10** https://github.com/TheochemUI/eOn
11*/
12#pragma once
13
14#include "eon/Potential.h"
15#include "subprojects/gpr_optim/gpr/ml/GaussianProcessRegression.h"
16
19
20private:
21 gpr::GaussianProcessRegression *gpr_model{nullptr};
22
23public:
24 // Functions
25 // constructor and destructor
27
28 void registerGPRObject(gpr::GaussianProcessRegression *_gpr_model);
29
30 // To satisfy interface
31 void initialize();
32 void cleanMemory();
33
34 void force(long N, const double *R, const int *atomicNrs, double *F,
35 double *U, double *variance, const double *box) override;
37 [[nodiscard]] bool isThreadSafe() const noexcept override { return false; }
38};
GPRPotential(const eonc::Parameters &p)
void registerGPRObject(gpr::GaussianProcessRegression *_gpr_model)
bool isThreadSafe() const noexcept override
The registered model is shared mutable state.
void force(long N, const double *R, const int *atomicNrs, double *F, double *U, double *variance, const double *box) override
gpr::GaussianProcessRegression * gpr_model