KIDS  ver-0.0.1
KIDS : Kernel Integrated Dynamics Simulator
Loading...
Searching...
No Matches
Model_Bath.h
Go to the documentation of this file.
1#ifndef Model_Bath_H
2#define Model_Bath_H
3
4#include "kids/Kernel.h"
5#include "kids/Policy.h"
6
7
8namespace PROJECT_NS {
9
10
11DEFINE_POLICY(BathPolicy, //
12 Debye, //
13 Ohmic, //
14 Closure, //
15 HuangRhys, //
16 GFactor, //
17 ReadFormula, //
18 ReadFile, //
19 Read); //
20
21DEFINE_POLICY(StrengthPolicy, //
22 Lambda, //
23 Alpha, //
24 Eta, //
25 Erg); //
26
27class Model_Bath final : public Kernel {
28 public:
29 virtual const std::string getName();
30
31 virtual int getType() const;
32
33 bool classical_bath = false;
34
35 int Nb;
36 BathPolicy::_type bath_type;
37 StrengthPolicy::_type strength_type;
38
39 double omegac, lambda, beta;
40
41 double J_Debye(double w);
42
43 double J_Ohmic(double w);
44
45 static double J(double w, double* w_arr = nullptr, double* c_arr = nullptr, int Nb = 0);
46
47 static int fun_Cw(kids_complex* Cw_arr, double* w, int Nw, double* w_arr, double* c_arr, double beta, int Nb);
48
49 private:
54
55 virtual void setInputParam_impl(std::shared_ptr<Param>& PM);
56 virtual void setInputDataSet_impl(std::shared_ptr<DataSet>& DS);
57};
58
59
60}; // namespace PROJECT_NS
61
62#endif // Model_Bath_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
virtual int getType() const
Get the type of the kernel.
static int fun_Cw(kids_complex *Cw_arr, double *w, int Nw, double *w_arr, double *c_arr, double beta, int Nb)
StrengthPolicy::_type strength_type
Definition Model_Bath.h:37
BathPolicy::_type bath_type
Definition Model_Bath.h:36
double J_Ohmic(double w)
virtual const std::string getName()
Get the name of the kernel.
Definition Model_Bath.cpp:9
virtual void setInputParam_impl(std::shared_ptr< Param > &PM)
Virtual function to set input parameters for the kernel implementation.
virtual void setInputDataSet_impl(std::shared_ptr< DataSet > &DS)
Virtual function to set input data set for the kernel implementation.
static double J(double w, double *w_arr=nullptr, double *c_arr=nullptr, int Nb=0)
double J_Debye(double w)
< http://warp.povusers.org/FunctionParser/fparser.html
Definition Context.h:39
double kids_real
Alias for real number type.
Definition Types.h:59
std::complex< double > kids_complex
Alias for complex number type.
Definition Types.h:60