KIDS  ver-0.0.1
KIDS : Kernel Integrated Dynamics Simulator
Loading...
Searching...
No Matches
Model_Interf_MNDO.h
Go to the documentation of this file.
1#ifndef MODEL_INTERF_MNDO_H
2#define MODEL_INTERF_MNDO_H
3
4
5#include <unistd.h>
6
7#include <cmath>
8
9#include "kids/Kernel.h"
10
11namespace PROJECT_NS {
12
13struct MNDOKW {
14 std::string key;
15 std::string val;
16};
17
18using MNDOKW_map = std::map<std::string, std::string>;
19
20class Model_Interf_MNDO final : public Kernel {
21 public:
22 virtual const std::string getName();
23
24 virtual int getType() const;
25
27
28 virtual ~Model_Interf_MNDO(){};
29
30 private:
33
34 std::string exec_file;
35 std::string init_nuclinp;
36 std::string savename;
37
38 std::vector<std::string> mndo_data;
39 std::string mndo_keyword;
40 std::string mndo_comment;
41 std::string mndo_addition;
42
43 std::vector<MNDOKW> keyword; // keyword wrapper
44
45 std::string task_control;
46 std::string directory;
47
49
50 // integrator
52
53 // model
54 int* atoms;
65
67
68 int natom;
70 int nciref;
71 int ncigrd;
72 int iroot;
73 int lroot;
74 bool refer;
75
80
81 void setInputParam_impl(std::shared_ptr<Param>& PM);
82
83 void setInputDataSet_impl(std::shared_ptr<DataSet>& DS);
84
86
88
89 int parse_mndo(const std::string& mndoinp);
90 std::string new_keyword(const MNDOKW_map& newkeyword);
91 int new_task(const std::string& file, const std::string& task_flag);
92 int track_nac_sign();
93 Status& parse_standard(const std::string& log, Status& stat);
94 int parse_hessian(const std::string& log);
95 int parse_hessian2(const std::string& log);
96 int calc_normalmode();
97 int calc_samp();
98 int calc_scan();
99};
100}; // namespace PROJECT_NS
101
102#endif // MODEL_INTERF_MNDO_H
this file provide Kernel class
this class provides the container and implementation of algorithms
Definition Kernel.h:60
void setInputParam_impl(std::shared_ptr< Param > &PM)
Virtual function to set input parameters for the kernel implementation.
Status & parse_standard(const std::string &log, Status &stat)
parse energy/gradients/nac from output
std::string new_keyword(const MNDOKW_map &newkeyword)
generate a new set of keywords
void setInputDataSet_impl(std::shared_ptr< DataSet > &DS)
Virtual function to set input data set for the kernel implementation.
int track_nac_sign()
this part track the sign of NAC between current step with the last step, in order to make sure nac ch...
int parse_hessian(const std::string &log)
parse frequency calculation log where the frequency should be calculated by specifying (JOP=2),...
int parse_mndo(const std::string &mndoinp)
this function parse mndo input (only support cartesian format)
virtual const std::string getName()
Get the name of the kernel.
std::vector< MNDOKW > keyword
int parse_hessian2(const std::string &log)
parse frequency calculation (JOP=2) and (KPRINT=1)
Status & executeKernel_impl(Status &stat)
Virtual function to execute the kernel implementation.
virtual int getType() const
Get the type of the kernel.
int new_task(const std::string &file, const std::string &task_flag)
generate input file for a new task based on the template
int calc_normalmode()
this function generates normalmode trajectories
int calc_samp()
this function generates initialization configuration
std::vector< std::string > mndo_data
Status & initializeKernel_impl(Status &stat)
ForceField_init for mndo.
< http://warp.povusers.org/FunctionParser/fparser.html
Definition Context.h:39
double kids_real
Alias for real number type.
Definition Types.h:59
std::map< std::string, std::string > MNDOKW_map
int kids_bint
Alias for integer type.
Definition Types.h:58