hypre_obj_Init Subroutine

private impure subroutine hypre_obj_Init(this, block, parallel)

Initializes the hypre object.

Type Bound

hypre_obj

Arguments

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

Hypre machinery

type(block_obj), intent(in), target :: block

A block object

type(parallel_obj), intent(in), target :: parallel

Parallel structure to link with


Calls

proc~~hypre_obj_init~~CallsGraph proc~hypre_obj_init hypre_obj%hypre_obj_Init hypre_init hypre_init proc~hypre_obj_init->hypre_init

Called by

proc~~hypre_obj_init~~CalledByGraph proc~hypre_obj_init hypre_obj%hypre_obj_Init proc~marker_set_computesolidvolfrac marker_set%marker_set_ComputeSolidVolFrac proc~marker_set_computesolidvolfrac->proc~hypre_obj_init

Source Code

    impure subroutine hypre_obj_Init(this,block,parallel)
      !> Initializes the hypre object.
      implicit none
      class(hypre_obj),   intent(inout) :: this                                !! Hypre machinery
      type(block_obj),    intent(in),    &
                                 target :: block                               !! A block object
      type(parallel_obj), intent(in),    &
                                 target :: parallel                            !! Parallel structure to link with
      ! Work variables
      integer :: ierr

      ! Point to the master objects
      this%parallel => parallel
      this%block    => block

      ! Scaling factor
      this%h2 = minval(this%block%dx)**2

      ! Set internal MPI communicator
      this%comm = this%parallel%comm%g

      ! Initialize Hypre internals
      call HYPRE_Init(ierr)

      return
    end subroutine hypre_obj_Init