Gallery

Gallery

NEP-PACK provides a way to access applications in order to easily improve and compare algorithms on realistic problems. Below you will find a description of:

julia> nep=nep_gallery("dep0")
julia> λ,v=newton(nep)
(-0.3587189459686265 + 0.0im, Complex{Float64}[0.284742+0.0im, -0.143316+0.0im, 0.278378+0.0im, -0.5009+0.0im, -0.613634+0.0im])
julia> norm(compute_Mlincomb(nep,λ,v))
4.718447854656915e-16

Standard native gallery

 nep=nep_gallery(name)
 nep=nep_gallery(name,params)
 nep=nep_gallery(name,params;kwargs)

Collection of nonlinear eigenvalue problems. Returns a NEP object from a gallery of examples of nonlinear eigenvalue problems. The parameter name decides which NEP.

Supported problems:

The following list describes the NEP with a certain name and the associated parameters (params) and keyword arguments (kwargs), if any.

The MATLAB-package described in T. Betcke, N. J. Higham, V. Mehrmann, Ch. Schröder, F. Tisseur, NLEVP: A Collection of Nonlinear Eigenvalue Problems, ACM Transactions on Mathematical Software 39(2), January 2011 provides a number of benchmark problems for NEPs. These are available in NEP-PACK in two different ways. We have native implementations of some problems (referred to as nlevp_native_) and the separate GalleryNLEVP. The native implementation is preferred since the GalleryNLEVP interfaces with MATLAB and is therefore considerably slower.

Example

julia> nep=nep_gallery("dep0",100);
julia> norm(compute_Mlincomb(nep,1.0+1.0im,ones(size(nep,1))))
57.498446538064954

See also the following galleries:

  • GalleryNLEVP
  • GalleryWaveguide

Berlin-Manchester collection

If MATLAB and the Berlin-Manchester collection are installed, you can access the Berlin-Manchester collection problems with the GalleryNLEVP. This is a wrapper, which makes MATLAB-calls (via Julias MATLAB interoperability package) for every compute-function call. This can be very inefficient due to overhead. You may want to convert your NEP to a native type, e.g., ChebPEP.

julia> using GalleryNLEVP
julia> nlevp_path="/home/user/myname/work/src/nlevp";
julia> nep=nep_gallery(NLEVP_NEP,"hadeler",nlevp_path);
julia> λ,v=quasinewton(nep,λ=0.2,logger=1,maxit=20,tol=1e-10);
julia> norm(compute_Mlincomb(nep,λ,v))/norm(v)
9.698206079849311e-11

Problems loaded from the Berlin-Manchester collection are NEP-objects where every call to access a function generates a call to an underlying MATLAB-session. Some problems in the Berlin-Manchester collection have native support in NEP-PACK, i.e., avoiding a MATLAB-access in every call; see nep_gallery above.

Extra gallery problems

Stand-alone implementation of certain larger problems can be accessed in a similar way to the standard native gallery. A native implementation of a waveguide eigenvalue problem can be accessed as.

julia> using GalleryWaveguide
julia> nep=nep_gallery(WEP,benchmark_problem="TAUSCH");