Skip to content

Instantly share code, notes, and snippets.

@wence-
Last active December 10, 2015 23:38
Show Gist options
  • Select an option

  • Save wence-/4510353 to your computer and use it in GitHub Desktop.

Select an option

Save wence-/4510353 to your computer and use it in GitHub Desktop.
! Save core/non-core/l1/l2 distinction in mesh node_classes
if (have_halos) then
tmp = entity_counts(0) ! number of vertices in topology mesh (-1?)
! Number of nodes in mesh?
if ( dofs_per(mesh_dim(mesh)) > 0 ) then
tmp = ((tmp + 1) * dofs_per(mesh_dim(mesh))) - 1
end if
! Count core nodes (primary sort key -2)
mesh%node_classes(CORE_ENTITY) = count(entity_sort_list(1:tmp, 0) == -2)
! Count non-core nodes (primary sort key -1)
mesh%node_classes(NON_CORE_ENTITY) = count(entity_sort_list(1:tmp, 0) == -1)
! L1 halo (primary sort key \in [0, COMM_SIZE])
mesh%node_classes(EXEC_HALO_ENTITY) = count(entity_sort_list(1:tmp, 0) >= 0 .and. entity_sort_list(1:tmp, 0) <= getnprocs())
! L2 halo (primary sort key \in [COMM_SIZE + 1, \infty))
mesh%node_classes(NON_EXEC_HALO_ENTITY) = count(entity_sort_list(1:tmp, 0) > getnprocs())
end if
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment