hypre_obj_SetupMatrixS Subroutine

private impure subroutine hypre_obj_SetupMatrixS(this)

Sets up and builds the matrix.

Currently, assuming that we are solving laplacian( sol ) = rhs with periodic boundary conditions. This will be generalized at a later time to include non-periodic BC, and other differential equations. Assemble matrix

Type Bound

hypre_obj

Arguments

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

Hypre machinery


Calls

proc~~hypre_obj_setupmatrixs~~CallsGraph proc~hypre_obj_setupmatrixs hypre_obj%hypre_obj_SetupMatrixS 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_structmatrixsetvalues hypre_structmatrixsetvalues proc~hypre_obj_buildmatrixs->hypre_structmatrixsetvalues

Called by

proc~~hypre_obj_setupmatrixs~~CalledByGraph proc~hypre_obj_setupmatrixs hypre_obj%hypre_obj_SetupMatrixS proc~hypre_obj_setup hypre_obj%hypre_obj_Setup proc~hypre_obj_setup->proc~hypre_obj_setupmatrixs 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_SetupMatrixS(this)
      !> Sets up and builds the matrix.
      !
      ! Currently, assuming that we are solving
      !     laplacian( sol ) = rhs
      ! with periodic boundary conditions.
      ! This will be generalized at a later time to include
      ! non-periodic BC, and other differential equations.
      implicit none
      class(hypre_obj), intent(inout) :: this                                  !! Hypre machinery
      ! Work variables
      integer :: ierr

      ! Create an empty matrix object
      call HYPRE_StructMatrixCreate(this%comm,this%grid,this%stencil,this%matrix,ierr)
      ! initialize matrix (indicates the matrix coefficients are ready to be set)
      call HYPRE_StructMatrixInitialize(this%matrix,ierr)
      ! Now build the matrix of coefficients
      call hypre_obj_BuildMatrixS(this)
                                                                               !! Assemble matrix
      call HYPRE_StructMatrixAssemble(this%matrix,ierr)
      !call HYPRE_StructMatrixPrint("mat",this%matrix,ierr)
      !call hypre_obj_PrintMatrixS(this)

      return
    end subroutine hypre_obj_SetupMatrixS