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

Reply via email to