cdifs_obj_PrepareSolverOperators Subroutine

subroutine cdifs_obj_PrepareSolverOperators(this)

Uses

  • proc~~cdifs_obj_preparesolveroperators~~UsesGraph proc~cdifs_obj_preparesolveroperators cdifs_obj_PrepareSolverOperators module~leapbc leapBC proc~cdifs_obj_preparesolveroperators->module~leapbc iso_fortran_env iso_fortran_env module~leapbc->iso_fortran_env module~leapblock leapBlock module~leapbc->module~leapblock module~leapeulerian leapEulerian module~leapbc->module~leapeulerian module~leapio leapIO module~leapbc->module~leapio module~leapkinds leapKinds module~leapbc->module~leapkinds module~leapparallel leapParallel module~leapbc->module~leapparallel module~leaputils leapUtils module~leapbc->module~leaputils mpi_f08 mpi_f08 module~leapbc->mpi_f08 module~leapblock->iso_fortran_env module~leapblock->module~leapkinds module~leapblock->module~leapparallel module~leapblock->mpi_f08 module~leapio_hdf5 leapIO_hdf5 module~leapblock->module~leapio_hdf5 module~leapeulerian->iso_fortran_env module~leapeulerian->module~leapblock module~leapeulerian->module~leapio module~leapeulerian->module~leapkinds module~leapeulerian->module~leapparallel module~leapeulerian->module~leaputils module~leapeulerian->mpi_f08 module~leapio_h5hut leapIO_h5hut module~leapio->module~leapio_h5hut module~leapio->module~leapio_hdf5 module~leapio_silo leapIO_silo module~leapio->module~leapio_silo module~leapio_xdmf leapIO_xdmf module~leapio->module~leapio_xdmf module~leapkinds->iso_fortran_env module~leapparallel->iso_fortran_env module~leapparallel->module~leapkinds module~leapparallel->mpi_f08 module~leaputils->module~leapkinds module~leapio_h5hut->module~leapkinds module~leapio_h5hut->module~leapparallel module~leapio_h5hut->module~leapio_hdf5 module~leapio_hdf5->module~leapkinds module~leapio_hdf5->module~leapparallel module~leapio_hdf5->module~leaputils hdf5 hdf5 module~leapio_hdf5->hdf5 module~leapio_silo->module~leapkinds module~leapio_silo->module~leapparallel module~leapio_silo->module~leaputils module~leapio_silo->mpi_f08 module~leapio_xdmf->module~leapkinds module~leapio_xdmf->module~leaputils

Prepares operators used by CDIFS. This subroutine also initializes the HYPRE solvers and builds any required operator with the specified boundary conditions.

Arguments

Type IntentOptional Attributes Name
class(cdifs_obj), intent(inout) :: this

CDIFS solver


Calls

proc~~cdifs_obj_preparesolveroperators~~CallsGraph proc~cdifs_obj_preparesolveroperators cdifs_obj_PrepareSolverOperators none~get~4 parser_obj%Get proc~cdifs_obj_preparesolveroperators->none~get~4 proc~cdifs_obj_preparesolveroperatorsdiv cdifs_obj_PrepareSolverOperatorsDIV proc~cdifs_obj_preparesolveroperators->proc~cdifs_obj_preparesolveroperatorsdiv proc~cdifs_obj_preparesolveroperatorspgrad cdifs_obj_PrepareSolverOperatorsPGRAD proc~cdifs_obj_preparesolveroperators->proc~cdifs_obj_preparesolveroperatorspgrad proc~cdifs_obj_preparesolveroperatorsplap cdifs_obj_PrepareSolverOperatorsPLAP proc~cdifs_obj_preparesolveroperators->proc~cdifs_obj_preparesolveroperatorsplap proc~cdifs_obj_preparesolveroperatorsvflap cdifs_obj_PrepareSolverOperatorsVFLAP proc~cdifs_obj_preparesolveroperators->proc~cdifs_obj_preparesolveroperatorsvflap proc~cdifs_obj_preparesolveroperatorsvlap cdifs_obj_PrepareSolverOperatorsVLAP proc~cdifs_obj_preparesolveroperators->proc~cdifs_obj_preparesolveroperatorsvlap proc~hypre_obj_selectsolver hypre_obj%hypre_obj_SelectSolver proc~cdifs_obj_preparesolveroperators->proc~hypre_obj_selectsolver proc~op_obj_init op_obj%op_obj_Init proc~cdifs_obj_preparesolveroperators->proc~op_obj_init proc~parser_obj_read0d parser_obj%parser_obj_read0D none~get~4->proc~parser_obj_read0d proc~parser_obj_read1d parser_obj%parser_obj_read1D none~get~4->proc~parser_obj_read1d proc~bc_set_checkbcexists bc_set%bc_set_CheckBCExists proc~cdifs_obj_preparesolveroperatorsdiv->proc~bc_set_checkbcexists proc~bc_set_getbctype bc_set%bc_set_GetBCType proc~cdifs_obj_preparesolveroperatorsdiv->proc~bc_set_getbctype proc~bc_set_getextents bc_set%bc_set_GetExtents proc~cdifs_obj_preparesolveroperatorsdiv->proc~bc_set_getextents proc~cdifs_obj_preparesolveroperatorspgrad->proc~bc_set_checkbcexists proc~cdifs_obj_preparesolveroperatorspgrad->proc~bc_set_getbctype proc~cdifs_obj_preparesolveroperatorspgrad->proc~bc_set_getextents proc~bc_set_getsidedirbyregion bc_set%bc_set_GetSideDirByRegion proc~cdifs_obj_preparesolveroperatorspgrad->proc~bc_set_getsidedirbyregion proc~hypre_obj_setup hypre_obj%hypre_obj_Setup proc~cdifs_obj_preparesolveroperatorsplap->proc~hypre_obj_setup proc~cdifs_obj_preparesolveroperatorsvflap->proc~bc_set_checkbcexists proc~cdifs_obj_preparesolveroperatorsvflap->proc~bc_set_getbctype proc~cdifs_obj_preparesolveroperatorsvflap->proc~bc_set_getextents proc~cdifs_obj_preparesolveroperatorsvflap->proc~bc_set_getsidedirbyregion proc~cdifs_obj_preparesolveroperatorsvflap->proc~hypre_obj_setup proc~cdifs_obj_preparesolveroperatorsvlap->proc~bc_set_checkbcexists proc~cdifs_obj_preparesolveroperatorsvlap->proc~bc_set_getbctype proc~cdifs_obj_preparesolveroperatorsvlap->proc~bc_set_getextents proc~cdifs_obj_preparesolveroperatorsvlap->proc~bc_set_getsidedirbyregion proc~bc_set_getregionindex bc_set%bc_set_GetRegionIndex proc~bc_set_checkbcexists->proc~bc_set_getregionindex proc~region_obj_getbcindex region_obj%region_obj_GetBCIndex proc~bc_set_checkbcexists->proc~region_obj_getbcindex proc~bc_set_getbctype->proc~bc_set_getregionindex proc~bc_set_getbctype->proc~region_obj_getbcindex proc~bc_set_getextents->proc~bc_set_getregionindex proc~bc_set_getsidedirbyregion->proc~bc_set_getregionindex proc~hypre_obj_setupgrids hypre_obj%hypre_obj_SetupGridS proc~hypre_obj_setup->proc~hypre_obj_setupgrids proc~hypre_obj_setupmatrixij hypre_obj%hypre_obj_SetupMatrixIJ proc~hypre_obj_setup->proc~hypre_obj_setupmatrixij proc~hypre_obj_setupmatrixs hypre_obj%hypre_obj_SetupMatrixS proc~hypre_obj_setup->proc~hypre_obj_setupmatrixs proc~hypre_obj_setuppointersij hypre_obj%hypre_obj_SetupPointersIJ proc~hypre_obj_setup->proc~hypre_obj_setuppointersij proc~hypre_obj_setuprhsij hypre_obj%hypre_obj_SetupRHSIJ proc~hypre_obj_setup->proc~hypre_obj_setuprhsij proc~hypre_obj_setuprhss hypre_obj%hypre_obj_SetupRHSS proc~hypre_obj_setup->proc~hypre_obj_setuprhss proc~hypre_obj_setuprowsij hypre_obj%hypre_obj_SetupRowsIJ proc~hypre_obj_setup->proc~hypre_obj_setuprowsij proc~hypre_obj_setupsolij hypre_obj%hypre_obj_SetupSolIJ proc~hypre_obj_setup->proc~hypre_obj_setupsolij proc~hypre_obj_setupsolijver hypre_obj%hypre_obj_SetupSolIJver proc~hypre_obj_setup->proc~hypre_obj_setupsolijver proc~hypre_obj_setupsols hypre_obj%hypre_obj_SetupSolS proc~hypre_obj_setup->proc~hypre_obj_setupsols proc~hypre_obj_setupsolvers hypre_obj%hypre_obj_SetupSolverS proc~hypre_obj_setup->proc~hypre_obj_setupsolvers proc~hypre_obj_setupstencils hypre_obj%hypre_obj_SetupStencilS proc~hypre_obj_setup->proc~hypre_obj_setupstencils none~assigndefault parser_obj%AssignDefault proc~parser_obj_read0d->none~assigndefault proc~parser_obj_fetchlabelid parser_obj%parser_obj_FetchLabelID proc~parser_obj_read0d->proc~parser_obj_fetchlabelid proc~parser_obj_read1d->none~assigndefault proc~parser_obj_read1d->proc~parser_obj_fetchlabelid proc~parser_obj_assigndefault0d parser_obj%parser_obj_AssignDefault0D none~assigndefault->proc~parser_obj_assigndefault0d proc~parser_obj_assigndefault1d parser_obj%parser_obj_AssignDefault1D none~assigndefault->proc~parser_obj_assigndefault1d none~get~3 hashtbl_obj%Get proc~bc_set_getregionindex->none~get~3 proc~hashtbl_obj_hashstring hashtbl_obj%hashtbl_obj_HashString proc~bc_set_getregionindex->proc~hashtbl_obj_hashstring hypre_structgridassemble hypre_structgridassemble proc~hypre_obj_setupgrids->hypre_structgridassemble hypre_structgridcreate hypre_structgridcreate proc~hypre_obj_setupgrids->hypre_structgridcreate hypre_structgridsetextents hypre_structgridsetextents proc~hypre_obj_setupgrids->hypre_structgridsetextents hypre_structgridsetperiodic hypre_structgridsetperiodic proc~hypre_obj_setupgrids->hypre_structgridsetperiodic hypre_ijmatrixassemble hypre_ijmatrixassemble proc~hypre_obj_setupmatrixij->hypre_ijmatrixassemble hypre_ijmatrixcreate hypre_ijmatrixcreate proc~hypre_obj_setupmatrixij->hypre_ijmatrixcreate hypre_ijmatrixgetobject hypre_ijmatrixgetobject proc~hypre_obj_setupmatrixij->hypre_ijmatrixgetobject hypre_ijmatrixinitialize hypre_ijmatrixinitialize proc~hypre_obj_setupmatrixij->hypre_ijmatrixinitialize hypre_ijmatrixsetobjecttype hypre_ijmatrixsetobjecttype proc~hypre_obj_setupmatrixij->hypre_ijmatrixsetobjecttype proc~hypre_obj_buildmatrixij hypre_obj%hypre_obj_BuildMatrixIJ proc~hypre_obj_setupmatrixij->proc~hypre_obj_buildmatrixij hypre_structmatrixassemble hypre_structmatrixassemble proc~hypre_obj_setupmatrixs->hypre_structmatrixassemble hypre_structmatrixcreate hypre_structmatrixcreate proc~hypre_obj_setupmatrixs->hypre_structmatrixcreate hypre_structmatrixinitialize hypre_structmatrixinitialize proc~hypre_obj_setupmatrixs->hypre_structmatrixinitialize proc~hypre_obj_buildmatrixs hypre_obj%hypre_obj_BuildMatrixS proc~hypre_obj_setupmatrixs->proc~hypre_obj_buildmatrixs hypre_setexecutionpolicy hypre_setexecutionpolicy proc~hypre_obj_setuppointersij->hypre_setexecutionpolicy hypre_setmemorylocation hypre_setmemorylocation proc~hypre_obj_setuppointersij->hypre_setmemorylocation hypre_setspgemmusevendor hypre_setspgemmusevendor proc~hypre_obj_setuppointersij->hypre_setspgemmusevendor proc~device_malloc_managed device_malloc_managed proc~hypre_obj_setuppointersij->proc~device_malloc_managed hypre_ijvectorassemble hypre_ijvectorassemble proc~hypre_obj_setuprhsij->hypre_ijvectorassemble hypre_ijvectorcreate hypre_ijvectorcreate proc~hypre_obj_setuprhsij->hypre_ijvectorcreate hypre_ijvectorgetobject hypre_ijvectorgetobject proc~hypre_obj_setuprhsij->hypre_ijvectorgetobject hypre_ijvectorinitialize hypre_ijvectorinitialize proc~hypre_obj_setuprhsij->hypre_ijvectorinitialize hypre_ijvectorsetobjecttype hypre_ijvectorsetobjecttype proc~hypre_obj_setuprhsij->hypre_ijvectorsetobjecttype hypre_ijvectorsetvalues hypre_ijvectorsetvalues proc~hypre_obj_setuprhsij->hypre_ijvectorsetvalues hypre_structvectorassemble hypre_structvectorassemble proc~hypre_obj_setuprhss->hypre_structvectorassemble hypre_structvectorcreate hypre_structvectorcreate proc~hypre_obj_setuprhss->hypre_structvectorcreate hypre_structvectorinitialize hypre_structvectorinitialize proc~hypre_obj_setuprhss->hypre_structvectorinitialize proc~eulerian_obj_init eulerian_obj_base%eulerian_obj_Init proc~hypre_obj_setuprowsij->proc~eulerian_obj_init proc~eulerian_obj_updateghostcells eulerian_obj_base%eulerian_obj_UpdateGhostCells proc~hypre_obj_setuprowsij->proc~eulerian_obj_updateghostcells proc~hypre_obj_setupsolij->hypre_ijvectorassemble proc~hypre_obj_setupsolij->hypre_ijvectorcreate proc~hypre_obj_setupsolij->hypre_ijvectorgetobject proc~hypre_obj_setupsolij->hypre_ijvectorinitialize proc~hypre_obj_setupsolij->hypre_ijvectorsetobjecttype proc~hypre_obj_setupsolij->hypre_ijvectorsetvalues hypre_boomeramgcreate hypre_boomeramgcreate proc~hypre_obj_setupsolijver->hypre_boomeramgcreate hypre_boomeramgsetagginterptype hypre_boomeramgsetagginterptype proc~hypre_obj_setupsolijver->hypre_boomeramgsetagginterptype hypre_boomeramgsetaggnumlevels hypre_boomeramgsetaggnumlevels proc~hypre_obj_setupsolijver->hypre_boomeramgsetaggnumlevels hypre_boomeramgsetcoarsentype hypre_boomeramgsetcoarsentype proc~hypre_obj_setupsolijver->hypre_boomeramgsetcoarsentype hypre_boomeramgsetinterptype hypre_boomeramgsetinterptype proc~hypre_obj_setupsolijver->hypre_boomeramgsetinterptype hypre_boomeramgsetkeeptransp hypre_boomeramgsetkeeptransp proc~hypre_obj_setupsolijver->hypre_boomeramgsetkeeptransp hypre_boomeramgsetmaxiter hypre_boomeramgsetmaxiter proc~hypre_obj_setupsolijver->hypre_boomeramgsetmaxiter hypre_boomeramgsetmaxlevels hypre_boomeramgsetmaxlevels proc~hypre_obj_setupsolijver->hypre_boomeramgsetmaxlevels hypre_boomeramgsetnumsweeps hypre_boomeramgsetnumsweeps proc~hypre_obj_setupsolijver->hypre_boomeramgsetnumsweeps hypre_boomeramgsetpmaxelmts hypre_boomeramgsetpmaxelmts proc~hypre_obj_setupsolijver->hypre_boomeramgsetpmaxelmts hypre_boomeramgsetprintlevel hypre_boomeramgsetprintlevel proc~hypre_obj_setupsolijver->hypre_boomeramgsetprintlevel hypre_boomeramgsetrap2 hypre_boomeramgsetrap2 proc~hypre_obj_setupsolijver->hypre_boomeramgsetrap2 hypre_boomeramgsetrelaxorder hypre_boomeramgsetrelaxorder proc~hypre_obj_setupsolijver->hypre_boomeramgsetrelaxorder hypre_boomeramgsetrelaxtype hypre_boomeramgsetrelaxtype proc~hypre_obj_setupsolijver->hypre_boomeramgsetrelaxtype hypre_boomeramgsettol hypre_boomeramgsettol proc~hypre_obj_setupsolijver->hypre_boomeramgsettol hypre_boomeramgsetup hypre_boomeramgsetup proc~hypre_obj_setupsolijver->hypre_boomeramgsetup hypre_parcsrpcgcreate hypre_parcsrpcgcreate proc~hypre_obj_setupsolijver->hypre_parcsrpcgcreate hypre_parcsrpcgsetlogging hypre_parcsrpcgsetlogging proc~hypre_obj_setupsolijver->hypre_parcsrpcgsetlogging hypre_parcsrpcgsetmaxiter hypre_parcsrpcgsetmaxiter proc~hypre_obj_setupsolijver->hypre_parcsrpcgsetmaxiter hypre_parcsrpcgsetprecond hypre_parcsrpcgsetprecond proc~hypre_obj_setupsolijver->hypre_parcsrpcgsetprecond hypre_parcsrpcgsettol hypre_parcsrpcgsettol proc~hypre_obj_setupsolijver->hypre_parcsrpcgsettol hypre_parcsrpcgsettwonorm hypre_parcsrpcgsettwonorm proc~hypre_obj_setupsolijver->hypre_parcsrpcgsettwonorm hypre_parcsrpcgsetup hypre_parcsrpcgsetup proc~hypre_obj_setupsolijver->hypre_parcsrpcgsetup proc~hypre_obj_setupsols->hypre_structvectorassemble proc~hypre_obj_setupsols->hypre_structvectorcreate proc~hypre_obj_setupsols->hypre_structvectorinitialize hypre_structvectorsetboxvalues hypre_structvectorsetboxvalues proc~hypre_obj_setupsols->hypre_structvectorsetboxvalues hypre_structpcgcreate hypre_structpcgcreate proc~hypre_obj_setupsolvers->hypre_structpcgcreate hypre_structpcgsetlogging hypre_structpcgsetlogging proc~hypre_obj_setupsolvers->hypre_structpcgsetlogging hypre_structpcgsetmaxiter hypre_structpcgsetmaxiter proc~hypre_obj_setupsolvers->hypre_structpcgsetmaxiter hypre_structpcgsetprintlevel hypre_structpcgsetprintlevel proc~hypre_obj_setupsolvers->hypre_structpcgsetprintlevel hypre_structpcgsettol hypre_structpcgsettol proc~hypre_obj_setupsolvers->hypre_structpcgsettol hypre_structpcgsetup hypre_structpcgsetup proc~hypre_obj_setupsolvers->hypre_structpcgsetup hypre_structpfmgcreate hypre_structpfmgcreate proc~hypre_obj_setupsolvers->hypre_structpfmgcreate hypre_structpfmgsetlogging hypre_structpfmgsetlogging proc~hypre_obj_setupsolvers->hypre_structpfmgsetlogging hypre_structpfmgsetmaxiter hypre_structpfmgsetmaxiter proc~hypre_obj_setupsolvers->hypre_structpfmgsetmaxiter hypre_structpfmgsetprintlevel hypre_structpfmgsetprintlevel proc~hypre_obj_setupsolvers->hypre_structpfmgsetprintlevel hypre_structpfmgsetraptype hypre_structpfmgsetraptype proc~hypre_obj_setupsolvers->hypre_structpfmgsetraptype hypre_structpfmgsetrelaxtype hypre_structpfmgsetrelaxtype proc~hypre_obj_setupsolvers->hypre_structpfmgsetrelaxtype hypre_structpfmgsettol hypre_structpfmgsettol proc~hypre_obj_setupsolvers->hypre_structpfmgsettol hypre_structpfmgsetup hypre_structpfmgsetup proc~hypre_obj_setupsolvers->hypre_structpfmgsetup hypre_structsmgcreate hypre_structsmgcreate proc~hypre_obj_setupsolvers->hypre_structsmgcreate hypre_structsmgsetlogging hypre_structsmgsetlogging proc~hypre_obj_setupsolvers->hypre_structsmgsetlogging hypre_structsmgsetmaxiter hypre_structsmgsetmaxiter proc~hypre_obj_setupsolvers->hypre_structsmgsetmaxiter hypre_structsmgsetnumpostrelax hypre_structsmgsetnumpostrelax proc~hypre_obj_setupsolvers->hypre_structsmgsetnumpostrelax hypre_structsmgsetnumprerelax hypre_structsmgsetnumprerelax proc~hypre_obj_setupsolvers->hypre_structsmgsetnumprerelax hypre_structsmgsetprintlevel hypre_structsmgsetprintlevel proc~hypre_obj_setupsolvers->hypre_structsmgsetprintlevel hypre_structsmgsettol hypre_structsmgsettol proc~hypre_obj_setupsolvers->hypre_structsmgsettol hypre_structsmgsetup hypre_structsmgsetup proc~hypre_obj_setupsolvers->hypre_structsmgsetup hypre_structstencilcreate hypre_structstencilcreate proc~hypre_obj_setupstencils->hypre_structstencilcreate hypre_structstencilsetelement hypre_structstencilsetelement proc~hypre_obj_setupstencils->hypre_structstencilsetelement proc~region_obj_getbcindex->none~get~3 proc~region_obj_getbcindex->proc~hashtbl_obj_hashstring proc~hashtbl_obj_get_int4 hashtbl_obj%hashtbl_obj_Get_int4 none~get~3->proc~hashtbl_obj_get_int4 proc~hashtbl_obj_get_int8 hashtbl_obj%hashtbl_obj_Get_int8 none~get~3->proc~hashtbl_obj_get_int8 proc~hashtbl_obj_get_real_dp hashtbl_obj%hashtbl_obj_Get_real_dp none~get~3->proc~hashtbl_obj_get_real_dp proc~hashtbl_obj_get_real_sp hashtbl_obj%hashtbl_obj_Get_real_sp none~get~3->proc~hashtbl_obj_get_real_sp interface~cudamallocmanaged cudaMallocManaged proc~device_malloc_managed->interface~cudamallocmanaged proc~eulerian_obj_updateghostcells_x eulerian_obj_base%eulerian_obj_UpdateGhostCells_x proc~eulerian_obj_updateghostcells->proc~eulerian_obj_updateghostcells_x proc~eulerian_obj_updateghostcells_y eulerian_obj_base%eulerian_obj_UpdateGhostCells_y proc~eulerian_obj_updateghostcells->proc~eulerian_obj_updateghostcells_y proc~eulerian_obj_updateghostcells_z eulerian_obj_base%eulerian_obj_UpdateGhostCells_z proc~eulerian_obj_updateghostcells->proc~eulerian_obj_updateghostcells_z hypre_ijmatrixaddtovalues hypre_ijmatrixaddtovalues proc~hypre_obj_buildmatrixij->hypre_ijmatrixaddtovalues hypre_structmatrixsetvalues hypre_structmatrixsetvalues proc~hypre_obj_buildmatrixs->hypre_structmatrixsetvalues cell cell proc~eulerian_obj_updateghostcells_x->cell mpi_irecv mpi_irecv proc~eulerian_obj_updateghostcells_x->mpi_irecv mpi_isend mpi_isend proc~eulerian_obj_updateghostcells_x->mpi_isend mpi_waitall mpi_waitall proc~eulerian_obj_updateghostcells_x->mpi_waitall proc~eulerian_obj_updateghostcells_y->cell proc~eulerian_obj_updateghostcells_y->mpi_irecv proc~eulerian_obj_updateghostcells_y->mpi_isend proc~eulerian_obj_updateghostcells_y->mpi_waitall proc~eulerian_obj_updateghostcells_z->cell proc~eulerian_obj_updateghostcells_z->mpi_irecv proc~eulerian_obj_updateghostcells_z->mpi_isend proc~eulerian_obj_updateghostcells_z->mpi_waitall none~get~2 sllist_obj%Get proc~hashtbl_obj_get_int4->none~get~2 proc~hashtbl_obj_get_int8->none~get~2 proc~hashtbl_obj_get_real_dp->none~get~2 proc~hashtbl_obj_get_real_sp->none~get~2 proc~sllist_obj_get_int4 sllist_obj%sllist_obj_Get_int4 none~get~2->proc~sllist_obj_get_int4 proc~sllist_obj_get_int8 sllist_obj%sllist_obj_Get_int8 none~get~2->proc~sllist_obj_get_int8 proc~sllist_obj_get_real_dp sllist_obj%sllist_obj_Get_real_dp none~get~2->proc~sllist_obj_get_real_dp proc~sllist_obj_get_real_sp sllist_obj%sllist_obj_Get_real_sp none~get~2->proc~sllist_obj_get_real_sp proc~sllist_obj_get_int4->proc~sllist_obj_get_int4 proc~sllist_obj_get_int8->proc~sllist_obj_get_int8 proc~sllist_obj_get_real_dp->proc~sllist_obj_get_real_dp proc~sllist_obj_get_real_sp->proc~sllist_obj_get_real_sp

Called by

proc~~cdifs_obj_preparesolveroperators~~CalledByGraph proc~cdifs_obj_preparesolveroperators cdifs_obj_PrepareSolverOperators proc~cdifs_obj_preparesolver cdifs_obj_PrepareSolver proc~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolveroperators interface~cdifs_obj_preparesolver cdifs_obj%cdifs_obj_PrepareSolver interface~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolver

Source Code

    subroutine cdifs_obj_PrepareSolverOperators(this)
      !> Prepares operators used by CDIFS.
      ! This subroutine also initializes the HYPRE solvers and builds any
      ! required operator with the specified boundary conditions.
      use leapBC
      implicit none
      class(cdifs_obj), intent(inout) :: this                                  !! CDIFS solver
      ! Work variables
      integer          :: scheme_order
      character(str64) :: hypre_solver
      integer          :: hypre_max_it
      real(wp)         :: hypre_res_tol

      ! Get information from input
      call this%parser%Get("Scheme order",          scheme_order,  default=2            )
      call this%parser%Get("HYPRE Solver",          hypre_solver,  default="IJ-AMG-NONE")
      call this%parser%Get("HYPRE Max Iter",        hypre_max_it,  default=30           )
      call this%parser%Get("HYPRE Convergence Tol", hypre_res_tol, default=1.0e-10_wp   )

      ! Initialize basic differential operators
      call this%op%Initialize(this%block,this%parallel,order=scheme_order)

      ! Initialize HYPRE and select solver type
      call this%hypre%Initialize(this%block,this%parallel)
      call this%hypre%SelectSolver(hypre_solver,MaxTol=hypre_res_tol,MaxIt=hypre_max_it)

      if (this%use_RP .or. this%use_IB) then
        ! Get solver parameters
        call this%parser%Get("VF Solver",          hypre_solver,  default="IJ-AMG-NONE")
        call this%parser%Get("VF Max Iter",        hypre_max_it,  default=30           )
        call this%parser%Get("VF Convergence Tol", hypre_res_tol, default=1.0e-10_wp   )

        ! Initialize volume fraction solver
        call this%VFSolver%Initialize(this%block,this%parallel)
        call this%VFSolver%SelectSolver(hypre_solver,MaxTol=hypre_res_tol,MaxIt=hypre_max_it)
      end if

      ! Build the operators
      call cdifs_obj_PrepareSolverOperatorsPGRAD(this)
      call cdifs_obj_PrepareSolverOperatorsDIV  (this)
      call cdifs_obj_PrepareSolverOperatorsVLAP (this)
      call cdifs_obj_PrepareSolverOperatorsPLAP (this)
      if (this%use_RP .or. this%use_IB) then
        call cdifs_obj_PrepareSolverOperatorsVFLAP(this)
      end if

      return
    end subroutine cdifs_obj_PrepareSolverOperators