sparsity pattern setup

Matthew Knepley knepley at gmail.com
Mon Sep 21 18:06:56 CDT 2009


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

> Matt,
> Clearly, I must be missing something. If I loop over the elements and
> record all edges between the nodes in a face by adding to the vectors "on"
> and "off" as the algorithm says, won't an edge be counted more than two
> times in general, thus giving a too big value in "on" and "off"?
>

You do not loop over edges ever that I see. He loops over nodes, and checks
nodes that share an
edge (in 2D) or face (in 3D).

  Matt


> /Fredrik
>
>
> Matthew Knepley wrote:
>
>  On Mon, Sep 21, 2009 at 4:53 PM, Fredrik Bengzon <
>> fredrik.bengzon at math.umu.se <mailto: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>
>>        <mailto: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
>>
>
>


-- 
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/d52fed44/attachment.htm>


More information about the petsc-users mailing list