aboutsummaryrefslogtreecommitdiff
path: root/src/pughInterpGH.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pughInterpGH.h')
-rw-r--r--src/pughInterpGH.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/pughInterpGH.h b/src/pughInterpGH.h
new file mode 100644
index 0000000..e6eef76
--- /dev/null
+++ b/src/pughInterpGH.h
@@ -0,0 +1,71 @@
+ /*@@
+ @file pughInterpGH.h
+ @date Sun Jul 04 1999
+ @author Thomas Radke
+ @desc
+ Definition of GH extensions of thorn PUGHInterp and
+ declaration of function prototypes
+ @enddesc
+ @history
+ @endhistory
+@@*/
+
+
+typedef struct
+{
+ int *send_count; /* number of elements to be sent */
+ int *send_displ; /* offset of each element to be sent */
+ int *recv_count; /* number of elements to be received */
+ int *recv_displ; /* offset of each element to be received */
+
+ CCTK_INT *num_points_to; /* number of coordinate points to be sent */
+ CCTK_INT *num_points_from; /* number of coordinate points to be received */
+
+ int *whichproc; /* which processor does point i belong to */
+ int *indices; /* indices to sort from processor-sorted into
+ point-sorted order */
+} pughInterpGH;
+
+
+/* prototypes of interpolation operators to be registered */
+int PUGHInterp_InterpGV (cGH *GH,
+ int order,
+ const char *coord_system,
+ int num_points,
+ int num_in_array_indices,
+ int num_out_arrays,
+ void *interp_coord_arrays[],
+ int interp_coord_array_types[],
+ int in_array_indices[],
+ void *out_arrays[],
+ int out_array_types[]);
+
+int PUGHInterp_InterpLocal (cGH *GH,
+ int order,
+ int num_points,
+ int num_dims,
+ int num_in_arrays,
+ int num_out_arrays,
+ int coord_dims[],
+ void *coord_arrays[],
+ int coord_array_types[],
+ void *interp_coord_arrays[],
+ int interp_coord_array_types[],
+ void *in_arrays[],
+ int in_array_types[],
+ void *out_arrays[],
+ int out_array_types[]);
+
+/* prototypes of routines used internally */
+int PUGHInterp_Interpolate (int order,
+ int num_points,
+ int num_dims,
+ int num_arrays,
+ int dims[ /* num_dims */ ],
+ CCTK_REAL coord[ /* num_dims * num_points */ ],
+ CCTK_REAL origin[ /* num_dims */ ],
+ CCTK_REAL delta[ /* num_dims */ ],
+ int in_types[ /* num_arrays */ ],
+ void *in_arrays[ /* num_arrays */ ],
+ int out_types[ /* num_arrays */ ],
+ void *out_arrays[ /* num_arrays */ ]);