I wrapped DMPlexCreateFromCellList so that only rank 0 executes it, now I get this new error for np >= 2 (still works fine with np=1). The new error is:<br><br>[1]PETSC ERROR: --------------------- Error Message ------------------------------------<br>
[1]PETSC ERROR: Invalid argument!<br>[1]PETSC ERROR: Wrong type of object: Parameter # 1!<br>[1]PETSC ERROR: ------------------------------------------------------------------------<br>[1]PETSC ERROR: Petsc Development GIT revision: dd831807ccae33b4bba0c6456b55575ff17239c3  GIT Date: 2013-06-03 14:26:06 -0600<br>
[1]PETSC ERROR: See docs/changes/index.html for recent updates.<br>[1]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>[1]PETSC ERROR: See docs/index.html for manual pages.<br>[1]PETSC ERROR: ------------------------------------------------------------------------<br>
[1]PETSC ERROR: ./test on a arch-linux2-cxx-debug named Puget-101334 by user Wed Jul 31 16:37:07 2013<br>[1]PETSC ERROR: Libraries linked from /home/user/Desktop/LIBRARIES/petsc/arch-linux2-cxx-debug/lib<br>[1]PETSC ERROR: Configure run at Mon Jun  3 14:29:12 2013<br>
[1]PETSC ERROR: Configure options --download-boost --download-chaco --download-ctetgen --download-f-blas-lapack --download-fiat --download-generator --download-hdf5 --download-metis --download-ml --download-mpich --download-parmetis --download-scientificpython --download-triangle --with-clanguage=cxx --with-dynamic-loading --with-openmp --with-pthreadclasses --with-shared-libraries --with-sieve --with-threadcomm PETSC_ARCH=arch-linux2-cxx-debug<br>
[1]PETSC ERROR: ------------------------------------------------------------------------<br>[1]PETSC ERROR: DMPlexDistribute() line 2772 in /home/user/Desktop/LIBRARIES/petsc/src/dm/impls/plex/plex.c<br><br>Should I be doing some sort of collective instantiation on dm or dm_distrib before I attempt to distribute dm? I tried adding<br>
call DMPlexCreate(PETSC_COMM_WORLD, dm, ierr)<br>CHKERRQ(ierr)<br>before the call to DMPlexCreateFromCellList but then the code just hangs for np >= 2 (again np=1 is fine).<br><br>A complete test code is below:<br><br>
program test<br>implicit none<br><br>#include <finclude/petsc.h90><br><br>DM :: dm, dm_distrib<br>PetscViewer :: viewer<br>PetscErrorCode :: ierr<br>PetscInt :: rank<br><br>PetscInt, dimension(6) :: cell_list<br>PetscReal, dimension(8) :: vertex_coords<br>
<br>call PetscInitialize(PETSC_NULL_CHARACTER,ierr)<br>CHKERRQ(ierr)<br>call MPI_Comm_rank(PETSC_COMM_WORLD,rank,ierr)<br>CHKERRQ(ierr)<br><br>cell_list = (/ 0 , 1 , 2  , 1 , 3 , 2 /)<br>vertex_coords = 0.0<br><br>!call DMPlexCreate(PETSC_COMM_WORLD, dm, ierr)<br>
!CHKERRQ(ierr)<br><br>if (rank==0) then<br>call DMPlexCreateFromCellList(PETSC_COMM_WORLD, 2, 2, 4, 3,  1 , cell_list , 2 , vertex_coords , dm,  ierr)<br>CHKERRQ(ierr)<br><br>end if<br><br>call DMPlexDistribute(dm,'chaco',1,dm_distrib,ierr)<br>
CHKERRQ(ierr)<br><br>call PetscFinalize(ierr)<br>CHKERRQ(ierr)<br><br>end program test<br><br>-Chris<br><br><div class="gmail_quote">On Wed, Jul 31, 2013 at 4:21 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Chris Eldred <<a href="mailto:chris.eldred@gmail.com">chris.eldred@gmail.com</a>> writes:<br>
> Here is my relevant code:<br>
><br>
> cell_list = (/ 0 , 1 , 2  , 1 , 3 , 2 /)<br>
> vertex_coords = 0.0<br>
><br>
> call DMPlexCreateFromCellList(PETSC_COMM_WORLD, 2, 2, 4, 3,  1 , cell_list<br>
> , 2 , vertex_coords , dm,  ierr)<br>
> CHKERRQ(ierr)<br>
<br>
</div>Which process executes this line?  DMPlexDistribute expects rank 0 to<br>
hold the mesh to be distributed.  If this doesn't fix the problem, can<br>
you send a test code so we can debug and add it to our test suite?<br>
<div class="HOEnZb"><div class="h5"><br>
> call DMPlexDistribute(dm,'chaco',0,dm_distrib,ierr)<br>
> CHKERRQ(ierr)<br>
><br>
> I am running the code with mpirun -np 2 ./test (it also segfaults with<br>
> higher values for np).<br>
><br>
> Any ideas? The code works fine with mpirun -np 1 (presumably since it is<br>
> not actually attempting to distribute the mesh).<br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Chris Eldred<br>DOE Computational Science Graduate Fellow<br>Graduate Student, Atmospheric Science, Colorado State University<br>B.S. Applied Computational Physics, Carnegie Mellon University, 2009<br>
<a href="mailto:chris.eldred@gmail.com" target="_blank">chris.eldred@gmail.com</a> / <a href="mailto:celdred@atmos.colostate.edu" target="_blank">celdred@atmos.colostate.edu</a>