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.
 
    
    From the Eigenvalue solver list, choose 
ARPACK (the default) or 
FEAST.
 
    
    
    
    From the Eigenfrequency search method list, select a search method:
 
    
    
    
      
        
          | 
             • 
           | 
          
             All (filled matrix) to find all eigenfrequencies for a filled matrix. This option is only applicable for small eigenfrequency problems. You can then specify a  Maximum matrix size (default: 2000).  
           | 
        
      
     
    The default option for the Eigenfrequency search method list is 
Manual because for a completely new problem, it is often necessary to use this option to find the range of the eigenenergies and a rough estimate of the number of eigenstates. Once the range and number are found, switch to the 
Region search option with appropriate settings for the range and number of eigenvalues, in order to ensure that all significant eigenstates are found by the solver.
 
    
    
    
    
    Use the Eigenvalue 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.  
           | 
        
      
     
    
    
    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).
 
    The Perform consistency check check box is 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.
 
    Under 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. The real and imaginary parts of the input fields refer to the real and imaginary parts of the eigenvalue, respectively (not the real and imaginary part of the eigenfrequency). So, to look for the eigenenergies of bound states, set the input fields for the real parts to the expected energy ranges, and set the input fields for the imaginary parts to a small range around zero to capture numerical noise or slightly leaky quasi-bound states.
 
    
    
    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 check increases the computational time and memory requirements but provides a rigorous check of the applicability of the real symmetric solver.
 
    
    From the Eigenvalue search contour list, select a search contour:
 
    
    
      
        
          | 
             • 
           | 
          
             Half contour (Hermitian problem), to define an eigenvalue search contour by half of the whole contour. See  Half Search Contour Settings below.  
           | 
        
      
     
    
    You define the Whole contour by specifying the 
Unit (default: deg/s), 
Center of the ellipse contour, 
Horizontal radius of the ellipse contour, 
Vertical/horizontal axis ratio of ellipse contour (%) and 
Rotation angle of the ellipse contour in the respective text fields. It is important that the horizontal radius that you specify in the 
Horizontal radius of the ellipse contour field is large enough to enclose the eigenvalues of interest. In the 
Vertical/horizontal axis ratio of ellipse contour (%) field, specify the ratio of the vertical radius of the ellipse over its horizontal radius, assuming that the horizontal radius is 100. In the 
Rotation angle of the ellipse contour field, specify the rotation angle in degree 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 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).  
           | 
        
      
     
    
      
        
          | 
             • 
           | 
          
             Stochastic estimation only to use only stochastic estimation to evaluate the number of eigenvalues.  
           | 
        
      
     
    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 contour. This setting is only available when using a stochastic estimation.
 
    From the Integration type for estimation list, select the type for integration:
 
    
      
        
          | 
             • 
           | 
          
             Automatic (the default) to choose the integration type automatically depending on eigenvalue solver. It means the Gauss type for real symmetric or Hermitian eigenvalue solver and the Trapezoidal type for other types of solvers.  
           | 
        
      
     
    
      
        
          | 
             • 
           | 
          
             Gauss to use Gauss integration.  
           | 
        
      
     
    
      
        
          | 
             • 
           | 
          
             Trapezoidal to use trapezoidal integration.  
           | 
        
      
     
    From the Number of integration points for estimation list, select the number of points for integration:
 
    
      
        
          | 
             • 
           | 
          
             Automatic (the default) to define the number of points for integration automatically. It is 3 for real symmetric or Hermitian eigenvalue solvers and 6 for other types of solvers.  
           | 
        
      
     
    
      
        
          | 
             • 
           | 
          
             Manual to specify the number of integration points for estimation manually in the  Number of integration points field.  
           | 
        
      
     
    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 there is the option to select the 
Real symmetric or Hermitian eigenvalue solver consistency check check box. This check increases the computational time and memory requirements but provides a rigorous check of the applicability of the real symmetric solver.
 
    There is also and 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.
 
    
    You define the Half contour (Hermitian problem) by specifying the 
Unit, 
Lower bound of search interval, 
Upper bound of search interval, and 
Vertical/horizontal axis ratio of ellipse contour (%) 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).  
           | 
        
      
     
    
      
        
          | 
             • 
           | 
          
             Stochastic estimation only to use only stochastic estimation to evaluate the number of eigenvalues.  
           | 
        
      
     
    From the Integration type for estimation list, select the type for integration:
 
    
      
        
          | 
             • 
           | 
          
             Automatic (the default) to choose the integration type automatically depending on eigenvalue solver. It means the Gauss type for real symmetric or Hermitian eigenvalue solver and the Trapezoidal type for other types of solvers.  
           | 
        
      
     
    
      
        
          | 
             • 
           | 
          
             Gauss to use Gauss integration.  
           | 
        
      
     
    
      
        
          | 
             • 
           | 
          
             Trapezoidal to use trapezoidal integration.  
           | 
        
      
     
    
      
        
          | 
             • 
           | 
          
             Zolotarev to use Zolotarev integration.  
           | 
        
      
     
    From the Number of integration points for estimation list, select the number of points for integration:
 
    
      
        
          | 
             • 
           | 
          
             Automatic (the default) to define the number of points for integration automatically. It is 3 for real symmetric or Hermitian eigenvalues.  
           | 
        
      
     
    
      
        
          | 
             • 
           | 
          
             Manual to specify the number of integration points for estimation manually in the  Number of integration points field.  
           | 
        
      
     
    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.
 
    If required, there is an option to select the Real symmetric or Hermitian eigenvalue solver consistency check check box. There is also 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.
 
    
    Use the settings under Values of linearization point 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.  
           | 
        
      
     
    
    
    
    
    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.
 
    
    
    
    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.