// AHFinderDirect.hh -- misc global-within-this-thorn stuff // $Header$ //****************************************************************************** // number of spatial dimensions in the main Cactus grid // and in our trial-horizon-surface grid enum { N_GRID_DIMS = 3, N_HORIZON_DIMS = 2 }; // // This structure holds various information about the interpolator // used to interpolate the "geometry" Cactus 3-D gridfns ($g_{ij}$ and // $K_{ij}$) to the apparent horizon position. // struct geometry_interpolator_info { int operator_handle; // Cactus handle to interpolation op int param_table_handle; // Cactus handle to parameter table // for the interpolator }; // // This structure holds all the information we need about the Cactus grid // and gridfns outside the top-level driver. At present we use // CCTK_InterpLocalUniform() // to access the Cactus gridfns, and much of this information is specific // to that API. // struct cactus_grid_info { cGH *GH; // --> Cactus grid hierarchy // Cactus coordinate system fp coord_origin[N_GRID_DIMS]; // (x,y,z) of grid posn (0,0,0) fp coord_delta[N_GRID_DIMS]; // (x,y,z) grid spacing // dimensions of gridfn data, viewed as a 3-D array // n.b. storage ordering is Fortran, // i.e. i is contiguous, j has stride Ni, k has stride Ni*Nj CCTK_INT gridfn_dims[N_GRID_DIMS]; // --> Cactus gridfn data for grid posn (0,0,0) const fp* g_dd_11_data; const fp* g_dd_12_data; const fp* g_dd_13_data; const fp* g_dd_22_data; const fp* g_dd_23_data; const fp* g_dd_33_data; const fp* K_dd_11_data; const fp* K_dd_12_data; const fp* K_dd_13_data; const fp* K_dd_22_data; const fp* K_dd_23_data; const fp* K_dd_33_data; }; //****************************************************************************** // // prototypes for functions visible outside their source files // // driver.cc extern "C" void AHFinderDirect_driver(CCTK_ARGUMENTS); // horizon_function.cc void horizon_function(patch_system& ps, const struct cactus_grid_info& cgi, const struct geometry_interpolator_info& gii);