You can solve matrix-free nonlinear equations with PETSc. If you are actually<br>solving an eigenproblem, I would recommend using SLEPc which has PETSc<br>underneath.<br><br>  Matt<br><br><div class="gmail_quote">On Fri, Jun 12, 2009 at 10:20 AM,  <span dir="ltr">&lt;<a href="mailto:naromero@alcf.anl.gov">naromero@alcf.anl.gov</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi,<br>
<br>
I would like to understand if the methods in PETSc are applicable to my<br>
problem.<br>
<br>
I work in the area of density functional theory. The KS equation in<br>
real-space (G) is<br>
<br>
[-(1/2) (nabla)^2 + V_local(G) + V_nlocal(G) + V_H[rho(G)] psi_nG = E_n*psi_nG<br>
<br>
rho(G) = \sum_n |psi_nG|^2<br>
<br>
n is the index on eigenvalues which correspond to the electron energy levels.<br>
<br>
This KS equation is sparse in real-space and dense in fourier-space. I think<br>
strictly speaking it is a non-linear partial differential equation. V_nlocal(G)<br>
is an integral operator (short range though), so maybe it is technically a<br>
non-linear integro-partial differential equation.<br>
<br>
I understand that PETSc is a sparse solvers. Does the non-linearity in the<br>
partial differential equation make PETSc less applicable to this problem?<br>
<br>
On one more technical note, we do not store the matrix in sparse format. It is<br>
also matrix*vector based.<br>
<br>
<br>
<br>
Argonne Leadership Computing Facility<br>
Argonne National Laboratory<br>
Building 360 Room L-146<br>
9700 South Cass Avenue<br>
Argonne, IL 60490<br>
(630) 252-3441<br>
<br>
</blockquote></div><br><br clear="all"><br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener<br>