Nek5000
SEM for Incompressible NS
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | gen_fast_spacing () |
Generate fast diagonalization matrices for each element. More... | |
subroutine | plane_space (lr, ls, lt, i1, i2, w, x, y, z, nx, nxn, nz0, nzn) |
Here, spacing is based on harmonic mean. pff 2/10/07. More... | |
subroutine | get_fast_bc (lbr, rbr, lbs, rbs, lbt, rbt, e, bsym, ierr) |
subroutine | load_semhat_weighted () |
Note that this routine performs the following matrix multiplies after getting the matrices back from semhat: dgl = bgl dgl jgl = bgl jgl. More... | |
subroutine | do_semhat_weight (jgl, dgl, bgl, n) |
re-weight jgl and dgl with bgl More... | |
subroutine | generate_semhat (a, b, c, d, z, dgll, jgll, bgl, zgl, dgl, jgl, n, w) |
Generate matrices for single element, 1D operators: More... | |
subroutine | fd_weights_full (xx, x, n, m, c) |
This routine evaluates the derivative based on all points in the stencils. It is more memory efficient than "fd_weights". More... | |
subroutine | swap_lengths () |
subroutine | row_zero (a, m, n, e) |
zero the eth row of a More... | |
subroutine | swap (b, ind, n, temp) |
Reorder vector using temporary buffer. More... | |
subroutine do_semhat_weight | ( | real(dp), dimension(1:n-1,0:n) | jgl, |
real(dp), dimension(1:n-1,0:n) | dgl, | ||
real(dp), dimension(1:n-1) | bgl, | ||
integer | n | ||
) |
re-weight jgl and dgl with bgl
Definition at line 289 of file fast3d.F90.
Referenced by load_semhat_weighted().
subroutine fd_weights_full | ( | real(dp) | xx, |
real(dp), dimension(0:n) | x, | ||
integer | n, | ||
integer | m, | ||
real(dp), dimension(0:n,0:m) | c | ||
) |
This routine evaluates the derivative based on all points in the stencils. It is more memory efficient than "fd_weights".
This set of routines comes from the appendix of A Practical Guide to Pseudospectral Methods, B. Fornberg Cambridge Univ. Press, 1996. (pff)
Input parameters: xx – point at wich the approximations are to be accurate x – array of x-ordinates: x(0:n) n – polynomial degree of interpolant (# of points := n+1) m – highest order of derivative to be approxxmated at xi Output: c – set of coefficients c(0:n,0:m). c(j,k) is to be applied at x(j) when the kth derivative is approxxmated by a stencil extending over x(0),x(1),...x(n).
Definition at line 409 of file fast3d.F90.
Referenced by gen_dgl(), gen_int(), generate_semhat(), hsmg_routines::hsmg_setup_intpm(), and xyzlin().
subroutine gen_fast_spacing | ( | ) |
Generate fast diagonalization matrices for each element.
Definition at line 3 of file fast3d.F90.
References load_semhat_weighted(), plane_space(), speclib::zwgl(), and speclib::zwgll().
Referenced by set_overlap().
subroutine generate_semhat | ( | real(dp), dimension(0:n,0:n) | a, |
real(dp), dimension(0:n) | b, | ||
real(dp), dimension(0:n,0:n) | c, | ||
real(dp), dimension(0:n,0:n) | d, | ||
real(dp), dimension(0:n) | z, | ||
real(dp), dimension(0:n,1:n-1) | dgll, | ||
real(dp), dimension(0:n,1:n-1) | jgll, | ||
real(dp), dimension(1:n-1) | bgl, | ||
real(dp), dimension(1:n-1) | zgl, | ||
real(dp), dimension(1:n-1,0:n) | dgl, | ||
real(dp), dimension(1:n-1,0:n) | jgl, | ||
integer | n, | ||
real(dp), dimension(0:(n+1)*2) | w | ||
) |
Generate matrices for single element, 1D operators:
a = Laplacian b = diagonal mass matrix c = convection operator b*d d = derivative matrix dgll = derivative matrix, mapping from pressure nodes to velocity jgll = interpolation matrix, mapping from pressure nodes to velocity z = GLL points
zgl = GL points bgl = diagonal mass matrix on GL dgl = derivative matrix, mapping from velocity nodes to pressure jgl = interpolation matrix, mapping from velocity nodes to pressure
n = polynomial degree (velocity space) w = work array of size 2*n+2
Currently, this is set up for pressure nodes on the interior GLL pts.
Definition at line 328 of file fast3d.F90.
References fd_weights_full(), speclib::zwgl(), and speclib::zwgll().
Referenced by hsmg_routines::h1mg_setup_semhat(), hsmg_routines::hsmg_setup_semhat(), and load_semhat_weighted().
subroutine get_fast_bc | ( | integer | lbr, |
integer | rbr, | ||
integer | lbs, | ||
integer | rbs, | ||
integer | lbt, | ||
integer | rbt, | ||
integer | e, | ||
integer | bsym, | ||
integer | ierr | ||
) |
Definition at line 192 of file fast3d.F90.
References exitti(), and parallel::lglel().
Referenced by hsmg_routines::h1mg_setup_mask(), and hsmg_routines::hsmg_setup_fast().
subroutine load_semhat_weighted | ( | ) |
Note that this routine performs the following matrix multiplies after getting the matrices back from semhat: dgl = bgl dgl jgl = bgl jgl.
Definition at line 274 of file fast3d.F90.
References do_semhat_weight(), and generate_semhat().
Referenced by gen_fast_spacing().
subroutine plane_space | ( | real(dp), dimension(*) | lr, |
real(dp), dimension(*) | ls, | ||
real(dp), dimension(*) | lt, | ||
integer | i1, | ||
integer | i2, | ||
real(dp), dimension(*) | w, | ||
real(dp), dimension(0:nxn,0:nxn,nz0:nzn,*) | x, | ||
real(dp), dimension(0:nxn,0:nxn,nz0:nzn,*) | y, | ||
real(dp), dimension(0:nxn,0:nxn,nz0:nzn,*) | z, | ||
integer | nx, | ||
integer | nxn, | ||
integer | nz0, | ||
integer | nzn | ||
) |
Here, spacing is based on harmonic mean. pff 2/10/07.
Definition at line 71 of file fast3d.F90.
Referenced by gen_fast_spacing(), and swap_lengths().
zero the eth row of a
Definition at line 527 of file fast3d.F90.
Referenced by hsmg_routines::hsmg_setup_fast1d().
subroutine swap | ( | real(dp), dimension(*) | b, |
integer, dimension(*) | ind, | ||
integer | n, | ||
real(dp), dimension(*) | temp | ||
) |
Reorder vector using temporary buffer.
Definition at line 541 of file fast3d.F90.
subroutine swap_lengths | ( | ) |
Definition at line 453 of file fast3d.F90.
References dssum(), and plane_space().
Referenced by set_overlap().