forked from rikigigi/analisi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
greenkuboNcomponentionicfluid.h
70 lines (59 loc) · 2.51 KB
/
greenkuboNcomponentionicfluid.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**
*
* (c) Riccardo Bertossa, 2019
*
* Use at your own risk.
*
* If you modified the code, I could be happy if you contribute on github!
*
**/
#ifndef GREENKUBONCOMPONENTIONICFLUID_H
#define GREENKUBONCOMPONENTIONICFLUID_H
#include "operazionisulista.h"
#include "mediablocchi.h"
#include <array>
#include <vector>
#include <string>
template <class READLOG,class TFLOAT=double, class TFLOAT_READ=double >
class GreenKuboNComponentIonicFluid : public OperazioniSuLista<GreenKuboNComponentIonicFluid<READLOG,TFLOAT,TFLOAT_READ>,TFLOAT>
{
public:
GreenKuboNComponentIonicFluid(READLOG * traiettoria,
std::string log,
unsigned int skip,
std::vector<std::string> headers,
bool dump=false,
unsigned int lunghezza_funzione_max=0,
unsigned int nthreads=0,
bool subtract_mean=false,
unsigned int start_mean=100,
unsigned int n_seg=1,
bool do_bench=false,
unsigned int n_seg_start=10,
unsigned int n_seg_stop=100
);
~GreenKuboNComponentIonicFluid();
unsigned int numeroTimestepsOltreFineBlocco(unsigned int n_b);
void reset(unsigned int numeroTimestepsPerBlocco);
void calcola(unsigned int primo);
GreenKuboNComponentIonicFluid<READLOG,TFLOAT,TFLOAT_READ> & operator =(const GreenKuboNComponentIonicFluid<READLOG,TFLOAT,TFLOAT_READ> &);
unsigned int get_narr();
unsigned int get_indexOfKappa();
unsigned int n_seg_bench();
std::string get_columns_description();
std::vector<ssize_t> get_shape();
std::vector<ssize_t> get_stride();
private:
using OperazioniSuLista<GreenKuboNComponentIonicFluid<READLOG,TFLOAT,TFLOAT_READ>,TFLOAT>::lista;
using OperazioniSuLista<GreenKuboNComponentIonicFluid<READLOG,TFLOAT,TFLOAT_READ>,TFLOAT>::lunghezza_lista;
static bool benchmarked;
unsigned int narr,N_corr,start_mean,n_seg,n_seg_start,n_seg_stop;
bool scrivi_file,subtract_mean,bench;
unsigned int idx_je,idx_j0,idx_j1;
std::vector<unsigned int> idx_j;
std::string log,c_descr;
READLOG *traiettoria;
unsigned int ntimesteps,lmax,leff,nthread,skip;
TFLOAT_READ* jN(unsigned int N,unsigned int ts);
};
#endif // GREENKUBONCOMPONENTIONICFLUID_H