# Exploratory Study of a Green Function Based Solver for Nonlinear Partial Differential Equations
## 4 Conclusions
To do so, we set ourselves in the simplest test case possible, a constant coefficient, linear PDE over a ring: the time-marching scheme will become the convolution of the Green function with the initial condition, hence, propagating it towards the next time frame. Yet, even for this simple test case we found that the domain of validity of the piecewise interpolation might interact with this convolution and, as the Green function is not in general a closed expression, would require us to set a limitation on the numerical group that determines the quality of the convolution, i.e., the Courant-Friedrichs-Lewy number (CFL). Once this limitation was satisfied, the next step in the exploration of the method was to analyze how a non-constant, non-homogeneous transport coefficient would affect both the closed expression of the Green function and its Taylor series expansion. To achieve this, we further developed the expansion, recovering the first correction terms, of order \(\tau^{2}\), and tested them under constraining, steep transport coefficients to verify their order of magnitude and guarantee that the order \(\tau^{2}\) held. Subsequently, the non-homogeneous contribution to the solution was introduced, representing a critical step as it is the _malleable_ part of the method. If this contribution is handled properly, any PDE shape may be solved using this methodology so long as it presents a quasilinear term. To guarantee that the nonlinear term was handled appropriately, we adapted the midpoint rule, i.e., a second-order Runge-Kutta for its simplicity and improvement in quality of the result. Furthermore, we tested it in two cumbersome problems: the viscid Burgers equation, with a very low diffusion compared to its characteristic advection (in very generous choice of words, with a Reynolds number equal to \(10^{5}\)) and the norm and energy conserving soliton solution of the nonlinear Schodinger Equation (NLSE). To further demonstrate the method's robustness when coupled with the simplest of Runge-Kutta schemes, the classical shock-like behavior of the Burgers equation held without any Runge-like oscillations, preserving the norm of the initial condition (a normalized Gaussian) with a non-dimensional error up to \(10^{-12}\) while preserving the order of magnitude of \(10^{-5}\) s per iteration. The second problem, the soliton of the NLSE is particularly challenging as the diffusion coefficient in this equation is the imaginary unit, meaning that the real part of the wave function will diffuse over the imaginary and vice versa, creating the well-known oscillating properties for this equation. The quality of the approximation obtained is therefore lower than in the case of the Burgers equation, nonetheless, still numerically consistent. Moreover, after \(10^{9}\) time iterations, both the norm and the energy of the soliton could be considered conserved within a non-dimensional variation of \(10^{-3}\) and \(10^{-5}\), respectively, over their analytical values. Finally, we develop the boundary term for the second-order operator, to obtain a rather simple modification of the algorithm, only affecting the weights at the last domain of validity and the next \(q\) points due to the collocation algorithm we designed. Therefore, to test this result, we proposed three boundary test cases: two with homogeneous boundary conditions, with constant and spatio-temporal dependent transport coefficients, and one with non-homogeneous conditions. In both first cases, the boundary condition was achieved without a mayor analytical increase on complexity or computational time penalty over the algorithm definition. Only the weights of the last stencils are defined over the de-centered finite differences and the last point of the domain presents a modified scheme. Still, as the weights can be precomputed, together with the size and distribution of the last points \(2q+1\) points not increasing the computational cost for the method.