[petsc-dev] BDDC code

Stefano Zampini stefano.zampini at gmail.com
Thu Jan 26 04:04:31 CST 2012


Hi all,

I'm partially refactoring BDDC code I contributed to petsc-dev, trying to
limit the extent of hand-written code and to exploit already existing PETSc
code. I want to know if there are DM objects in PETSc suitable to store
informations related to the local to global map of MATIS objects which I
can use to manage communications between different levels (through
DMCoarsen, DMGetInterpolation and DMGetMatrix). DMMesh can do the job?

Regards,
Stefano



> 2012/1/24 Jed Brown <jedbrown at mcs.anl.gov>
>
>> On Tue, Jan 24, 2012 at 09:35, Stefano Zampini <stefano.zampini at gmail.com
>> > wrote:
>>
>>> I recently added support for non-costrant block size matrices (e.g for
>>> Q_2-Q_0 decompositions or similar). I've almost finished implementing BDDC
>>> code which uses NearNullSpace as you suggested. Thus, Stokes and elasticity
>>> in mixed formulation are next to come.
>>>
>>
>> Great.
>>
>>
>>>
>>> I need to use lapack DGESVD (or SGESVD) functions for SVD. How should I
>>> call them within PETSc code? something like LAPACKdgesvd_ ?
>>>
>>
>> LAPACKgesvd_, see calls from src/ksp/ksp/impls/gmres/gmreig.c
>>
>>   /* compute Singular Values */
>> #if !defined(PETSC_USE_COMPLEX)
>>
>> LAPACKgesvd_("N","N",&bn,&bn,R,&bN,realpart,&sdummy,&idummy,&sdummy,&idummy,work,&lwork,&lierr);
>> #else
>>
>> LAPACKgesvd_("N","N",&bn,&bn,R,&bN,realpart,&sdummy,&idummy,&sdummy,&idummy,work,&lwork,realpart+N,&lierr);
>> #endif
>>   if (lierr) SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_LIB,"Error in SVD Lapack
>> routine %d",(int)lierr);
>>
>>
>>
>>
>>>
>>> When I finished, I will remove coarse enums and use MatPartitioning
>>> interface.
>>>
>>
>> Great.
>>
>
>
>
> --
> Stefano
>




-- 
Stefano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120126/3b8de560/attachment.html>


More information about the petsc-dev mailing list