ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
opt_test_tools.h
Go to the documentation of this file.
2{
3public:
4 LinearEqu();
6 void get_Ap(double **A, double *p, double *Ap, int nx = 3, int ny = 3);
7 double func(double *x);
8 void dfuncdx(double *x, double *gradient);
9 double dfuncdstp(double *x, double *p);
10 double *b;
11 double **A;
12 int nx = 3;
13};
14
15namespace ModuleESolver
16{
17// A mock class of ModuleEsolver::ESolver_OF
19{
20public:
23 double func(double *x);
24 void dfuncdx(double *x, double *gradient);
25 double dfuncdstp(double *x, double *p);
26 double *x;
27};
28}
29
31{
32public:
34 {
35 this->nx = le.nx;
36 }
37 double func(double *x, int func_label)
38 {
39 double result = 0.;
40 if (func_label==0) result = le.func(x);
41 else if (func_label==1) result = mf.func(x);
42 return result;
43 }
44 void dfuncdx(double *x, double *gradient, int func_label)
45 {
46 if (func_label==0) le.dfuncdx(x, gradient);
47 else if (func_label==1) mf.dfuncdx(x, gradient);
48 }
49 double dfuncdstp(double *x, double *p, int func_label)
50 {
51 double result = 0.;
52 if (func_label==0) result = le.dfuncdstp(x, p);
53 else if (func_label==1) result = mf.dfuncdstp(x, p);
54 return result;
55 }
56
57 int nx = 0;
60};
Definition opt_test_tools.h:2
LinearEqu()
Definition opt_test_tools.cpp:7
double dfuncdstp(double *x, double *p)
Definition opt_test_tools.cpp:79
void dfuncdx(double *x, double *gradient)
Definition opt_test_tools.cpp:66
double func(double *x)
Definition opt_test_tools.cpp:52
void get_Ap(double **A, double *p, double *Ap, int nx=3, int ny=3)
Definition opt_test_tools.cpp:38
double * b
Definition opt_test_tools.h:10
int nx
Definition opt_test_tools.h:12
double ** A
Definition opt_test_tools.h:11
~LinearEqu()
Definition opt_test_tools.cpp:28
Definition opt_test_tools.h:19
void dfuncdx(double *x, double *gradient)
Definition opt_test_tools.cpp:109
double func(double *x)
Definition opt_test_tools.cpp:96
~ESolver_OF()
Definition opt_test_tools.h:22
double dfuncdstp(double *x, double *p)
Definition opt_test_tools.cpp:121
double * x
Definition opt_test_tools.h:26
ESolver_OF()
Definition opt_test_tools.h:21
Definition opt_test_tools.h:31
double func(double *x, int func_label)
Definition opt_test_tools.h:37
double dfuncdstp(double *x, double *p, int func_label)
Definition opt_test_tools.h:49
ModuleESolver::ESolver_OF mf
Definition opt_test_tools.h:59
void dfuncdx(double *x, double *gradient, int func_label)
Definition opt_test_tools.h:44
int nx
Definition opt_test_tools.h:57
LinearEqu le
Definition opt_test_tools.h:58
TestTools()
Definition opt_test_tools.h:33
plane wave basis
Definition opt_test_tools.cpp:93