[petsc-users] Preconditioning systems of equations with complex numbers

Matthew Knepley knepley at gmail.com
Thu Jan 31 18:00:25 CST 2019


On Thu, Jan 31, 2019 at 6:22 PM Justin Chang <jychang48 at gmail.com> wrote:

> Here's IMHO the simplest explanation of the equations I'm trying to solve:
>
> http://home.eng.iastate.edu/~jdm/ee458_2011/PowerFlowEquations.pdf
>
> Right now we're just trying to solve eq(5) (in section 1), inverting the
> linear Y-bus matrix. Eventually we have to be able to solve equations like
> those in the next section.
>

Maybe I am reading this wrong, but the Y-bus matrix looks like an M-matrix
to me (if all the y's are positive). This means
that it should be really easy to solve, and I think GAMG should do it. You
can start out just doing relaxation, like SOR, on
small examples.

  Thanks,

    Matt


> On Thu, Jan 31, 2019 at 1:47 PM Matthew Knepley <knepley at gmail.com> wrote:
>
>> On Thu, Jan 31, 2019 at 3:20 PM Justin Chang via petsc-users <
>> petsc-users at mcs.anl.gov> wrote:
>>
>>> Hi all,
>>>
>>> I'm working with some folks to extract a linear system of equations from
>>> an external software package that solves power flow equations in complex
>>> form. Since that external package uses serial direct solvers like KLU from
>>> suitesparse, I want a proof-of-concept where the same matrix can be solved
>>> in PETSc using its parallel solvers.
>>>
>>> I got mumps to achieve a very minor speedup across two MPI processes on
>>> a single node (went from solving a 300k dog system in 1.8 seconds to 1.5
>>> seconds). However I want to use iterative solvers and preconditioners but I
>>> have never worked with complex numbers so I am not sure what the "best"
>>> options are given PETSc's capabilities.
>>>
>>> So far I tried GMRES/BJACOBI and it craps out (unsurprisingly). I
>>> believe I also tried BICG with BJACOBI and while it did converge it
>>> converged slowly. Does anyone have recommendations on how one would go
>>> about preconditioning PETSc matrices with complex numbers? I was originally
>>> thinking about converting it to cartesian form: Declaring all voltages =
>>> sqrt(real^2+imaginary^2) and all angles to be something like a conditional
>>> arctan(imaginary/real) because all the papers I've seen in literature that
>>> claim to successfully precondition power flow equations operate in this
>>> form.
>>>
>>
>> 1) We really need to see the (simplified) equations
>>
>> 2) All complex equations can be converted to a system of real equations
>> twice as large, but this is not necessarily the best way to go
>>
>>  Thanks,
>>
>>     Matt
>>
>>
>>> Justin
>>>
>>
>>
>> --
>> 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
>>
>> https://www.cse.buffalo.edu/~knepley/
>> <http://www.cse.buffalo.edu/~knepley/>
>>
>

-- 
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

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190131/4e0c10f0/attachment.html>


More information about the petsc-users mailing list