28 real(kind=realtype),
dimension(nSections) :: dtadvance
45 #ifndef USE_NO_SIGNALS
147 #ifndef USE_NO_SIGNALS
195 integer(kind=intType) :: nn
196 real(kind=realtype),
dimension(nSections) :: tnewsec, deltatsec
197 integer(kind=intType) :: lale
368 integer(kind=intType) :: nn
369 character(len=7) :: intString
373 #ifndef USE_NO_SIGNALS
413 intstring = adjustl(intstring)
446 integer(kind=intType) :: nn
516 integer(kind=intType),
parameter :: nWriteConvHeader = 50
520 integer(kind=intType) :: iter, nTimeSteps, stage
521 integer(kind=intType) :: i, j, k, l, m, nn
523 real(kind=realtype) :: tmp, timeunsteadyold
525 character(len=7) :: numberString
553 write (numberstring,
"(i6)") ntimesteps
554 numberstring = adjustl(numberstring)
557 print
"(A, I1, 3(A))",
"# Grid ",
groundlevel,
": Performing ", trim(numberstring), &
558 " explicit Runge Kutta time steps."
580 timeloop:
do iter = 1, ntimesteps
585 if (
myid == 0 .and. mod(iter, nwriteconvheader) == 0) &
607 domainloop:
do nn = 1, ndom
624 dw(i, j, k, l) = tmp *
dw(i, j, k, l)
638 do m = 1, (stage - 1)
640 if (tmp /=
zero)
then
645 w(i, j, k, l) =
w(i, j, k, l) - tmp *
dwoldrk(m, i, j, k, l)
658 w(i, j, k, l) =
w(i, j, k, l) - tmp *
dw(i, j, k, l)
676 w(i, j, k,
ivx) =
w(i, j, k,
ivx) * tmp
677 w(i, j, k,
ivy) =
w(i, j, k,
ivy) * tmp
678 w(i, j, k,
ivz) =
w(i, j, k,
ivz) * tmp
686 call computepressure(2_inttype,
il, 2_inttype,
jl, &
687 2_inttype,
kl, 0_inttype)
716 dwoldrk(stage, i, j, k, l) =
dw(i, j, k, l)
814 integer(kind=intType),
intent(in) :: stage
818 integer(kind=intType) :: nn
819 real(kind=realtype) :: fact
821 real(kind=realtype),
dimension(nSections) :: tnewsec, deltatsec
925 integer(kind=intType),
parameter :: nWriteConvHeader = 50
930 integer(kind=intType) :: nMGCycles
931 character(len=7) :: numberString
932 logical :: absConv, relConv, firstNK, firstANK, old_writeGrid
933 real(kind=realtype) :: nk_switchtol_save, curtime, ordersconvergedold
934 character(len=maxStringLen) :: iterFormat
984 iterformat =
"(A, I1, 3(A), I6, A, ES10.2)"
986 iterformat =
"(A, I1, 3(A), I6, A, 2ES10.2)"
989 write (numberstring,
"(i6)") nmgcycles
990 numberstring = adjustl(numberstring)
991 numberstring = trim(numberstring)
994 print iterformat,
"# Grid ",
groundlevel,
": Performing ", trim(numberstring), &
995 " iterations, unless converged earlier. Minimum required iteration before NK switch: ", &
1049 if (mod(
itertot, nwriteconvheader) == 0 .and. &
1163 exit nonlineariteration
1168 exit nonlineariteration
1175 #ifndef USE_NO_SIGNALS
1192 write (numberstring,
"(i7)")
itertot
1193 numberstring = adjustl(numberstring)
1194 numberstring = trim(numberstring)
1210 "", .false., [0], 1)
1222 exit nonlineariteration
1225 end do nonlineariteration
1274 integer :: ierr, iConvStdout
1276 integer(kind=intType) :: sps, nn, mm, iConv
1278 real(kind=realtype) :: hdiffmax, machmax
1279 real(kind=realtype) :: eddyvismax, yplusmax, sepsensor, cavitation, axismoment
1280 real(kind=realtype) :: sepsensoravg(3)
1282 real(kind=realtype) :: l2convthislevel, fact
1283 real(kind=realtype),
dimension(3) :: cfp, cfv, cmp, cmv
1284 real(kind=realtype) :: cmpaxis, cmvaxis
1285 logical :: nanOccurred, writeIterations
1286 logical :: absConv, relConv
1291 writeiterations = .true.
1297 nanoccurred = .false.
1302 if (groundlevel == 1) l2convthislevel =
l2conv
1314 domains:
do nn = 1, ndom
1329 cfp = fact * localvalues(
ifp:
ifp + 2)
1330 cfv = fact * localvalues(
ifv:
ifv + 2)
1332 cmp = fact * localvalues(
imp:
imp + 2)
1333 cmv = fact * localvalues(
imv:
imv + 2)
1334 yplusmax = localvalues(
iyplus)
1342 nmonitoringvar:
do mm = 1,
nmon
1454 end do nmonitoringvar
1464 cfp = localvalues(
ifp:
ifp + 2) * fact
1465 cfv = localvalues(
ifv:
ifv + 2) * fact
1467 cmp = localvalues(
imp:
imp + 2) * fact
1468 cmv = localvalues(
imv:
imv + 2) * fact
1473 nmonitoringvarzip:
do mm = 1,
nmon
1531 end do nmonitoringvarzip
1553 testrootproc:
if (
myid == 0)
then
1558 write (*,
"(1x,i6,2x)", advance=
"no") groundlevel
1564 write (*,
"(es12.5,1x)", advance=
"no")
timeunsteady + &
1569 write (*,
"(i8,3x)", advance=
"no") sps
1573 if (writeiterations)
then
1574 write (*,
"(i6,1x)", advance=
"no") itertot
1575 write (*,
"(i6,1x)", advance=
"no") approxtotalits
1576 write (*,
"(a,1x)", advance=
"no") itertype
1583 if (cflmonitor <
zero)
then
1585 write (*,
"(a,1x)", advance=
"no")
" ---- "
1588 write (*,
"(es10.2,1x)", advance=
"no") cflmonitor
1593 write (*,
"(es10.2,1x)", advance=
"no") real(cflmonitor)
1597 if (stepmonitor <
zero)
then
1599 write (*,
"(a,1x)", advance=
"no")
" ---- "
1602 write (*,
"(f5.2,2x)", advance=
"no") stepmonitor
1607 write (*,
"(f5.2,2x)", advance=
"no") real(stepmonitor)
1611 if (linresmonitor <
zero)
then
1613 write (*,
"(a,1x)", advance=
"no")
" ----"
1617 write (*,
"(f5.3,1x)", advance=
"no") linresmonitor
1622 write (*,
"(f5.3,1x)", advance=
"no") real(linresmonitor)
1628 write (*,
"(es12.5,1x)", advance=
"no") mpi_wtime() - t0solver
1633 write (*,
"(es12.5,1x)", advance=
"no") real(mpi_wtime() - t0solver)
1642 variableloop:
do mm = 1,
nmon
1680 write (*,
"(es24.16,1x)", advance=
"no")
monglob(mm)
1693 write (*,
'(es16.8,SP,es17.8E3,"i")', advance=
"no")
monglob(mm)
1697 write (*,
'(es24.16,SP,es25.16E3,"i")', advance=
"no")
monglob(mm)
1734 if (currentlevel /= 1)
then
1761 if (absconv .or. relconv)
then
1777 if (groundlevel == 1) &
1779 nn = max(nn, 1_inttype)
1818 testinitunsteady:
if (itertot == 0)
then
1831 else testinitunsteady
1867 end if testinitunsteady
1874 if (nanoccurred)
then
1877 print *,
'Nan occured in Convergence Info on proc:',
myid
1883 "A NaN occurred during the computation.")
void connect_signals(void)
subroutine slipvelocitiesfinelevel_ale(useOldCoor, t, sps)
subroutine interpcoor(lale)
subroutine setlevelale(setType)
real(kind=realtype) ank_cfl
subroutine destroyanksolver
real(kind=realtype) ank_switchtol
subroutine ankstep(firstCall)
subroutine setbcdatacoarsegrid
subroutine setbcdatafinegrid(initializationPart)
subroutine applyallbc(secondHalo)
integer(kind=inttype), dimension(:), allocatable ncellglobal
real(kind=realtype), dimension(:, :, :), pointer p
real(kind=realtype), dimension(:, :, :, :), pointer w
real(kind=realtype), dimension(:, :, :, :, :), pointer dwoldrk
real(kind=realtype), dimension(:, :, :, :), pointer dw
real(kind=realtype), dimension(:, :, :), pointer vol
character(len=maxcgnsnamelen), parameter cgnscl
character(len=maxcgnsnamelen), parameter cgnsl2resrho
character(len=maxcgnsnamelen), parameter cgnsmachmax
character(len=maxcgnsnamelen), parameter cgnsl2resmomy
character(len=maxcgnsnamelen), parameter cgnscmy
character(len=maxcgnsnamelen), parameter cgnsyplusmax
character(len=maxcgnsnamelen), parameter cgnsl2resk
character(len=maxcgnsnamelen), parameter cgnscmx
character(len=maxcgnsnamelen), parameter cgnscfy
character(len=maxcgnsnamelen), parameter cgnssepsensorksarea
character(len=maxcgnsnamelen), parameter cgnsl2resrhoe
character(len=maxcgnsnamelen), parameter cgnsaxismoment
character(len=maxcgnsnamelen), parameter cgnsl2resv2
character(len=maxcgnsnamelen), parameter cgnsl2resmomx
character(len=maxcgnsnamelen), parameter cgnsl2resmomz
character(len=maxcgnsnamelen), parameter cgnsl2resomega
character(len=maxcgnsnamelen), parameter cgnsl2restau
character(len=maxcgnsnamelen), parameter cgnsclv
character(len=maxcgnsnamelen), parameter cgnssepsensor
character(len=maxcgnsnamelen), parameter cgnsclp
character(len=maxcgnsnamelen), parameter cgnscmz
character(len=maxcgnsnamelen), parameter cgnscavitation
character(len=maxcgnsnamelen), parameter cgnseddymax
character(len=maxcgnsnamelen), parameter cgnsl2resf
character(len=maxcgnsnamelen), parameter cgnscd
character(len=maxcgnsnamelen), parameter cgnscfz
character(len=maxcgnsnamelen), parameter cgnscdp
character(len=maxcgnsnamelen), parameter cgnsl2resepsilon
character(len=maxcgnsnamelen), parameter cgnshdiffmax
character(len=maxcgnsnamelen), parameter cgnsl2resnu
character(len=maxcgnsnamelen), parameter cgnscdv
character(len=maxcgnsnamelen), parameter cgnscfx
integer adflow_comm_world
real(kind=realtype), parameter zero
integer(kind=inttype), parameter nlocalvalues
real(kind=realtype), parameter eps
integer(kind=inttype), parameter nonmonotonelinesearch
integer(kind=inttype), parameter timespectral
integer(kind=inttype), parameter implicitrk
integer(kind=inttype), parameter imp
integer(kind=inttype), parameter unsteady
integer(kind=inttype), parameter ifv
integer(kind=inttype), parameter iyplus
integer(kind=inttype), parameter bdf
real(kind=realtype), parameter one
integer(kind=inttype), parameter steady
integer(kind=inttype), parameter iaxismoment
real(kind=realtype), parameter two
integer(kind=inttype), parameter imv
integer(kind=inttype), parameter isepsensorksarea
integer(kind=inttype), parameter explicitrk
integer(kind=inttype), parameter isepsensor
integer(kind=inttype), parameter ncostfunction
integer(kind=inttype), parameter icavitation
integer(kind=inttype), parameter ransequations
integer(kind=inttype), parameter normalmomentum
integer(kind=inttype), parameter ifp
subroutine computepressure(iBeg, iEnd, jBeg, jEnd, kBeg, kEnd, pointerOffset)
subroutine computelamviscosity(includeHalos)
real(kind=realtype) gammainf
integer(kind=inttype) nt1
integer(kind=inttype) nwf
integer(kind=inttype) nt2
subroutine whalo2(level, start, end, commPressure, commGamma, commViscous)
subroutine whalo1(level, start, end, commPressure, commGamma, commViscous)
real(kind=realtype) totalr0
integer(kind=inttype) noldlevels
real(kind=realtype) totalrfinal
integer(kind=inttype) currentlevel
real(kind=realtype) t0solver
character(len=maxitertypelen) itertype
real(kind=realtype) cflmonitor
real(kind=realtype) totalr
real(kind=realtype) rhores0
integer(kind=inttype), dimension(:), allocatable cycling
real(kind=realtype) totalrstart
integer(kind=inttype) groundlevel
real(kind=realtype) rhores
integer(kind=inttype) nalemeshes
integer(kind=inttype) rkstage
real(kind=alwaysrealtype) stepmonitor
real(kind=realtype) rhoresstart
logical, dimension(:), allocatable oldsolwritten
logical exchangepressureearly
integer(kind=inttype) approxtotalits
integer(kind=inttype) noldsolavail
real(kind=realtype) ordersconverged
real(kind=alwaysrealtype) linresmonitor
integer(kind=inttype) itertot
integer(kind=inttype), parameter signalwrite
integer(kind=inttype) localsignal
integer(kind=inttype), parameter signalwritequit
integer(kind=inttype), parameter nosignal
integer(kind=inttype) globalsignal
integer(kind=inttype) timestepunsteady
real(kind=cgnsrealtype), dimension(:), allocatable timearray
real(kind=realtype), dimension(:), allocatable monloc
real(kind=realtype), dimension(:, :, :), allocatable solverdataarray
real(kind=cgnsrealtype), dimension(:, :, :), allocatable convarray
character(len=maxcgnsnamelen), dimension(:), allocatable monnames
real(kind=realtype) timeunsteady
real(kind=realtype) timeunsteadyrestart
integer(kind=inttype) ntimestepsrestart
real(kind=realtype), dimension(:), allocatable monglob
real(kind=realtype), dimension(:), allocatable monref
real(kind=cgnsrealtype), dimension(:, :), allocatable timedataarray
character(len=8), dimension(:, :), allocatable solvertypearray
subroutine executemgcycle
subroutine setcyclestrategy
subroutine transfertofinegrid(corrections)
subroutine getfreestreamresidual(rhoRes, totalRRes)
subroutine computeresidualnk(useUpdateIntermed)
real(kind=realtype), dimension(:), allocatable nklsfuncevals
real(kind=realtype) nk_switchtol
real(kind=realtype) nk_cfl
subroutine nkstep(firstCall)
integer(kind=inttype) nk_ls
subroutine getcurrentresidual(rhoRes, totalRRes)
subroutine updatecoorfinemesh(dtAdvance, sps)
subroutine updatecoordinatesalllevels
subroutine shiftcoorandvolumes
subroutine facerotationmatrices(level, allocMem)
subroutine updatemetricsalllevels
subroutine initres(varStart, varEnd)
integer(kind=inttype) nsections
subroutine checkwriteunsteadyinloop
subroutine solverunsteadyexplicitrk
subroutine solverunsteadyinit
subroutine checkwriteunsteadyendloop
subroutine updateunsteadygeometry
subroutine convergenceinfo
subroutine initstagerk(stage)
subroutine solverunsteadystep
subroutine gridvelocitiescoarselevels(sps)
subroutine slipvelocitiesfinelevel(useOldCoor, t, sps)
subroutine slipvelocitiescoarselevels(sps)
subroutine normalvelocitiesalllevels(sps)
subroutine gridvelocitiesfinelevelpart2(useOldCoor, t, sps)
subroutine gridvelocitiesfinelevelpart1(useOldCoor, t, sps)
subroutine gridvelocitiesfinelevel(useOldCoor, t, sps)
subroutine timestep(onlyRadii)
integer(kind=inttype), dimension(:), allocatable fullfamlist
subroutine integratesurfaces(localValues, famList)
subroutine writeliftdistributionfile(fileName, nodalValues)
subroutine writetecplot(sliceFile, writeSlices, liftFile, writeLift, surfFile, writeSurf, famList, nFamList)
subroutine writeslicesfile(fileName, nodalValues)
subroutine applyallturbbc(secondHalo)
subroutine computeeddyviscosity(includeHalos)
subroutine setcoeftimeintegrator
subroutine returnfail(routineName, errorMessage)
subroutine sumresiduals(nn, mm)
subroutine maxhdiffmach(hdiffMax, MachMax)
subroutine sumallresiduals(mm)
logical function eulerwallspresent()
subroutine setpointers(nn, mm, ll)
subroutine allocconvarrays(nIterTot)
subroutine maxeddyv(eddyvisMax)
subroutine convergenceheader
subroutine updatewalldistancealllevels
subroutine integratezippers(localValues, famList, sps)
subroutine writesol(famList, nFamList)