sparsity pattern setup
Fredrik Bengzon
fredrik.bengzon at math.umu.se
Mon Sep 21 16:53:18 CDT 2009
Hi,
Ryan, I'm aware of Barry's post
https://lists.mcs.anl.gov/mailman/htdig/petsc-users/2008-May/003020.html
and it workes fine for triangle meshes. However, I do not see how this
can be used for tetrahedral meshes.
/Fredrik
Ryan Yan wrote:
> Hi Fredrik,
> If I understand correctly, I have the same issue as what you have here.
>
> I do not have the code yet(It is also depends on how your store your
> matrix data.). But I can forward Barry's idea to you. Hope this is
> helpful to you.
>
> Yan,
>
> Simply read through the ASCII file(s) twice. The first time count
> the number of blocks per row, then preallocate then read through the
> ASCII file again reading and setting the values. This will be very fast.
>
> Barry
> - Hide quoted text -
>
>
> On Sep 20, 2009, at 10:20 AM, Ryan Yan wrote:
>
> Hi All,
> I have a large size application. Mesh size is 30000 nodes, with
> dof 25 on each vertex. And it's 3d unstructured, Tet, and Hex
> mesh. In the following I will denote blksize=25
>
> I am testing how to build up a PETSc matrix object quick and fast.
>
> The data I have is Block Compressed Sparse Row(BCSR) files. And my
> objective is to read BCSR files and generate PETSc Binaries
>
> Firstly, I choose the MATMPIAIJ, I opened the BCSR data files on
> each processor, and set up the preallocation use
> MatMPIAIJSetPreallocation(A,blksize,PETSC_NULL,blksize,PETSC_NULL);
> The reason why I choose 25 as the number for d_nz and o_nz is that
> I do not have access to the ordering of the vertices. So it's the
> worst case set up, and it takes about 7 minutes on 30 MIPS
> node(180 processors) to write the output into PETSc binaries.
>
> Secondly, I choose the MatMPIBAIJ, and same procedure as above,
> but also set up
> MatMPIBAIJSetPreallocation(A,blksize,blksize,PETSC_NULL,blksize,PETSC_NULL),
> here blksize = 25 and it's also the worst case; This experiments
> takes forever and could not generate the PETSc binaries.
>
> I guess the reason why it takes so long in the MATMPIBAIJ case is
> that I did not set up the preallocation accurately. Alougth I
> think the preallocation is also not accurate in the MATMPIAIJ
> case, but it seems like the preallocation effect is not as serious
> as for the MPIBAIJ. Correct me please, if there are other reasons.
>
> Can I anyone please give a hint on how to set up the preallocation
> right for a unstructured mesh without knowing the mesh ordering?
>
> Thank you very much in advance,
>
> Yan
>
>
>
>
>
> On Mon, Sep 21, 2009 at 4:24 PM, Fredrik Bengzon
> <fredrik.bengzon at math.umu.se <mailto:fredrik.bengzon at math.umu.se>> wrote:
>
> Hi,
> This is probably the wrong forum to ask, but does anyone have a
> piece of code for computing the correct ndnz and nodnz vectors
> needed for assembly of the stiffness (MPIAIJ) matrix on an
> unstructured tetrahedral mesh given the node-to-element adjacency?
> Thanks,
> Fredrik
>
>
More information about the petsc-users
mailing list