Schrödinger–Poisson
Use the Schrödinger–Poisson () study and study step to automatically generate the iterations in the solver sequence for the self-consistent solution of the fully coupled Schrödinger–Poisson equation. Also see the Semiconductor Module User’s Guide for the Schrödinger–Poisson Equation multiphysics interface.
To take advantage of the default settings detailed below, use the Model Wizard or the Add Study button in the ribbon or toolbar of the COMSOL Desktop. A study step added by right-clicking a Study node does not include any default settings suggested by the physics.
Study Settings
From the Eigenvalue solver list, choose ARPACK (the default), FEAST, or LAPACK (filled matrix):
The ARPACK algorithm is based on an algorithmic variant of an Arnoldi process When the matrix A is symmetric it reduces to a variant of the Lanczos process. For its settings, see Study Settings for ARPACK below.
The FEAST algorithm uses an inverse residual iteration algorithm and seeks to accelerate the convergence of the subspace eigenvalue problem. It can be effective for finding clustered eigenvalues by using an ellipse to search within. For its settings, see Study Settings for FEAST.
The LAPACK algorithm is useful for finding all eigenvalues for a filled matrix. This option is only applicable for small eigenvalue problems. For its settings, see Study Settings for LAPACK (Filled Matrix).
For more information about these eigenvalue solvers, see The Eigenvalue Solver Algorithms.
Study Settings for ARPACK
From the Eigenvalue search method list, select a search method:
 Around shift (the default), to specify some search criteria manually. See Around Shift Eigenvalue Search Settings below.
 Rectangle, to define an eigenvalue search region in a complex plane. See Rectangular Eigenvalue Search Region Settings below and The Eigenvalue Solver Algorithms.
Around Shift Eigenvalue Search Settings
By default, the physics interfaces suggest a suitable number of eigenvalues to search for. To specify the number of eigenvalues, select the check box in front of the Desired number of eigenvalues field to specify the number of eigenvalues you want the solver to return (default: 6).
From the Unit list, choose a suitable unit (default rad/s).
By default, the physics interfaces suggest a suitable value around which to search for eigenvalues. To specify the value to search for eigenvalues around (shift), select the check box in front of the Search for eigenvalues around field; you can then specify a value or expression around which the eigenvalue solver should look for solutions to the eigenvalue equation (default: 0).
Use the Search method around shift list to control how the eigenvalue solver searches for eigenvalues around the specified shift value:
Select Closest in absolute value (the default value) to search for eigenvalues that are closest to the shift value when measuring the distance as an absolute value.
Select Larger real part to search for eigenvalues with a larger real part than the shift value.
Select Smaller real part to search for eigenvalues with a smaller real part than the shift value.
Select Larger imaginary part to search for eigenvalues with a larger imaginary part than the shift value.
Select Smaller imaginary part to search for eigenvalues with a smaller imaginary part than the shift value.
Rectangular Eigenvalue Search Region Settings
Use the Approximate number of eigenvalues field to specify the approximate number of eigenvalues you want the solver to return (default: 20). The value of the Approximate number of eigenvalues will affect the Dimension of Krylov space used by the algorithm; see the Advanced section of the Eigenvalue Solver. It means that increasing the value of the Approximate number of eigenvalues will increase the memory requirement and the computational time. If the solver indicates that the value of the Approximate number of eigenvalues is smaller than the actual number of eigenvalues in the given region, it will perform a search for more eigenvalues, which increases the computational time; see The Eigenvalue Region Algorithm. Within limits it is often more efficient to provide a too large value of Approximate number of eigenvalues than a too small.
In the Maximum number of eigenvalues field, you can specify a maximum number of eigenvalues to limit the eigenvalue solver’s search for additional eigenvalues (default: 200).
Under Rectangle search region, you define a unit (defaults: rad/s) and the size of the search region for eigenvalues as a rectangle in the complex plane by specifying the Smallest real part, Largest real part, Smallest imaginary part, and Largest imaginary part in the respective text fields. The search region also works as an interval method if the Smallest imaginary part and Largest imaginary part are equal; the eigenvalue solver then only considers the real axis and vice versa.
Symmetry and Consistency Settings
If you have chosen Rectangle from the Eigenvalue search method list, the Perform consistency check check box is available and selected by default to increase confidence that the solver finds all eigenvalues in the search region. The work required for performing the consistency check constitutes a significant part of the total work of the eigenvalue computation.
Eigenvalue computations can be performed with a nonsymmetric solver or, if applicable, a real symmetric solver. From the Use real symmetric eigenvalue solver list, choose Automatic (the default) or Off. For the Automatic option there is the option to select the Real symmetric eigenvalue solver consistency check check box. This consistency check increases the computational time and memory requirements but provides a rigorous check of the applicability of the real symmetric solver.
Study Settings for FEAST
Using the FEAST eigenvalue solver, you can define an ellipse to explicitly exclude the eigenvalues outside the ellipse. Choosing a suitable search region determines which eigenvalues that will be returned for results analysis.
From the Eigenvalue search method list, select a search method:
Ellipse (the default), to define an eigenvalue search contour as an ellipse in a complex plane. See Ellipse Search Region settings below.
Half ellipse (Hermitian problem), to define an eigenvalue search contour by half of the whole ellipse. See Half Ellipse Search Region below.
Ellipse Search Region
You define the Ellipse by specifying the Unit (default: rad/s), Center, Real semiaxis, Imaginary semiaxis, and Rotation angle in the respective text fields. It is important that the real semiaxis that you specify in the Real semiaxis field is large enough to enclose the eigenvalues of interest. In the Imaginary semiaxis field, you specify the imaginary semiaxis in a similar way. In the Rotation angle field, specify the rotation angle in degrees from the vertical axis in the range of 180 degrees to 180 degrees.
From the Number of eigenvalues list, select the method for evaluating the number of eigenvalues inside the eigenvalue search ellipse:
Stochastic estimation (the default) to use stochastic estimation to evaluate the number of eigenvalues. After the stochastic estimation finishes, the eigenvalue solver automatically calculates the eigenvalues inside the eigenvalue search contour, using the number of eigenvalues calculated from stochastic estimation as the Size of initial search subspace for estimation (default: 6).
Manual to specify the number of eigenvalues inside the eigenvalue search contour manually in the Approximate number of eigenvalues field (default: 6).
For an eigenvalue problem for which you know how many eigenvalues there are, the solver can compute the eigenvalues directly. For that case, choose Manual from the Number of eigenvalues list and enter the desired number of eigenvalues in the Approximate number of eigenvalues field. If you do not know the number of eigenvalues in the defined region, there are two cases: You can just estimate the number of eigenvalues without computing them, or you can let the software estimate the number of eigenvalues and then compute them automatically afterward. The former is achieved by clicking the Stochastic Estimation button () at the top right of the Study Settings section. The latter is achieved by choosing Stochastic estimation from the Number of eigenvalues list, and then click Compute. Both cases require doing stochastic estimation, which needs the setting of a Size of initial search subspace for estimation field (default: 6).
The Stochastic Estimation works as a Compute to Selected step. Because the Stochastic Estimation action does not solve the eigenvalue problem, there will not be any valid solution from this action. So, if the Stochastic Estimation action is done for a single step or the first step in a multistep study, there will not be any solution that can be used for postprocessing and results analysis. If the action is done for a step after the first step in a multistep study, the main solution of the sequence corresponds to the study step right before the eigenstep for which the estimation is done.
There is an option to select the Store linear system factorization check box. If selected, linear system factorizations are stored from the first FEAST iteration and reused in later iterations.
If the Study>Batch and Cluster check box is selected in the Show More Options dialog box, select the Distribute linear system solution check box to run the FEAST eigenvalue solver in parallel. See Running FEAST in a Parallel MPI Mode for more information.
Half Ellipse Search Region
You define the Half ellipse (Hermitian problem) by specifying the Unit (default: rad/s), Smallest real part, Largest real part, and Imaginary semiaxis in the respective text fields.
From the Number of eigenvalues list, select the method for evaluating the number of eigenvalues inside the eigenvalue search contour:
Stochastic estimation (the default) to use stochastic estimation to evaluate the number of eigenvalues. After the stochastic estimation finishes, the eigenvalue solver automatically calculates the eigenvalues inside the eigenvalue search contour, using the number of eigenvalues calculated from stochastic estimation as the Size of initial search subspace for estimation (default: 6).
Manual to specify the number of eigenvalues inside the eigenvalue search contour manually in the Approximate number of eigenvalues field (default: 6).
In the Size of initial search subspace for estimation field (default: 6), specify the initial guess of the search subspace dimension, which can be interpreted as an initial guess for the number of eigenvalues inside the half contour. This setting is only available when using a stochastic estimation.
There is an option to select the Store linear system factorization check box. If selected, linear system factorizations are stored from the first FEAST iteration and reused in later iterations.
If the Study>Batch and Cluster check box is selected in the Show More Options dialog box, select the Distribute linear system solution check box to run the FEAST eigenvalue solver in parallel. See Running FEAST in a Parallel MPI Mode for more information.
Symmetry and Consistency Settings
For the Ellipse eigenvalue search method, eigenvalue computations can be performed with a nonsymmetric solver or, if applicable, a real symmetric solver. From the Use real symmetric or Hermitian eigenvalue solver list, choose Automatic (the default) or Off. For the Automatic option, and for the Half ellipse (Hermitian problem) eigenvalue search method, there is the option to select the Real symmetric eigenvalue solver consistency check check box. This consistency check increases the computational time and memory requirements but provides a rigorous check of the applicability of the real symmetric solver.
Study Settings for LAPACK (Filled Matrix)
To specify a shift to use in the modes computation, select the Shift used in the modes computation check box and then enter a shift (in rad/s) in the associated text field.
In the Maximum matrix size field, enter an upper limit on the matrix size (default: 2000).
From the Unit list, choose a suitable unit (default rad/s).
Values of Linearization Point
Use the settings in this section to specify a linearization point.
From the Settings list, choose Physics controlled (the default) to use linearization point settings controlled by the physics interfaces. Choose User defined to specify the linearization point using the Method list. Select:
Initial expression to use the expressions specified on the Initial Values nodes under a specific physics interface as a linearization point.
 Solution to use a solution as a linearization point.
Use the Study list to specify which solution to use from the available studies. Select:
Zero solution to use a linearization point that is identically equal to zero.
Any other available solution to use it as a linearization point. It can be the current solution in the sequence, or a solution from another sequence, or a solution that was stored with the Solution Store node. You select a stored solution by changing Use to the name of the stored solution. Choose a solution using the Selection list (see Values of Dependent Variables under Common Study Step Settings).
Physics and Variables Selection
If there are extra domain or boundary conditions used to obtain the initial value for the fully coupled problem, remember to disable them here. For example, see the Self-Consistent Schrödinger-Poisson Results for a GaAs Nanowire tutorial model (schrodinger_poisson_nanowire), where the Thomas-Fermi solution is used as the initial condition, and the space charge density contribution from the Thomas-Fermi approximation is disabled here.
Iterations
The default option for the Termination method list is Minimization of global variable, which updates a table displaying the history of a global error variable after each iteration during the solution process. This provides a good indication of the solution process to monitor whether the iteration is converging.
The default expression for the Global variable input field uses the built-in global error variable schrp1.global_err, which computes the max difference between the electric potential fields from the two most recent iterations, in the unit of V, as discussed in the section Charge Density Computation for the Schrödinger–Poisson Coupling multiphysics node in the Semiconductor Module User’s Guide. Note that the prefix for the variable, in this case schrp1, should match the Name input field of the Schrödinger–Poisson Coupling multiphysics node. Setting the Absolute tolerance to 1e-6 thus means the iteration ends after the max difference is less than 1 uV.
Values of Dependent Variables
Use this section to configure the initial conditions for the study step. See section Values of Dependent Variables for details.
Study Extensions
Use the Auxiliary sweep option to solve for a set of parameters. For example, in the Self-Consistent Schrödinger–Poisson Results for a GaAs Nanowire tutorial model (schrodinger_poisson_nanowire), it is used to solve for a set of azimuthal quantum numbers. See Auxiliary Sweep for details.