[petsc-users] MatCreateTranspose

Carl-Johan Thore carljohanthore at gmail.com
Fri Apr 12 04:51:53 CDT 2024


On Fri, Apr 12, 2024 at 11:16 AM Pierre Jolivet <pierre at joliv.et> wrote:

>
>
> On 12 Apr 2024, at 11:10 AM, Carl-Johan Thore <carljohanthore at gmail.com>
> wrote:
>
> Pierre, I see that you've already done a merge request for this. Thanks!
> I have tested this and it works nicely in my application
>
>
> I guess your matrix is symmetric in pattern?
> Because otherwise, I don’t think this should work.
> But if it’s OK for your use case, I could simply add a PetscCheck() that
> the input Mat is symmetric and then get this integrated (better to have
> something partially working than nothing at all, I guess).
> Please let me know.
>
> Thanks,
> Pierre
>

Yes, unless I'm mistaken it's structurally symmetric. Would be great to
have this integrated.
(I don't now what you have in mind for the check, but
MatIsStructurallySymmetric did not work for me)
/Carl-Johan




> /Carl-Johan
>
> On Wed, Apr 10, 2024 at 8:24 AM Carl-Johan Thore <carljohanthore at gmail.com>
> wrote:
>
>>
>>
>> On Tue, Apr 9, 2024 at 5:31 PM Pierre Jolivet <pierre at joliv.et> wrote:
>>
>>>
>>> On 9 Apr 2024, at 4:19 PM, Carl-Johan Thore <carljohanthore at gmail.com>
>>> wrote:
>>>
>>> This Message Is From an External Sender
>>> This message came from outside your organization.
>>> Thanks for the suggestion. I don't have a factored matrix (and can't
>>> really use direct linear solvers) so MatSolveTranspose doesn't seem to
>>> be an option.
>>> I should have mentioned that I've also tried KSPSolveTranspose but that
>>> doesn't work with pcredistribute
>>>
>>>
>>> I’m not a frequent PCREDISTRIBUTE user, but it looks like
>>> https://urldefense.us/v3/__https://petsc.org/release/src/ksp/pc/impls/redistribute/redistribute.c.html*line332__;Iw!!G_uCfscf7eWS!eKgr2PYF7SG39RXX3djw6sMcERzrkuIDlriMyaTiUBJLndZZjvPWDIExlBIgGGHuniBRgDKoQ2YiNQFa0Rh356QrCz6dDw$  could
>>> be copy/paste’d into PCApplyTranspose_Redistribute() by just changing a
>>> MatMult() to MatMultTranspose() and KSPSolve() to KSPSolveTranspose().
>>> Would you be willing to contribute (and test) this?
>>> Then, KSPSolveTranspose() — which should be the function you call — will
>>> work.
>>>
>>> Thanks,
>>> Pierre
>>>
>>
>> Thanks, that sounds promising. Yes, I'll try to make a contribution
>> /Carl-Johan
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240412/7ef00996/attachment.html>


More information about the petsc-users mailing list