hypre_obj_SetupMatrixIJ Subroutine

private impure subroutine hypre_obj_SetupMatrixIJ(this)

Sets up matrix with IJ interface.

Type Bound

hypre_obj

Arguments

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

Hypre machinery


Calls

proc~~hypre_obj_setupmatrixij~~CallsGraph proc~hypre_obj_setupmatrixij hypre_obj%hypre_obj_SetupMatrixIJ 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_ijmatrixaddtovalues hypre_ijmatrixaddtovalues proc~hypre_obj_buildmatrixij->hypre_ijmatrixaddtovalues

Called by

proc~~hypre_obj_setupmatrixij~~CalledByGraph proc~hypre_obj_setupmatrixij hypre_obj%hypre_obj_SetupMatrixIJ proc~hypre_obj_setup hypre_obj%hypre_obj_Setup proc~hypre_obj_setup->proc~hypre_obj_setupmatrixij proc~cdifs_obj_preparesolveroperatorsplap cdifs_obj_PrepareSolverOperatorsPLAP proc~cdifs_obj_preparesolveroperatorsplap->proc~hypre_obj_setup proc~cdifs_obj_preparesolveroperatorsvflap cdifs_obj_PrepareSolverOperatorsVFLAP proc~cdifs_obj_preparesolveroperatorsvflap->proc~hypre_obj_setup proc~grans_obj_preparesolveroperators grans_obj_PrepareSolverOperators proc~grans_obj_preparesolveroperators->proc~hypre_obj_setup proc~marker_set_computesolidvolfrac marker_set%marker_set_ComputeSolidVolFrac proc~marker_set_computesolidvolfrac->proc~hypre_obj_setup proc~cdifs_obj_preparesolveroperators cdifs_obj_PrepareSolverOperators proc~cdifs_obj_preparesolveroperators->proc~cdifs_obj_preparesolveroperatorsplap proc~cdifs_obj_preparesolveroperators->proc~cdifs_obj_preparesolveroperatorsvflap proc~grans_obj_preparesolver grans_obj_PrepareSolver proc~grans_obj_preparesolver->proc~grans_obj_preparesolveroperators interface~grans_obj_preparesolver grans_obj%grans_obj_PrepareSolver interface~grans_obj_preparesolver->proc~grans_obj_preparesolver 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

    impure subroutine hypre_obj_SetupMatrixIJ(this)
      !> Sets up matrix with IJ interface.
      implicit none
      class(hypre_obj), intent(inout) :: this                                  !! Hypre machinery
      ! Work variables
      integer :: ierr

      ! Create an empty matrix object
      call HYPRE_IJMatrixCreate(this%comm, this%irow_lo,this%irow_hi, this%irow_lo,this%irow_hi,this%matrix,ierr)

      ! Set storage type: only HYPRE_PARCSR supported per HYPRE doc
      call HYPRE_IJMatrixSetObjectType(this%matrix,HYPRE_PARCSR,ierr)

      ! Initialize before setting coefficients
      call HYPRE_IJMatrixInitialize(this%matrix,ierr)

      ! Set matrix coefficients
      call hypre_obj_BuildMatrixIJ(this)

      ! Assemble matrix
      call HYPRE_IJMatrixAssemble(this%matrix, ierr)

      ! Get parcsr matrix object
      call HYPRE_IJMatrixGetObject(this%matrix,this%par_matrix,ierr)

      return
    end subroutine hypre_obj_SetupMatrixIJ