[petsc-users] random vector

Benjamin Sanderse B.Sanderse at cwi.nl
Mon Jul 9 14:13:43 CDT 2012


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_'

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