ADflow  v1.0
ADflow is a finite volume RANS solver tailored for gradient-based aerodynamic design optimization.
Functions/Subroutines
adjointutils Module Reference

Functions/Subroutines

subroutine setupstateresidualmatrix (matrix, useAD, usePC, useTranspose, useObjective, frozenTurb, level, useTurbOnly, useCoarseMats)
 
subroutine allocderivativevalues (level)
 
subroutine zeroadseeds (nn, level, sps)
 
subroutine setup_pc_coloring (nn, level, nColor)
 
subroutine setup_drdw_euler_coloring (nn, level, nColor)
 
subroutine setup_drdw_visc_coloring (nn, level, nColor)
 
subroutine setup_3x3x3_coloring (nn, level, nColor)
 
subroutine setup_5x5x5_coloring (nn, level, nColor)
 
subroutine setup_bf_coloring (nn, level, nColor)
 
subroutine mymatcreate (matrix, blockSize, m, n, nnzDiagonal, nnzOffDiag, file, line)
 
subroutine mykspmonitor (myKsp, n, rnorm, dummy, ierr)
 
subroutine setupstandardksp (kspObject, kspObjectType, gmresRestart, preConSide, globalPCType, ASMOverlap, globalPreConIts, localPCType, localMatrixOrdering, localFillLevel, localPreConIts)
 
subroutine setupstandardmultigrid (kspObject, kspObjectType, gmresRestart, preConSide, ASMOverlap, outerPreconIts, localMatrixOrdering, fillLevel, localPreConIts, ASMOverlapCoarse, fillLevelCoarse, localPreConItsCoarse)
 
subroutine destroypetscvars
 
subroutine initializepetsc
 
subroutine finalizepetsc
 
subroutine statepreallocation (onProc, offProc, wSize, stencil, N_stencil, level, transposed)
 
subroutine referenceshocksensor
 
subroutine setfdreference (level)
 
subroutine resetfdreference (level)
 
subroutine setdiffsizes
 

Function/Subroutine Documentation

◆ allocderivativevalues()

subroutine adjointutils::allocderivativevalues ( integer(kind=inttype)  level)

◆ destroypetscvars()

subroutine adjointutils::destroypetscvars

Definition at line 1646 of file adjointUtils.F90.

References adjointpetsc::adjointpetscvarsallocated, inputadjoint::approxpc, amg::destroyamg(), and utils::echk().

Referenced by adjointapi::createpetscvars().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ finalizepetsc()

subroutine adjointutils::finalizepetsc

Definition at line 1691 of file adjointUtils.F90.

◆ initializepetsc()

subroutine adjointutils::initializepetsc

Definition at line 1678 of file adjointUtils.F90.

References communication::adflow_comm_world.

◆ mykspmonitor()

subroutine adjointutils::mykspmonitor ( real(kind=realtype), dimension(:, :), pointer  myKsp,
integer(kind=inttype)  n,
real(kind=realtype)  rnorm,
integer(kind=inttype)  dummy,
integer(kind=inttype)  ierr 
)

Definition at line 1340 of file adjointUtils.F90.

References inputadjoint::adjmonstep, and communication::myid.

Referenced by adjointapi::setuppetscksp().

Here is the caller graph for this function:

◆ mymatcreate()

subroutine adjointutils::mymatcreate (   matrix,
integer(kind=inttype), intent(in)  blockSize,
integer(kind=inttype), intent(in)  m,
integer(kind=inttype), intent(in)  n,
integer(kind=inttype), dimension(*), intent(in)  nnzDiagonal,
integer(kind=inttype), dimension(*), intent(in)  nnzOffDiag,
character(len=*)  file,
integer(kind=inttype)  line 
)

Definition at line 1294 of file adjointUtils.F90.

References communication::adflow_comm_world, utils::echk(), and utils::setpointers().

Referenced by adjointapi::createpetscvars(), anksolver::setupanksolver(), and nksolver::setupnksolver().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ referenceshocksensor()

subroutine adjointutils::referenceshocksensor

◆ resetfdreference()

subroutine adjointutils::resetfdreference ( integer(kind=inttype)  level)

Definition at line 2026 of file adjointUtils.F90.

References blockpointers::dw, blockpointers::ib, blockpointers::jb, blockpointers::kb, inputtimespectral::ntimeintervalsspectral, flowvarrefstate::nw, flowvarrefstate::nwf, utils::setpointers(), and blockpointers::w.

Referenced by setupstateresidualmatrix().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setdiffsizes()

subroutine adjointutils::setdiffsizes

Definition at line 2060 of file adjointUtils.F90.

References inputphysics::equations, blockpointers::ib, blockpointers::ie, diffsizes::isize1ofdrfbcdata, diffsizes::isize1ofdrfbmti1, diffsizes::isize1ofdrfbmti2, diffsizes::isize1ofdrfbmtj1, diffsizes::isize1ofdrfbmtj2, diffsizes::isize1ofdrfbmtk1, diffsizes::isize1ofdrfbmtk2, diffsizes::isize1ofdrfbvti1, diffsizes::isize1ofdrfbvti2, diffsizes::isize1ofdrfbvtk1, diffsizes::isize1ofdrfbvtk2, diffsizes::isize1ofdrfdrfbcdata_axismoment, diffsizes::isize1ofdrfdrfbcdata_cavitation, diffsizes::isize1ofdrfdrfbcdata_fp, diffsizes::isize1ofdrfdrfbcdata_fv, diffsizes::isize1ofdrfdrfbcdata_m, diffsizes::isize1ofdrfdrfbcdata_norm, diffsizes::isize1ofdrfdrfbcdata_oarea, diffsizes::isize1ofdrfdrfbcdata_rface, diffsizes::isize1ofdrfdrfbcdata_sepsensor, diffsizes::isize1ofdrfdrfbcdata_sepsensorks, diffsizes::isize1ofdrfdrfbcdata_sepsensorksarea, diffsizes::isize1ofdrfdrfviscsubface_tau, diffsizes::isize1ofdrfdtl, diffsizes::isize1ofdrfdvt, diffsizes::isize1ofdrfdw, diffsizes::isize1ofdrfflowdoms, diffsizes::isize1ofdrfflowdoms_bcdata, diffsizes::isize1ofdrfflowdoms_dw, diffsizes::isize1ofdrfflowdoms_vol, diffsizes::isize1ofdrfflowdoms_w, diffsizes::isize1ofdrfflowdoms_x, diffsizes::isize1ofdrffw, diffsizes::isize1ofdrfgamma, diffsizes::isize1ofdrfp, diffsizes::isize1ofdrfprod, diffsizes::isize1ofdrfradi, diffsizes::isize1ofdrfradj, diffsizes::isize1ofdrfradk, diffsizes::isize1ofdrfrev, diffsizes::isize1ofdrfrlv, diffsizes::isize1ofdrfs, diffsizes::isize1ofdrfsfacei, diffsizes::isize1ofdrfsfacej, diffsizes::isize1ofdrfsfacek, diffsizes::isize1ofdrfsi, diffsizes::isize1ofdrfsj, diffsizes::isize1ofdrfsk, diffsizes::isize1ofdrfviscsubface, diffsizes::isize1ofdrfvol, diffsizes::isize1ofdrfvort, diffsizes::isize1ofdrfw, diffsizes::isize1ofdrfx, diffsizes::isize1ofdu1, diffsizes::isize1ofdu2, diffsizes::isize1ofdu3, diffsizes::isize1ofetot, diffsizes::isize1offlux, diffsizes::isize1ofk, diffsizes::isize1ofleft, diffsizes::isize1ofp, diffsizes::isize1ofrho, diffsizes::isize1ofright, diffsizes::isize1ofu, diffsizes::isize1ofv, diffsizes::isize1ofw, diffsizes::isize2ofdrfbmti1, diffsizes::isize2ofdrfbmti2, diffsizes::isize2ofdrfbmtj1, diffsizes::isize2ofdrfbmtj2, diffsizes::isize2ofdrfbmtk1, diffsizes::isize2ofdrfbmtk2, diffsizes::isize2ofdrfbvti1, diffsizes::isize2ofdrfbvti2, diffsizes::isize2ofdrfbvtk1, diffsizes::isize2ofdrfbvtk2, diffsizes::isize2ofdrfdrfbcdata_axismoment, diffsizes::isize2ofdrfdrfbcdata_cavitation, diffsizes::isize2ofdrfdrfbcdata_fp, diffsizes::isize2ofdrfdrfbcdata_fv, diffsizes::isize2ofdrfdrfbcdata_m, diffsizes::isize2ofdrfdrfbcdata_norm, diffsizes::isize2ofdrfdrfbcdata_oarea, diffsizes::isize2ofdrfdrfbcdata_rface, diffsizes::isize2ofdrfdrfbcdata_sepsensor, diffsizes::isize2ofdrfdrfbcdata_sepsensorks, diffsizes::isize2ofdrfdrfbcdata_sepsensorksarea, diffsizes::isize2ofdrfdrfviscsubface_tau, diffsizes::isize2ofdrfdtl, diffsizes::isize2ofdrfdvt, diffsizes::isize2ofdrfdw, diffsizes::isize2ofdrfflowdoms, diffsizes::isize2ofdrfflowdoms_dw, diffsizes::isize2ofdrfflowdoms_vol, diffsizes::isize2ofdrfflowdoms_w, diffsizes::isize2ofdrfflowdoms_x, diffsizes::isize2ofdrffw, diffsizes::isize2ofdrfgamma, diffsizes::isize2ofdrfp, diffsizes::isize2ofdrfprod, diffsizes::isize2ofdrfradi, diffsizes::isize2ofdrfradj, diffsizes::isize2ofdrfradk, diffsizes::isize2ofdrfrev, diffsizes::isize2ofdrfrlv, diffsizes::isize2ofdrfs, diffsizes::isize2ofdrfsfacei, diffsizes::isize2ofdrfsfacej, diffsizes::isize2ofdrfsfacek, diffsizes::isize2ofdrfsi, diffsizes::isize2ofdrfsj, diffsizes::isize2ofdrfsk, diffsizes::isize2ofdrfvol, diffsizes::isize2ofdrfvort, diffsizes::isize2ofdrfw, diffsizes::isize2ofdrfx, diffsizes::isize3ofdrfbmti1, diffsizes::isize3ofdrfbmti2, diffsizes::isize3ofdrfbmtj1, diffsizes::isize3ofdrfbmtj2, diffsizes::isize3ofdrfbmtk1, diffsizes::isize3ofdrfbmtk2, diffsizes::isize3ofdrfbvti1, diffsizes::isize3ofdrfbvti2, diffsizes::isize3ofdrfbvtk1, diffsizes::isize3ofdrfbvtk2, diffsizes::isize3ofdrfdrfbcdata_fp, diffsizes::isize3ofdrfdrfbcdata_fv, diffsizes::isize3ofdrfdrfbcdata_m, diffsizes::isize3ofdrfdrfbcdata_norm, diffsizes::isize3ofdrfdrfbcdata_oarea, diffsizes::isize3ofdrfdrfviscsubface_tau, diffsizes::isize3ofdrfdtl, diffsizes::isize3ofdrfdvt, diffsizes::isize3ofdrfdw, diffsizes::isize3ofdrfflowdoms, diffsizes::isize3ofdrfflowdoms_dw, diffsizes::isize3ofdrfflowdoms_vol, diffsizes::isize3ofdrfflowdoms_w, diffsizes::isize3ofdrfflowdoms_x, diffsizes::isize3ofdrffw, diffsizes::isize3ofdrfgamma, diffsizes::isize3ofdrfp, diffsizes::isize3ofdrfprod, diffsizes::isize3ofdrfradi, diffsizes::isize3ofdrfradj, diffsizes::isize3ofdrfradk, diffsizes::isize3ofdrfrev, diffsizes::isize3ofdrfrlv, diffsizes::isize3ofdrfs, diffsizes::isize3ofdrfsfacei, diffsizes::isize3ofdrfsfacej, diffsizes::isize3ofdrfsfacek, diffsizes::isize3ofdrfsi, diffsizes::isize3ofdrfsj, diffsizes::isize3ofdrfsk, diffsizes::isize3ofdrfvol, diffsizes::isize3ofdrfvort, diffsizes::isize3ofdrfw, diffsizes::isize3ofdrfx, diffsizes::isize4ofdrfbmti1, diffsizes::isize4ofdrfbmti2, diffsizes::isize4ofdrfbmtj1, diffsizes::isize4ofdrfbmtj2, diffsizes::isize4ofdrfbmtk1, diffsizes::isize4ofdrfbmtk2, diffsizes::isize4ofdrfdvt, diffsizes::isize4ofdrfdw, diffsizes::isize4ofdrfflowdoms_dw, diffsizes::isize4ofdrfflowdoms_w, diffsizes::isize4ofdrfflowdoms_x, diffsizes::isize4ofdrffw, diffsizes::isize4ofdrfs, diffsizes::isize4ofdrfsi, diffsizes::isize4ofdrfsj, diffsizes::isize4ofdrfsk, diffsizes::isize4ofdrfw, diffsizes::isize4ofdrfx, blockpointers::jb, blockpointers::je, blockpointers::kb, blockpointers::ke, blockpointers::nbocos, flowvarrefstate::nt1, flowvarrefstate::nt2, inputtimespectral::ntimeintervalsspectral, blockpointers::nviscbocos, flowvarrefstate::nw, flowvarrefstate::nwf, and constants::ransequations.

◆ setfdreference()

subroutine adjointutils::setfdreference ( integer(kind=inttype)  level)

◆ setup_3x3x3_coloring()

subroutine adjointutils::setup_3x3x3_coloring ( integer(kind=inttype), intent(in)  nn,
integer(kind=inttype), intent(in)  level,
integer(kind=inttype), intent(out)  nColor 
)

Definition at line 1189 of file adjointUtils.F90.

References blockpointers::ib, blockpointers::jb, blockpointers::kb, and utils::setpointers().

Referenced by setupstateresidualmatrix().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setup_5x5x5_coloring()

subroutine adjointutils::setup_5x5x5_coloring ( integer(kind=inttype), intent(in)  nn,
integer(kind=inttype), intent(in)  level,
integer(kind=inttype), intent(out)  nColor 
)

Definition at line 1225 of file adjointUtils.F90.

References blockpointers::ib, blockpointers::jb, blockpointers::kb, and utils::setpointers().

Here is the call graph for this function:

◆ setup_bf_coloring()

subroutine adjointutils::setup_bf_coloring ( integer(kind=inttype), intent(in)  nn,
integer(kind=inttype), intent(in)  level,
integer(kind=inttype), intent(out)  nColor 
)

Definition at line 1261 of file adjointUtils.F90.

References blockpointers::ib, blockpointers::jb, blockpointers::kb, and utils::setpointers().

Here is the call graph for this function:

◆ setup_drdw_euler_coloring()

subroutine adjointutils::setup_drdw_euler_coloring ( integer(kind=inttype), intent(in)  nn,
integer(kind=inttype), intent(in)  level,
integer(kind=inttype), intent(out)  nColor 
)

Definition at line 1121 of file adjointUtils.F90.

References blockpointers::ib, blockpointers::jb, blockpointers::kb, and utils::setpointers().

Referenced by setupstateresidualmatrix().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setup_drdw_visc_coloring()

subroutine adjointutils::setup_drdw_visc_coloring ( integer(kind=inttype), intent(in)  nn,
integer(kind=inttype), intent(in)  level,
integer(kind=inttype), intent(out)  nColor 
)

Definition at line 1153 of file adjointUtils.F90.

References blockpointers::ib, blockpointers::jb, blockpointers::kb, and utils::setpointers().

Referenced by setupstateresidualmatrix().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setup_pc_coloring()

subroutine adjointutils::setup_pc_coloring ( integer(kind=inttype), intent(in)  nn,
integer(kind=inttype), intent(in)  level,
integer(kind=inttype), intent(out)  nColor 
)

Definition at line 1089 of file adjointUtils.F90.

References blockpointers::ib, blockpointers::jb, blockpointers::kb, and utils::setpointers().

Referenced by setupstateresidualmatrix().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setupstandardksp()

subroutine adjointutils::setupstandardksp (   kspObject,
character(len=*), intent(in)  kspObjectType,
integer(kind=inttype), intent(in)  gmresRestart,
character(len=*), intent(in)  preConSide,
character(len=*), intent(in)  globalPCType,
integer(kind=inttype), intent(in)  ASMOverlap,
integer(kind=inttype), intent(in)  globalPreConIts,
character(len=*), intent(in)  localPCType,
character(len=*), intent(in)  localMatrixOrdering,
integer(kind=inttype), intent(in)  localFillLevel,
integer(kind=inttype), intent(in)  localPreConIts 
)

Definition at line 1374 of file adjointUtils.F90.

References utils::echk(), and inputadjoint::gmresorthogtype.

Referenced by anksolver::formjacobianank(), anksolver::formjacobianankturb(), nksolver::formjacobiannk(), and adjointapi::setuppetscksp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setupstandardmultigrid()

subroutine adjointutils::setupstandardmultigrid (   kspObject,
character(len=*), intent(in)  kspObjectType,
integer(kind=inttype), intent(in)  gmresRestart,
character(len=*), intent(in)  preConSide,
integer(kind=inttype), intent(in)  ASMOverlap,
integer(kind=inttype), intent(in)  outerPreconIts,
character(len=*), intent(in)  localMatrixOrdering,
integer(kind=inttype), intent(in)  fillLevel,
integer(kind=inttype), intent(in)  localPreConIts,
integer(kind=inttype), intent(in)  ASMOverlapCoarse,
integer(kind=inttype), intent(in)  fillLevelCoarse,
integer(kind=inttype), intent(in)  localPreConItsCoarse 
)

◆ setupstateresidualmatrix()

subroutine adjointutils::setupstateresidualmatrix (   matrix,
logical, intent(in)  useAD,
logical, intent(in)  usePC,
logical, intent(in)  useTranspose,
logical, intent(in)  useObjective,
logical, intent(in)  frozenTurb,
integer(kind=inttype), intent(in)  level,
logical, intent(in), optional  useTurbOnly,
logical, intent(in), optional  useCoarseMats 
)

Definition at line 7 of file adjointUtils.F90.

References inputdiscretization::acousticscalefactor, allocderivativevalues(), inputphysics::alphad, amg::amglevels, inputphysics::betad, masterroutines::block_res_state(), masterroutines::block_res_state_d(), amg::coarseindices, amg::coarseoversetindices, iteration::currentlevel, adjointvars::derivvarsallocated, utils::echk(), inputphysics::equations, stencils::euler_drdw_stencil, stencils::euler_pc_stencil, block::flowdomsd, oversetutilities::fractoweights(), blockpointers::fringeptr, surfacefamilies::fullfamlist, utils::getdirangle(), blockpointers::globalcell, iteration::groundlevel, blockpointers::ib, blockpointers::iblank, blockpointers::il, diffsizes::isize1ofdrfbcdata, diffsizes::isize1ofdrfviscsubface, blockpointers::jb, blockpointers::jl, blockpointers::kb, blockpointers::kl, inputphysics::lengthrefd, inputdiscretization::lumpeddiss, inputphysics::machcoefd, inputphysics::machd, inputphysics::machgridd, masterroutines::master(), stencils::n_euler_drdw, stencils::n_euler_pc, stencils::n_visc_drdw, stencils::n_visc_pc, blockpointers::nbocos, flowvarrefstate::nt1, flowvarrefstate::nt2, inputtimespectral::ntimeintervalsspectral, blockpointers::nviscbocos, flowvarrefstate::nw, flowvarrefstate::nwf, onblock(), inputdiscretization::orderturb, flowvarrefstate::pinfdimd, inputphysics::pointrefd, referenceshocksensor(), resetfdreference(), flowvarrefstate::rhoinfdimd, iteration::rkstage, setblock(), setfdreference(), utils::setpointers(), utils::setpointers_d(), setup_3x3x3_coloring(), setup_drdw_euler_coloring(), setup_drdw_visc_coloring(), setup_pc_coloring(), flowvarrefstate::tinfdimd, inputadjoint::usediagtspc, stencils::visc_drdw_stencil, stencils::visc_pc_stencil, flowvarrefstate::viscous, inputadjoint::viscpc, blockpointers::w, haloexchange::whalo2(), and zeroadseeds().

Referenced by anksolver::formjacobianank(), anksolver::formjacobianankturb(), nksolver::formjacobiannk(), adjointapi::setupallresidualmatricesfwd(), and adjointapi::setuppetscksp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ statepreallocation()

subroutine adjointutils::statepreallocation ( integer(kind=inttype), dimension(wsize), intent(out)  onProc,
integer(kind=inttype), dimension(wsize), intent(out)  offProc,
integer(kind=inttype), intent(in)  wSize,
integer(kind=inttype), dimension(n_stencil, 3), intent(in)  stencil,
integer(kind=inttype), intent(in)  N_stencil,
integer(kind=inttype), intent(in)  level,
logical, intent(in)  transposed 
)

◆ zeroadseeds()

subroutine adjointutils::zeroadseeds ( integer(kind=inttype)  nn,
integer(kind=inttype)  level,
integer(kind=inttype)  sps 
)

Definition at line 920 of file adjointUtils.F90.

References actuatorregiondata::actuatorregionsd, inputphysics::alphad, inputphysics::betad, cgnsgrid::cgnsdoms, cgnsgrid::cgnsdomsd, cgnsgrid::cgnsndom, communication::commpatternoverset, inputphysics::dragdirectiond, block::flowdoms, block::flowdomsd, flowvarrefstate::gammainfd, flowvarrefstate::hrefd, communication::internaloverset, inputphysics::liftdirectiond, inputphysics::machcoefd, inputphysics::machd, inputphysics::machgridd, flowvarrefstate::muinfd, flowvarrefstate::murefd, actuatorregiondata::nactuatorregions, oversetdata::oversetpresent, flowvarrefstate::pinfcorrd, flowvarrefstate::pinfd, flowvarrefstate::pinfdimd, inputphysics::pointrefd, flowvarrefstate::prefd, flowvarrefstate::rgasd, inputphysics::rgasdimd, flowvarrefstate::rhoinfd, flowvarrefstate::rhoinfdimd, flowvarrefstate::rhorefd, flowvarrefstate::timerefd, flowvarrefstate::tinfdimd, flowvarrefstate::trefd, flowvarrefstate::uinfd, flowvarrefstate::urefd, inputphysics::veldirfreestreamd, flowvarrefstate::winfd, and constants::zero.

Referenced by adjointapi::computematrixfreeproductbwd(), adjointapi::computematrixfreeproductbwdfast(), adjointapi::computematrixfreeproductfwd(), adjointdebug::computematrixfreeproductfwdcs(), adjointdebug::computematrixfreeproductfwdfd(), adjointapi::drdwmatmult(), fortranpc::setuppcmatrix(), setupstateresidualmatrix(), adjointapi::solveadjoint(), adjointapi::solveadjointforrhs(), and adjointapi::solvedirectforrhs().

Here is the caller graph for this function: