[petsc-users] Petsc creates a random vector
Matthew Knepley
knepley at gmail.com
Mon Aug 17 10:57:07 CDT 2015
On Mon, Aug 17, 2015 at 10:49 AM, Xujun Zhao <xzhao99 at gmail.com> wrote:
> Hi all,
>
> I want PETSc to generate random vector using VecSetRandom() following
> given examples, but failed and showed some "out of memory" error. The
> following is the code, which goes well until it reaches VecSetRandom(). Can
> anyone help me figure out the reason? Thanks a lot.
>
Does src/vec/vec/examples/tests/ex43.c run for you?
Thanks,
Matt
> XZ
>
>
>
> --------------------------------------------------------------------------------------------
> Vec u;
> PetscRandom rand_ctx; /* random number generator context */
> PetscMPIInt size, rank;
> PetscInt n, dn;
>
>
> MPI_Comm_rank(PETSC_COMM_WORLD,&rank);//CHKERRQ(ierr);
> MPI_Comm_size(PETSC_COMM_WORLD,&size);//CHKERRQ(ierr);
> n = N/size + 1;
> dn = n*size - N;
> if ( dn>0 && rank<dn ) n -= 1;
> printf("--->test in petsc_random_vector(): rank = %d, n = %d\n",rank,n);
>
>
> VecCreate(PETSC_COMM_WORLD,&u);
> VecSetSizes(u,n,N);
> PetscRandomCreate(PETSC_COMM_WORLD, &rand_ctx);
> #if defined(PETSC_HAVE_DRAND48)
> PetscRandomSetType(rand_ctx,PETSCRAND48);
> #elif defined(PETSC_HAVE_RAND)
> PetscRandomSetType(rand_ctx,PETSCRAND);
> #endif
> PetscRandomSetFromOptions(rand_ctx);
>
>
> VecSetRandom(u,rand_ctx);
> PetscRandomDestroy(&rand_ctx);
>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150817/98e29d57/attachment.html>
More information about the petsc-users
mailing list