diff options
-rw-r--r-- | interface.ccl | 50 | ||||
-rw-r--r-- | schedule.ccl | 38 |
2 files changed, 68 insertions, 20 deletions
diff --git a/interface.ccl b/interface.ccl index a677f75..5890c5e 100644 --- a/interface.ccl +++ b/interface.ccl @@ -60,13 +60,14 @@ CCTK_INT surface_integers TYPE=SCALAR CCTK_REAL surface_reals TYPE=SCALAR { - sym_factor + sym_factor, theta_sym_factor, phi_sym_factor } "Real variables used in surface integration" CCTK_REAL surface_arrays TYPE=ARRAY DIM=2 TIMELEVELS=1 SIZE=ntheta,nphi GHOSTSIZE=n_array_ghosts,n_array_ghosts DISTRIB=DEFAULT { ctheta, cphi, rsurf, sintheta, costheta, sinphi, cosphi, - drdtheta, drdphi, da, gtt, gtp, gpp, weights + drdtheta, drdphi, da, gtt, gtp, gpp, weights, dltheta, dlphi, + thetaweights, phiweights } "Grid arrays for points on the surface" CCTK_REAL surface_tmp_arrays TYPE=ARRAY DIM=2 TIMELEVELS=1 SIZE=ntheta,nphi GHOSTSIZE=n_array_ghosts,n_array_ghosts DISTRIB=DEFAULT @@ -100,30 +101,63 @@ CCTK_INT rep_mask TYPE=GF TIMELEVELS=1 CCTK_INT re_param_control_pde TYPE=SCALAR CCTK_INT re_param_control_approx TYPE=SCALAR -#CCTK_REAL eh_area TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number GHOSTSIZE=0 DISTRIB=DEFAULT +CCTK_REAL eh_area TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number GHOSTSIZE=0 DISTRIB=DEFAULT -CCTK_REAL eh_area TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT +#CCTK_REAL eh_area TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT #CCTK_REAL eh_area[maximum_surface_number] TYPE=SCALAR -#CCTK_REAL eh_area2 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number GHOSTSIZE=0 DISTRIB=DEFAULT #"The area of the event horizon(s)" -CCTK_REAL eh_area2 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT #"The area of the event horizon(s)" +CCTK_REAL eh_area2 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number GHOSTSIZE=0 DISTRIB=DEFAULT #"The area of the event horizon(s)" + +#CCTK_REAL eh_area2 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT #"The area of the event horizon(s)" #CCTK_REAL eh_area2[maximum_surface_number] TYPE=SCALAR #CCTK_REAL eh_area3 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT -CCTK_REAL eh_centroid TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT +#CCTK_REAL eh_centroid TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT +#{ +# eh_centroid_x, eh_centroid_y, eh_centroid_z +#} "The centroid of the event horizon(s)" + +CCTK_REAL eh_centroid TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number GHOSTSIZE=0 DISTRIB=DEFAULT { eh_centroid_x, eh_centroid_y, eh_centroid_z } "The centroid of the event horizon(s)" -CCTK_REAL eh_centroid2 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT +#CCTK_REAL eh_centroid2 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT +#{ +# eh_centroid2_x, eh_centroid2_y, eh_centroid2_z +#} "The centroid of the event horizon(s)" + +CCTK_REAL eh_centroid2 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number GHOSTSIZE=0 DISTRIB=DEFAULT { eh_centroid2_x, eh_centroid2_y, eh_centroid2_z } "The centroid of the event horizon(s)" +#CCTK_REAL eh_circumference TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT +#{ +# eh_circ_eq, eh_circ_pol +#} "The circumferences of the event horizon(s)" + +CCTK_REAL eh_circumference TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number GHOSTSIZE=0 DISTRIB=DEFAULT +{ + eh_circ_eq, eh_circ_pol +} "The circumferences of the event horizon(s)" + +#CCTK_REAL eh_circumference2 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT +#{ +# eh_circ_eq2, eh_circ_pol2 +#} "The circumferences of the event horizon(s)" + +CCTK_REAL eh_circumference2 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number GHOSTSIZE=0 DISTRIB=DEFAULT +{ + eh_circ_eq2, eh_circ_pol2 +} "The circumferences of the event horizon(s)" + #CCTK_REAL eh_centroid3 TYPE=ARRAY DIM=1 TIMELEVELS=1 SIZE=maximum_surface_number DISTRIB=CONSTANT #{ # eh_centroid3_x, eh_centroid3_y, eh_centroid3_z #} "The centroid of the event horizon(s)" +CCTK_REAL eh_group_test[maximum_surface_number] TYPE=SCALAR +CCTK_REAL eh_group_array_test[maximum_surface_number] TYPE=ARRAY DIM=1 SIZE=100 GHOSTSIZE=0 DISTRIB=DEFAULT diff --git a/schedule.ccl b/schedule.ccl index e049e3f..ade0b15 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -18,7 +18,7 @@ else STORAGE: surface_arrays STORAGE: center_arrays # STORAGE: eh_area, eh_centroid - STORAGE: eh_area2, eh_centroid2 + STORAGE: eh_area2, eh_centroid2, eh_circumference2 # STORAGE: surface_index } @@ -92,65 +92,65 @@ schedule GROUP EHFinder_Surfaces at CCTK_ANALYSIS STORAGE: surface_reals STORAGE: surface_index # STORAGE: eh_area2, eh_centroid2 - TRIGGERS: eh_area, eh_centroid + TRIGGERS: eh_area, eh_centroid, eh_circumference } "Count the number of surfaces and integrate over them" schedule EHFinder_CountSurfacesInit in EHFinder_Surfaces { LANG: Fortran - TRIGGERS: eh_area, eh_centroid + TRIGGERS: eh_area, eh_centroid, eh_circumference } "Initialise while loop control" schedule GROUP EHFinder_CountMarkSurfaces in EHFinder_Surfaces after EHFinder_CountSurfacesInit WHILE ehfinder::more_surfaces { - TRIGGERS: eh_area, eh_centroid + TRIGGERS: eh_area, eh_centroid, eh_circumference } "Counting and mark surfaces" schedule EHFinder_CountSurfaces in EHFinder_CountMarkSurfaces { LANG: Fortran - TRIGGERS: eh_area, eh_centroid + TRIGGERS: eh_area, eh_centroid, eh_circumference SYNC: surface_index } "Check if there are more surfaces" schedule EHFinder_MarkSurfaces in EHFinder_CountMarkSurfaces after EHFinder_CountSurfaces WHILE ehfinder::more_points { LANG: Fortran - TRIGGERS: eh_area, eh_centroid + TRIGGERS: eh_area, eh_centroid, eh_circumference SYNC: surface_index } "Mark points inside the current surface" schedule EHFinder_InfoSurfaces in EHFinder_Surfaces after EHFinder_CountMarkSurfaces { LANG: Fortran - TRIGGERS: eh_area, eh_centroid + TRIGGERS: eh_area, eh_centroid, eh_circumference } "Output info about found surfaces" schedule group EHFinder_Integration in EHFinder_Surfaces after EHFinder_InfoSurfaces while ehfinder::integrate_counter { - TRIGGERS: eh_area, eh_centroid + TRIGGERS: eh_area, eh_centroid, eh_circumference } "Find and integrate over surfaces" schedule EHFinder_FindSurface in EHFinder_Integration { LANG: Fortran STORAGE: surface_tmp_arrays, surface_int_array - TRIGGERS: eh_area, eh_centroid + TRIGGERS: eh_area, eh_centroid, eh_circumference } "Find Surface" schedule EHFinder_FindSurfaceElement in EHFinder_Integration after EHFinder_FindSurface { LANG: Fortran STORAGE: surface_tmp_arrays, interp_metric_arrays - TRIGGERS: eh_area, eh_centroid + TRIGGERS: eh_area, eh_centroid, eh_circumference } "Find Surface Area Element" schedule EHFinder_IntegrateArea in EHFinder_Integration after EHFinder_FindSurfaceElement { LANG: Fortran STORAGE: integrate_tmp_array - TRIGGERS: eh_area, eh_centroid + TRIGGERS: eh_area, eh_centroid, eh_circumference } "Calculate area integrals" schedule EHFinder_IntegrateCentroid in EHFinder_Integration after EHFinder_IntegrateArea @@ -160,6 +160,13 @@ schedule EHFinder_IntegrateCentroid in EHFinder_Integration after EHFinder_Integ TRIGGERS: eh_centroid } "Calculate centroid integrals" +schedule EHFinder_IntegrateEquatorial in EHFinder_Integration after EHFinder_IntegrateArea +{ + LANG: Fortran + STORAGE: surface_tmp_arrays, integrate_tmp_array + TRIGGERS: eh_circumference +} "Calculate circumferences" + schedule EHFinder_CopyArea at CCTK_ANALYSIS after EHFinder_Surfaces { LANG: Fortran @@ -172,7 +179,14 @@ schedule EHFinder_CopyCentroid at CCTK_ANALYSIS after EHFinder_Surfaces LANG: Fortran STORAGE: eh_centroid TRIGGERS: eh_centroid -} "Copy areas to output variable" +} "Copy centroids to output variable" + +schedule EHFinder_CopyCircumference at CCTK_ANALYSIS after EHFinder_Surfaces +{ + LANG: Fortran + STORAGE: eh_circumference + TRIGGERS: eh_circumference +} "Copy circumferences to output variable" #schedule EHFinder_Integrate at CCTK_ANALYSIS #schedule EHFinder_Integrate at CCTK_ANALYSIS |