Loading...
Searching...
No Matches
RGPotEngine.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <string>
5
7 std::string backend;
8 std::string basis{"sto-3g"};
9 std::string theory{"scf"};
10 std::string scf_type{"rhf"};
11 std::string functional{"BLYP"};
12 double cutoff_ry{70.0};
13 int charge{0};
15 std::string engine_path;
16 std::string engine_library;
17 std::string engine_root;
18 std::string title;
19 int memory_mb{0};
20 std::string scratch_dir;
21 std::string input_block; // optional NWChem inputBlocks text
22 // Metatomic (backend=metatomic): dlopen libmetatomic_engine.so
23 std::string model_path;
24 std::string device{"cpu"};
25 std::string length_unit{"angstrom"};
27 bool check_consistency{false};
30 // XTB (backend=xtb): dlopen libxtb_engine.so — not native -Dwith_xtb link
31 std::string xtb_paramset{"GFN2xTB"}; // GFNFF / GFN0xTB / GFN1xTB / GFN2xTB
32 double xtb_accuracy{1.0};
35 double xtb_charge{0.0};
36 int xtb_uhf{0};
37};
38
41public:
42 explicit RGPotEngine(const RGPotEngineOptions &opt);
44 RGPotEngine(const RGPotEngine &) = delete;
45 RGPotEngine &operator=(const RGPotEngine &) = delete;
46
47 [[nodiscard]] const std::string &backend() const noexcept { return backend_; }
48 [[nodiscard]] bool available() const;
49 void force(long N, const double *R, const int *atomicNrs, double *F,
50 double *U, const double *box) const;
51
52private:
53 struct Impl;
54 std::unique_ptr<Impl> impl_;
55 std::string backend_;
56};
bool available() const
RGPotEngine(const RGPotEngineOptions &opt)
RGPotEngine(const RGPotEngine &)=delete
RGPotEngine & operator=(const RGPotEngine &)=delete
const std::string & backend() const noexcept
Definition RGPotEngine.h:47
std::unique_ptr< Impl > impl_
Definition RGPotEngine.h:54
std::string backend_
Definition RGPotEngine.h:55
void force(long N, const double *R, const int *atomicNrs, double *F, double *U, const double *box) const
std::string scf_type
Definition RGPotEngine.h:10
std::string title
Definition RGPotEngine.h:18
std::string xtb_paramset
Definition RGPotEngine.h:31
std::string basis
Definition RGPotEngine.h:8
std::string scratch_dir
Definition RGPotEngine.h:20
std::string engine_path
Definition RGPotEngine.h:15
std::string backend
Definition RGPotEngine.h:7
std::string extensions_directory
Definition RGPotEngine.h:26
std::string engine_library
Definition RGPotEngine.h:16
double xtb_electronic_temperature
Definition RGPotEngine.h:33
std::string functional
Definition RGPotEngine.h:11
std::string length_unit
Definition RGPotEngine.h:25
bool torch_determinism_strict
Definition RGPotEngine.h:29
std::string device
Definition RGPotEngine.h:24
std::string model_path
Definition RGPotEngine.h:23
std::string engine_root
Definition RGPotEngine.h:17
double uncertainty_threshold
Definition RGPotEngine.h:28
std::string theory
Definition RGPotEngine.h:9
std::string input_block
Definition RGPotEngine.h:21