diff options
author | diener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c> | 2004-08-20 19:02:20 +0000 |
---|---|---|
committer | diener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c> | 2004-08-20 19:02:20 +0000 |
commit | f1cfca91b8d2e196c2c5d96ce9832446aed27aa4 (patch) | |
tree | c42eb169588b35f28151910db37ae1c700b51890 /schedule.ccl | |
parent | 61bd55cb591fab224f7d125bfc3d4ca9ba0b54ce (diff) |
The beginning of adding Florin's isosurfacer to calculate triangulations
of the EH and calculate it's area. Don't use it yet. This is still in
a development phase.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/EHFinder/trunk@183 2a26948c-0e4f-0410-aee8-f1d3e353619c
Diffstat (limited to 'schedule.ccl')
-rw-r--r-- | schedule.ccl | 306 |
1 files changed, 162 insertions, 144 deletions
diff --git a/schedule.ccl b/schedule.ccl index 9707f63..1550011 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -118,154 +118,172 @@ schedule EHFinder_InitWeights at CCTK_POST_RECOVER_VARIABLES LANG: Fortran } "Setup weights for Simpson integration" -schedule GROUP EHFinder_Level_Sets at CCTK_ANALYSIS +if (CCTK_EQUALS(area_calculation_method,"standard")) { - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Loop over the level set functions" - -schedule EHFinder_LevelSetLoopInit in EHFinder_Level_Sets -{ - LANG: Fortran - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Initialize the loop counter over the level set functions" - -schedule GROUP EHFinder_Surfaces in EHFinder_Level_Sets while ehfinder::more_levelsets -{ - STORAGE: surface_integers - STORAGE: surface_reals - STORAGE: surface_index - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Count the number of surfaces and integrate over them" - - -schedule EHFinder_CountSurfacesInit in EHFinder_Surfaces -{ - LANG: Fortran - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Initialize while loop control" - -schedule GROUP EHFinder_CountMarkSurfaces in EHFinder_Surfaces after EHFinder_CountSurfacesInit WHILE ehfinder::more_surfaces -{ - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Counting and mark surfaces" - -schedule EHFinder_CountSurfaces in EHFinder_CountMarkSurfaces -{ - LANG: Fortran - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol - SYNC: surface_index -} "Check if there are more surfaces" - -schedule GROUP EHFinder_MarkPoints in EHFinder_CountMarkSurfaces after EHFinder_CountSurfaces WHILE ehfinder::more_points -{ - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Marking surfaces" - -schedule EHFinder_MarkSurfaces in EHFinder_MarkPoints -{ - LANG: Fortran - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol - SYNC: surface_index -} "Mark points inside the current surface" - -schedule EHFinder_ApplySymSC in EHFinder_MarkPoints after EHFinder_MarkSurfaces -{ - LANG: Fortran - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Select the surface counter grid function for boundary conditions" - -schedule GROUP ApplyBCs as EHFinderSC_ApplyBSc in EHFinder_MarkPoints after EHFinder_ApplySymSC -{ -} "Apply boundary conditions (symmetries)" - -schedule EHFinder_InfoSurfaces in EHFinder_Surfaces after EHFinder_CountMarkSurfaces -{ - LANG: Fortran - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Output info about found surfaces" - -schedule group EHFinder_Integration in EHFinder_Surfaces after EHFinder_InfoSurfaces while ehfinder::integrate_counter -{ - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "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_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol - SYNC: surface_arrays -} "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_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Find Surface Area Element" - -schedule EHFinder_IntegrateArea in EHFinder_Integration after EHFinder_FindSurfaceElement -{ - LANG: Fortran - STORAGE: integrate_tmp_array - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Calculate area integrals" - -schedule EHFinder_IntegrateCentroid in EHFinder_Integration after EHFinder_IntegrateArea -{ - LANG: Fortran - STORAGE: surface_tmp_arrays, integrate_tmp_array - TRIGGERS: eh_centroid_x, eh_centroid_y, eh_centroid_z -} "Calculate centroid integrals" - -schedule EHFinder_IntegrateCircumference in EHFinder_Integration after EHFinder_IntegrateArea -{ - LANG: Fortran - STORAGE: surface_tmp_arrays, integrate_tmp_array - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Calculate circumferences" - -schedule EHFinder_UpdateCounter in EHFinder_Surfaces -{ - LANG: Fortran - TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Update the loop variables" - -schedule EHFinder_CopyArea at CCTK_ANALYSIS after EHFinder_Level_Sets -{ - LANG: Fortran - STORAGE: eh_area - TRIGGERS: eh_area -} "Copy areas to output variable" + schedule GROUP EHFinder_Level_Sets at CCTK_ANALYSIS + { + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Loop over the level set functions" + + schedule EHFinder_LevelSetLoopInit in EHFinder_Level_Sets + { + LANG: Fortran + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Initialize the loop counter over the level set functions" + + schedule GROUP EHFinder_Surfaces in EHFinder_Level_Sets while ehfinder::more_levelsets + { + STORAGE: surface_integers + STORAGE: surface_reals + STORAGE: surface_index + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Count the number of surfaces and integrate over them" + + + schedule EHFinder_CountSurfacesInit in EHFinder_Surfaces + { + LANG: Fortran + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Initialize while loop control" + + schedule GROUP EHFinder_CountMarkSurfaces in EHFinder_Surfaces after EHFinder_CountSurfacesInit WHILE ehfinder::more_surfaces + { + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Counting and mark surfaces" + + schedule EHFinder_CountSurfaces in EHFinder_CountMarkSurfaces + { + LANG: Fortran + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + SYNC: surface_index + } "Check if there are more surfaces" + + schedule GROUP EHFinder_MarkPoints in EHFinder_CountMarkSurfaces after EHFinder_CountSurfaces WHILE ehfinder::more_points + { + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Marking surfaces" + + schedule EHFinder_MarkSurfaces in EHFinder_MarkPoints + { + LANG: Fortran + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + SYNC: surface_index + } "Mark points inside the current surface" + + schedule EHFinder_ApplySymSC in EHFinder_MarkPoints after EHFinder_MarkSurfaces + { + LANG: Fortran + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Select the surface counter grid function for boundary conditions" + + schedule GROUP ApplyBCs as EHFinderSC_ApplyBSc in EHFinder_MarkPoints after EHFinder_ApplySymSC + { + } "Apply boundary conditions (symmetries)" + + schedule EHFinder_InfoSurfaces in EHFinder_Surfaces after EHFinder_CountMarkSurfaces + { + LANG: Fortran + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Output info about found surfaces" + + schedule group EHFinder_Integration in EHFinder_Surfaces after EHFinder_InfoSurfaces while ehfinder::integrate_counter + { + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "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_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + SYNC: surface_arrays + } "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_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Find Surface Area Element" + + schedule EHFinder_IntegrateArea in EHFinder_Integration after EHFinder_FindSurfaceElement + { + LANG: Fortran + STORAGE: integrate_tmp_array + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Calculate area integrals" + + schedule EHFinder_IntegrateCentroid in EHFinder_Integration after EHFinder_IntegrateArea + { + LANG: Fortran + STORAGE: surface_tmp_arrays, integrate_tmp_array + TRIGGERS: eh_centroid_x, eh_centroid_y, eh_centroid_z + } "Calculate centroid integrals" + + schedule EHFinder_IntegrateCircumference in EHFinder_Integration after EHFinder_IntegrateArea + { + LANG: Fortran + STORAGE: surface_tmp_arrays, integrate_tmp_array + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Calculate circumferences" + + schedule EHFinder_UpdateCounter in EHFinder_Surfaces + { + LANG: Fortran + TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Update the loop variables" + + schedule EHFinder_CopyArea at CCTK_ANALYSIS after EHFinder_Level_Sets + { + LANG: Fortran + STORAGE: eh_area + TRIGGERS: eh_area + } "Copy areas to output variable" + + schedule EHFinder_CopyCentroid at CCTK_ANALYSIS after EHFinder_Level_Sets + { + LANG: Fortran + STORAGE: eh_centroid_x, eh_centroid_y, eh_centroid_z + TRIGGERS: eh_centroid_x, eh_centroid_y, eh_centroid_z + } "Copy centroids to output variable" + + schedule EHFinder_CopyCircumference at CCTK_ANALYSIS after EHFinder_Level_Sets + { + LANG: Fortran + STORAGE: eh_circ_eq, eh_circ_pol + TRIGGERS: eh_circ_eq, eh_circ_pol + } "Copy circumferences to output variable" +} -schedule EHFinder_CopyCentroid at CCTK_ANALYSIS after EHFinder_Level_Sets +if (CCTK_EQUALS(area_calculation_method,"isosurface")) { - LANG: Fortran - STORAGE: eh_centroid_x, eh_centroid_y, eh_centroid_z - TRIGGERS: eh_centroid_x, eh_centroid_y, eh_centroid_z -} "Copy centroids to output variable" + schedule GROUP EHFinder_IsoSurfaceArea at CCTK_ANALYSIS + { + TRIGGERS: eh_area + } "Find isosurfaces and calculate the area" -schedule EHFinder_CopyCircumference at CCTK_ANALYSIS after EHFinder_Level_Sets -{ - LANG: Fortran - STORAGE: eh_circ_eq, eh_circ_pol - TRIGGERS: eh_circ_eq, eh_circ_pol -} "Copy circumferences to output variable" + schedule EHFinder_IsoSurface in EHFinder_IsoSurfaceArea + { + LANG: Fortran + STORAGE: eh_area + TRIGGERS: eh_area + } "Find isosurfaces" +} # Read in the data used in reconstructing the 4-metric if necessary |