> On 12 Apr 2024, at 11:51 AM, Carl-Johan Thore <[email protected]> > wrote: > > On Fri, Apr 12, 2024 at 11:16 AM Pierre Jolivet <[email protected] > <mailto:[email protected]>> wrote: >> >> >>> On 12 Apr 2024, at 11:10 AM, Carl-Johan Thore <[email protected] >>> <mailto:[email protected]>> 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.
OK, I’ll work on finalizing this. > (I don't now what you have in mind for the check, but > MatIsStructurallySymmetric did not work for me) You’ll have to call MatSetOption(A, MAT_STRUCTURALLY_SYMMETRIC, PETSC_TRUE) before KSPSolveTranspose(). Thanks, Pierre > /Carl-Johan > > > >>> /Carl-Johan >>> >>> On Wed, Apr 10, 2024 at 8:24 AM Carl-Johan Thore <[email protected] >>> <mailto:[email protected]>> wrote: >>>> >>>> >>>> On Tue, Apr 9, 2024 at 5:31 PM Pierre Jolivet <[email protected] >>>> <mailto:[email protected]>> wrote: >>>>> >>>>>> On 9 Apr 2024, at 4:19 PM, Carl-Johan Thore <[email protected] >>>>>> <mailto:[email protected]>> 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!Z3r5Vel5sbPcmhUVW14FZ6PsYuoOjHTQALmGl5fdDTHAI1ylX6YQfiOTutFQCeLQewR7-dZQ2k-7sSa95-LFDg$ >>>>> 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 >>
