## 1. Introduction

Femtosecond lasers hold a strong position in the current industrial production of materials and different-purpose products [

1,

2,

3,

4]. It should be noted that the problem of the delivery of high-power optic pulses with the required parameters to the destination point appears straight at the beginning of their practical usage. Special optical fibers (e.g., photonic band gap hollow-core and hole-core fibers) are developed for transmission of high-power ultrashort pulses [

5,

6,

7]. Special attention is paid to polarization maintaining fibers [

6]. At the same time, the widespread use of femtosecond lasers requires the usage of cheaper fibers with more simple production techniques. The usage of a shorter pulse technique allows the transmission of pulses with higher peak-power through quartz fibers without maximum available energy exceedance, which can lead to fiber-core degradation [

8]. As a result, the cheaper quartz fibers have occupied the niche in industrial usage of femtosecond lasers [

9,

10,

11,

12,

13]. The birefringent fibers are of particular interest for transmission of high-power ultrashort pulses [

10,

11,

12], as it has been noted above.

In order to develop and create the methods and delivery technique of ultrashort (femtosecond) pulses it is required to develop mathematical methods of ultrashort pulses evolution modelling in fiber. The ultrashort pulse evolution during its propagation in fiber is described by the coupled nonlinear Schrödinger equations system. The difference between the system mentioned above and the classic form of Schrödinger equations is in the additional terms, which describe the third-order chromatic dispersion and the Raman scattering [

13,

14,

15,

16,

17,

18,

19,

20]. Taha T.R. and Ablowitz M.I. made the comparative analysis of the currently known numerical methods for solving the nonlinear Schrödinger equation in 1984 [

12]. In their fundamental review, they examined many different algorithms, including numerical ones, for solving the nonlinear Schrödinger equation. After this publication, the usage of splitting the physical processes method with the fast Fourier transform became the main numerical method for solving the optics problems in fiber. In particular, it was mentioned that the splitting into physical processes method significantly exceeds the finite difference methods in accuracy, since the second time derivative in it is calculated by the discrete Fourier transform, which provides an exponential convergence rate with respect to the time variable [

12]. The split-step Fourier method is used as a standard method in most computer program packages. Although this method has sufficient accuracy, it has its own computing complexity on its non-linear step. It is a good reason to search alternative solution methods, including numerical ones, that can be faster than a split-step Fourier method in case of a large number of time divisions [

17,

18,

21,

22].

The experimental results of 12 fs and 175 kW peak-power pulse transmission through birefringent single mode fiber are presented in the series of works [

23,

24,

25,

26,

27,

28]. The comparison of the experimental results with the computer calculations on fiber end output, which are received using finite difference time domain method, are also presented there. The experimental results correspond to computer calculations in part of pulse duration and its spectrum width. However, the finite difference time domain method does not consider birefringent effects in single mode fiber. At the same time, the computing pulse form at the fiber end output differs from the pulse experimental form significantly. Later in [

29,

30,

31] it was shown, that the main reason of such discrepancy was connected with the fact that the birefringent effects were not taken into consideration.

Thus, the findings that it is necessary to consider the birefringent effects in fibers, even if fiber length is small [

32,

33,

34], were confirmed. In the case of the fiber‘s birefringent effects the system of two Schrödinger equations describes a pulse evolution through fiber. This equations system for fibers with birefringent effects and without Raman scattering is named as the Manakov equations system [

20,

32].

The system of nonlinear Schrödinger equations has been intensively studied over recent years. Hardin R. and Tappert F. in 1973 [

35], as well as Lake B. and co-authors in 1977 [

36] were the first, who applied methods of numerical solutions to nonlinear Schrödinger equation solution. Currently, there are many numerical methods for solving the system of coupled nonlinear Schrödinger equations: finite-difference schemes [

37,

38], spectral methods [

39], Petrov-Galerkin method [

40], and splitting methods [

41,

42,

43,

44].

It is known that, it is necessary to take into consideration the third-order chromatic dispersion and Raman scattering for pulses, shorter than 10 ps. As it has been shown above, this leads to the necessity to include the additional terms in the Schrödinger equations. In contrast to [

32] it is necessary to solve the modification of coupled a nonlinear Schrödinger equations system [

31,

33,

45]. The principal difference and the major problem here is that nonlinear additional terms contain partial derivatives from desired function by time. The solution with split-step method requires the increase in number of operations in the fast Fourier step or the solving of an additional system of differential equations at each integration step [

45]. The projection operator method, based on a variational approach, is suggested in [

33] in contrast to split-step methods [

31,

45].

In this work the numerical integration method is proposed for solving of the coupled nonlinear Schrödinger equations system, written with third-order chromatic dispersion and Raman scattering. The suggested method differs from the generally accepted approach, based on the method of splitting according to physical variables. The system of equations is written in finite-difference relations with separation to linear and nonlinear terms. Linear terms are written in an implicit scheme, and nonlinear terms in an explicit finite-difference scheme. This approach allows researchers to divide the system of Schrödinger equations into two independent systems of linear equations for each mode at each step of numerical integration process. The algorithm for refining the numerical solution at each step is proposed. It eliminates the errors associated with nonlinear terms in explicit form.

The main advantages of the proposed method are the following: absolute stability due to the usage of an implicit finite-difference integration scheme and an integrated mechanism for refining the numerical solution at each step; integration with automatic step selection; increase in the efficiency (or resolutions) up to three or more orders of magnitude due to the fact that there is no need to produce direct and inverse Fourier transforms at each integration step, as is required in a split-step method. An additional advantage of the proposed method is the ability to calculate the interaction with an arbitrary number of propagation modes in the fiber.

## 5. The Finite-Difference Scheme

The modification of the Crank–Nicolson six-point implicit finite-difference scheme [

46] up to an eight-point scheme (

Figure 1a), allows us to write the third-order partial derivatives with a second order approximation.

In

Figure 1a, mesh nodes on dimensionless length variable ξ are indicated by

k, and on dimensionless time τ are indicated by

n. For

Figure 1a, “×” indicates the point, where the equality relations of Equation (9) are recorded. Mesh nodes, where values of desired functions are known or determined, are indicated by “∙”. If values of desired functions are unknown, they are indicated by “◦”. Integration is carried out along the length coordinate ξ from left to right. At each integration step, at each point, a system of equations is recorded for four unknown values of the desired functions at the

k + 1 integration step.

The system of Equation (9) can be rewritten in the form:

where

F_{x}(

x,

y),

F_{y}(

x,

y) are used to denote appropriate parts in Equation (9).

If we add the parameter θ, that changes from zero to one, we can rewrite Equation (11) in finite-difference implicit form. The finite-difference equivalences are written in each virtual point with fractional indexes (

k + ½,

n − ½). This point is denoted in

Figure 1a by “×”. The finite-difference equation system has the form:

where bottom indexes “

k” are used to denote the discrete dimensionless length, and top “

n” indexes—for dimensionless time.

The values of desired functions in Equation (12) are known at the k-s layer, while the values at the (k + 1) layer are known only on the boundary. The values of ${({F}_{x})}_{k}^{n-1/2}$, ${({F}_{y})}_{k}^{n-1/2}$ are attributed to virtual mesh node (k, n − ½), and ${({F}_{x})}_{k+1}^{n-1/2}$, ${({F}_{y})}_{k+1}^{n-1/2}$ are attributed to virtual mesh node (k + 1, n − ½). Dependence of θ parameter equivalences in Equation (12) will be written in virtual node with indexes (k + θ, n − ½).

The nonlinearity, presented in Φ

_{1x}(

x,

y), Φ

_{1x}(

x,

y), Φ

_{2y}(

x,

y), Φ

_{2y}(

x,

y), and a third-order partial derivative by time, do not allow the use of the classic approach to equation system solutions (Thomas, or tridiagonal matrix, algorithm). The modification of Crank–Nicolson computing scheme is offered in [

46]. The main idea is to write all linear terms in implicit form, and all nonlinear terms in explicit form. Using the recommendations given in [

46], we write the expressions for

F_{x}(

x,

y) and

F_{y}(

x,

y) as the sum of linear and nonlinear parts:

where the definition for linear parts are:

and for nonlinear parts:

To write the linear terms on (

k + 1)-th layer, it is enough to replace «

k» on «

k + 1» in Equation (14). For nonlinear terms on (

k + 1)-th layer, it is necessary to use explicit finite-difference definition, using values from the previous integration layer:

Notably, the explicit form in Equation (16) is taken only for Φ_{1x}(x, y), Φ_{2x}(x, y), Φ_{1y}(x, y), Φ_{2y}(x, y), while for the linear parts of Equation (16), the implicit form will be used.

The values of nonlinear terms in virtual mesh point (

k,

n − ½) for Φ

_{1x}(

x,

y) and Φ

_{1y}(

x,

y) can be written as:

and for Φ

_{2x}(

x,

y) and Φ

_{2y}(

x,

y):

The desired function values in virtual mesh point (

k,

n − ½) are written as a half of its sum in neighbor mesh points:

The partial derivative from desired functions on dimensionless time in the mesh points (

k,

n − ½) are written as central finite-differences with second-order accuracy:

The partial derivatives for desired mesh function y are written similarly. In order to write the x and y in the mesh nodes (k + 1, n − ½), it is enough to replace ”k” with “k + 1” in Equation (20).

We substitute the expressions of Equations (20)–(13) in Equation (12), then we regroup terms (all known variables to the right side and all unknown variables to the left side of equations), and denote right (known) side of equations as:

where the linear and nonlinear terms are defined in Equations (14) and (15), then the equation system will be as follows:

We rewrite the Equation (22) in canonical line equation systems form:

The

A,

B,

C and

D coefficients in Equation (23) for desired mesh function

x are determined by formulas:

and for mesh function

y:

## 6. Boundary Conditions

The integration process is going from layer to layer according to dimensionless length ξ. The system of Equation (23) is being solved on each layer along dimensionless time τ. Boundary conditions of Equation (4) in a finite-difference computing scheme are transformed into initial conditions, so mesh function values at initial (

k = 1) and at previous (

k-th) integration layer will be known. Initial conditions of Equations (3) and (4) provide the boundary conditions for function values at

n = 1, 2, and

N. The Equations (3) and (4) in dimensionless variables and finite-difference form will be written as:

The situational views on the boundary integration area for the eight-point computing scheme are presented in

Figure 1b. The nodes of mesh, where values are known or given, are marked by black dots.

It is worth noting that

n index in Equation (23) takes values from 3 up to (

N − 1). The common form of equations has a different form at

n = 3, 4 и (

N − 1), because Equation (23) includes the boundary conditions in explicit form. We write them separately:

The values of

${x}_{k+1}^{1}$,

${x}_{k+1}^{2}$ and

${y}_{k+1}^{1}$,

${y}_{k+1}^{2}$ in Equation (27) are known, hence, we can transfer these terms into the right part of equations and for

n = 3 system, Equation (27) can be written as:

and the same for

n = 4:

If

n = (

N − 1), the

${\mathrm{x}}_{k+1}^{N}$ and

${y}_{k+1}^{N}$ are known, hence:

## 7. The Line Equation System in Classic Form

It should be especially noted that Equation (23) breaks down in two independent line equation systems, relative to mesh node variables ${x}_{k+1}^{n}$ and ${y}_{k+1}^{n}$($n=\overline{3,N-1}$). These two equation systems can be solved separately at each integration step along the length.

We can write each line equation system in Equation (23) in matrix from:

The matrix

**M** is four-diagonal matrix, where in addition to main diagonal, which consists of “C” coefficients, contains one “upper” (“D”) and two “sub” (“A” and “B”) diagonals. There is no need to store the whole matrix

**M** in computer memory. Instead, we use the two sets of five arrays for all four diagonals and its right member vector for each part of Equation (23). The

**A** and

**B** arrays are used for two sub diagonals storage,

**C**—for main diagonal,

**D**—for upper diagonal and

**R**—for right member vector:

A syntax form, familiar to many programming languages, is used in Equation (32). It allows us to discern variables A, B, C, and D, used in Equation (23) and above, from arrays **A**, **B**, **C**, and **D**, used for matrix **M** elements notation.

The line equation system solution with

m-diagonal matrix comes down to sequential transforming matrix to an upper triangular matrix and vector of unknowns is computed backwards. We can use our modification of Thomas tridiagonal algorithm, which allows the transformation of the four-diagonal matrix

**M** to the triangular form, according to:

After the matrix

**M** (with right member vector

**R**) is transformed, we calculate unknown vectors according to:

where the unknown vector, as in the Equation (23) solution, is denoted as

**T**.

## 10. Conclusions

In our research we showed that the suggested method can be successfully used for solving the coupled nonlinear Schrödinger equations system in case of strongly coupled groups of modes for pulse evolution. In comparison with the splitting by physical processes method, the proposed method is absolutely stable due to the usage of an implicit finite-difference integration scheme. Commonly, our method has the following advantages: firstly, computational complexity is reduced, since two (direct and inverse) Fourier transforms are replaced with the numerical linear equations system solution at each integration step; secondly, possible errors in computing schemes are reduced because the nonlinear terms are not taken from the previous layer at each integration step; thirdly, the separation of the nonlinear system of Schrödinger equations into two independent linear equation systems at each integration step allows us to include an arbitrary number of propagation modes into equations and investigate their mutual influence.

Results, received from model task investigations and their comparison with other researcher’s results, as well as experimental data, allows us to conclude that the suggested method is effective, advantageous and has potential for future improvement.