2
$\begingroup$

Is there a way to partition a mesh consisting of 20 noded hexahedral elements for parallel processing? I used METIS for partitioning mesh with 8 noded hexahedron elmements, which works fine but i don't know how to extend this to 20 noded element mesh.

My Fortran code is as follows, which works fine for 4 node quad and 8 node hex meshes but when i used 20 noded element it gives error

Segmentation fault

Code

subroutine split_domain(cells,nodes,topol,nprocs, epart)

implicit none

!======================================================== integer,intent(in)::cells,nodes,topol(cells,20),nprocs

integer,intent(out)::epart(cells)

integer::ne, nn

integer::eptr(cells+1),eind(20*cells),npart(nodes)

integer::ncommon,nparts,objval

integer, pointer ::vwgt,vsize,tpwgts,options

integer::j

!========================================================

ne=cells; nn=nodes; eptr(1)=1

do j=1,ne

eind(20*j-19:20*j)=topol(j,:)

eptr(j+1)=eptr(j)+20

enddo

ncommon=1; nparts=nprocs

call METIS_PartMeshDual (ne,nn,eptr,eind,vwgt,vsize,ncommon,nparts,tpwgts,options,objval,epart,npart)

end subroutine split_domain

$\endgroup$
  • $\begingroup$ Zahur, welcome to SciComp! I realize it's been a while since you asked this question. I'm going to close this question, because it looks like you're looking for debugging help, which isn't on-scope for this site. If you're interested in fixing it, I'd be happy to reopen the question. I apologize for not catching this issue earlier. $\endgroup$ – Geoff Oxberry Dec 14 '12 at 4:00
0
$\begingroup$

METIS supports partitioning of meshes which elements consist of arbitrary number of nodes. The number of nodes per element may also vary within the mesh. You have just to create the corresponding arrays eptr and eind in the appropriate way. Check the manual, sections 5.6 and 4.1.2 for a detailed description and some small examples.

| cite | improve this answer | |
$\endgroup$
  • $\begingroup$ Thank you very much for your reply, I tried it with 20 noded elements as can be seen in the above code but it gives error as segmentation fault. I also include the code in the above Question. Please help. $\endgroup$ – Zahur Nov 11 '12 at 20:03
  • 3
    $\begingroup$ When getting a segmentation fault, start the debugger. Before doing that and reporting what you find, there is really no point for anyone to help you. $\endgroup$ – Wolfgang Bangerth Nov 11 '12 at 23:16

Not the answer you're looking for? Browse other questions tagged or ask your own question.