hypre_obj_SetRHSIJ Subroutine

private impure subroutine hypre_obj_SetRHSIJ(this, rhs)

Sets the entries of the rhs vector, one element at a time.

Type Bound

hypre_obj

Arguments

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

Hypre machinery

type(eulerian_obj_r), intent(in) :: rhs

Right hand side


Calls

proc~~hypre_obj_setrhsij~~CallsGraph proc~hypre_obj_setrhsij hypre_obj%hypre_obj_SetRHSIJ hypre_ijvectorassemble hypre_ijvectorassemble proc~hypre_obj_setrhsij->hypre_ijvectorassemble hypre_ijvectorsetvalues hypre_ijvectorsetvalues proc~hypre_obj_setrhsij->hypre_ijvectorsetvalues

Called by

proc~~hypre_obj_setrhsij~~CalledByGraph proc~hypre_obj_setrhsij hypre_obj%hypre_obj_SetRHSIJ proc~hypre_obj_setrhs hypre_obj%hypre_obj_SetRHS proc~hypre_obj_setrhs->proc~hypre_obj_setrhsij proc~cdifs_obj_advancesolutioncorrector cdifs_obj_AdvanceSolutionCorrector proc~cdifs_obj_advancesolutioncorrector->proc~hypre_obj_setrhs proc~cdifs_obj_computesolidvf cdifs_obj%cdifs_obj_ComputeSolidVF proc~cdifs_obj_computesolidvf->proc~hypre_obj_setrhs proc~grans_obj_computesolidvf grans_obj%grans_obj_ComputeSolidVF proc~grans_obj_computesolidvf->proc~hypre_obj_setrhs proc~marker_set_computesolidvolfrac marker_set%marker_set_ComputeSolidVolFrac proc~marker_set_computesolidvolfrac->proc~hypre_obj_setrhs proc~cdifs_obj_advancesolution cdifs_obj_AdvanceSolution proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutioncorrector proc~cdifs_obj_advancesolutionrp cdifs_obj_AdvanceSolutionRP proc~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolutionrp proc~cdifs_obj_advancesolutionrp->proc~cdifs_obj_computesolidvf proc~cdifs_obj_preparesolver cdifs_obj_PrepareSolver proc~cdifs_obj_preparesolver->proc~cdifs_obj_computesolidvf proc~grans_obj_preparesolver grans_obj_PrepareSolver proc~grans_obj_preparesolver->proc~grans_obj_computesolidvf interface~grans_obj_writeoutputdata grans_obj%grans_obj_WriteOutputData proc~grans_obj_preparesolver->interface~grans_obj_writeoutputdata proc~grans_obj_writeoutputdata grans_obj_WriteOutputData proc~grans_obj_writeoutputdata->proc~grans_obj_computesolidvf interface~cdifs_obj_advancesolution cdifs_obj%cdifs_obj_AdvanceSolution interface~cdifs_obj_advancesolution->proc~cdifs_obj_advancesolution interface~cdifs_obj_preparesolver cdifs_obj%cdifs_obj_PrepareSolver interface~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolver interface~grans_obj_preparesolver grans_obj%grans_obj_PrepareSolver interface~grans_obj_preparesolver->proc~grans_obj_preparesolver interface~grans_obj_writeoutputdata->proc~grans_obj_writeoutputdata

Source Code

    impure subroutine hypre_obj_SetRHSIJ(this,rhs)
      !> Sets the entries of the rhs vector, one element at a time.
      implicit none
      class(hypre_obj),     intent(inout) :: this                              !! Hypre machinery
      type(eulerian_obj_r), intent(in)    :: rhs                               !! Right hand side
      ! Work variables
      integer :: n,i,j,k
      integer :: ierr

      associate(lo=>this%block%lo, hi=>this%block%hi, irow=>this%irow, &
          irow_hi=>this%irow_hi,irow_lo =>this%irow_lo)
        n = 0
        do k=lo(3),hi(3)
          do j=lo(2),hi(2)
            do i=lo(1),hi(1)
              n = n + 1
              this%rhs_values(n) = rhs%cell(i,j,k)*this%h2
              this%rows(n)       = irow%cell(i,j,k)
            end do
          end do
        end do
        call HYPRE_IJVectorSetValues(this%rhs, irow_hi-irow_lo+1,this%rows,this%rhs_values,  ierr)
      end associate

      call HYPRE_IJVectorAssemble(this%rhs, ierr)

      return
    end subroutine hypre_obj_SetRHSIJ