[petsc-dev] [petsc-users] FFT Matrix Examples/Tests: Compiletime error
Thomas Hisch
t.hisch at gmail.com
Wed Jul 11 04:24:06 CDT 2012
On Wed, Jul 11, 2012 at 12:30 AM, Hong Zhang <hzhang at mcs.anl.gov> wrote:
> I fixed this problem in petsc-3.3 and petsc-dev.
> http://petsc.cs.iit.edu/petsc/petsc-dev/rev/3287ab3cb0ed
>
> Hong
>
Thx Hong. I tried the ex148, but I doesn't work as I have complex
petsc scalars. Instead I tried ex154, where I did the following
modification to be able to compile it
hg diff
diff -r b800705fa966 src/mat/examples/tests/ex154.c
--- a/src/mat/examples/tests/ex154.c Tue Jul 10 21:23:47 2012 -0500
+++ b/src/mat/examples/tests/ex154.c Wed Jul 11 11:06:03 2012 +0200
@@ -46,7 +46,7 @@
ierr = VecGetSize(input,&vsize);CHKERRQ(ierr);
printf("The vector size of output from the main routine is %d\n",vsize);
- ierr = InputTransformFFT(A,input,x);CHKERRQ(ierr);
+ ierr = VecScatterPetscToFFTW(A,input,x);CHKERRQ(ierr);
// ierr = VecAssemblyBegin(x);CHKERRQ(ierr);
// ierr = VecAssemblyEnd(x);CHKERRQ(ierr);
// ierr = VecView(x,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
@@ -54,7 +54,9 @@
ierr = MatMult(A,x,y);CHKERRQ(ierr);
ierr = MatMultTranspose(A,y,z);CHKERRQ(ierr);
- ierr = OutputTransformFFT(A,z,output);CHKERRQ(ierr);
+ ierr = VecScatterFFTWToPetsc(A,z,output);CHKERRQ(ierr);
+
+ /* Check accuracy */
fac = 1.0/(PetscReal)N;
ierr = VecScale(output,fac);CHKERRQ(ierr);
Running this program with a single node (mpirun -n 1 ex154) works but
with multiple (mpirun -n 2 ex154) I get a segfault
http://pastie.tk/view.php?id=29C95711
ex143 with -use_FFTW_interface YES and-use_FFTW_interface NO works
for both single and multiple nodes. ex145 only for more than one node
(as expected).
Regards
Thomas
More information about the petsc-dev
mailing list