<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Nov 27, 2014 at 9:19 PM, Adrian Croucher <span dir="ltr"><<a href="mailto:a.croucher@auckland.ac.nz" target="_blank">a.croucher@auckland.ac.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">hi<br>
<br>
I'm just getting back to using DMPlex after a few months busy on other stuff, and looking at the TS ex11 problem, a few things have changed in the meantime.<br>
<br>
TS ex11 used to set up a PetscSection manually to define the data layout, for constructing vectors on it. Now it seems this is handled by creating a PetscFV object and adding it to the PetscDS in the DMPlex.<br>
<br>
I set up a simplified code to test this in isolation, and it works in C but not in Fortran (code below). It gets this error- looks like maybe something wrong with the fortran interface:<br></blockquote><div><br></div><div>Every time we add a type to PETSc, we have to tell the Fortran stub generator about it. This is a clunky part of the</div><div>design, but there is not enough momentum to change it. Can you try deleting your PETSC_ARCH directory and</div><div>reconfiguring? FIRST,</div><div><br></div><div>  cd $PETSC_DIR</div><div>  mv $PETSC_ARCH/conf/reconfigure-$PETSC_ARCH.py .</div><div><br></div><div>so that you can get the same configuration.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
[0]PETSC ERROR: --------------------- Error Message ------------------------------<u></u>------------------------------<u></u>--<br>
[0]PETSC ERROR: Null argument, when expecting valid pointer<br>
[0]PETSC ERROR: Null Pointer: Parameter # 2<br>
[0]PETSC ERROR: See <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html" target="_blank">http://www.mcs.anl.gov/petsc/<u></u>documentation/faq.html</a> for trouble shooting.<br>
[0]PETSC ERROR: Petsc Development GIT revision: v3.5.2-1240-gd4bc1ae  GIT Date: 2014-11-25 11:37:47 -0600<br>
[0]PETSC ERROR: ./testplexf on a linux-gnu-c-opt named des108 by acro018 Fri Nov 28 16:02:22 2014<br>
[0]PETSC ERROR: Configure options --download-netcdf --download-exodusii --with-hdf5-dir=/usr/lib --with-numpy-dir=/usr/lib/<u></u>pymodules/python2.7/numpy --<br>
with-scientificpython-dir=/<u></u>usr/lib/python2.7/dist-<u></u>packages/scipy --with-petsc4py-dir=/usr/<u></u>local/lib/python2.7/dist-<u></u>packages/petsc4py --download-triangl<br>
e --with-fortran-interfaces=1 --download-ptscotch --download-chaco --download-ctetgen<br>
[0]PETSC ERROR: #1 DMGetDS() line 3407 in /home/acro018/software/PETSc/<u></u>code/src/dm/interface/dm.c<br>
<br>
Also, any chance of a fortran interface to DMPlexCreateFromFile()? It appears to be missing at the moment.<br></blockquote><div><br></div><div>Yes, I can add this.</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Regards, Adrian<br>
--<br>
<br>
program testplex<br>
<br>
  implicit none<br>
<br>
#include <finclude/petscsys.h><br>
#include <finclude/petscvec.h><br>
#include <finclude/petscdm.h><br>
<br>
  PetscInt, parameter :: dim = 3, dof = 1<br>
  MPI_Comm :: comm<br>
  DM :: dm, dist_dm, ghost_dm<br>
  PetscErrorCode :: ierr<br>
  character(40) :: filename = "column.exo"<br>
  PetscInt :: localsize<br>
  PetscFV :: fvm<br>
  PetscDS :: ds<br>
  Vec :: X<br>
<br>
  call PetscInitialize(PETSC_NULL_<u></u>CHARACTER, ierr); CHKERRQ(ierr)<br>
  comm = PETSC_COMM_WORLD<br>
<br>
  call DMPlexCreateExodusFromFile(<u></u>comm, filename, PETSC_TRUE, dm, ierr); CHKERRQ(ierr)<br>
<br>
  call DMPlexSetAdjacencyUseCone(dm, PETSC_TRUE, ierr); CHKERRQ(ierr)<br>
  call DMPlexSetAdjacencyUseClosure(<u></u>dm, PETSC_FALSE, ierr); CHKERRQ(ierr)<br>
<br>
  call DMPlexDistribute(dm, 0, PETSC_NULL_OBJECT, dist_dm, ierr)<br>
  CHKERRQ(ierr)<br>
  if (dist_dm /= 0) then<br>
     call DMDestroy(dm, ierr); CHKERRQ(ierr)<br>
     dm = dist_dm<br>
  end if<br>
<br>
  call DMPlexConstructGhostCells(dm, PETSC_NULL_CHARACTER, PETSC_NULL_INTEGER, &<br>
       ghost_dm, ierr); CHKERRQ(ierr)<br>
  if (ghost_dm /= 0) then<br>
     call DMDestroy(dm, ierr); CHKERRQ(ierr);<br>
     dm = ghost_dm<br>
  end if<br>
<br>
  call DMView(dm, PETSC_VIEWER_STDOUT_WORLD, ierr); CHKERRQ(ierr)<br>
<br>
  call PetscFVCreate(comm, fvm, ierr); CHKERRQ(ierr)<br>
  call PetscFVSetNumComponents(fvm, dof, ierr); CHKERRQ(ierr)<br>
  call PetscFVSetSpatialDimension(<u></u>fvm, dim, ierr); CHKERRQ(ierr)<br>
  call DMGetDS(dm, ds, ierr); CHKERRQ(ierr)<br>
  call PetscDSAddDiscretization(ds, fvm, ierr); CHKERRQ(ierr)<br>
<br>
  call DMCreateGlobalVector(dm, X, ierr); CHKERRQ(ierr)<br>
  call VecGetLocalSize(X, localsize, ierr); CHKERRQ(ierr);<br>
  print *, "Local size:", localsize<br>
<br>
  call DMDestroy(dm, ierr); CHKERRQ(ierr)<br>
  call PetscFinalize(ierr); CHKERRQ(ierr)<br>
<br>
end program testplex<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Dr Adrian Croucher<br>
Senior Research Fellow<br>
Department of Engineering Science<br>
University of Auckland, New Zealand<br>
email: <a href="mailto:a.croucher@auckland.ac.nz" target="_blank">a.croucher@auckland.ac.nz</a><br>
tel: +64 (0)9 923 84611<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>