Ice Sheet System Model  4.18
Code documentation
InterpFromGridToMeshx.h
Go to the documentation of this file.
1 
5 #ifndef _INTERPFROMGRIDTOMESHX_H
6 #define _INTERPFROMGRIDTOMESHX_H
7 
8 #include "../../classes/classes.h"
9 #include "../../toolkits/toolkits.h"
10 #include "../../shared/shared.h"
11 
12 /*threading: */
13 typedef struct{
14  double* x;
15  int x_rows;
16  double* y;
17  int y_rows;
18  double* data;
19  double default_value;
20  const char* interp;
21  int M;
22  int N;
23  int nods;
24  double* x_mesh;
25  double* y_mesh;
28 
29 int InterpFromGridToMeshx(IssmSeqVec<IssmPDouble>** pdata_mesh,double* x, int x_rows, double* y, int y_rows, double* data, int M, int N, double* x_mesh, double* y_mesh, int nods, double default_value, const char* interptype);
30 void* InterpFromGridToMeshxt(void* vInterpFromGridToMeshxThreadStruct);
31 bool findindices(int* pn,int* pm,double* x,int x_rows, double* y,int y_rows, double xgrid,double ygrid);
32 double triangleinterp(double x1,double x2,double y1,double y2,double Q11,double Q12,double Q21,double Q22,double x,double y);
33 double bilinearinterp(double x1,double x2,double y1,double y2,double Q11,double Q12,double Q21,double Q22,double x,double y);
34 double nearestinterp(double x1,double x2,double y1,double y2,double Q11,double Q12,double Q21,double Q22,double x,double y);
35 
36 #endif /* _INTERPFROMGRIDTOMESHX_H */
findindices
bool findindices(int *pn, int *pm, double *x, int x_rows, double *y, int y_rows, double xgrid, double ygrid)
Definition: InterpFromGridToMeshx.cpp:185
InterpFromGridToMeshxThreadStruct::M
int M
Definition: InterpFromGridToMeshx.h:21
InterpFromGridToMeshxThreadStruct::interp
const char * interp
Definition: InterpFromGridToMeshx.h:20
InterpFromGridToMeshxThreadStruct::N
int N
Definition: InterpFromGridToMeshx.h:22
IssmSeqVec< IssmPDouble >
InterpFromGridToMeshxThreadStruct::x_mesh
double * x_mesh
Definition: InterpFromGridToMeshx.h:24
InterpFromGridToMeshxThreadStruct::y_mesh
double * y_mesh
Definition: InterpFromGridToMeshx.h:25
InterpFromGridToMeshxThreadStruct::data_mesh
IssmSeqVec< IssmPDouble > * data_mesh
Definition: InterpFromGridToMeshx.h:26
triangleinterp
double triangleinterp(double x1, double x2, double y1, double y2, double Q11, double Q12, double Q21, double Q22, double x, double y)
Definition: InterpFromGridToMeshx.cpp:220
InterpFromGridToMeshxThreadStruct::y
double * y
Definition: InterpFromGridToMeshx.h:16
InterpFromGridToMeshx
int InterpFromGridToMeshx(IssmSeqVec< IssmPDouble > **pdata_mesh, double *x, int x_rows, double *y, int y_rows, double *data, int M, int N, double *x_mesh, double *y_mesh, int nods, double default_value, const char *interptype)
Definition: InterpFromGridToMeshx.cpp:17
InterpFromGridToMeshxThreadStruct::default_value
double default_value
Definition: InterpFromGridToMeshx.h:19
InterpFromGridToMeshxt
void * InterpFromGridToMeshxt(void *vInterpFromGridToMeshxThreadStruct)
Definition: InterpFromGridToMeshx.cpp:90
InterpFromGridToMeshxThreadStruct::x
double * x
Definition: InterpFromGridToMeshx.h:14
nearestinterp
double nearestinterp(double x1, double x2, double y1, double y2, double Q11, double Q12, double Q21, double Q22, double x, double y)
Definition: InterpFromGridToMeshx.cpp:288
InterpFromGridToMeshxThreadStruct::data
double * data
Definition: InterpFromGridToMeshx.h:18
InterpFromGridToMeshxThreadStruct::y_rows
int y_rows
Definition: InterpFromGridToMeshx.h:17
bilinearinterp
double bilinearinterp(double x1, double x2, double y1, double y2, double Q11, double Q12, double Q21, double Q22, double x, double y)
Definition: InterpFromGridToMeshx.cpp:261
InterpFromGridToMeshxThreadStruct
Definition: InterpFromGridToMeshx.h:13
InterpFromGridToMeshxThreadStruct::x_rows
int x_rows
Definition: InterpFromGridToMeshx.h:15
InterpFromGridToMeshxThreadStruct::nods
int nods
Definition: InterpFromGridToMeshx.h:23