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

Go to the source code of this file.

Functions/Subroutines

subroutine ctolspl (tolspl, respr)
 Compute the pressure tolerance. More...
 
subroutine ortho (respr)
 Orthogonalize the residual in the pressure solver with respect to (1,1,...,1)T (only if all Dirichlet b.c.). More...
 
subroutine opgrad (out1, out2, out3, inp)
 Compute OUTi = Di*INP, i=1,2,3. the gradient of the scalar field INP. Note: OUTi is defined on the pressure mesh !!! More...
 
subroutine cdtp (dtx, x, rm2, sm2, tm2, isd)
 Compute DT*X (entire field) More...
 
subroutine multd (dx, x, rm2, sm2, tm2, isd, iflg)
 Compute D*X . X : input variable, defined on M1 DX : output variable, defined on M2 (note: D is rectangular) RM2 : RXM2, RYM2 or RZM2 SM2 : SXM2, SYM2 or SZM2 TM2 : TXM2, TYM2 or TZM2 ISD : spatial direction (x=1,y=2,z=3) IFLG: OPGRAD (iflg=0) or OPDIV (iflg=1) More...
 
subroutine ophx (out1, out2, out3, inp1, inp2, inp3, h1, h2)
 OUT = (H1*A+H2*B) * INP. More...
 
subroutine dudxyz (du, u, rm1, sm1, tm1, jm1, imsh, isd)
 Compute some derviatives? DU - dU/dx or dU/dy or dU/dz U - a field variable defined on mesh 1 RM1 - dr/dx or dr/dy or dr/dz SM1 - ds/dx or ds/dy or ds/dz TM1 - dt/dx or dt/dy or dt/dz JM1 - the Jacobian IMESH - topology: velocity (1) or temperature (2) mesh. More...
 
subroutine makef
 Compute and add: (1) user specified forcing function (FX,FY,FZ) (2) driving force due to natural convection (3) convection term !! NOTE: Do not change the arrays BFX, BFY, BFZ until the current time step is completed. More...
 
subroutine makeuf
 Compute and add: (1) user specified forcing function (FX,FY,FZ) More...
 
subroutine nekuf (f1, f2, f3)
 
subroutine advab ()
 Eulerian scheme, add convection term to forcing function at current time step. More...
 
subroutine makebdf ()
 Add contributions to F from lagged BD terms. More...
 
subroutine makeabf
 Sum up contributions to kth order extrapolation scheme. NOTE: rho^{n+1} should multiply all the Sum_q{beta_q} term if rho is not constant! More...
 
subroutine setabbd (ab, dtlag, nab, nbd)
 Compute Adams-Bashforth coefficients (order NAB, less or equal to 3). NBD .EQ. 1 Standard Adams-Bashforth coefficients NBD .GT. 1 Modified Adams-Bashforth coefficients to be used in con- junction with Backward Differentiation schemes (order NBD) More...
 
subroutine setbd (bd, dtbd, nbd)
 Compute backwards-difference (BDF) coefficients, order NBD. More...
 
subroutine bdsys (a, b, dt, nbd, ndim)
 Setup the linear system that defines BDF coefficients. More...
 
subroutine tauinit (tau, ilag)
 Set initial time for subintegration. More...
 
subroutine lagvel
 Keep old velocity field(s) More...
 
subroutine setordbd
 Set up parameters for backward differentiation scheme. More...
 
subroutine normsc (h1, semi, l2, linf, x, imesh)
 Compute error norms of a (scalar) field variable X defined on mesh 1 or mesh 2. The error norms are normalized with respect to the volume (except for Linf). More...
 
subroutine normvc (h1, semi, l2, linf, x1, x2, x3)
 Compute error norms of a (vector) field variable (X1,X2,X3) More...
 
subroutine opcolv (a1, a2, a3, c)
 
subroutine opcopy (a1, a2, a3, b1, b2, b3)
 
subroutine opdssum (a, b, c)
 
subroutine opdsop (a, b, c, op)
 
subroutine transpose (a, lda, b, ldb)
 
subroutine convop (conv, fi)
 Compute the convective term CONV for a passive scalar field FI. More...
 
subroutine opdiv (outfld, inpx, inpy, inpz)
 Compute OUTFLD = SUMi Di*INPi. the divergence of the vector field (INPX,INPY,INPZ) More...
 
subroutine wgradm1 (ux, uy, uz, u, nel)
 Compute gradient of T – mesh 1 to mesh 1 (vel. to vel.) More...
 
subroutine wlaplacian (out, a, diff, ifld)
 compute weak form of the laplacian operator including the boundary contribution More...
 

Function/Subroutine Documentation

subroutine advab ( )

Eulerian scheme, add convection term to forcing function at current time step.

Definition at line 778 of file navier1.F90.

References convop().

Referenced by makef().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine bdsys ( real(dp), dimension(ndim,9)  a,
real(dp), dimension(9)  b,
real(dp), dimension(9)  dt,
integer  nbd,
integer  ndim 
)

Setup the linear system that defines BDF coefficients.

Definition at line 1040 of file navier1.F90.

Referenced by setbd().

+ Here is the caller graph for this function:

subroutine cdtp ( real(dp), dimension (lx1,ly1,lz1,lelv)  dtx,
real(dp), dimension (lx2,ly2,lz2,lelv)  x,
real(dp), dimension (lx2,ly2,lz2,lelv)  rm2,
real(dp), dimension (lx2,ly2,lz2,lelv)  sm2,
real(dp), dimension (lx2,ly2,lz2,lelv)  tm2,
integer  isd 
)

Compute DT*X (entire field)

Definition at line 173 of file navier1.F90.

References copy(), ctimer::dnekclock(), and mxm().

Referenced by crespsp().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine convop ( real(dp), dimension (lx1,ly1,lz1,*)  conv,
real(dp), dimension (lx1,ly1,lz1,*)  fi 
)

Compute the convective term CONV for a passive scalar field FI.

Definition at line 1422 of file navier1.F90.

References convect_new(), and ctimer::dnekclock().

Referenced by advab(), and convab().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine ctolspl ( real(dp)  tolspl,
real(dp), dimension (lx2,ly2,lz2,lelv)  respr 
)

Compute the pressure tolerance.

Definition at line 3 of file navier1.F90.

References dssum().

Referenced by plan4().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine dudxyz ( real(dp), dimension (lx1,ly1,lz1,*)  du,
real(dp), dimension (lx1,ly1,lz1,*)  u,
real(dp), dimension (lx1,ly1,lz1,*)  rm1,
real(dp), dimension (lx1,ly1,lz1,*)  sm1,
real(dp), dimension (lx1,ly1,lz1,*)  tm1,
real(dp), dimension (lx1,ly1,lz1,*)  jm1,
integer  imsh,
integer  isd 
)

Compute some derviatives? DU - dU/dx or dU/dy or dU/dz U - a field variable defined on mesh 1 RM1 - dr/dx or dr/dy or dr/dz SM1 - ds/dx or ds/dy or ds/dz TM1 - dt/dx or dt/dy or dt/dz JM1 - the Jacobian IMESH - topology: velocity (1) or temperature (2) mesh.

Todo:
why this loop?

Definition at line 628 of file navier1.F90.

References mxm().

Referenced by op_curl().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine lagvel ( )

Keep old velocity field(s)

Definition at line 1101 of file navier1.F90.

References copy(), and opcopy().

Referenced by plan4(), and setics().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine makeabf ( )

Sum up contributions to kth order extrapolation scheme. NOTE: rho^{n+1} should multiply all the Sum_q{beta_q} term if rho is not constant!

Definition at line 847 of file navier1.F90.

References copy().

Referenced by makef().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine makebdf ( )

Add contributions to F from lagged BD terms.

Definition at line 805 of file navier1.F90.

Referenced by makef().

+ Here is the caller graph for this function:

subroutine makef ( )

Compute and add: (1) user specified forcing function (FX,FY,FZ) (2) driving force due to natural convection (3) convection term !! NOTE: Do not change the arrays BFX, BFY, BFZ until the current time step is completed.

Definition at line 691 of file navier1.F90.

References advab(), ctimer::dnekclock(), makeabf(), makebdf(), and makeuf().

Referenced by plan4().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine makeuf ( )

Compute and add: (1) user specified forcing function (FX,FY,FZ)

Definition at line 723 of file navier1.F90.

References nekuf().

Referenced by makef(), and setdtc().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine multd ( real(dp), dimension (lx2,ly2,lz2,lelv)  dx,
real(dp), dimension (lx1,ly1,lz1,lelv)  x,
real(dp), dimension (lx2,ly2,lz2,lelv)  rm2,
real(dp), dimension (lx2,ly2,lz2,lelv)  sm2,
real(dp), dimension (lx2,ly2,lz2,lelv)  tm2,
integer  isd,
integer  iflg 
)

Compute D*X . X : input variable, defined on M1 DX : output variable, defined on M2 (note: D is rectangular) RM2 : RXM2, RYM2 or RZM2 SM2 : SXM2, SYM2 or SZM2 TM2 : TXM2, TYM2 or TZM2 ISD : spatial direction (x=1,y=2,z=3) IFLG: OPGRAD (iflg=0) or OPDIV (iflg=1)

Definition at line 382 of file navier1.F90.

References copy(), ctimer::dnekclock(), and mxm().

Referenced by opdiv(), and opgrad().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine nekuf ( real(dp), dimension (lx1,ly1,lz1,lelv)  f1,
real(dp), dimension (lx1,ly1,lz1,lelv)  f2,
real(dp), dimension (lx1,ly1,lz1,lelv)  f3 
)

Definition at line 743 of file navier1.F90.

References parallel::lglel(), and nekasgn().

Referenced by makeuf().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine normsc ( real(dp)  h1,
real(dp)  semi,
real(dp)  l2,
real(dp)  linf,
real(dp), dimension (lx1,ly1,lz1,*), intent(in)  x,
integer  imesh 
)

Compute error norms of a (scalar) field variable X defined on mesh 1 or mesh 2. The error norms are normalized with respect to the volume (except for Linf).

\( l2 = |x|_2 \) \( semi = \sqrt{|<x|A|x>|/V} \) where A is the stiffness matrix

Definition at line 1150 of file navier1.F90.

References axhelm(), and ctimer::dnekclock().

Referenced by unorm().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine normvc ( real(dp)  h1,
real(dp)  semi,
real(dp)  l2,
real(dp)  linf,
real(dp), dimension (lx1,ly1,lz1,lelt)  x1,
real(dp), dimension (lx1,ly1,lz1,lelt)  x2,
real(dp), dimension (lx1,ly1,lz1,lelt)  x3 
)

Compute error norms of a (vector) field variable (X1,X2,X3)

Definition at line 1223 of file navier1.F90.

References ctimer::dnekclock(), and ophx().

Referenced by unorm().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine opcolv ( real(dp), dimension(1)  a1,
real(dp), dimension(1)  a2,
real(dp), dimension(1)  a3,
real(dp), dimension(1)  c 
)

Definition at line 1300 of file navier1.F90.

Referenced by setics().

+ Here is the caller graph for this function:

subroutine opcopy ( real(dp), dimension(1)  a1,
real(dp), dimension(1)  a2,
real(dp), dimension(1)  a3,
real(dp), dimension(1)  b1,
real(dp), dimension(1)  b2,
real(dp), dimension(1)  b3 
)

Definition at line 1339 of file navier1.F90.

References copy().

Referenced by lagvel(), and setics().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine opdiv ( real(dp), dimension (lx2,ly2,lz2,nelv)  outfld,
real(dp), dimension (lx1,ly1,lz1,nelv)  inpx,
real(dp), dimension (lx1,ly1,lz1,nelv)  inpy,
real(dp), dimension (lx1,ly1,lz1,nelv)  inpz 
)

Compute OUTFLD = SUMi Di*INPi. the divergence of the vector field (INPX,INPY,INPZ)

Definition at line 1493 of file navier1.F90.

References copy(), multd(), and mxm().

Referenced by plan4().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine opdsop ( real(dp), dimension(1)  a,
real(dp), dimension(1)  b,
real(dp), dimension(1)  c,
character(3)  op 
)

Definition at line 1375 of file navier1.F90.

References vec_dsop().

Referenced by bcdirvc(), and bcmask().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine opdssum ( real(dp), dimension(1)  a,
real(dp), dimension(1)  b,
real(dp), dimension(1)  c 
)

Definition at line 1353 of file navier1.F90.

References vec_dssum().

Referenced by crespsp(), op_curl(), setdtc(), and setics().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine opgrad ( real(dp), dimension (lx2,ly2,lz2,nelv)  out1,
real(dp), dimension (lx2,ly2,lz2,nelv)  out2,
real(dp), dimension (lx2,ly2,lz2,nelv)  out3,
real(dp), dimension (lx1,ly1,lz1,nelv)  inp 
)

Compute OUTi = Di*INP, i=1,2,3. the gradient of the scalar field INP. Note: OUTi is defined on the pressure mesh !!!

Definition at line 88 of file navier1.F90.

References multd(), mxm(), and wgradm1().

Referenced by cresvsp().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine ophx ( real(dp), dimension (lx1,ly1,lz1,1)  out1,
real(dp), dimension (lx1,ly1,lz1,1)  out2,
real(dp), dimension (lx1,ly1,lz1,1)  out3,
real(dp), dimension (lx1,ly1,lz1,1)  inp1,
real(dp), dimension (lx1,ly1,lz1,1)  inp2,
real(dp), dimension (lx1,ly1,lz1,1)  inp3,
real(dp), dimension (lx1,ly1,lz1,1)  h1,
real(dp), dimension (lx1,ly1,lz1,1)  h2 
)

OUT = (H1*A+H2*B) * INP.

Definition at line 585 of file navier1.F90.

References axhelm().

Referenced by cresvsp(), and normvc().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine ortho ( real(dp), dimension (lx2,ly2,lz2,lelv)  respr)

Orthogonalize the residual in the pressure solver with respect to (1,1,...,1)T (only if all Dirichlet b.c.).

Definition at line 47 of file navier1.F90.

References exitti().

Referenced by crespsp(), hmh_gmres(), plan4(), and setics().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine setabbd ( real(dp), dimension(nab), intent(out ab,
real(dp), dimension(nbd), intent(in)  dtlag,
integer, intent(in)  nab,
integer, intent(in)  nbd 
)

Compute Adams-Bashforth coefficients (order NAB, less or equal to 3). NBD .EQ. 1 Standard Adams-Bashforth coefficients NBD .GT. 1 Modified Adams-Bashforth coefficients to be used in con- junction with Backward Differentiation schemes (order NBD)

Parameters
[out]abAdams-Bashforth coefficients
[in]dtlagTime-step history
[in]nabOrder of AB scheme
[in]nbdOrder of accompanying BDF scheme

Definition at line 922 of file navier1.F90.

Referenced by settime().

+ Here is the caller graph for this function:

subroutine setbd ( real(dp), dimension(*), intent(out bd,
real(dp), dimension(*), intent(in)  dtbd,
integer, intent(in)  nbd 
)

Compute backwards-difference (BDF) coefficients, order NBD.

Parameters
[out]bdBDF coefficients
[in]dtbdTime-step history
[in]nbdOrder of BDF scheme

Definition at line 995 of file navier1.F90.

References bdsys(), lu(), and solve().

Referenced by settime().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine setordbd ( )

Set up parameters for backward differentiation scheme.

Definition at line 1125 of file navier1.F90.

Referenced by settime().

+ Here is the caller graph for this function:

subroutine tauinit ( real(dp)  tau,
integer  ilag 
)

Set initial time for subintegration.

Definition at line 1082 of file navier1.F90.

subroutine transpose ( real(dp), dimension(lda,*)  a,
integer  lda,
real(dp), dimension(ldb,*)  b,
integer  ldb 
)

Definition at line 1402 of file navier1.F90.

Referenced by allreduce_exec(), build_new_filter(), cr_exec(), filterq(), gen_dgl(), gen_int(), gs_aux(), hsmg_routines::h1mg_setup_semhat(), hsmg_routines::hsmg_setup_fast1d(), hsmg_routines::hsmg_setup_intp(), hsmg_routines::hsmg_setup_semhat(), main(), pw_exec(), fft::transpose_grid(), and xyzlin().

+ Here is the caller graph for this function:

subroutine wgradm1 ( real(dp), dimension(lx1,ly1,lz1,*)  ux,
real(dp), dimension(lx1,ly1,lz1,*)  uy,
real(dp), dimension(lx1,ly1,lz1,*)  uz,
real(dp), dimension(lxyz,*)  u,
integer  nel 
)

Compute gradient of T – mesh 1 to mesh 1 (vel. to vel.)

Definition at line 1579 of file navier1.F90.

References i, and local_grad3().

Referenced by opgrad().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine wlaplacian ( real(dp), dimension(lx1,ly1,lz1,*)  out,
real(dp), dimension(*)  a,
real(dp), dimension(*)  diff,
integer  ifld 
)

compute weak form of the laplacian operator including the boundary contribution

Definition at line 1634 of file navier1.F90.

References axhelm(), and bcneusc().

Referenced by makeq().

+ Here is the call graph for this function:

+ Here is the caller graph for this function: