Re: [petsc-users] STFILTER in slepc
Run your code with -eps_view_mat0 binary:amatrix.bin This will save the A matrix of the EPS solver in file "amatrix.bin" at the end of EPSSolve(). I cannot say which is the best method, it depends on the distribution of the spectrum. Let's see how it goes. Jose > El 11 oct 2018, a las 20:13, Moritz Cygorek escribió: > > Thank you for the response. This example is exactly the kind of thing I > thought about. > But, as you say, convergence is indeed not better. > > > What's the best format to send the matrix to slepc-maint? > My small test case is a sparse matrix of dimension 30720. I currently read it > from three files (containing IA, JA, and the values in CSR format). Because > everything is contained in a larger framework, it's not very easy to extract > the reader. Is there a generic way to read in sparse matrices from files for > PETSc? > > > > Maybe you can already give me a hint about the best method if I tell you the > properties of the spectrum: > The problem is the calculation of electronic states in a quantum dot. There > is a band gap from around 0 to 2 and I am interested in the first 20 or 40 > eigenvectors above and below the gap. > The first few states are separated by about 0.1 but for higher states the > energies come closer and closer together. > Additionally, there are a number of states with energies around 1000, which > are artificial and originate from the way we treat the boundary conditions. > Also, I know that all states come in pairs with the same energy (Kramers > degeneracy). > > For the small test case, the conduction band states, i.e. eigenvectors with > energies close to 2, converge very fast (about 5 min on a laptop computer). > However, the states with energies around 0 converge much more slowly and > that's one of my major problems. > For those states harmonic extraction seems to be better suited, but I have > the impression that it is not extremely stable. For example, applied to the > states close to 2 I see that some states are skipped, which can be seen by > the fact that the degeneracies are sometimes wrong. > Also, with harmonic extraction, the program sometimes stops claiming the > number of requested eigenpairs are reached, but the calculated relative error > of most states is way larger than the tolerance. > > Maybe you know from experience which method is better suited to tackle these > kinds of problems? > > > Eventually, I intend to do calculates with dimensions of ~ 10 million > distributed of a few 100 CPUs. > > Regards, > Moritz > > > > > From: Jose E. Roman > Sent: Thursday, October 11, 2018 5:55 AM > To: Matthew Knepley; Moritz Cygorek > Cc: PETSc; Carmen Campos > Subject: Re: [petsc-users] STFILTER in slepc > > The filter technique must be used with an interval in EPS, e.g. > -eps_interval 2.,2.7 > (This interval will be passed to STFILTER, so no need to specify > -st_filter_interval). > Therefore, it does not require -eps_target_magnitude or similar. > > Regarding the simpler (A-tau*I)^2, we call it "spectrum folding" (see section > 3.4.6 of SLEPc's manual) and it is implemented in ex24.c > http://slepc.upv.es/documentation/current/src/eps/examples/tutorials/ex24.c.html > > My experience is that spectrum folding will not give good convergence except > for easy problems. For more difficult problems with clustered eigenvalues you > need a polynomial filter. The technique of polynomial filter trades > iterations of the Krylov subspace for matrix-vector products required by a > high-degree polynomial. > > If you want, send us the matrix to slepc-maint and we will have a try. > > Jose > > > > El 11 oct 2018, a las 2:43, Matthew Knepley escribió: > > > > On Wed, Oct 10, 2018 at 8:41 PM Moritz Cygorek wrote: > > Thank you very much. Apparently, I've misunderstood what the filter > > actually does. I thought about the much simpler process, where you > > diagonalize > > > > > > > > -(A- tau*I)^2 +offset*I > > > > > > > > where tau is my target an offset is large enough so that the global maximum > > is reached for eigenvalues around tau. > > > > > > Is this different from -eps_target_magnitude? > > > > Thanks, > > > > Matt > > > > Then you look for the largest eigenvalue of the modified problem and either > > calculate the Ritz value of the original matrix or calculate back from the > > eigenvalues of the modified problem. > > > > > > > > Now, it looks to me like -st_type filter activates something like the > > package FILTLAN
Re: [petsc-users] STFILTER in slepc
Thank you for the response. This example is exactly the kind of thing I thought about. But, as you say, convergence is indeed not better. What's the best format to send the matrix to slepc-maint? My small test case is a sparse matrix of dimension 30720. I currently read it from three files (containing IA, JA, and the values in CSR format). Because everything is contained in a larger framework, it's not very easy to extract the reader. Is there a generic way to read in sparse matrices from files for PETSc? Maybe you can already give me a hint about the best method if I tell you the properties of the spectrum: The problem is the calculation of electronic states in a quantum dot. There is a band gap from around 0 to 2 and I am interested in the first 20 or 40 eigenvectors above and below the gap. The first few states are separated by about 0.1 but for higher states the energies come closer and closer together. Additionally, there are a number of states with energies around 1000, which are artificial and originate from the way we treat the boundary conditions. Also, I know that all states come in pairs with the same energy (Kramers degeneracy). For the small test case, the conduction band states, i.e. eigenvectors with energies close to 2, converge very fast (about 5 min on a laptop computer). However, the states with energies around 0 converge much more slowly and that's one of my major problems. For those states harmonic extraction seems to be better suited, but I have the impression that it is not extremely stable. For example, applied to the states close to 2 I see that some states are skipped, which can be seen by the fact that the degeneracies are sometimes wrong. Also, with harmonic extraction, the program sometimes stops claiming the number of requested eigenpairs are reached, but the calculated relative error of most states is way larger than the tolerance. Maybe you know from experience which method is better suited to tackle these kinds of problems? Eventually, I intend to do calculates with dimensions of ~ 10 million distributed of a few 100 CPUs. Regards, Moritz From: Jose E. Roman Sent: Thursday, October 11, 2018 5:55 AM To: Matthew Knepley; Moritz Cygorek Cc: PETSc; Carmen Campos Subject: Re: [petsc-users] STFILTER in slepc The filter technique must be used with an interval in EPS, e.g. -eps_interval 2.,2.7 (This interval will be passed to STFILTER, so no need to specify -st_filter_interval). Therefore, it does not require -eps_target_magnitude or similar. Regarding the simpler (A-tau*I)^2, we call it "spectrum folding" (see section 3.4.6 of SLEPc's manual) and it is implemented in ex24.c http://slepc.upv.es/documentation/current/src/eps/examples/tutorials/ex24.c.html My experience is that spectrum folding will not give good convergence except for easy problems. For more difficult problems with clustered eigenvalues you need a polynomial filter. The technique of polynomial filter trades iterations of the Krylov subspace for matrix-vector products required by a high-degree polynomial. If you want, send us the matrix to slepc-maint and we will have a try. Jose > El 11 oct 2018, a las 2:43, Matthew Knepley escribió: > > On Wed, Oct 10, 2018 at 8:41 PM Moritz Cygorek wrote: > Thank you very much. Apparently, I've misunderstood what the filter actually > does. I thought about the much simpler process, where you diagonalize > > > > -(A- tau*I)^2 +offset*I > > > > where tau is my target an offset is large enough so that the global maximum > is reached for eigenvalues around tau. > > > Is this different from -eps_target_magnitude? > > Thanks, > > Matt > > Then you look for the largest eigenvalue of the modified problem and either > calculate the Ritz value of the original matrix or calculate back from the > eigenvalues of the modified problem. > > > > Now, it looks to me like -st_type filter activates something like the package > FILTLAN. > > > > I guess I can define a MatShell to do the thing I intended in the first place. > > But, I guess, this is a common thing, so I am wondering whether it is already > implemented somewhere and I just didn't find it in the documentation. Can > you say something about this? > > > > Regards, > > Moritz > > > > > > From: Jose E. Roman > Sent: Wednesday, October 10, 2018 3:48 PM > To: Moritz Cygorek > Cc: petsc-users@mcs.anl.gov > Subject: Re: [petsc-users] STFILTER in slepc > > This type of method requires a very high degree polynomial; suggest using > degree=100 at least (this is the default value), but larger values may be > necessary. Also, for this particular filter the "range" must be approximately > equal to the numerical range; if you have no
Re: [petsc-users] STFILTER in slepc
The filter technique must be used with an interval in EPS, e.g. -eps_interval 2.,2.7 (This interval will be passed to STFILTER, so no need to specify -st_filter_interval). Therefore, it does not require -eps_target_magnitude or similar. Regarding the simpler (A-tau*I)^2, we call it "spectrum folding" (see section 3.4.6 of SLEPc's manual) and it is implemented in ex24.c http://slepc.upv.es/documentation/current/src/eps/examples/tutorials/ex24.c.html My experience is that spectrum folding will not give good convergence except for easy problems. For more difficult problems with clustered eigenvalues you need a polynomial filter. The technique of polynomial filter trades iterations of the Krylov subspace for matrix-vector products required by a high-degree polynomial. If you want, send us the matrix to slepc-maint and we will have a try. Jose > El 11 oct 2018, a las 2:43, Matthew Knepley escribió: > > On Wed, Oct 10, 2018 at 8:41 PM Moritz Cygorek wrote: > Thank you very much. Apparently, I've misunderstood what the filter actually > does. I thought about the much simpler process, where you diagonalize > > > > -(A- tau*I)^2 +offset*I > > > > where tau is my target an offset is large enough so that the global maximum > is reached for eigenvalues around tau. > > > Is this different from -eps_target_magnitude? > > Thanks, > > Matt > > Then you look for the largest eigenvalue of the modified problem and either > calculate the Ritz value of the original matrix or calculate back from the > eigenvalues of the modified problem. > > > > Now, it looks to me like -st_type filter activates something like the package > FILTLAN. > > > > I guess I can define a MatShell to do the thing I intended in the first place. > > But, I guess, this is a common thing, so I am wondering whether it is already > implemented somewhere and I just didn't find it in the documentation. Can > you say something about this? > > > > Regards, > > Moritz > > > > > > From: Jose E. Roman > Sent: Wednesday, October 10, 2018 3:48 PM > To: Moritz Cygorek > Cc: petsc-users@mcs.anl.gov > Subject: Re: [petsc-users] STFILTER in slepc > > This type of method requires a very high degree polynomial; suggest using > degree=100 at least (this is the default value), but larger values may be > necessary. Also, for this particular filter the "range" must be approximately > equal to the numerical range; if you have no clue where your first and last > eigenvalues are, you may use EPSSolve() calls with EPS_LARGEST_REAL and > EPS_SMALLEST_REAL. > > Jose > > > El 10 oct 2018, a las 21:10, Moritz Cygorek escribió: > > > > Thank you for the fast reply. > > > > I've tried running my program (using the defaul Krylov-Schur method for > > sparse MPI matrices) with the additional options: > > > > -st_type filter -st_filter_degree 2 -st_filter_interval 2.,2.7 > > -st_filter_range -2000,2000 > > > > and I get the following error message: > > > > [0]PETSC ERROR: STFILTER cannot get the filter specified; please adjust > > your filter parameters (e.g. increasing the polynomial degree) > > > > [0]PETSC ERROR: #1 FILTLAN_GetIntervals() line 451 in > > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filtlan.c > > [0]PETSC ERROR: #2 STFilter_FILTLAN_setFilter() line 1016 in > > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filtlan.c > > [0]PETSC ERROR: #3 STSetUp_Filter() line 42 in > > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filter.c > > [0]PETSC ERROR: #4 STSetUp() line 271 in > > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/interface/stsolve.c > > [0]PETSC ERROR: #5 EPSSetUp() line 263 in > > /home/applications/sources/libraries/slepc-3.9.2/src/eps/interface/epssetup.c > > [0]PETSC ERROR: #6 EPSSolve() line 135 in > > /home/applications/sources/libraries/slepc-3.9.2/src/eps/interface/epssolve.c > > > > > > > > Do you have a clue what I've missed? > > > > > > Moritz > > > > > > From: Jose E. Roman > > Sent: Wednesday, October 10, 2018 2:30 PM > > To: Moritz Cygorek > > Cc: petsc-users@mcs.anl.gov > > Subject: Re: [petsc-users] STFILTER in slepc > > > > > > > El 10 oct 2018, a las 19:54, Moritz Cygorek > > > escribió: > > > > > > Hi, > > > > > > in the list of changes to SLEPc version 3.8, it is stated that there is a > > &
Re: [petsc-users] STFILTER in slepc
On Wed, Oct 10, 2018 at 8:41 PM Moritz Cygorek wrote: > Thank you very much. Apparently, I've misunderstood what the filter > actually does. I thought about the much simpler process, where you > diagonalize > > > -(A- tau*I)^2 +offset*I > > > where tau is my target an offset is large enough so that the global > maximum is reached for eigenvalues around tau. > Is this different from -eps_target_magnitude? Thanks, Matt > Then you look for the largest eigenvalue of the modified problem and > either calculate the Ritz value of the original matrix or calculate back > from the eigenvalues of the modified problem. > > > Now, it looks to me like -st_type filter activates something like the > package FILTLAN. > > > I guess I can define a MatShell to do the thing I intended in the first > place. > > But, I guess, this is a common thing, so I am wondering whether it is > already implemented somewhere and I just didn't find it in the > documentation. Can you say something about this? > > > Regards, > > Moritz > > > > > -- > *From:* Jose E. Roman > *Sent:* Wednesday, October 10, 2018 3:48 PM > *To:* Moritz Cygorek > *Cc:* petsc-users@mcs.anl.gov > *Subject:* Re: [petsc-users] STFILTER in slepc > > This type of method requires a very high degree polynomial; suggest using > degree=100 at least (this is the default value), but larger values may be > necessary. Also, for this particular filter the "range" must be > approximately equal to the numerical range; if you have no clue where your > first and last eigenvalues are, you may use EPSSolve() calls with > EPS_LARGEST_REAL and EPS_SMALLEST_REAL. > > Jose > > > El 10 oct 2018, a las 21:10, Moritz Cygorek > escribió: > > > > Thank you for the fast reply. > > > > I've tried running my program (using the defaul Krylov-Schur method for > sparse MPI matrices) with the additional options: > > > > -st_type filter -st_filter_degree 2 -st_filter_interval 2.,2.7 > -st_filter_range -2000,2000 > > > > and I get the following error message: > > > > [0]PETSC ERROR: STFILTER cannot get the filter specified; please adjust > your filter parameters (e.g. increasing the polynomial degree) > > > > [0]PETSC ERROR: #1 FILTLAN_GetIntervals() line 451 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filtlan.c > > [0]PETSC ERROR: #2 STFilter_FILTLAN_setFilter() line 1016 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filtlan.c > > [0]PETSC ERROR: #3 STSetUp_Filter() line 42 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filter.c > > [0]PETSC ERROR: #4 STSetUp() line 271 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/interface/stsolve.c > > [0]PETSC ERROR: #5 EPSSetUp() line 263 in > /home/applications/sources/libraries/slepc-3.9.2/src/eps/interface/epssetup.c > > [0]PETSC ERROR: #6 EPSSolve() line 135 in > /home/applications/sources/libraries/slepc-3.9.2/src/eps/interface/epssolve.c > > > > > > > > Do you have a clue what I've missed? > > > > > > Moritz > > > > > > From: Jose E. Roman > > Sent: Wednesday, October 10, 2018 2:30 PM > > To: Moritz Cygorek > > Cc: petsc-users@mcs.anl.gov > > Subject: Re: [petsc-users] STFILTER in slepc > > > > > > > El 10 oct 2018, a las 19:54, Moritz Cygorek > escribió: > > > > > > Hi, > > > > > > in the list of changes to SLEPc version 3.8, it is stated that there > is a preliminary implementation of polynomial filtering using STFILTER. > > > > > > Because I am struggling to obtain interior eigenvalues and harmonic > extraction seems not to be stable enough in my case, I wanted to give it a > try, but I could not find any documentation yet. > > > > > > Does anybody have an example of how to use STFILTER or any > documentation about it? > > > > > > Thanks in advance, > > > Moritz > > > > There are no examples. You just set the type to STFILTER and set some > parameters such as the interval of interest or the polynomial degree. See > functions starting with STFilter here: > http://slepc.upv.es/documentation/current/docs/manualpages/ST/index.html > > > > In some problems it works well, but don't expect too much. It is still > in our to-do list to make it more usable. It will be good to have your > feedback. If you want, send results to slepc-maint, maybe we can help > tuning the parameters. > > > > Jose > > -- 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/>
Re: [petsc-users] STFILTER in slepc
Thank you very much. Apparently, I've misunderstood what the filter actually does. I thought about the much simpler process, where you diagonalize -(A- tau*I)^2 +offset*I where tau is my target an offset is large enough so that the global maximum is reached for eigenvalues around tau. Then you look for the largest eigenvalue of the modified problem and either calculate the Ritz value of the original matrix or calculate back from the eigenvalues of the modified problem. Now, it looks to me like -st_type filter activates something like the package FILTLAN. I guess I can define a MatShell to do the thing I intended in the first place. But, I guess, this is a common thing, so I am wondering whether it is already implemented somewhere and I just didn't find it in the documentation. Can you say something about this? Regards, Moritz From: Jose E. Roman Sent: Wednesday, October 10, 2018 3:48 PM To: Moritz Cygorek Cc: petsc-users@mcs.anl.gov Subject: Re: [petsc-users] STFILTER in slepc This type of method requires a very high degree polynomial; suggest using degree=100 at least (this is the default value), but larger values may be necessary. Also, for this particular filter the "range" must be approximately equal to the numerical range; if you have no clue where your first and last eigenvalues are, you may use EPSSolve() calls with EPS_LARGEST_REAL and EPS_SMALLEST_REAL. Jose > El 10 oct 2018, a las 21:10, Moritz Cygorek escribió: > > Thank you for the fast reply. > > I've tried running my program (using the defaul Krylov-Schur method for > sparse MPI matrices) with the additional options: > > -st_type filter -st_filter_degree 2 -st_filter_interval 2.,2.7 > -st_filter_range -2000,2000 > > and I get the following error message: > > [0]PETSC ERROR: STFILTER cannot get the filter specified; please adjust your > filter parameters (e.g. increasing the polynomial degree) > > [0]PETSC ERROR: #1 FILTLAN_GetIntervals() line 451 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filtlan.c > [0]PETSC ERROR: #2 STFilter_FILTLAN_setFilter() line 1016 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filtlan.c > [0]PETSC ERROR: #3 STSetUp_Filter() line 42 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filter.c > [0]PETSC ERROR: #4 STSetUp() line 271 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/interface/stsolve.c > [0]PETSC ERROR: #5 EPSSetUp() line 263 in > /home/applications/sources/libraries/slepc-3.9.2/src/eps/interface/epssetup.c > [0]PETSC ERROR: #6 EPSSolve() line 135 in > /home/applications/sources/libraries/slepc-3.9.2/src/eps/interface/epssolve.c > > > > Do you have a clue what I've missed? > > > Moritz > > > From: Jose E. Roman > Sent: Wednesday, October 10, 2018 2:30 PM > To: Moritz Cygorek > Cc: petsc-users@mcs.anl.gov > Subject: Re: [petsc-users] STFILTER in slepc > > > > El 10 oct 2018, a las 19:54, Moritz Cygorek escribió: > > > > Hi, > > > > in the list of changes to SLEPc version 3.8, it is stated that there is a > > preliminary implementation of polynomial filtering using STFILTER. > > > > Because I am struggling to obtain interior eigenvalues and harmonic > > extraction seems not to be stable enough in my case, I wanted to give it a > > try, but I could not find any documentation yet. > > > > Does anybody have an example of how to use STFILTER or any documentation > > about it? > > > > Thanks in advance, > > Moritz > > There are no examples. You just set the type to STFILTER and set some > parameters such as the interval of interest or the polynomial degree. See > functions starting with STFilter > here:http://slepc.upv.es/documentation/current/docs/manualpages/ST/index.html > > In some problems it works well, but don't expect too much. It is still in our > to-do list to make it more usable. It will be good to have your feedback. If > you want, send results to slepc-maint, maybe we can help tuning the > parameters. > > Jose
Re: [petsc-users] STFILTER in slepc
This type of method requires a very high degree polynomial; suggest using degree=100 at least (this is the default value), but larger values may be necessary. Also, for this particular filter the "range" must be approximately equal to the numerical range; if you have no clue where your first and last eigenvalues are, you may use EPSSolve() calls with EPS_LARGEST_REAL and EPS_SMALLEST_REAL. Jose > El 10 oct 2018, a las 21:10, Moritz Cygorek escribió: > > Thank you for the fast reply. > > I've tried running my program (using the defaul Krylov-Schur method for > sparse MPI matrices) with the additional options: > > -st_type filter -st_filter_degree 2 -st_filter_interval 2.,2.7 > -st_filter_range -2000,2000 > > and I get the following error message: > > [0]PETSC ERROR: STFILTER cannot get the filter specified; please adjust your > filter parameters (e.g. increasing the polynomial degree) > > [0]PETSC ERROR: #1 FILTLAN_GetIntervals() line 451 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filtlan.c > [0]PETSC ERROR: #2 STFilter_FILTLAN_setFilter() line 1016 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filtlan.c > [0]PETSC ERROR: #3 STSetUp_Filter() line 42 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filter.c > [0]PETSC ERROR: #4 STSetUp() line 271 in > /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/interface/stsolve.c > [0]PETSC ERROR: #5 EPSSetUp() line 263 in > /home/applications/sources/libraries/slepc-3.9.2/src/eps/interface/epssetup.c > [0]PETSC ERROR: #6 EPSSolve() line 135 in > /home/applications/sources/libraries/slepc-3.9.2/src/eps/interface/epssolve.c > > > > Do you have a clue what I've missed? > > > Moritz > > > From: Jose E. Roman > Sent: Wednesday, October 10, 2018 2:30 PM > To: Moritz Cygorek > Cc: petsc-users@mcs.anl.gov > Subject: Re: [petsc-users] STFILTER in slepc > > > > El 10 oct 2018, a las 19:54, Moritz Cygorek escribió: > > > > Hi, > > > > in the list of changes to SLEPc version 3.8, it is stated that there is a > > preliminary implementation of polynomial filtering using STFILTER. > > > > Because I am struggling to obtain interior eigenvalues and harmonic > > extraction seems not to be stable enough in my case, I wanted to give it a > > try, but I could not find any documentation yet. > > > > Does anybody have an example of how to use STFILTER or any documentation > > about it? > > > > Thanks in advance, > > Moritz > > There are no examples. You just set the type to STFILTER and set some > parameters such as the interval of interest or the polynomial degree. See > functions starting with STFilter > here:http://slepc.upv.es/documentation/current/docs/manualpages/ST/index.html > > In some problems it works well, but don't expect too much. It is still in our > to-do list to make it more usable. It will be good to have your feedback. If > you want, send results to slepc-maint, maybe we can help tuning the > parameters. > > Jose
Re: [petsc-users] STFILTER in slepc
Thank you for the fast reply. I've tried running my program (using the defaul Krylov-Schur method for sparse MPI matrices) with the additional options: -st_type filter -st_filter_degree 2 -st_filter_interval 2.,2.7 -st_filter_range -2000,2000 and I get the following error message: [0]PETSC ERROR: STFILTER cannot get the filter specified; please adjust your filter parameters (e.g. increasing the polynomial degree) [0]PETSC ERROR: #1 FILTLAN_GetIntervals() line 451 in /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filtlan.c [0]PETSC ERROR: #2 STFilter_FILTLAN_setFilter() line 1016 in /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filtlan.c [0]PETSC ERROR: #3 STSetUp_Filter() line 42 in /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/impls/filter/filter.c [0]PETSC ERROR: #4 STSetUp() line 271 in /home/applications/sources/libraries/slepc-3.9.2/src/sys/classes/st/interface/stsolve.c [0]PETSC ERROR: #5 EPSSetUp() line 263 in /home/applications/sources/libraries/slepc-3.9.2/src/eps/interface/epssetup.c [0]PETSC ERROR: #6 EPSSolve() line 135 in /home/applications/sources/libraries/slepc-3.9.2/src/eps/interface/epssolve.c Do you have a clue what I've missed? Moritz From: Jose E. Roman Sent: Wednesday, October 10, 2018 2:30 PM To: Moritz Cygorek Cc: petsc-users@mcs.anl.gov Subject: Re: [petsc-users] STFILTER in slepc > El 10 oct 2018, a las 19:54, Moritz Cygorek escribió: > > Hi, > > in the list of changes to SLEPc version 3.8, it is stated that there is a > preliminary implementation of polynomial filtering using STFILTER. > > Because I am struggling to obtain interior eigenvalues and harmonic > extraction seems not to be stable enough in my case, I wanted to give it a > try, but I could not find any documentation yet. > > Does anybody have an example of how to use STFILTER or any documentation > about it? > > Thanks in advance, > Moritz There are no examples. You just set the type to STFILTER and set some parameters such as the interval of interest or the polynomial degree. See functions starting with STFilter here: http://slepc.upv.es/documentation/current/docs/manualpages/ST/index.html In some problems it works well, but don't expect too much. It is still in our to-do list to make it more usable. It will be good to have your feedback. If you want, send results to slepc-maint, maybe we can help tuning the parameters. Jose
Re: [petsc-users] STFILTER in slepc
> El 10 oct 2018, a las 19:54, Moritz Cygorek escribió: > > Hi, > > in the list of changes to SLEPc version 3.8, it is stated that there is a > preliminary implementation of polynomial filtering using STFILTER. > > Because I am struggling to obtain interior eigenvalues and harmonic > extraction seems not to be stable enough in my case, I wanted to give it a > try, but I could not find any documentation yet. > > Does anybody have an example of how to use STFILTER or any documentation > about it? > > Thanks in advance, > Moritz There are no examples. You just set the type to STFILTER and set some parameters such as the interval of interest or the polynomial degree. See functions starting with STFilter here: http://slepc.upv.es/documentation/current/docs/manualpages/ST/index.html In some problems it works well, but don't expect too much. It is still in our to-do list to make it more usable. It will be good to have your feedback. If you want, send results to slepc-maint, maybe we can help tuning the parameters. Jose
[petsc-users] STFILTER in slepc
Hi, in the list of changes to SLEPc version 3.8, it is stated that there is a preliminary implementation of polynomial filtering using STFILTER. Because I am struggling to obtain interior eigenvalues and harmonic extraction seems not to be stable enough in my case, I wanted to give it a try, but I could not find any documentation yet. Does anybody have an example of how to use STFILTER or any documentation about it? Thanks in advance, Moritz