[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