|
ADflow
v1.0
ADflow is a finite volume RANS solver tailored for gradient-based aerodynamic design optimization.
|
Functions/Subroutines | |
| subroutine | setupnksolver |
| subroutine | linearresidualmonitor (myKSP, n, rnorm, dummy, ierr) |
| subroutine | nkmatmult (A, vecX, vecY, ierr) |
| subroutine | getfreestreamresidual (rhoRes, totalRRes) |
| subroutine | getcurrentresidual (rhoRes, totalRRes) |
| subroutine | formjacobiannk |
| subroutine | formfunction_mf (ctx, wVec, rVec, ierr) |
| subroutine | destroynksolver |
| subroutine | nkstep (firstCall) |
| subroutine | lscubic (x, f, g, y, w, fnorm, ynorm, gnorm, nfevals, flag, lambda) |
| subroutine | lsnone (x, f, g, y, w, nfevals, flag, step) |
| subroutine | lsnm (x, f, g, y, w, fnorm, ynorm, gnorm, nfevals, flag, step) |
| subroutine | computeresidualnk (useUpdateIntermed) |
| subroutine | applypc (in_vec, out_vec, ndof) |
| subroutine | applyadjointpc (in_vec, out_vec, ndof) |
| subroutine | setwvec (wVec) |
| subroutine | setrvec (rVec, flowRes, turbRes, totalRes) |
| subroutine | setw (wVec) |
| subroutine | getstates (states, ndimw) |
| subroutine | getres (res, ndimw) |
| subroutine | setstates (states, ndimw) |
| subroutine | getinfosize (iSize) |
| subroutine | setinfo (info, iSize) |
| subroutine | getinfo (info, iSize) |
| subroutine | getewtol (norm, old_norm, rtol_last, rtol) |
Variables | |
| logical | usenksolver |
| integer(kind=inttype) | nk_jacobianlag |
| integer(kind=inttype) | nk_subspace |
| integer(kind=inttype) | nk_asmoverlap |
| integer(kind=inttype) | nk_asmoverlapcoarse |
| integer(kind=inttype) | nk_ilufill |
| integer(kind=inttype) | nk_ilufillcoarse |
| integer(kind=inttype) | nk_innerpreconits |
| integer(kind=inttype) | nk_innerpreconitscoarse |
| integer(kind=inttype) | nk_outerpreconits |
| integer(kind=inttype) | nk_amglevels |
| integer(kind=inttype) | nk_amgnsmooth |
| integer(kind=inttype) | nk_ls |
| character(len=maxstringlen) | nk_precondtype |
| logical | nk_useew |
| logical | nk_adpc |
| logical | nk_viscpc |
| real(kind=realtype) | nk_cfl0 |
| real(kind=realtype) | nk_switchtol |
| real(kind=realtype) | nk_rtolinit |
| real(kind=realtype) | nk_divtol = 10 |
| real(kind=realtype) | nk_fixedstep |
| logical | nk_solversetup = .False. |
| integer(kind=inttype) | nk_iter |
| integer(kind=inttype) | ew_version |
| real(kind=realtype) | ew_rtol_0 |
| real(kind=realtype) | ew_rtol_max |
| real(kind=realtype) | ew_gamma |
| real(kind=realtype) | ew_alpha |
| real(kind=realtype) | ew_alpha2 |
| real(kind=realtype) | ew_threshold |
| real(kind=alwaysrealtype) | rtollast |
| real(kind=alwaysrealtype) | oldnorm |
| logical | freestreamresset = .False. |
| real(kind=realtype) | nk_cfl |
| real(kind=realtype), dimension(:), allocatable | nklsfuncevals |
| integer(kind=inttype) | mmax = 5 |
| integer(kind=inttype) | iter_k |
| integer(kind=inttype) | iter_m |
| integer(kind=inttype) | applypcsubspacesize |
| subroutine nksolver::applyadjointpc | ( | real(kind=realtype), dimension(ndof), intent(in) | in_vec, |
| real(kind=realtype), dimension(ndof), intent(inout) | out_vec, | ||
| integer(kind=inttype) | ndof | ||
| ) |
Definition at line 1169 of file NKSolvers.F90.
References inputadjoint::applyadjointpcsubspacesize, and utils::echk().

| subroutine nksolver::applypc | ( | real(kind=realtype), dimension(ndof), intent(in) | in_vec, |
| real(kind=realtype), dimension(ndof), intent(inout) | out_vec, | ||
| integer(kind=inttype) | ndof | ||
| ) |
Definition at line 1105 of file NKSolvers.F90.
References applypcsubspacesize, utils::echk(), formfunction_mf(), formjacobiannk(), nk_iter, nk_jacobianlag, nk_solversetup, setupnksolver(), and setwvec().

| subroutine nksolver::computeresidualnk | ( | logical, intent(in), optional | useUpdateIntermed | ) |
Definition at line 1084 of file NKSolvers.F90.
References blockette::blocketteres().
Referenced by formfunction_mf(), getfreestreamresidual(), getres(), lscubic(), lsnm(), lsnone(), nkstep(), and solvers::solvestate().


| subroutine nksolver::destroynksolver |
Definition at line 463 of file NKSolvers.F90.
References amg::destroyamg(), utils::echk(), and nk_solversetup.
Referenced by anksolver::setupanksolver().


| subroutine nksolver::formfunction_mf | ( | ctx, | |
| wVec, | |||
| rVec, | |||
| integer(kind=inttype) | ierr | ||
| ) |
Definition at line 437 of file NKSolvers.F90.
References computeresidualnk(), setrvec(), and setw().
Referenced by applypc(), nkstep(), and setupnksolver().


| subroutine nksolver::formjacobiannk |
Definition at line 372 of file NKSolvers.F90.
References utils::echk(), nk_adpc, nk_asmoverlap, nk_asmoverlapcoarse, nk_ilufill, nk_ilufillcoarse, nk_innerpreconits, nk_innerpreconitscoarse, nk_outerpreconits, nk_precondtype, nk_subspace, nk_viscpc, adjointutils::setupstandardksp(), adjointutils::setupstandardmultigrid(), adjointutils::setupstateresidualmatrix(), and inputadjoint::viscpc.
Referenced by applypc(), and nkstep().


| subroutine nksolver::getcurrentresidual | ( | real(kind=realtype), intent(out) | rhoRes, |
| real(kind=realtype), intent(out) | totalRRes | ||
| ) |
Definition at line 335 of file NKSolvers.F90.
References communication::adflow_comm_world, iteration::currentlevel, monitor::monglob, monitor::monloc, block::ncellglobal, monitor::nmonsum, inputtimespectral::ntimeintervalsspectral, utils::setpointers(), utils::sumallresiduals(), utils::sumresiduals(), and constants::zero.
Referenced by getfreestreamresidual(), and solvers::solvestate().


| subroutine nksolver::getewtol | ( | real(kind=alwaysrealtype), intent(in) | norm, |
| real(kind=alwaysrealtype), intent(in) | old_norm, | ||
| real(kind=alwaysrealtype), intent(in) | rtol_last, | ||
| real(kind=alwaysrealtype), intent(out) | rtol | ||
| ) |
Definition at line 1606 of file NKSolvers.F90.
References constants::five.
Referenced by anksolver::ankstep(), anksolver::ankturbsolveksp(), and nkstep().

| subroutine nksolver::getfreestreamresidual | ( | real(kind=realtype), intent(out) | rhoRes, |
| real(kind=realtype), intent(out) | totalRRes | ||
| ) |
Definition at line 280 of file NKSolvers.F90.
References computeresidualnk(), getcurrentresidual(), getinfo(), getinfosize(), blockpointers::ib, blockpointers::jb, blockpointers::kb, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, setinfo(), utils::setpointers(), blockpointers::w, and flowvarrefstate::winf.
Referenced by solvers::solvestate().


| subroutine nksolver::getinfo | ( | real(kind=realtype), dimension(isize), intent(out) | info, |
| integer(kind=inttype), intent(in) | iSize | ||
| ) |
Definition at line 1560 of file NKSolvers.F90.
References flowvarrefstate::eddymodel, blockpointers::ib, blockpointers::jb, blockpointers::kb, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, blockpointers::p, blockpointers::rev, blockpointers::rlv, utils::setpointers(), flowvarrefstate::viscous, and blockpointers::w.
Referenced by getfreestreamresidual().


| subroutine nksolver::getinfosize | ( | integer(kind=inttype), intent(out) | iSize | ) |
Definition at line 1487 of file NKSolvers.F90.
References flowvarrefstate::eddymodel, blockpointers::ib, blockpointers::jb, blockpointers::kb, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, utils::setpointers(), and flowvarrefstate::viscous.
Referenced by getfreestreamresidual().


| subroutine nksolver::getres | ( | real(kind=realtype), dimension(ndimw), intent(inout) | res, |
| integer(kind=inttype), intent(in) | ndimw | ||
| ) |
Definition at line 1413 of file NKSolvers.F90.
References computeresidualnk(), blockpointers::dw, blockpointers::il, blockpointers::jl, blockpointers::kl, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, constants::one, utils::setpointers(), and blockpointers::volref.

| subroutine nksolver::getstates | ( | real(kind=realtype), dimension(ndimw), intent(out) | states, |
| integer(kind=inttype), intent(in) | ndimw | ||
| ) |
Definition at line 1378 of file NKSolvers.F90.
References blockpointers::il, blockpointers::jl, blockpointers::kl, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, utils::setpointers(), and blockpointers::w.

| subroutine nksolver::linearresidualmonitor | ( | myKSP, | |
| integer(kind=inttype) | n, | ||
| real(kind=alwaysrealtype) | rnorm, | ||
| integer(kind=inttype) | dummy, | ||
| integer(kind=inttype) | ierr | ||
| ) |
Definition at line 221 of file NKSolvers.F90.
References communication::myid.
Referenced by anksolver::setupanksolver(), and setupnksolver().

| subroutine nksolver::lscubic | ( | x, | |
| f, | |||
| g, | |||
| y, | |||
| w, | |||
| real(kind=alwaysrealtype) | fnorm, | ||
| real(kind=alwaysrealtype) | ynorm, | ||
| real(kind=alwaysrealtype) | gnorm, | ||
| integer(kind=inttype) | nfevals, | ||
| logical | flag, | ||
| real(kind=alwaysrealtype) | lambda | ||
| ) |
Definition at line 681 of file NKSolvers.F90.
References computeresidualnk(), utils::echk(), communication::myid, nk_switchtol, setrvec(), initializeflow::setuniformflow(), setw(), constants::three, iteration::totalr0, and constants::zero.
Referenced by nkstep().


| subroutine nksolver::lsnm | ( | x, | |
| f, | |||
| g, | |||
| y, | |||
| w, | |||
| real(kind=alwaysrealtype) | fnorm, | ||
| real(kind=alwaysrealtype) | ynorm, | ||
| real(kind=alwaysrealtype) | gnorm, | ||
| integer(kind=inttype) | nfevals, | ||
| logical | flag, | ||
| real(kind=alwaysrealtype) | step | ||
| ) |
Definition at line 987 of file NKSolvers.F90.
References computeresidualnk(), utils::echk(), iter_k, iter_m, nklsfuncevals, setrvec(), and setw().
Referenced by nkstep().


| subroutine nksolver::lsnone | ( | x, | |
| f, | |||
| g, | |||
| y, | |||
| w, | |||
| integer(kind=inttype) | nfevals, | ||
| logical | flag, | ||
| real(kind=alwaysrealtype) | step | ||
| ) |
Definition at line 950 of file NKSolvers.F90.
References computeresidualnk(), utils::echk(), nk_fixedstep, setrvec(), and setw().
Referenced by nkstep().


| subroutine nksolver::nkmatmult | ( | A, | |
| vecX, | |||
| vecY, | |||
| integer(kind=inttype) | ierr | ||
| ) |
Definition at line 244 of file NKSolvers.F90.
References utils::echk(), nk_cfl, and constants::one.
Referenced by setupnksolver().


| subroutine nksolver::nkstep | ( | logical, intent(in) | firstCall | ) |
Definition at line 512 of file NKSolvers.F90.
References iteration::approxtotalits, computeresidualnk(), constants::cubiclinesearch, utils::echk(), inputphysics::equations, formfunction_mf(), formjacobiannk(), getewtol(), iter_k, iter_m, iteration::itertype, inputiteration::l2conv, iteration::linresmonitor, lscubic(), lsnm(), lsnone(), mmax, nk_cfl, nk_cfl0, nk_iter, nk_jacobianlag, nk_ls, nk_rtolinit, nk_subspace, nk_useew, constants::nolinesearch, constants::nonmonotonelinesearch, flowvarrefstate::nw, flowvarrefstate::nwf, oldnorm, killsignals::routinefailed, rtollast, setrvec(), setupnksolver(), setwvec(), iteration::stepmonitor, and iteration::totalr0.
Referenced by solvers::solvestate().


| subroutine nksolver::setinfo | ( | real(kind=realtype), dimension(isize), intent(in) | info, |
| integer(kind=inttype), intent(in) | iSize | ||
| ) |
Definition at line 1515 of file NKSolvers.F90.
References flowvarrefstate::eddymodel, blockpointers::ib, blockpointers::jb, blockpointers::kb, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, blockpointers::p, blockpointers::rev, blockpointers::rlv, utils::setpointers(), flowvarrefstate::viscous, and blockpointers::w.
Referenced by getfreestreamresidual().


| subroutine nksolver::setrvec | ( | rVec, | |
| real(kind=alwaysrealtype), intent(out), optional | flowRes, | ||
| real(kind=alwaysrealtype), intent(out), optional | turbRes, | ||
| real(kind=alwaysrealtype), intent(out), optional | totalRes | ||
| ) |
Definition at line 1262 of file NKSolvers.F90.
References communication::adflow_comm_world, blockpointers::dw, utils::echk(), blockpointers::il, blockpointers::jl, blockpointers::kl, flowvarrefstate::nt1, flowvarrefstate::nt2, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, flowvarrefstate::nwf, utils::setpointers(), inputiteration::turbresscale, blockpointers::volref, and constants::zero.
Referenced by anksolver::ankstep(), anksolver::computeunsteadyresank(), anksolver::computeunsteadyresankturb(), anksolver::formfunction_mf(), formfunction_mf(), anksolver::formfunction_mf_turb(), lscubic(), lsnm(), lsnone(), and nkstep().


| subroutine nksolver::setstates | ( | real(kind=realtype), dimension(ndimw), intent(in) | states, |
| integer(kind=inttype), intent(in) | ndimw | ||
| ) |
Definition at line 1452 of file NKSolvers.F90.
References blockpointers::il, blockpointers::jl, blockpointers::kl, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, utils::setpointers(), and blockpointers::w.

| subroutine nksolver::setupnksolver |
Definition at line 84 of file NKSolvers.F90.
References communication::adflow_comm_world, utils::echk(), stencils::euler_pc_stencil, formfunction_mf(), linearresidualmonitor(), adjointutils::mymatcreate(), stencils::n_euler_pc, stencils::n_visc_pc, adjointvars::ncellslocal, nk_amglevels, nk_amgnsmooth, nk_iter, nk_precondtype, nk_solversetup, nk_viscpc, nkmatmult(), inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, amg::setupamg(), adjointutils::statepreallocation(), inputiteration::uselinresmonitor, stencils::visc_pc_stencil, flowvarrefstate::viscous, and inputadjoint::viscpc.
Referenced by applypc(), and nkstep().


| subroutine nksolver::setw | ( | wVec | ) |
Definition at line 1331 of file NKSolvers.F90.
References utils::echk(), blockpointers::il, blockpointers::jl, blockpointers::kl, flowvarrefstate::nt1, flowvarrefstate::nt2, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nwf, utils::setpointers(), blockpointers::w, and flowvarrefstate::winf.
Referenced by formfunction_mf(), lscubic(), lsnm(), and lsnone().


| subroutine nksolver::setwvec | ( | wVec | ) |
Definition at line 1222 of file NKSolvers.F90.
References utils::echk(), blockpointers::il, blockpointers::jl, blockpointers::kl, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, utils::setpointers(), and blockpointers::w.
Referenced by applypc(), and nkstep().


| integer(kind=inttype) nksolver::applypcsubspacesize |
Definition at line 80 of file NKSolvers.F90.
Referenced by applypc().
| real(kind=realtype) nksolver::ew_alpha |
Definition at line 64 of file NKSolvers.F90.
| real(kind=realtype) nksolver::ew_alpha2 |
Definition at line 65 of file NKSolvers.F90.
| real(kind=realtype) nksolver::ew_gamma |
Definition at line 63 of file NKSolvers.F90.
| real(kind=realtype) nksolver::ew_rtol_0 |
Definition at line 61 of file NKSolvers.F90.
| real(kind=realtype) nksolver::ew_rtol_max |
Definition at line 62 of file NKSolvers.F90.
| real(kind=realtype) nksolver::ew_threshold |
Definition at line 66 of file NKSolvers.F90.
| integer(kind=inttype) nksolver::ew_version |
Definition at line 60 of file NKSolvers.F90.
| logical nksolver::freestreamresset = .False. |
Definition at line 70 of file NKSolvers.F90.
Referenced by solvers::solvestate().
| integer(kind=inttype) nksolver::iter_k |
Definition at line 76 of file NKSolvers.F90.
| integer(kind=inttype) nksolver::iter_m |
Definition at line 77 of file NKSolvers.F90.
| integer(kind=inttype) nksolver::mmax = 5 |
Definition at line 75 of file NKSolvers.F90.
Referenced by nkstep().
| logical nksolver::nk_adpc |
Definition at line 47 of file NKSolvers.F90.
Referenced by formjacobiannk().
| integer(kind=inttype) nksolver::nk_amglevels |
Definition at line 42 of file NKSolvers.F90.
Referenced by setupnksolver().
| integer(kind=inttype) nksolver::nk_amgnsmooth |
Definition at line 43 of file NKSolvers.F90.
Referenced by setupnksolver().
| integer(kind=inttype) nksolver::nk_asmoverlap |
Definition at line 35 of file NKSolvers.F90.
Referenced by formjacobiannk().
| integer(kind=inttype) nksolver::nk_asmoverlapcoarse |
Definition at line 36 of file NKSolvers.F90.
Referenced by formjacobiannk().
| real(kind=realtype) nksolver::nk_cfl |
Definition at line 71 of file NKSolvers.F90.
Referenced by nkmatmult(), nkstep(), and solvers::solvestate().
| real(kind=realtype) nksolver::nk_cfl0 |
Definition at line 49 of file NKSolvers.F90.
Referenced by nkstep().
| real(kind=realtype) nksolver::nk_divtol = 10 |
Definition at line 52 of file NKSolvers.F90.
| real(kind=realtype) nksolver::nk_fixedstep |
Definition at line 53 of file NKSolvers.F90.
Referenced by lsnone().
| integer(kind=inttype) nksolver::nk_ilufill |
Definition at line 37 of file NKSolvers.F90.
Referenced by formjacobiannk().
| integer(kind=inttype) nksolver::nk_ilufillcoarse |
Definition at line 38 of file NKSolvers.F90.
Referenced by formjacobiannk().
| integer(kind=inttype) nksolver::nk_innerpreconits |
Definition at line 39 of file NKSolvers.F90.
Referenced by formjacobiannk().
| integer(kind=inttype) nksolver::nk_innerpreconitscoarse |
Definition at line 40 of file NKSolvers.F90.
Referenced by formjacobiannk().
| integer(kind=inttype) nksolver::nk_iter |
Definition at line 57 of file NKSolvers.F90.
Referenced by applypc(), nkstep(), and setupnksolver().
| integer(kind=inttype) nksolver::nk_jacobianlag |
Definition at line 33 of file NKSolvers.F90.
| integer(kind=inttype) nksolver::nk_ls |
Definition at line 44 of file NKSolvers.F90.
Referenced by nkstep(), and solvers::solvestate().
| integer(kind=inttype) nksolver::nk_outerpreconits |
Definition at line 41 of file NKSolvers.F90.
Referenced by formjacobiannk().
| character(len=maxstringlen) nksolver::nk_precondtype |
Definition at line 45 of file NKSolvers.F90.
Referenced by formjacobiannk(), and setupnksolver().
| real(kind=realtype) nksolver::nk_rtolinit |
Definition at line 51 of file NKSolvers.F90.
Referenced by nkstep().
| logical nksolver::nk_solversetup = .False. |
Definition at line 56 of file NKSolvers.F90.
Referenced by applypc(), destroynksolver(), and setupnksolver().
| integer(kind=inttype) nksolver::nk_subspace |
Definition at line 34 of file NKSolvers.F90.
Referenced by formjacobiannk(), and nkstep().
| real(kind=realtype) nksolver::nk_switchtol |
Definition at line 50 of file NKSolvers.F90.
Referenced by lscubic(), and solvers::solvestate().
| logical nksolver::nk_useew |
Definition at line 46 of file NKSolvers.F90.
Referenced by nkstep().
| logical nksolver::nk_viscpc |
Definition at line 48 of file NKSolvers.F90.
Referenced by formjacobiannk(), and setupnksolver().
| real(kind=realtype), dimension(:), allocatable nksolver::nklsfuncevals |
Definition at line 74 of file NKSolvers.F90.
Referenced by lsnm(), and solvers::solvestate().
| real(kind=alwaysrealtype) nksolver::oldnorm |
Definition at line 67 of file NKSolvers.F90.
Referenced by nkstep().
| real(kind=alwaysrealtype) nksolver::rtollast |
Definition at line 67 of file NKSolvers.F90.
Referenced by nkstep().
| logical nksolver::usenksolver |
Definition at line 32 of file NKSolvers.F90.
Referenced by solvers::solvestate().