On Tue, Apr 25, 2023 at 6:03 AM ­권승리 / 학생 / 항공우주공학과 <ksl7...@snu.ac.kr>
wrote:

> Thank you for your reply.
>
> I think I gave an example of an unrealistic problem.
>
> I just wanted to know how to compute the inverse matrix, so I was
> wondering if there is an example of computing the inverse matrix in PETSc.
>

You just use

  KSPCreate(PETSC_COMM_WORLD, &ksp);
  KSPSetOperator(ksp, A, A);
  KSPSetFromOptions(ksp);
  KSPSolve(ksp, b, x);

This solves the system. If you want an exact solution use

  -pc_type lu

There is a manual chapter on linear solves such as there.

  Thanks,

     Matt


> Alternatively, I want to know how to link the LAPACK library.
>
> best,
>
> Seung Lee Kwon
>
> 2023년 4월 25일 (화) 오후 6:44, Matthew Knepley <knep...@gmail.com>님이 작성:
>
>> On Mon, Apr 24, 2023 at 11:47 PM ­권승리 / 학생 / 항공우주공학과 <ksl7...@snu.ac.kr>
>> wrote:
>>
>>> Dear all
>>>
>>> It depends on the problem. It can have hundreds of thousands of degrees
>>> of freedom.
>>>
>>
>> Suppose your matrix was dense and had 1e6 dofs. The work to invert a
>> matrix is O(N^3) with a small
>> constant, so it would take 1e18 = 1 exaflop to invert this matrix and
>> about 10 Terabytes of RAM to store
>> it. Is this available to you? PETSc's supports Elemental and SCALAPACK
>> for this kind of calculation.
>>
>> If the system is sparse, you could invert it using MUMPS, SuperLU_dist,
>> or Pardiso. Then the work and
>> storage depend on the density. There are good estimates for connectivity
>> based on regular grids of given
>> dimension. The limiting resource here is usually memory, which motivates
>> people to try iterative methods.
>> The convergence of iterative methods depend on detailed properties of
>> your system, like the operator spectrum.
>>
>>   Thanks,
>>
>>      Matt
>>
>>
>>> best,
>>>
>>> Seung Lee Kwon
>>>
>>> 2023년 4월 25일 (화) 오후 12:32, Barry Smith <bsm...@petsc.dev>님이 작성:
>>>
>>>>
>>>>   How large are the dense matrices you would like to invert?
>>>>
>>>> On Apr 24, 2023, at 11:27 PM, ­권승리 / 학생 / 항공우주공학과 <ksl7...@snu.ac.kr>
>>>> wrote:
>>>>
>>>> Dear all
>>>>
>>>> Hello.
>>>> I want to make an inverse matrix like inv(A) in MATLAB.
>>>>
>>>> Are there some methods to inverse matrix in petsc?
>>>>
>>>> If not, I want to use the inverse function in the LAPACK library.
>>>>
>>>> Then, how to use the LAPACK library in petsc? I use the C language.
>>>>
>>>> Best,
>>>>
>>>> Seung Lee Kwon
>>>>
>>>> --
>>>> Seung Lee Kwon, Ph.D.Candidate
>>>> Aerospace Structures and Materials Laboratory
>>>> Department of Mechanical and Aerospace Engineering
>>>> Seoul National University
>>>> Building 300 Rm 503, Gwanak-ro 1, Gwanak-gu, Seoul, South Korea, 08826
>>>> E-mail : ksl7...@snu.ac.kr
>>>> Office : +82-2-880-7389
>>>> C. P : +82-10-4695-1062
>>>>
>>>>
>>>>
>>>
>>> --
>>> Seung Lee Kwon, Ph.D.Candidate
>>> Aerospace Structures and Materials Laboratory
>>> Department of Mechanical and Aerospace Engineering
>>> Seoul National University
>>> Building 300 Rm 503, Gwanak-ro 1, Gwanak-gu, Seoul, South Korea, 08826
>>> E-mail : ksl7...@snu.ac.kr
>>> Office : +82-2-880-7389
>>> C. P : +82-10-4695-1062
>>>
>>
>>
>> --
>> 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/>
>>
>
>
> --
> Seung Lee Kwon, Ph.D.Candidate
> Aerospace Structures and Materials Laboratory
> Department of Mechanical and Aerospace Engineering
> Seoul National University
> Building 300 Rm 503, Gwanak-ro 1, Gwanak-gu, Seoul, South Korea, 08826
> E-mail : ksl7...@snu.ac.kr
> Office : +82-2-880-7389
> C. P : +82-10-4695-1062
>


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

Reply via email to