# Interface definition for thorn Carpet IMPLEMENTS: Driver include header: carpet_public.hh in carpet.hh include header: carpet_public.h in carpet.h include header: Timers.hh in CarpetTimers.hh uses include header: defs.hh uses include header: dist.hh uses include header: bbox.hh uses include header: bboxset.hh uses include header: fulltree.hh uses include header: region.hh uses include header: vect.hh uses include header: data.hh uses include header: dh.hh uses include header: gf.hh uses include header: ggf.hh uses include header: gh.hh uses include header: th.hh uses include header: operators.hh INCLUDE HEADER: typecase in carpet_typecase.hh # Get access to communicators CCTK_POINTER_TO_CONST \ FUNCTION GetMPICommUniverse (CCTK_POINTER_TO_CONST IN cctkGH) PROVIDES FUNCTION GetMPICommUniverse WITH Carpet_GetMPICommUniverse LANGUAGE C CCTK_POINTER_TO_CONST \ FUNCTION GetMPICommWorld (CCTK_POINTER_TO_CONST IN cctkGH) PROVIDES FUNCTION GetMPICommWorld WITH Carpet_GetMPICommWorld LANGUAGE C # Register and unregister routines which are called before and after # every scheduled routine CCTK_INT \ FUNCTION RegisterScheduleWrapper \ (CCTK_INT IN CCTK_FPOINTER func_before (CCTK_POINTER_TO_CONST IN cctkGH, \ CCTK_POINTER IN function, \ CCTK_POINTER IN attribute, \ CCTK_POINTER IN data), \ CCTK_INT IN CCTK_FPOINTER func_after (CCTK_POINTER_TO_CONST IN cctkGH, \ CCTK_POINTER IN function, \ CCTK_POINTER IN attribute, \ CCTK_POINTER IN data)) CCTK_INT \ FUNCTION UnRegisterScheduleWrapper \ (CCTK_INT IN CCTK_FPOINTER func_before (CCTK_POINTER_TO_CONST IN cctkGH, \ CCTK_POINTER IN function, \ CCTK_POINTER IN attribute, \ CCTK_POINTER IN data), \ CCTK_INT IN CCTK_FPOINTER func_after (CCTK_POINTER_TO_CONST IN cctkGH, \ CCTK_POINTER IN function, \ CCTK_POINTER IN attribute, \ CCTK_POINTER IN data)) PROVIDES FUNCTION RegisterScheduleWrapper \ WITH Carpet_RegisterScheduleWrapper \ LANGUAGE C PROVIDES FUNCTION UnRegisterScheduleWrapper \ WITH Carpet_UnRegisterScheduleWrapper \ LANGUAGE C # Provide the function to en-/disable prolongation CCTK_INT FUNCTION EnableProlongating(CCTK_INT IN flag) PROVIDES FUNCTION EnableProlongating WITH CarpetEnableProlongating LANGUAGE C CCTK_INT FUNCTION QueryProlongating() PROVIDES FUNCTION QueryProlongating WITH CarpetQueryProlongating LANGUAGE C # The number of time integrator substeps CCTK_INT FUNCTION MoLNumIntegratorSubsteps () USES FUNCTION MoLNumIntegratorSubsteps # The symmetry boundaries CCTK_INT FUNCTION GetSymmetryBoundaries \ (CCTK_POINTER_TO_CONST IN cctkGH, \ CCTK_INT IN size, \ CCTK_INT OUT ARRAY symbnd) USES FUNCTION GetSymmetryBoundaries # The location of the boundary points CCTK_INT FUNCTION GetBoundarySpecification \ (CCTK_INT IN size, \ CCTK_INT OUT ARRAY nboundaryzones, \ CCTK_INT OUT ARRAY is_internal, \ CCTK_INT OUT ARRAY is_staggered, \ CCTK_INT OUT ARRAY shiftout) USES FUNCTION GetBoundarySpecification # The overall size of the domain CCTK_INT FUNCTION GetDomainSpecification \ (CCTK_INT IN size, \ CCTK_REAL OUT ARRAY physical_min, \ CCTK_REAL OUT ARRAY physical_max, \ CCTK_REAL OUT ARRAY interior_min, \ CCTK_REAL OUT ARRAY interior_max, \ CCTK_REAL OUT ARRAY exterior_min, \ CCTK_REAL OUT ARRAY exterior_max, \ CCTK_REAL OUT ARRAY spacing) USES FUNCTION GetDomainSpecification # Conversion between boundary types CCTK_INT FUNCTION ConvertFromPhysicalBoundary \ (CCTK_INT IN size, \ CCTK_REAL IN ARRAY physical_min, \ CCTK_REAL IN ARRAY physical_max, \ CCTK_REAL OUT ARRAY interior_min, \ CCTK_REAL OUT ARRAY interior_max, \ CCTK_REAL OUT ARRAY exterior_min, \ CCTK_REAL OUT ARRAY exterior_max, \ CCTK_REAL IN ARRAY spacing) USES FUNCTION ConvertFromPhysicalBoundary CCTK_INT FUNCTION ConvertFromExteriorBoundary \ (CCTK_INT IN size, \ CCTK_REAL OUT ARRAY physical_min, \ CCTK_REAL OUT ARRAY physical_max, \ CCTK_REAL OUT ARRAY interior_min, \ CCTK_REAL OUT ARRAY interior_max, \ CCTK_REAL IN ARRAY exterior_min, \ CCTK_REAL IN ARRAY exterior_max, \ CCTK_REAL IN ARRAY spacing) USES FUNCTION ConvertFromExteriorBoundary # The setup of the system CCTK_INT FUNCTION MultiPatch_GetSystemSpecification \ (CCTK_INT OUT maps) USES FUNCTION MultiPatch_GetSystemSpecification # The location of the boundary points CCTK_INT FUNCTION MultiPatch_GetBoundarySpecification \ (CCTK_INT IN map, \ CCTK_INT IN size, \ CCTK_INT OUT ARRAY nboundaryzones, \ CCTK_INT OUT ARRAY is_internal, \ CCTK_INT OUT ARRAY is_staggered, \ CCTK_INT OUT ARRAY shiftout) USES FUNCTION MultiPatch_GetBoundarySpecification # The overall size of the domain CCTK_INT FUNCTION MultiPatch_GetDomainSpecification \ (CCTK_INT IN map, \ CCTK_INT IN size, \ CCTK_REAL OUT ARRAY physical_min, \ CCTK_REAL OUT ARRAY physical_max, \ CCTK_REAL OUT ARRAY interior_min, \ CCTK_REAL OUT ARRAY interior_max, \ CCTK_REAL OUT ARRAY exterior_min, \ CCTK_REAL OUT ARRAY exterior_max, \ CCTK_REAL OUT ARRAY spacing) USES FUNCTION MultiPatch_GetDomainSpecification # Conversion between boundary types CCTK_INT FUNCTION MultiPatch_ConvertFromPhysicalBoundary \ (CCTK_INT IN map, \ CCTK_INT IN size, \ CCTK_REAL IN ARRAY physical_min, \ CCTK_REAL IN ARRAY physical_max, \ CCTK_REAL OUT ARRAY interior_min, \ CCTK_REAL OUT ARRAY interior_max, \ CCTK_REAL OUT ARRAY exterior_min, \ CCTK_REAL OUT ARRAY exterior_max, \ CCTK_REAL IN ARRAY spacing) USES FUNCTION MultiPatch_ConvertFromPhysicalBoundary # Access coordinate information (on the coarse level) CCTK_INT FUNCTION GetCoordRange \ (CCTK_POINTER_TO_CONST IN cctkGH, \ CCTK_INT IN m, \ CCTK_INT IN ml, \ CCTK_INT IN size, \ CCTK_INT ARRAY OUT gsh, \ CCTK_REAL ARRAY OUT lower, \ CCTK_REAL ARRAY OUT upper, \ CCTK_REAL ARRAY OUT delta) PROVIDES FUNCTION GetCoordRange WITH Carpet_GetCoordRange LANGUAGE C # Get current refinement level and number of refinement levels CCTK_INT FUNCTION \ GetRefinementLevel \ (CCTK_POINTER_TO_CONST IN cctkGH) PROVIDES FUNCTION GetRefinementLevel \ WITH Carpet_GetRefinementLevel \ LANGUAGE C CCTK_INT FUNCTION \ GetRefinementLevels \ (CCTK_POINTER_TO_CONST IN cctkGH) PROVIDES FUNCTION GetRefinementLevels \ WITH Carpet_GetRefinementLevels \ LANGUAGE C # The true prototype of the routine below: # int Carpet_Regrid (const cGH * cctkGH, # gh::rregs * superregss, # gh::mregs * regsss, # int force); CCTK_INT FUNCTION Carpet_Regrid (CCTK_POINTER_TO_CONST IN cctkGH, \ CCTK_POINTER IN superregss, \ CCTK_POINTER IN regsss, \ CCTK_INT IN force) USES FUNCTION Carpet_Regrid # The true prototype of the routine below: # int Carpet_Regrid (const cGH * cctkGH, # vector * superregsss, # vector * regssss, # int force); CCTK_INT FUNCTION Carpet_RegridMaps (CCTK_POINTER_TO_CONST IN cctkGH, \ CCTK_POINTER IN superregsss, \ CCTK_POINTER IN regssss, \ CCTK_INT IN force) USES FUNCTION Carpet_RegridMaps # function to check whether existing output files should be truncated or not CCTK_INT FUNCTION IO_TruncateOutputFiles \ (CCTK_POINTER_TO_CONST IN GH) REQUIRES FUNCTION IO_TruncateOutputFiles CCTK_REAL timing TAGS='checkpoint="no"' { physical_time_per_hour time_total time_computing time_communicating time_io local_grid_points_per_second total_grid_points_per_second local_grid_point_updates_count total_grid_point_updates_count io_per_second io_bytes_per_second io_bytes_ascii_per_second io_bytes_binary_per_second io_count io_bytes_count io_bytes_ascii_count io_bytes_binary_count comm_per_second comm_bytes_per_second comm_count comm_bytes_count } "Physical timing information" CCTK_REAL timing2 TYPE=array DIM=1 SIZE=1 DISTRIB=constant TAGS='checkpoint="no"' { grid_points_per_second grid_point_updates_count } "Per-processor timing information"