Changeset 6c6ce1a


Ignore:
Timestamp:
12/09/10 14:41:58 (2 years ago)
Author:
Oleg Batrashev <ogbash@…>
Branches:
master, external, fix-prolong, refactor, refactor-ext, refactor-subsolvers
Children:
2eac950, 609702e
Parents:
c28deba (diff), 6ca9419 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
Oleg Batrashev <ogbash@…> (12/09/10 14:41:58)
git-committer:
Oleg Batrashev <ogbash@…> (12/09/10 14:41:58)
Message:

Merge branch 'master' into refactor-ext

Files:
3 edited
8 moved

Legend:

Unmodified
Added
Removed
  • src/datatypes/Mesh.F90

    rc28deba r6c6ce1a  
    265265    if (associated(M%partnelems)) deallocate(M%partnelems) 
    266266    if (associated(M%nghbrs))    deallocate(M%nghbrs) 
    267     if (associated(M%lcoords)) deallocate(M%lcoords) 
     267    if (.NOT.ismaster().AND.associated(M%lcoords)) deallocate(M%lcoords) ! for master it = coords 
    268268    if (associated(M%lfreemap)) deallocate(M%lfreemap) 
    269269    !if (associated(M%)) deallocate(M%) 
  • configure.ac

    r5e1467a rdd63f9f  
    166166        src/Makefile 
    167167        src/main/Makefile 
    168         src/ext/Makefile 
     168        src/ext/C/Makefile 
    169169        doc/Doxyfile 
    170170        doc/Makefile 
  • src/ext/C/Makefile.am

    ra10a43b rdd63f9f  
    77# this file is compiled with 'mpicc' and in static linking does not find MPI library for Fortran, 
    88#  thus we hack it by providing required libraries, however it only works for OpenMPI 
    9 c_doug_aggr_LDADD=libdoug-ext.la ../libdoug.la ../main/doug_aggr-main_drivers.o -lmpi_f90 -lmpi_f77 
     9c_doug_aggr_LDADD=libdoug-ext.la @top_builddir@/src/libdoug.la @top_builddir@/src/main/doug_aggr-main_drivers.o -lmpi_f90 -lmpi_f77 
    1010 
    1111c_doug_cg_SOURCES=main_cg.c 
    12 c_doug_cg_LDADD=libdoug-ext.la ../libdoug.la ../main/doug_aggr-main_drivers.o -lmpi_f90 -lmpi_f77 
     12c_doug_cg_LDADD=libdoug-ext.la @top_builddir@/src/libdoug.la @top_builddir@/src/main/doug_aggr-main_drivers.o -lmpi_f90 -lmpi_f77 
    1313 
    1414c_doug_pcg1_SOURCES=main_pcg1.c 
    15 c_doug_pcg1_LDADD=libdoug-ext.la ../libdoug.la ../main/doug_aggr-main_drivers.o -lmpi_f90 -lmpi_f77 
     15c_doug_pcg1_LDADD=libdoug-ext.la @top_builddir@/src/libdoug.la @top_builddir@/src/main/doug_aggr-main_drivers.o -lmpi_f90 -lmpi_f77 
  • src/main/main_drivers.F90

    r848affb rc28deba  
    8888    type(SpMtx),intent(in out),optional :: A_interf !< matrix at interface 
    8989 
     90    if (ismaster()) then ! MASTER 
     91       write(stream,*) 
     92       write(stream,*) 'master thread' 
     93       if (D_MSGLVL > 1) & 
     94            call MasterCtrlData_print() 
     95 
     96    else ! SLAVES 
     97       write(stream,'(a,i4,a)') 'slave [',myrank,'] thread' 
     98       if (D_MSGLVL > 1) & 
     99            call SharedCtrlData_print() 
     100    end if 
     101 
    90102    ! ======================= 
    91103    ! Mesh and its Dual Graph 
     
    93105    ! 
    94106    ! Create Mesh object 
     107 
    95108    Msh = Mesh_New() 
    96109 
    97     if (ismaster()) then ! MASTER 
    98        write(stream,*) 
    99        write(stream,*) 'master thread' 
    100  
    101        if (D_MSGLVL > 1) & 
    102             call MasterCtrlData_print() 
    103  
     110    if (ismaster()) then 
    104111       ! Initialise Mesh object 
    105112       call Mesh_initFromFile(Msh, trim(mctls%info_file)) 
    106  
    107     else ! SLAVES 
    108        write(stream,'(a,i4,a)') 'slave [',myrank,'] thread' 
    109  
    110        if (D_MSGLVL > 1) & 
    111             call SharedCtrlData_print() 
    112     end if 
     113    endif 
    113114 
    114115    ! Get from master Mesh's parameters: nell, ngf, mfrelt, nsd, nnode 
     
    116117    if (D_MSGLVL > 1) & 
    117118         call Mesh_printInfo(Msh) 
    118  
    119     ! Allocate data arrays (nfrelt, mhead, freemap, eptnmap) for mesh 
    120     call Mesh_allocate(Msh, & 
    121          nfrelt  =.true.,   & 
    122          mhead   =.true.,   & 
    123          freemap =.true.,   & 
    124          eptnmap  =.true.) 
    125119 
    126120    ! Master reads in from files: feedom lists, coordinates, freedom map 
     
    141135    ! For multi-variable problems which have more than one block 
    142136    if (sctls%number_of_blocks > 1) then 
    143        call Mesh_allocate(Msh, freemask=.true.) 
    144137       if (ismaster()) then 
    145138          call Mesh_readFromFile(Msh, & 
     
    156149    ! Partition mesh's dual graph 
    157150    if (ismaster()) then 
    158  
    159        !! Build dual graph (Graph object is a data field in Mesh class) 
    160        !call Mesh_buildGraphDual(Msh) 
    161  
    162151       if (sctls%plotting == D_PLOT_YES) then 
    163  
    164           call Mesh_pl2D_pointCloud(Msh,D_PLPLOT_INIT) 
    165           ! Plots mesh's dual graph 
    166           call Mesh_pl2D_plotGraphDual(Msh,D_PLPLOT_END) 
    167           ! Mesh & its Dual Graph 
    168           call Mesh_pl2D_plotMesh(Msh, D_PLPLOT_INIT) 
    169           call Mesh_pl2D_plotGraphDual(Msh, D_PLPLOT_END) 
     152          call Mesh_pl2D_mesh(Msh) 
    170153       end if 
    171154 
    172155       ! Partition graph: D_PART_PMETIS, D_PART_KMETIS, D_PART_VKMETIS 
    173156       call Mesh_partitionDual(Msh, nparts, D_PART_VKMETIS, part_opts) 
    174  
    175157       if (sctls%plotting == D_PLOT_YES) then 
    176           ! Draw colored partitoined graph 
    177           call Mesh_pl2D_plotGraphParted(Msh) 
    178  
    179           ! Plot partitions of the mesh 
    180           ! NB: Check for multivariable case! TODO 
    181           call Mesh_pl2D_Partition(Msh) 
    182           ! Partition with Dual Graph upon it 
    183           call Mesh_pl2D_Partition(Msh, D_PLPLOT_INIT) 
    184           call Mesh_pl2D_plotGraphDual(Msh, D_PLPLOT_CONT) 
    185           call Mesh_pl2D_pointCloud(Msh,D_PLPLOT_END) 
    186        end if 
    187  
    188        ! Destroy previously created graph (purely to save memory) 
    189        ! (If it is not killed here or somewere else Mesh_Destroy() 
    190        !  will kill it any way) 
    191        !call Mesh_destroyGraph(Msh) 
    192     else ! SLAVES 
    193        ! Number of partions the mesh was partitioned into 
    194        Msh%nparts = nparts 
    195        Msh%parted = .true. 
    196     end if 
     158          call Mesh_pl2D_partitions(Msh) 
     159       end if 
     160    endif 
    197161 
    198162    ! Distribute elements to partitons map among slaves 
Note: See TracChangeset for help on using the changeset viewer.