Nek5000
SEM for Incompressible NS
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | set_vert (glo_num, ngv, nx, nel, vertex, ifcenter) |
Given global array, vertex, pointing to hex vertices, set up a new array of global pointers for an nx^ndim set of elements. More... | |
subroutine | set_up_h1_crs |
? More... | |
subroutine | set_jl_crs_mask (n, mask, se_to_gcrs) |
subroutine | set_mat_ij (ia, ja, n, ne) |
subroutine | ituple_sort (a, lda, n, key, nkey, ind, aa) |
Use Heap Sort (p 231 Num. Rec., 1st Ed.) More... | |
logical function | iftuple_ialtb (a, b, key, nkey) |
logical function | iftuple_ianeb (a, b, key, nkey) |
subroutine | specmpn (b, nb, a, na, ba, ab, if3d, w, ldw) |
Spectral interpolation from A to B via tensor products. More... | |
subroutine | irank (A, IND, N) |
Use Heap Sort (p 233 Num. Rec.), 5/26/93 pff. More... | |
subroutine | get_local_crs_galerkin (a, ncl, nxc, h1, h2, w1, w2) |
This routine generates Nelv submatrices of order ncl using Galerkin projection. More... | |
subroutine | gen_crs_basis (b, j) |
subroutine | get_vertex |
subroutine | assign_gllnid (gllnid, iunsort, nelgt, nelgv, np) |
subroutine | get_vert |
subroutine | get_vert_map (vertex, nlv, nel, suffix, ifgfdm) |
subroutine | irank_vecn (ind, nn, a, m, n, key, nkey, aa) |
Compute rank of each unique entry a(1,i) Output: ind(i) i=1,...,n (global) rank of entry a(*,i) nn = max(rank) a(j,i) is permuted Input: a(j,i) j=1,...,m; i=1,...,n m : leading dim. of v (ldv must be .ge. m) key : sort key nkey : Although not mandatory, this ranking procedure is probably most effectively employed when the keys are pre-sorted. Thus, the option is provided to sort vi() prior to the ranking. More... | |
subroutine | gbtuple_rank (tuple, m, n, nmax, cr_h, nid, np, ind) |
Return a unique rank for each matched tuple set. Global. Balanced. tuple is destroyed. By "balanced" we mean that none of the tuple entries is likely to be much more uniquely populated than any other, so that any of the tuples can serve as an initial (parallel) sort key First two slots in tuple(:,i) assumed empty. More... | |
subroutine | setvert3d (glo_num, ngv, nx, nel, vertex, ifcenter) |
setup unique ids for dssum. note: total number of unique vertices, edges and faces has to be smaller than 2**31 (integer-4 limit). if nelgt < 2**31/12 we're ok for sure (independent of N)! More... | |
subroutine | check_p_bc (glo_num, nx, ny, nz, nel) |
subroutine assign_gllnid | ( | integer, dimension(*) | gllnid, |
integer, dimension(*) | iunsort, | ||
integer | nelgt, | ||
integer | nelgv, | ||
integer | np | ||
) |
Definition at line 519 of file navier8.F90.
References exitti(), isort(), and iswapt_ip().
subroutine check_p_bc | ( | integer(i8), dimension(nx,ny,nz,nel) | glo_num, |
integer | nx, | ||
integer | ny, | ||
integer | nz, | ||
integer | nel | ||
) |
Definition at line 1237 of file navier8.F90.
Referenced by set_vert().
subroutine gbtuple_rank | ( | integer, dimension(m,nmax) | tuple, |
integer | m, | ||
integer | n, | ||
integer | nmax, | ||
integer | cr_h, | ||
integer | nid, | ||
integer | np, | ||
integer, dimension(nmax) | ind | ||
) |
Return a unique rank for each matched tuple set. Global. Balanced. tuple is destroyed. By "balanced" we mean that none of the tuple entries is likely to be much more uniquely populated than any other, so that any of the tuples can serve as an initial (parallel) sort key First two slots in tuple(:,i) assumed empty.
Definition at line 802 of file navier8.F90.
References exitt(), irank_vecn(), and ituple_sort().
Referenced by setvert3d().
subroutine gen_crs_basis | ( | real(dp), dimension(nx1,ny1,nz1) | b, |
integer | j | ||
) |
Definition at line 449 of file navier8.F90.
References copy(), and speclib::zwgll().
Referenced by get_local_crs_galerkin().
subroutine get_local_crs_galerkin | ( | real(dp), dimension(ncl,ncl,*) | a, |
integer | ncl, | ||
integer | nxc, | ||
real(dp), dimension(*) | h1, | ||
real(dp), dimension(*) | h2, | ||
real(dp), dimension(nx1*ny1*nz1,nelv) | w1, | ||
real(dp), dimension(nx1*ny1*nz1,nelv) | w2 | ||
) |
This routine generates Nelv submatrices of order ncl using Galerkin projection.
Definition at line 407 of file navier8.F90.
References axhelm(), copy(), and gen_crs_basis().
Referenced by set_up_h1_crs().
subroutine get_vert | ( | ) |
Definition at line 607 of file navier8.F90.
References get_vert_map().
Referenced by get_vertex(), hsmg_routines::h1mg_setup_dssum(), hsmg_routines::hsmg_setup_dssum(), set_proc_map(), and setup_topo().
subroutine get_vert_map | ( | integer, dimension(nlv,*) | vertex, |
integer | nlv, | ||
integer | nel, | ||
character(4) | suffix, | ||
logical | ifgfdm | ||
) |
Definition at line 635 of file navier8.F90.
References bcast(), blank(), chcopy(), exitt(), exitt0(), parallel::gllel(), parallel::gllnid(), mesh::ieg_to_xyz(), parallel::init_gllnid(), parallel::lglel(), string::ltrunc(), nekgsync(), and np.
Referenced by get_vert().
subroutine get_vertex | ( | ) |
Definition at line 499 of file navier8.F90.
References get_vert().
Referenced by set_up_h1_crs().
logical function iftuple_ialtb | ( | integer, dimension(*) | a, |
integer, dimension(*) | b, | ||
integer, dimension(nkey) | key, | ||
integer | nkey | ||
) |
Definition at line 267 of file navier8.F90.
logical function iftuple_ianeb | ( | integer, dimension(*) | a, |
integer, dimension(*) | b, | ||
integer, dimension(nkey) | key, | ||
integer | nkey | ||
) |
Definition at line 290 of file navier8.F90.
subroutine irank | ( | integer, dimension(*) | A, |
integer, dimension(*) | IND, | ||
integer | N | ||
) |
Use Heap Sort (p 233 Num. Rec.), 5/26/93 pff.
Definition at line 355 of file navier8.F90.
Referenced by setvert3d().
subroutine irank_vecn | ( | integer, dimension(n) | ind, |
integer | nn, | ||
integer, dimension(m,n) | a, | ||
integer | m, | ||
integer | n, | ||
integer, dimension(nkey) | key, | ||
integer | nkey, | ||
integer, dimension(m) | aa | ||
) |
Compute rank of each unique entry a(1,i) Output: ind(i) i=1,...,n (global) rank of entry a(*,i) nn = max(rank) a(j,i) is permuted Input: a(j,i) j=1,...,m; i=1,...,n m : leading dim. of v (ldv must be .ge. m) key : sort key nkey : Although not mandatory, this ranking procedure is probably most effectively employed when the keys are pre-sorted. Thus, the option is provided to sort vi() prior to the ranking.
Definition at line 766 of file navier8.F90.
References ituple_sort().
Referenced by gbtuple_rank().
subroutine ituple_sort | ( | integer, dimension(lda,n) | a, |
integer | lda, | ||
integer | n, | ||
integer, dimension(nkey) | key, | ||
integer | nkey, | ||
integer, dimension(*) | ind, | ||
integer, dimension(lda) | aa | ||
) |
Use Heap Sort (p 231 Num. Rec., 1st Ed.)
Definition at line 204 of file navier8.F90.
Referenced by gbtuple_rank(), and irank_vecn().
subroutine set_jl_crs_mask | ( | integer | n, |
real(dp), dimension(*) | mask, | ||
integer(i8), dimension(*) | se_to_gcrs | ||
) |
Definition at line 170 of file navier8.F90.
Referenced by set_up_h1_crs().
subroutine set_mat_ij | ( | integer, dimension(n,n,ne) | ia, |
integer, dimension(n,n,ne) | ja, | ||
integer | n, | ||
integer | ne | ||
) |
Definition at line 185 of file navier8.F90.
Referenced by set_up_h1_crs().
subroutine set_up_h1_crs | ( | ) |
?
Definition at line 35 of file navier8.F90.
References crs_setup, ctimer::dnekclock(), facev(), get_local_crs_galerkin(), get_vertex(), gs_free, gs_op, gs_setup, np, set_jl_crs_mask(), set_mat_ij(), and set_vert().
Referenced by set_overlap().
subroutine set_vert | ( | integer(i8), dimension(1) | glo_num, |
integer(i8) | ngv, | ||
integer | nx, | ||
integer | nel, | ||
integer, dimension(*) | vertex, | ||
logical | ifcenter | ||
) |
Given global array, vertex, pointing to hex vertices, set up a new array of global pointers for an nx^ndim set of elements.
Definition at line 4 of file navier8.F90.
References check_p_bc(), and setvert3d().
Referenced by set_up_h1_crs(), and setupds().
subroutine setvert3d | ( | integer(i8), dimension(*) | glo_num, |
integer(i8) | ngv, | ||
integer | nx, | ||
integer | nel, | ||
integer, dimension(0:1,0:1,0:1,*) | vertex, | ||
logical | ifcenter | ||
) |
setup unique ids for dssum. note: total number of unique vertices, edges and faces has to be smaller than 2**31 (integer-4 limit). if nelgt < 2**31/12 we're ok for sure (independent of N)!
Definition at line 860 of file navier8.F90.
References dsset(), gbtuple_rank(), irank(), isort(), parallel::lglel(), and np.
Referenced by set_vert().
subroutine specmpn | ( | real(dp), dimension(nb,nb,nb), intent(out) | b, |
integer, intent(in) | nb, | ||
real(dp), dimension(na,na,na), intent(in) | a, | ||
integer, intent(in) | na, | ||
real(dp) | ba, | ||
real(dp) | ab, | ||
logical, intent(in) | if3d, | ||
real(dp), dimension(ldw), intent(out) | w, | ||
integer, intent(in) | ldw | ||
) |
Spectral interpolation from A to B via tensor products.
[out] | w | work buffer |
Definition at line 313 of file navier8.F90.
References exitt(), and mxm().
Referenced by convect_new(), set_convect_new(), and set_dealias_rx().