KIDS  ver-0.0.1
KIDS : Kernel Integrated Dynamics Simulator
Loading...
Searching...
No Matches
Model_SystemBath.h
Go to the documentation of this file.
1#ifndef SystemBath_H
2#define SystemBath_H
3
4#include "kids/Kernel.h"
5#include "kids/Model_Bath.h"
6#include "kids/Policy.h"
7
8namespace PROJECT_NS {
9
10DEFINE_POLICY(SystemPolicy, //
11 SB, //
12 FMO, //
13 SF3a, //
14 SF3b, //
15 SF3c, //
16 SF5a, //
17 SF5b, //
18 FCP, //
19 AGG, //
20 CYC, //
21 Read); //
22
23DEFINE_POLICY(CouplingPolicy, //
24 SB, //
25 SE, //
26 Read); //
27
28DEFINE_POLICY(NSampPolicy,
29 Wigner, //
30 Classical, //
31 QCT);
32
33class Model_SystemBath final : public Kernel {
34 public:
35 virtual const std::string getName();
36
37 virtual int getType() const;
38
40 appendChild(std::shared_ptr<Model_Bath>(new Model_Bath())); //
41 }
42
43 private:
44 // parameters
45 int nbath; // no. of bath
46 int Nb; // discrete no.
47 int L; // no. of nonzero variables in each Q
48
49 // system & coupling
50 kids_real* Hsys; /* Hamiltonian for system part */
51 kids_real* Q; /* system part in interaction with different bath [size: NvalinQ * nbath * FF] */
55
56 // bath
61
62 // integrator
63 kids_real *x, *p, *m;
64
65 // model
69
70 // options
71 SystemPolicy::_type system_type;
72 BathPolicy::_type bath_type;
73 CouplingPolicy::_type coupling_type;
74 NSampPolicy::_type nsamp_type;
75
76 virtual void setInputParam_impl(std::shared_ptr<Param>& PM);
77 virtual void setInputDataSet_impl(std::shared_ptr<DataSet>& DS);
78 virtual Status& initializeKernel_impl(Status& stat);
79 virtual Status& executeKernel_impl(Status& stat);
80};
81
82}; // namespace PROJECT_NS
83
84#endif // SystemBath_H
this file provide Kernel class
#define DEFINE_POLICY(Policy,...)
Definition Policy.h:83
this class provides the container and implementation of algorithms
Definition Kernel.h:60
Kernel & appendChild(std::shared_ptr< Kernel > ker)
Append a kernel as the last child of the current tree node.
Definition Kernel.cpp:78
virtual void setInputDataSet_impl(std::shared_ptr< DataSet > &DS)
Virtual function to set input data set for the kernel implementation.
SystemPolicy::_type system_type
virtual int getType() const
Get the type of the kernel.
virtual Status & initializeKernel_impl(Status &stat)
Virtual function to initialize the kernel implementation.
virtual Status & executeKernel_impl(Status &stat)
Virtual function to execute the kernel implementation.
kids_real * Xnj
used in Stochastic Schrodinger Equation Methods
kids_real * coeffs
save coupling coefficients (only for simple model, L=1)
virtual const std::string getName()
Get the name of the kernel.
CouplingPolicy::_type coupling_type
kids_real * omegas
save discrete frequencies (only for simple model, L=1)
kids_real * CL
save coupling coefficients with Qj (Qj has L no. of nonzero elements)
virtual void setInputParam_impl(std::shared_ptr< Param > &PM)
Virtual function to set input parameters for the kernel implementation.
kids_real * QL
save coulping matrix, each and L no. of nonzero elements
< http://warp.povusers.org/FunctionParser/fparser.html
Definition Context.h:39
double kids_real
Alias for real number type.
Definition Types.h:59