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