[petsc-users] random vector

Barry Smith bsmith at mcs.anl.gov
Mon Jul 9 18:06:19 CDT 2012


   Benjamin,

On Jul 9, 2012, at 2:13 PM, Benjamin Sanderse wrote:

> With that call I get:
> 
> /export/scratch1/sanderse/Programming/windfarm/svn.cwi.nl/branches/benjamin/navier-stokes/fortran/3D/src/time_RK.F:202: undefined reference to `petscrandomsettype_'

          Thanks. This is our fault. 

   Satish,

          Please add the Fortran interface for petscrandomsettype_ by cloning one of the other set types etc. for petsc 3.3


       Thanks

     Barry

> 
> Fortunately, I tried the following. I added
> 
> -random_type rand 
> 
> to the execution line, and used 
> 
> call PetscRandomSetFromOptions(rctx,ierr); CHKERRQ(ierr)
> 
> That works fine. 
> 
> Benjamin
> 
> 
> Op 9 jul 2012, om 19:57 heeft Barry Smith het volgende geschreven:
> 
>> 
>> Did you   call PetscRandomSetType(rctx,PETSCRAND,ierr);   ?
>> 
>> 
>> On Jul 9, 2012, at 10:21 AM, Benjamin Sanderse wrote:
>> 
>>> So I updated to 3.3, but still get the same error:
>>> 
>>> Any ideas?
>>> 
>>> [0]PETSC ERROR: --------------------- Error Message ------------------------------------
>>> [0]PETSC ERROR: Object is in wrong state!
>>> [0]PETSC ERROR: PetscRandom object's type is not set: Argument # 1!
>>> [0]PETSC ERROR: ------------------------------------------------------------------------
>>> [0]PETSC ERROR: Petsc Release Version 3.3.0, Patch 1, Fri Jun 15 09:30:49 CDT 2012 
>>> [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: bin/navier-stokes on a arch-linu named slippy.sen.cwi.nl by sanderse Mon Jul  9 17:18:39 2012
>>> [0]PETSC ERROR: Libraries linked from /export/scratch1/sanderse/software/petsc-3.3-p1_debug/arch-linux2-c-opt/lib
>>> [0]PETSC ERROR: Configure run at Mon Jul  9 16:58:35 2012
>>> [0]PETSC ERROR: Configure options --download-mpich=1 --with-shared-libraries --download-f-blas-lapack=1 --with-fc=gfortran --with-cxx=g++ --download-hypre --with-hdf5 --download-hdf5 --with-cc=gcc
>>> [0]PETSC ERROR: ------------------------------------------------------------------------
>>> [0]PETSC ERROR: PetscRandomSeed() line 431 in /export/scratch1/sanderse/software/petsc-3.3-p1_debug/src/sys/random/interface/randomc.c
>>> application called MPI_Abort(MPI_COMM_WORLD, 73) - process 0
>>> [cli_0]: aborting job:
>>> application called MPI_Abort(MPI_COMM_WORLD, 73) - process 0
>>> 
>>> 
>>> ----- Original Message -----
>>> From: "Barry Smith" <bsmith at mcs.anl.gov>
>>> To: "PETSc users list" <petsc-users at mcs.anl.gov>
>>> Sent: Monday, July 9, 2012 4:08:08 PM
>>> Subject: Re: [petsc-users] random vector
>>> 
>>> 
>>> Please update to using petsc-3.3
>>> 
>>> On Jul 9, 2012, at 9:03 AM, Benjamin Sanderse wrote:
>>> 
>>>> Thanks a lot. I need to have the PetscRandomCreate inside the loop,
>>> 
>>>  Why?
>>> 
>>>> so I will use the RandomSetSeed. 
>>>> However, when running the code below I get the following error.
>>>> 
>>>>         PetscRandom    :: rctx
>>>> 
>>>>         call PetscRandomCreate(PETSC_COMM_WORLD,rctx,ierr); CHKERRQ(ierr)
>>> 
>>>  call PetscRandomSetType(rctx,PETSCRAND,ierr);
>>> 
>>>>         call PetscRandomSetSeed(rctx,I,ierr); CHKERRQ(ierr)
>>>>         call PetscRandomSeed(rctx,ierr); CHKERRQ(ierr)
>>>>         call VecSetRandom(f,rctx,ierr); CHKERRQ(ierr)
>>>>         call PetscRandomDestroy(rctx,ierr); CHKERRQ(ierr)
>>>> 
>>>> In PetscRandomSetSeed, I is an integer.
>>>> 
>>>> [0]PETSC ERROR: --------------------- Error Message ------------------------------------
>>>> [0]PETSC ERROR: Object is in wrong state!
>>>> [0]PETSC ERROR: PetscRandom object's type is not set: Argument # 1!
>>>> [0]PETSC ERROR: ------------------------------------------------------------------------
>>>> [0]PETSC ERROR: Petsc Release Version 3.2.0, Patch 6, Wed Jan 11 09:28:45 CST 2012 
>>>> [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: bin/navier-stokes on a arch-linu named slippy.sen.cwi.nl by sanderse Mon Jul  9 15:58:16 2012
>>>> [0]PETSC ERROR: Libraries linked from /export/scratch1/sanderse/software/petsc-3.2-p6-debug/arch-linux2-c-opt/lib
>>>> [0]PETSC ERROR: Configure run at Wed Feb 22 18:04:02 2012
>>>> [0]PETSC ERROR: Configure options --download-mpich=1 --with-shared-libraries --download-f-blas-lapack=1 --with-fc=gfortran --with-cxx=g++ --download-hypre --with-hdf5 --download-hdf5 --with-cc=gcc
>>>> [0]PETSC ERROR: ------------------------------------------------------------------------
>>>> [0]PETSC ERROR: PetscRandomSeed() line 431 in /export/scratch1/sanderse/software/petsc-3.2-p6-debug/src/sys/random/interface/randomc.c
>>>> application called MPI_Abort(MPI_COMM_WORLD, 73) - process 0
>>>> [cli_0]: aborting job:
>>>> application called MPI_Abort(MPI_COMM_WORLD, 73) - process 0
>>>> 
>>>> 
>>>> Maybe something has changed from 3.2p6 to 3.3? I do not see what is wrong with the PetscRandom object.
>>>> 
>>>> Benjamin
>>>> 
>>>> 
>>>> ----- Original Message -----
>>>> From: "Barry Smith" <bsmith at mcs.anl.gov>
>>>> To: "PETSc users list" <petsc-users at mcs.anl.gov>
>>>> Sent: Monday, July 9, 2012 3:51:18 PM
>>>> Subject: Re: [petsc-users] random vector
>>>> 
>>>> 
>>>> Create and destroy the random context OUTSIDE of the loop. Each time you create it it is using the same seed hence giving the same values.
>>>> 
>>>> Note that it is also intentional that if you run the code twice you get the same values each time you run it to help write and debug codes. If you want different values each time you run it you need to call PetscRandomSetSeed() then PetscRandomSeed() after creating the context
>>>> 
>>>> 
>>>> Barry
>>>> 
>>>> On Jul 9, 2012, at 7:53 AM, Benjamin Sanderse wrote:
>>>> 
>>>>> Hello all,
>>>>> 
>>>>> I am trying to solve a Poisson equation several times with random right-hand side vectors in order to do parallel scalability tests.
>>>>> Here is part of the code that I use to generate a random vector:
>>>>> 
>>>>> 
>>>>> PetscRandom    :: rctx
>>>>> 
>>>>> ...
>>>>> 
>>>>> do I = 1,n
>>>>> 
>>>>> 
>>>>> call PetscRandomCreate(PETSC_COMM_WORLD,rctx,ierr); CHKERRQ(ierr)
>>>>> call VecSetRandom(f,rctx,ierr); CHKERRQ(ierr)
>>>>> call PetscRandomDestroy(rctx,ierr); CHKERRQ(ierr)
>>>>> 
>>>>> call VecView(f,PETSC_VIEWER_STDOUT_WORLD,ierr); CHKERRQ(ierr)
>>>>> 
>>>>> call Poisson
>>>>> 
>>>>> end do
>>>>> 
>>>>> 
>>>>> It appears that f does not change during the execution of the do-loop. In fact its value is even always the same for I=1 when I run the code several times. Apparently I am missing something. Can anybody help?
>>>>> 
>>>>> Regards,
>>>>> 
>>>>> 
>>>>> Benjamin
>>>> 
>>> 
>> 
> 
> -- 
> Ir. B. Sanderse
> 
> Centrum Wiskunde en Informatica
> Science Park 123
> 1098 XG Amsterdam
> 
> t: +31 20 592 4161
> e: sanderse at cwi.nl
> 



More information about the petsc-users mailing list