Different results for varying n.o. of processors when solving Piezoelectric PDE via PETSc

33 views
Skip to first unread message

Asmorom Kibrom

unread,
Aug 1, 2022, 6:29:17 AM8/1/22
to deal.II User Group
Hi all,

For the purpose of gaining more experience on the dealii framework I have implemented the stationary (no time derivatives) piezoelectric PDEs as a test case. After successful runs without parallelization, I tried to modify the code using the PETsc wrappers for parallelization. I have attached a tar archive including the project folder (cc and param file).

However, results now seem to be different from what I had on single core executions. The issue doesn't occur for the electric potential DOF. There the results look identical. But the displacement vector part of the solution varies with the n.o. processes used (see fig. below).

I am running dealii 9.4.0 on Ubuntu 20.04LTS under WSL2 (Kernel ver 5.10.16) Windows 10. deallii was compiled using "cmake -DCMAKE_CXX_FLAGS="-march=native" -DWITH_MPI=ON -DCMAKE_INSTALL_PREFIX=/opt/dealii-9.4.0". The "summary.log" and "CMakeError.log" are also attached. The modell consist of a simple hyperrectangle in 3D.

Here ist the PDEs weak form I have used

var_results_problem_MPI_equations.png
var_results_problem_MPI.png

Best Regards,
Asmorom
CMakeError.log
Rectangular_parallel.tar.gz
summary.log

Marc Fehling

unread,
Aug 1, 2022, 5:13:46 PM8/1/22
to deal.II User Group
Hi Asmorom,

do your results also differ if you run your problem again on the same number of processes, or do you get the same result? If they still differ, there is a nice explanation on why this happens in the FAQ on PETSc:

You could also try to use Trilinos instead and see if you're more satisfied with the results.

If you think there is a bug in your code, you can try to reduce the size of your code to get a smaller, non-working example. It might be easier to find it on a smaller scale.

Marc
Reply all
Reply to author
Forward
0 new messages