KIDS  ver-0.0.1
KIDS : Kernel Integrated Dynamics Simulator
Loading...
Searching...
No Matches
NAD_AdaptM_Kernel.cpp
Go to the documentation of this file.
1#include "kids/Kernel.h"
6#include "kids/Kernel_GWP.h"
10#include "kids/Kernel_Random.h"
14#include "kids/Kernel_Update.h"
15
16namespace PROJECT_NS {
17
18std::shared_ptr<Kernel> NAD_AdaptM_Kernel(std::shared_ptr<Kernel> kmodel, std::string NAD_Kernel_name) {
19 bool take_ownership_false = false;
20
21 int split = 4;
22
23 // Root Kernel
24 std::shared_ptr<Kernel> ker(new Kernel(NAD_Kernel_name));
25
27 std::shared_ptr<Kernel> kinte(new Kernel("MULTI_Integrator"));
28
29 std::shared_ptr<Kernel_Representation> krepr(new Kernel_Representation());
30 std::shared_ptr<Kernel_NADForce> kforc(new Kernel_NADForce());
31
32 std::shared_ptr<Kernel_Update_p> ku_p(new Kernel_Update_p(0.5e0 / (double) split));
33 std::shared_ptr<Kernel_Update_x> ku_x(new Kernel_Update_x(0.5e0));
34 std::shared_ptr<Kernel_Update_c> ku_c(new Kernel_Update_c(0.5e0 / (double) split));
35 std::shared_ptr<Kernel> kele;
36 kele = std::shared_ptr<Kernel_Elec_NAD>(new Kernel_Elec_NAD(0.5e0 / (double) split));
38 std::shared_ptr<Kernel_Recorder> krecd(new Kernel_Recorder());
39
40 for (int i = 0; i < split; ++i) {
41 kinte->appendChild(ku_p);
42 kinte->appendChild(krepr);
43 kinte->appendChild(ku_c);
44 kinte->appendChild(kele);
45 kinte->appendChild(kforc);
46 }
47
48 kinte->appendChild(ku_x);
49 kinte->appendChild(ku_x);
50 kinte->appendChild(kmodel);
51 kinte->appendChild(krepr);
52
53 for (int i = 0; i < split; ++i) {
54 kinte->appendChild(ku_c);
55 kinte->appendChild(kele);
56 kinte->appendChild(kforc);
57 kinte->appendChild(ku_p);
58 kinte->appendChild(krepr);
59 }
60 kinte->appendChild(std::shared_ptr<Kernel_Elec_Switch>(new Kernel_Elec_Switch()));
61 kinte->appendChild(kforc);
62
63 kinte->appendChild(std::shared_ptr<Kernel_Conserve>(new Kernel_Conserve()));
64
65 std::shared_ptr<Kernel_Iter_Adapt> kiter(new Kernel_Iter_Adapt());
66 kiter->appendChild(krecd); // stacked in iteration
67 kiter->appendChild(kinte); // stacked in iteration
68
69 // /// CMM kernel
70 ker->appendChild(std::shared_ptr<Kernel_Load_DataSet>(new Kernel_Load_DataSet()))
71 .appendChild(std::shared_ptr<Kernel_Random>(new Kernel_Random()))
72 .appendChild(std::shared_ptr<Kernel_Read_Dimensions>(new Kernel_Read_Dimensions()))
73 .appendChild(std::shared_ptr<Kernel_Prioritization>(new Kernel_Prioritization({kmodel, kinte}, 1)))
74 .appendChild(std::shared_ptr<Kernel_Prioritization>( //
75 new Kernel_Prioritization({kmodel, krepr, kele, kforc, krecd}, 2)))
76 .appendChild(kiter)
77 .appendChild(std::shared_ptr<Kernel_Dump_DataSet>(new Kernel_Dump_DataSet()));
78 return ker;
79}
80
81}; // namespace PROJECT_NS
this file provide Kernel class
this file provides Kernel_Conserve class enabling energy tracing and conservation.
this file provides Kernel_Dump_DataSet class enabling dump dataset.
this file provides Kernel_Elec_NAD class for electronic dynamics and properties in nonadiabatic traje...
this file provides Kernel_NADForce class enabling force weighting from electronic properties.
this file provides Kernel_Prioritization class enabling reordering different kernels in parsing Param...
this file provides Kernel_Read_Dimensions class enabling reading and initializing the sizes and shape...
this file provides Kernel_Recorder class for trace data in dataset during the dynamics.
This class implements a process for energy conservation.
this class implements a process for dumping current data with stuctured format
initialization kernel for electonic DOFs in NAD
initialization kernel for electonic DOFs in NAD
this class implements a process for loading data in state stucture
this class implements process of calculation of nuclear force for nonadiabatic dynamics
This class specifies the kernels that prioritizing other kernels.
Kernel_Random manipulation of random engine and numbers.
This class specifies the kernels that initialize the dimensions of data.
Kernel_Representationfor solving basis transformation for electronic problems.
this class provides the container and implementation of algorithms
Definition Kernel.h:60
< http://warp.povusers.org/FunctionParser/fparser.html
Definition Context.h:39
std::shared_ptr< Kernel > NAD_AdaptM_Kernel(std::shared_ptr< Kernel > kmodel, std::string NAD_Kernel_name)