Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Functions/Subroutines
navier8.F90 File Reference

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)
 

Function/Subroutine Documentation

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().

+ Here is the call graph for this function:

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().

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine get_vertex ( )

Definition at line 499 of file navier8.F90.

References get_vert().

Referenced by set_up_h1_crs().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

+ Here is the caller graph for this function:

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().

+ Here is the caller graph for this function:

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().

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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.

  • scratch arrays: w(na*na*nb + nb*nb*na) 5/3/00 – this routine replaces specmp in navier1.f, which has a potential memory problem
Parameters
[out]wwork buffer

Definition at line 313 of file navier8.F90.

References exitt(), and mxm().

Referenced by convect_new(), set_convect_new(), and set_dealias_rx().

+ Here is the call graph for this function:

+ Here is the caller graph for this function: