[petsc-users] Question About Assembly matrix and declaration of KSP & pc

Mark Adams mfadams at lbl.gov
Wed Nov 30 05:37:04 CST 2022


On Wed, Nov 30, 2022 at 5:08 AM 김성익 <ksi2443 at gmail.com> wrote:

> Hello,
>
>
>
> I’m working on FEM using PETSc.
>
> As everyone knows, it is necessary to repeatedly solve Ax=B.
>
> Regarding this, I have 4 questions.
>
>
>
> 1.     There are many steps for preparing KSPSolve. For example
> KSPcreate, KSPSetOperators, KSPGetPC, PCSetType, PCFactorSetMatSolverType,
> KSPSetFromOptions…
> In Nonlinear FEM, there are repeatedly kspsolve for getting answer vector.
> Is it correct to do all of the aforementioned processes (KSPcreate,
> KSPSetOperators ~~~) for each KSPSolve? Or should I declare it only once at
> the beginning and not call it again?
>

You just do these once at setup but for nonlinear problems KSPSetOperators
tells the solver that you have a new matrix and so "matrix setup" work
needs to be done.


>
> 2.     If the answer to question 1 is that it must be repeated every
> time, should this work be done right before kspsolve, that is, when the
> global matrix assembly is finished, or is it irrelevant to performance at
> any time?
>

KSPSetOperators should be set after the new matrix values are set but it
might work before. It just sets a pointer to the matrix and flags it as not
setup.


>
>
> 3.     When performing FEM, local matrices are often scattered in global
> matrices depending on connectivity. In this case, which is better in terms
> of performance: adding the values one by one with MatSetValue or adding
> them all at once with MatSetValues even if they are scattered?
>

You want to add one element matrix at a time, generally.


>
>
>
>
> 4.     I would like to measure the time of each section of the process.
> Which method is recommended?
>

PETSc methods are timed separateluy, but setup gets folded into KSPSolve
unless you call SNESSetUp before the SNES[KSP]Solve.
You can add you own timers also
https://petsc.org/release/docs/manualpages/Profiling/PetscLogEventRegister/

Mark



>
>
> Thank you for your help.
>
>
>
> Hyung Kim
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20221130/bd606001/attachment-0001.html>


More information about the petsc-users mailing list