# Parallel calculation in finite elements

I am trying to solve a 1 Dimensional eigenvalue of poisson problem:

$$\nabla \phi ^2 +\nabla \phi = k\phi$$

with the boundary condition: $\phi (0)=0 , \nabla \phi(1) = 0$.

I could solve this directly, but I am trying to solve it for parallel calculation framework by dividing the problems into 3 or 4 meshes. Then, I connect the middle boundary with the robin boundary condition and the most left mesh with the zero flux and robin boundary, and the most right mesh with robin boundary and right mesh.

When I solve this problem, I find an inconsistency problem when I vary the number of mesh divisions. Could you guys give me some insight?

To be more detail, actually i just try to do the simple implementation first to test whether my algorithm will work or not. So what i did is: let say i have 3 parallel meshes. Previously i only have 1 FEM main equation, now i will have 3 FEM Equation (each mesh will have their own governing equation), Then i connect my parallel mesh by using the robin boundary condition for the same interface. Is this okay?

• I have edited your question. Please check that I didn't change the what you meant. – nicoguaro Dec 13 '17 at 13:45
• thanks you, i will add more detail to be clear. – hikaruseven Dec 14 '17 at 3:39
• Please concisely state in mathematical terms what your algorithm does and solves. – Wolfgang Bangerth Dec 14 '17 at 4:01
• So, i just make a new fem equation for the each parallel mesh, and then connect the interface by using robin boundary condition. Could i do with that simple way? i observed that most of the fem parallel calculation utilized the domain decomposition method. I just want to try to be more simple in solving it. – hikaruseven Dec 14 '17 at 7:13

## 1 Answer

The solution must be the same independent of the number of processors you are using to integrate the equation. Your inconsistence is probably due to a bug in your algorithm of mesh division and/or virtual topology generation.

Please provide more details about your implementation and the algorithm you are using to divide the mesh and assign the pieces among the processors.

Disclaimer: I know that this kind of comment is better suitable to be made as a comment to the question and not as an answer. But I'm new in this stack and I don't have enough reputation to comment in a question. So please, don't downvote my answer. I'm genuinely looking forward to help and to collaborate in this stack, but receiving downvotes in this kind of comments will likely demotivate myself to continue participating actively here.

• hmm, actually i just try to do the simple implementation first to test whether my algorithm will work or not. So what i did is: let say i have 3 parallel meshes. Previously i only have 1 FEM main equation, now i will have 3 FEM Equation (each mesh will have their own governing equation), Then i connect my parallel mesh by using the robin boundary condition for the same interface. Is this okay? – hikaruseven Dec 14 '17 at 3:39
• That doesn't seems right. The equation is the same in all domain. Are you using MPI? OpenMP? – The Doctor Dec 14 '17 at 9:51
• i am not using mpi or open mp yet, i am just trying out to check my parallel algorithm will be working or not. So, i just make a new fem equation for the each parallel mesh, and then connect the interface by using robin boundary condition. Could i do with that simple way? i observed that most of the fem parallel calculation utilized the domain decomposition method. I just want to try to be more simple in solving it. – hikaruseven Dec 14 '17 at 10:52
• When performing real parallel computation this is not possible. You are obligated to use domain decomposition. But, before continuing, I don't understand what is exactly your equation. Would you send to me a reference, please? The equation you wrote, in one dimension, can be re-written just as: $\partial_x \phi = \frac{k_x \phi}{1+2\phi}$ – The Doctor Dec 14 '17 at 12:22