Thanks Barry. Yes, I tried that sequence and it works. But curiously if I call VecSetBlockSize after VecSetType, it does fails with the same error.
Would it be useful to take block size as a user input in VecCreateMPI to be consistent with VecCreateMPIWithArray ? Just a thought. For now, I will stick with the long winded way. Vijay On Tue, Aug 27, 2013 at 4:49 PM, Barry Smith <[email protected]> wrote: > > You need to use the "long winded" construction of vectors to add these > options. For example, > > VecCreate() > VecSetBlockSize() > VecSetSizes() > VecSetType() > > the reason is that the Vec may be constructed differently based on these > options but the VecCreateMPI() is suppose to produce an already constructed > Vec. > > Barry > > > On Aug 27, 2013, at 4:45 PM, "Vijay S. Mahadevan" <[email protected]> wrote: > >> I am trying to create an MPI vector and then trying to set the block >> size after the initial creation. But I receive an error in >> PetscLayoutSetBlockSize. Since there is no explicit block size >> argument during construction, I call VecSetBlockSize afterwards. The >> relevant code and error are below. >> >> Is there an alternate call to set the block size to the vector so that >> VecSetValuesBlocked will work correctly ? If there is no current way >> to do this, that's fine and I can try to get the local array and set >> the values accordingly. >> >> Code: >> ierr = VecCreateMPI(PETSC_COMM_WORLD, 10, PETSC_DECIDE, &x);CHKERRQ(ierr); >> ierr = VecSetBlockSize(x, 2);CHKERRQ(ierr); >> ierr = VecSetFromOptions(x);CHKERRQ(ierr); >> >> Relevant errors: >> >> 0]PETSC ERROR: Arguments are incompatible! >> [0]PETSC ERROR: Cannot change block size 1 to 2! >> [0]PETSC ERROR: >> ------------------------------------------------------------------------ >> [0]PETSC ERROR: Petsc Development GIT revision: >> 0799ffdeffb47ef0458c1305293fae28c4d2cd92 GIT Date: 2013-08-01 >> 06:36:16 +0800 >> [0]PETSC ERROR: See docs/changes/index.html for recent updates. >> [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting. >> [0]PETSC ERROR: See docs/index.html for manual pages. >> [0]PETSC ERROR: >> ------------------------------------------------------------------------ >> [0]PETSC ERROR: ./ex1 on a arch-darwin-cxx-debug named >> anlextwls002-168.wl.anl-external.org by mahadevan Tue Aug 27 16:37:18 >> 2013 >> [0]PETSC ERROR: Libraries linked from /opt/petsc-dbg/lib >> [0]PETSC ERROR: Configure run at Wed Jul 31 18:03:46 2013 >> [0]PETSC ERROR: Configure options --prefix=/opt/petsc-dbg >> PETSC_ARCH=arch-darwin-cxx-debug --download-scalapack=1 >> --download-blacs=1 >> --with-mumps-dir=/Users/mahadevan/source/MUMPS_4.10.0-p3 >> --download-hypre=1 --with-metis=1 --with-parmetis=1 >> --known-mpi-shared-libraries=1 >> --with-blas-lapack-lib=/System/Library/Frameworks/vecLib.framework/vecLib >> --with-c++-support=1 --with-c-support=1 --with-cc=mpicc >> --with-clanguage=C++ --with-moab-dir=/opt/moab >> --with-dynamic-loading=1 --with-fc=mpif90 --with-fortran=1 >> --with-mpi=1 --with-shared-libraries=1 --with-valgrind=1 >> --with-valgrind-dir=/opt/local --with-cc=mpicc --with-cxx=mpicxx >> COPTFLAGS="-g -fPIC" CXXOPTFLAGS="-g -fPIC" FOPTFLAGS="-g -fPIC" >> --with-metis-dir=/usr/local --with-parmetis-dir=/usr/local >> --with-netcdf-dir=/usr/local --with-zoltan=1 >> --with-zoltan-lib="-L/usr/local/lib -lptscotch -lscotch -lscotchmetis >> -lscotcherr -lscotcherrexit -lzoltan" >> --with-zoltan-include=/usr/local/include --with-hdf5 >> --with-hdf5-include=/usr/local/include >> --with-hdf5-lib="-L/usr/local/lib -lhdf5_fortran -lhdf5" >> --with-netcdf-dir=/usr/local --with-cmake=/opt/local/bin/cmake >> --with-x-dir=/opt/local >> [0]PETSC ERROR: >> ------------------------------------------------------------------------ >> [0]PETSC ERROR: PetscLayoutSetBlockSize() line 459 in >> /Users/mahadevan/source/petsc-dev/src/vec/is/utils/pmap.c >> [0]PETSC ERROR: VecSetBlockSize() line 1471 in >> /Users/mahadevan/source/petsc-dev/src/vec/vec/interface/vector.c >> [0]PETSC ERROR: main() line 32 in src/vec/vec/examples/tests/ex1.c >> >> Thanks, >> Vijay >
