ScaMaC  0.8.2
A Scalable Matrix Collection
scamac_matrix_Hubbard.h
1 /* *** *** *** *** *** *** *** *** *** *** */
2 /* autogenerated by ScaMaC_build_generator */
3 /* Fri, 24 May 2019 12:40:36 +0200 */
4 /* *** *** *** *** *** *** *** *** *** *** */
5 #ifndef SCAMAC_MATRIX_HUBBARD_H
6 #define SCAMAC_MATRIX_HUBBARD_H
7 
8 #include "scamac_internal.h"
9 #include "scamac_sparserow.h"
10 #include "scamac_option_inc.h"
11 #include "scamac_rng.h"
12 #include "scamac_multidx.h"
13 #include "scamac_dof_fermions.h"
14 
15 typedef struct {
16  double t;
17  double U;
18  int n_sites;
19  int n_fermions;
20  scamac_option_ty boundary_conditions;
21  double ranpot;
22  scamac_rng_seed_ty seed;
23 } scamac_matrix_Hubbard_params_st;
24 
25 typedef struct {
26  ScamacIdx ns;
27  ScamacIdx maxnzrow;
28  int maxrowlength;
29  scamac_multidx_st *midx;
30  scamac_dof_fermions_st ** dof;
31  double * onsite;
32 } scamac_matrix_Hubbard_tables_st;
33 
34 typedef struct {
35  scamac_rep_fermions_st ** rep, ** repinit;
36  scamac_dof_fermions_st ** dof;
37 } scamac_matrix_Hubbard_work_st;
38 
39 ScamacErrorCode scamac_matrix_Hubbard_check(const scamac_matrix_Hubbard_params_st * par, char ** desc);
40 ScamacErrorCode scamac_matrix_Hubbard_tables_create(const scamac_matrix_Hubbard_params_st * par, scamac_matrix_Hubbard_tables_st ** tab, scamac_info_st * info);
41 ScamacErrorCode scamac_matrix_Hubbard_tables_destroy(scamac_matrix_Hubbard_tables_st * tab);
42 ScamacErrorCode scamac_matrix_Hubbard_work_alloc(const scamac_matrix_Hubbard_params_st * par, const scamac_matrix_Hubbard_tables_st * tab, scamac_matrix_Hubbard_work_st ** ws);
43 ScamacErrorCode scamac_matrix_Hubbard_work_free(scamac_matrix_Hubbard_work_st * ws);
44 ScamacErrorCode scamac_matrix_Hubbard_generate_row(const scamac_matrix_Hubbard_params_st * par, const scamac_matrix_Hubbard_tables_st * tab, scamac_matrix_Hubbard_work_st * ws, ScamacIdx irow, ScamacFlag flag, scamac_sparserow_real_st * row);
45 
46 #endif /* SCAMAC_MATRIX_HUBBARD_H */
Internal types and (macro) definitions.