sparsity pattern setup

Matthew Knepley knepley at gmail.com
Mon Sep 21 17:08:47 CDT 2009


On Mon, Sep 21, 2009 at 4:53 PM, Fredrik Bengzon <
fredrik.bengzon at math.umu.se> wrote:

> 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.
>

It is the same for tetrahedra. In fact, this algorithm can be generalized to
work
for any topology:

http://arxiv.org/abs/0908.4427

   Matt


> /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
>>
>>
>>
>


-- 
What most experimenters take for granted before they begin their experiments
is infinitely more interesting than any results to which their experiments
lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20090921/64ae4693/attachment.htm>


More information about the petsc-users mailing list