EffectiveIndex2D
----------------

.. xml:tag:: <optical solver="EffectiveIndex2D"> [EffectiveIndex2D]

   Corresponding Python class: :py:class:`optical.effective.EffectiveIndex2D`.

   Scalar optical solver based on the effective index method.

   :attr required name: Solver name.

   .. xml:contents::

      .. xml:tag:: <geometry> [in optical.EffectiveIndex2D]

         Geometry for use by this solver.

         :attr required ref: Name of a Cartesian2D geometry defined in the :xml:tag:`<geometry>` section.

      .. xml:tag:: <mesh> [in optical.EffectiveIndex2D]

         Optional Rectangular2D, Ordered, Regular mesh used by this solver.

         :attr required ref: Name of a Rectangular2D, Ordered, Regular mesh defined in the :xml:tag:`<grids>` section.

      .. xml:tag:: <mode> [in optical.EffectiveIndex2D]

         Mode properties

         :attr polarization: Longitudinally-propagating mode polarization (TE or TM). (\ ``TE``\  or \ ``TM``\ , default is \ ``TE``\ )
         :attr wavelength: Mode wavelength. (float (nm))
         :attr vneff: Initial vertical effective index of the in location in which the vertical solution is calculated; setting this value helps to find models in very long resonators. (float (-))
         :attr vat: Horizontal position of at which the vertical part of the field is calculated. (float (µm), default 0.0 µm)
         :attr emission: Direction of the useful light emission. Necessary for the over-threshold model to correctly compute the output power. (\ ``front``\  or \ ``back``\ , default is \ ``front``\ )

      .. xml:tag:: <root> [in optical.EffectiveIndex2D]

         Parameters of the horizontal root-finding algorithm.

         :attr method: Root finding algorithm. (\ ``muller``\ , \ ``broyden``\ , or \ ``brent``\ , default is \ ``muller``\ )
         :attr tolx: Maximum change of the effective frequency parameter which is allowed for convergent solution. (float, default 1e-06)
         :attr tolf-min: Minimum value of the determinant sufficient to assume convergence. (float, default 1e-07)
         :attr tolf-max: Maximum value of the determinant required to assume convergence. (float, default 2e-05)
         :attr maxstep: Maximum step in one iteration of root finding. Significant for the Broyden's method only. (float, default 0.1)
         :attr maxiter: Maximum number of root finding iterations. (int, default 500)
         :attr alpha: Parameter ensuring sufficient decrease of determinant in each step (Broyden method only). (float, default 1e-07)
         :attr lambda: Minimum decrease ratio of one step (Broyden method only). (float, default 1e-08)
         :attr initial-range: Initial range size (Muller method only). (complex, default 0.001)
         :attr stairs: Number of staircase iterations (Brent method only). (int, default 3)

      .. xml:tag:: <stripe-root> [in optical.EffectiveIndex2D]

         Parameters of root-finding algorithm for one stripe.

         :attr method: Root finding algorithm. (\ ``muller``\ , \ ``broyden``\ , or \ ``brent``\ , default is \ ``muller``\ )
         :attr tolx: Maximum change of the effective frequency parameter which is allowed for convergent solution. (float, default 1e-06)
         :attr tolf-min: Minimum value of the determinant sufficient to assume convergence. (float, default 1e-07)
         :attr tolf-max: Maximum value of the determinant required to assume convergence. (float, default 1e-05)
         :attr maxstep: Maximum step in one iteration of root finding. Significant for the Broyden's method only. (float, default 0.1)
         :attr maxiter: Maximum number of root finding iterations. (int, default 500)
         :attr alpha: Parameter ensuring sufficient decrease of determinant in each step (Broyden method only). (float, default 1e-07)
         :attr lambda: Minimum decrease ratio of one step (Broyden method only). (float, default 1e-08)
         :attr initial-range: Initial range size (Muller method only). (complex, default 0.001)
         :attr stairs: Number of staircase iterations (Brent method only). (int, default 3)

      .. xml:tag:: <mirrors> [in optical.EffectiveIndex2D]

         Mirror losses.

         :attr R1: Reflectivity of the front mirror. (float)
         :attr R2: Reflectivity of the back mirror. (float)
