Changeset fd51d18


Ignore:
Timestamp:
01/26/11 19:41:24 (2 years ago)
Author:
Oleg Batrashev <ogbash@…>
Branches:
master, external, fix-prolong
Children:
3805ac7
Parents:
8e30c0d
git-author:
Oleg Batrashev <ogbash@…> (01/26/11 19:41:24)
git-committer:
Oleg Batrashev <ogbash@…> (01/26/11 19:41:24)
Message:

Start "strong" distribution.

Location:
src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/coarse/CoarseMtx.F90

    r8e30c0d rfd51d18  
    367367      deallocate(indi) 
    368368      ! Build smoother 
    369       call SpMtx_printRaw(A) 
    370369      allocate(diag(max(A%nrows,A%ncols))) 
    371370      diag=0.0; 
     
    450449      deallocate(val,indj,indi) 
    451450      deallocate(diag) 
    452 !write(stream,*)'Smoother matrix is:------------' 
    453 !call SpMtx_printRaw(S) 
     451write(stream,*)'Smoother matrix is:------------' 
     452call SpMtx_printRaw(S) 
    454453      if (smoothers>=2) then 
    455454        ! Build smoother2 
  • src/datatypes/SpMtx/SpMtx_arrangement.F90

    r964c491 rfd51d18  
    386386! Finding strong connections in matrix 
    387387!------------------------------------------------------ 
    388   subroutine SpMtx_find_strong(A,alpha,A_ghost,symmetrise) 
     388  subroutine SpMtx_find_strong(A,alpha,A_ghost,symmetrise,M) 
    389389    Implicit None 
    390390    Type(SpMtx),intent(in out) :: A 
     
    392392    Type(SpMtx),intent(in out),optional :: A_ghost 
    393393    logical,intent(in),optional :: symmetrise 
     394    type(Mesh),intent(in),optional :: M 
    394395    ! local: 
    395396    integer :: i,j,k,start,ending,nnz,ndiags 
     
    479480      enddo 
    480481    endif 
     482    write(stream,*) "STRONG", A%strong 
    481483    if (mirror2ghost) then 
    482484      if (present(A_ghost).and.associated(A_ghost%indi)) then 
     
    491493          endif 
    492494        enddo 
    493       endif 
    494     endif 
     495        write(stream,*) "GHOST STRONG", A_ghost%strong 
     496      endif 
     497    endif 
     498 
     499  contains 
     500 
     501    subroutine exchange_strong() 
     502      integer :: k, neigh 
     503      integer,allocatable :: ninds(:) 
     504      type Buffer 
     505         character, pointer :: data(:)        
     506      end type Buffer 
     507      type(Buffer),allocatable :: outbuffers(:) 
     508 
     509      allocate(ninds(M%nnghbrs)) 
     510 
     511      ! report to the neighbours which elements we need 
     512      !! how many elements 
     513      ninds = 0 
     514      do k=1,A_ghost%nnz 
     515        neigh = M%eptnmap(A_ghost%indi(k)) 
     516        if (neigh/=myrank+1) then 
     517          ninds(neigh) = ninds(neigh)+1 
     518        end if 
     519      end do 
     520      !! collect elements 
     521      !do neigh=1,M%nnghbrs 
     522      !  allocate( 
     523 
     524      deallocate(ninds) 
     525    end subroutine exchange_strong 
    495526  end subroutine SpMtx_find_strong 
    496527 
  • src/main/aggr.F90

    r8e30c0d rfd51d18  
    141141      strong_conn1=0.67_rk 
    142142    endif 
    143     call SpMtx_find_strong(A=A,alpha=strong_conn1,A_ghost=A_ghost) 
     143    call SpMtx_find_strong(A=A,alpha=strong_conn1,A_ghost=A_ghost,M=M) 
    144144    if (sctls%radius1>0) then 
    145145      aggr_radius1=sctls%radius1 
Note: See TracChangeset for help on using the changeset viewer.