Abstract:
A calculation computer includes a calculator-solver receiving a working matrix representation corresponding to a system of equations, as well as residue data, and for providing a solution to the system of equations from residue data, an adapter receiving an initial matrix representation corresponding to a system of equations to be processed, as well as a filtering matrix representation, the working matrix representation forced to meet with the initial matrix representation, the adapter iteratively calculates blockwise an intermediate matrix from the initial matrix representation and from said numerical representation of a filtering matrix representation, the calculator-solver works on this intermediate matrix, blockwise, so as to provide a solution of the system of equations of the initial matrix representation, without completely inverting the latter,

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority to International Application No. PCT/FR2011/051859 (“PCT &#39;859”) filed Aug. 2, 2011 and published as WO 2012/017177 on Feb. 9, 2012. PCT &#39;859 claims priority to French Application No. 10 03248 filed Aug. 3, 2010. All of the above applications are incorporated herein by reference. 
     
    
     FIELD OF INVENTION 
       [0002]    The invention relates to the modeling and simulation of complex physical systems. 
       BACKGROUND 
       [0003]    In many fields of modern physics, the equations which govern a physical phenomenon cannot be solved theoretically. This is notably the case of all the problems which relate to fluid mechanics, for example in the modeling of the operation of an oil field. 
         [0004]    In these situations, the differential equations are solved numerically, i.e. by discretizing the general equations, according to particular parameters of the simulation. 
         [0005]    These discrete systems are solved by using matrices of very large size, in which the discretized equations form the bases of the systems. These base matrices are difficult to invert. 
         [0006]    In order to solve this problem, iterative methods are widely used today. These methods, for example the one called “GMRES”, are based on Krylov sub-spaces. With the purpose of accelerating convergence of the iterative methods, “pre-conditioners” have been created. These are elements which calculate a matrix close to the base matrix, and the inverse of which may be effectively applied to an arbitrary vector. 
         [0007]    Pre-conditioners are of interest, but pose problems with certain vectors for which they do not reliably reproduce the base matrix. In order to solve this problem, pre-conditioners “fulfilling a filtering property” have been developed, which have the particularity of being an accurate picture of the base matrix for a particular selected vector. 
         [0008]    To this day, the methods for producing pre-conditioners satisfying a filtering condition require base matrices having a very specific form, which strongly limits the use and the utility of the pre-conditioners fulfilling a filtering property. The invention can improve the situation. 
       SUMMARY 
       [0009]    For this purpose, the present invention proposes a versatile calculation computer device of the type including calculator-solver, laid out in order to receive a working matrix representation and an initial matrix representation corresponding to a system of equations, as well as data of residues, and for providing a solution of the system of equations from the data of residues, an adapter, laid out for receiving an initial matrix representation corresponding to a system of equations to be processed, as well as a filtering matrix representation forming a filtering matrix representation for this system of equations, and laid out for calculating a working matrix representation corresponding to a system of equations which may be solved by the calculator-solver, and the working matrix representation being forced to meet with the initial matrix representation, a stability condition comprising an expression for comparing two matrix products both including said filtering matrix representation or its transposed and respectively including the initial matrix representation and the working matrix representation. 
         [0010]    The adapter is laid out for iteratively calculating blockwise an intermediate matrix from the initial matrix representation and from said filtering matrix representation, while the calculator-solver is laid out so as to work on this intermediate matrix, blockwise, so as to provide a solution of the system of equations of the initial matrix representation, without complete inversion of the latter, while said iterative calculation of the adapter follows a calculation rule wherein a current block (i, j) of the intermediate matrix is defined by the difference between the corresponding block (i, j) of the initial matrix representation and a sum of blocks each defined by a product involving two already calculated blocks of the intermediate matrix, and an auxiliary block of an approach matrix which is forced to meet, with an already calculated diagonal block of the intermediate matrix, an equivalence condition, having an expression for comparing two matrix products both including said filtering matrix representation or its transposed and an already calculated block of the intermediate matrix, and respectively including the inverse of said already calculated diagonal block of the intermediate matrix, and said auxiliary block of the approach matrix. 
         [0011]    Such a device is particularly advantageous, since it allows the application of a pre-conditioner meeting a filtering condition, and this regardless of the base matrix which defines the system, the solving of which is sought. 
         [0012]    The invention also relates to a method including receiving an initial matrix representation corresponding to a system of equations to be processed and a filtering matrix representation, calculating a working matrix representation meeting with the initial matrix representation, a stability condition comprising an expression for comparing two matrix products both including said filtering matrix representation or its transposed, and respectively including the initial matrix representation and the working matrix representation, and receiving data of residues, and solving the system of equations defined by the initial matrix representation, from the data of residues, the working matrix representation and the initial matrix representation. 
         [0013]    The operation of calculating a working matrix representation includes the iterative blockwise calculation of an intermediate matrix from the initial matrix representation and from said filtering matrix representation by iteratively repeating, for each block of current index (i, j) of the intermediate matrix calculating a sum of blocks each defined by a product involving two already calculated blocks of the intermediate matrix, and an auxiliary block of an approach matrix which is forced to meet with an already calculated diagonal block of the intermediate matrix, an equivalence condition, including an expression for comparing two matrix products both including said filtering matrix representation or its transposed and an already calculated block of the intermediate matrix, and respectively including the inverse of said already calculated diagonal block of the intermediate matrix and said auxiliary block of the approach matrix, calculating the difference between the block (i, j) of the matrix of the initial matrix representation and the sum from the operation above. 
         [0014]    The operation of calculating the difference between the block of the matrix of the initial matrix representation and the sum from the operation includes an operation on the intermediate matrix, blockwise, so as to provide a solution of the system of equations of the initial matrix representation, without complete inversion of the latter. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]    Other features and advantages of the invention will become better apparent upon reading the description which follows, drawn from examples given as an illustration and not as a limitation, drawn from drawings wherein: 
           [0016]      FIG. 1  represents a schematic view of a modeling and simulation system according to the invention, 
           [0017]      FIG. 2  illustrates a simplified flow diagram of a modeling and simulation operation by means of the system of  FIG. 1 , 
           [0018]      FIG. 3  illustrates a simplified flow diagram of an operation of  FIG. 2 , 
           [0019]      FIG. 4  illustrates an example of a calculation function of a pre-conditioner according to an operation of  FIG. 3 , 
           [0020]      FIG. 5  illustrates an example of a matrix obtained after a first re-ordering operation according to an optional operation of  FIG. 3 , 
           [0021]      FIG. 6  illustrates an exemplary matrix obtained after a second re-ordering operation according to an optional operation of  FIG. 3 , and 
           [0022]      FIG. 7  illustrates an exemplary modification of the function of  FIG. 4  for setting into place parallelization of the calculations from a re-ordered matrix of the type of the one illustrated in  FIGS. 5 and 6 . 
       
    
    
     DETAILED DESCRIPTION 
       [0023]    The drawings and the description hereafter essentially contain elements with certainty. They may therefore not only be used for better understanding the present invention, but also for contributing to its definition, if necessary. 
         [0024]    Further, the detailed description is expanded with Annex A, which gives the formulation of certain mathematical formulae applied within the scope of the invention. This annex is set apart with a purpose of clarification, and for convenience of references. It is an integral portion of the description, and may therefore not only be used for better understanding the present invention but also for contributing to its definition, if necessary. 
         [0025]    Modeling and simulation of physical systems have become major issues. For example, in the operation of a hydrocarbon well, there is a first phase during which the oil flows out naturally. Next, gradually as the pressure decreases, it becomes necessary to act in order to recover the oil. 
         [0026]    For this, it is possible for example to use a flow of water, which is introduced into the well in order to cause the pressure to increase again and cause a splashing up of the oil. But these hazardous operations require intimate knowledge of the well and of the reactions of the latter under these circumstances. 
         [0027]    The equations which determine this physical problem are very complex, and for most of them only assume solutions by discretization and a numerical method of the finite difference or finite volume type. 
         [0028]    The thereby discretized problems may then be summarized in formula (10) of Annex A, wherein A is the base matrix which defines the discretized system of equations, X is the vector which is sought and Y is the known result vector. 
         [0029]    This type of problem is well known in algebra, and the question is to find the inverse matrix of A in order to calculate X. But inversion of matrices is a complex problem, which monopolizes computing powers which increase exponentially with the size of the matrix to be inverted. 
         [0030]    For this, iterative methods based on Krylov sub-spaces, like GMRES, are widely used today. In order to accelerate the convergence of these methods, “pre-conditioners” have been proposed. Pre-conditioners are matrices which give the possibility of rapidly approaching the inverse matrix of A. By using the pre-conditioner M, the iterative method solves the linear system 
         [0000]      M-1 A x=M-1 b. 
         [0031]    In this solving method, operations of the type M-1 V and A V wherein V is a vector, are calculated, without explicitly calculating the inverse of M. 
         [0032]    As this was explained above, there exists a particular class of pre-conditioners, pre-conditioners which satisfy a filtering property. 
         [0033]    Pre-conditioners satisfying a filtering property have the additional advantage of behaving in the same way as the matrix A for a given vector, as this is explained in formula (20) of Annex A, wherein M is the pre-conditioner, and t the selected vector. 
         [0034]    To this day, only matrices A which are tridiagonal blockwise are used for producing a pre-conditioner satisfying a filtering property. This considerably restricts their field of application. 
         [0035]    Further, the methods for calculating these pre-conditioners are mostly sequential methods, which makes them rapidly prohibitory in terms of computing costs, and are therefore not very used in practice. Indeed, only matrices from a structured meshing may be processed in parallel, which considerably restricts their field of application. 
         [0036]      FIG. 1  represents a versatile calculation computer device  2  according to the invention. The device  2  comprises a set of sensors  4 , a digitizer  6 , a discretizer  8 , an adapter  10 , a calculator-solver  12 , and a driver  14  which controls them. 
         [0037]    In the example described herein, the set of sensors  4  are used for obtaining the data which constrain the physical system to be modeled, and the digitizer  6  is used for transforming these analog data in order to inject them into theoretical equations. 
         [0038]    These elements are, so to speak, unconcerned about the problems solved by the invention: they are used for defining the framework for its practical application. Thus, also, their making may be very diverse. 
         [0039]    The discretizer  8  is called by the driver  14  in order to discretize the theoretical equations made distinct with actual data, and for drawing therefrom a system of linear equations. 
         [0040]    This system generally has a very large size, and its lines form the matrix A. There again, this element may be achieved in many different ways. 
         [0041]    Finally, the adapter  10  and the calculator  12  are called by the driver  14  for calculating the pre-conditioner and for drawing up a solution corresponding to a particular situation for which modeling is sought. In this case, the data on the “right side” of the equation involving the matrix A are also called residue data, with reference to Newton methods. 
         [0042]    The driver  14  may call the adapter  10  and the calculator  12  for having this particular solution develop per successive time steps and thus giving a simulation of the evolution of the modeled physical system. 
         [0043]    According to another example, the adapter  10  is called only once by the driver  14  for calculating a pre-conditioner which is used for the whole period of the simulation, and the result calculated by the calculator  12  for a given time step is used as an input for the next time step. 
         [0044]    According to a further example, the adapter  10  may be selectively called by the driver  14 , depending on the development of the simulation, notably if the latter tends to modify the original system of the matrix A. 
         [0045]    Here again, the simulation techniques are diverse. 
         [0046]      FIG. 2  shows a simplified flow diagram showing the operations summarized above: In an operation  200 , the set of sensors  4  is called in order to measure all the parameters required for the simulation, In an operation  220 , the digitizer  6  and the discretizer  8  are called for modeling the system numerically, with the measurements drawn from the operation  200 , In an operation  240 , the adapter  10  and the calculator  12  are called in order to carry out the simulation as such. 
         [0047]      FIG. 3  shows a simplified flow diagram of the operation  240 . In an operation  300 , the driver  14  transmits the matrix A drawn from the operation  220  to the adapter  10 . In an optional operation  320 , the adapter  10  re-orders the elements of the matrix A in order to allow subsequent processing in parallel. This operation may be carried out in several ways, for example, by nested dissection or by partitioning into several independent domains which may also overlap and have a recursive sub-partition. 
         [0048]    Such overlapping slightly increases the computing costs but provides better convergence rates and superior robustness as this is achieved in the Schwartz method. The adapter  10  thus gives the possibility of obtaining a re-ordered matrix B which comprises blocks of zeros. 
         [0049]    Next, in operation  340 , the adapter  10  processes the matrix A, either re-ordered or not, in order to draw therefrom a representation of a pre-conditioner M satisfying a filtering property. Finally, in operation  360 , the driver  14  calls the calculator  12  with the representation of the pre-conditioner M in order to achieve the simulation. 
         [0050]    The device formed by the adapter  10 , the calculator  12 , and the driver  14 , therefore allows: 
         [0051]    Calculation of a representation of a pre-conditioner verifying a filtering property for any matrix A as an input, and 
         [0052]    Massive parallelization of the calculations related to the pre-conditioner when the adapter  10  is called for re-ordering the matrix A. 
         [0053]      FIG. 4  represents a flow diagram for calculating the pre-conditioner according to the invention. 
         [0054]    This calculation is based on the decomposition of a pre-conditioner M in the form of formula (30) of the Annex A. This decomposition into an LDU matrix is in principle known but the calculation of the elements is different. The formulae (40), (50) and (60) of Annex A give the composition of these respective elements. 
         [0055]    The decomposition of the pre-conditioner in the LDU form is very advantageous, since it gives the possibility of solving the actual system without having to invert the matrix M. More specifically, the technique contains many algorithms which allow simplified resolution of a matrix equation when the LDU decomposition is used. 
         [0056]    For this reason, the calculation of the pre-conditioner M as such is never achieved and only its LDU components are calculated and stored. Next, the calculator-solver  12  calls them selectively in order to solve the system. 
         [0057]    It would nevertheless be possible to calculate the pre-conditioner M, by applying formula (30). 
         [0058]    In order to calculate the elements of the LDU decomposition, the applicants have discovered a formulation based on the calculation of a matrix C which corresponds to the sum of the L, D and U matrices (formula 70 of Annex A). 
         [0059]    Because of the respective form of the matrices L, D and U, it appears that each element of the matrix C corresponds to a single element of each of the matrices L, D, U. Thus: 
         [0060]    D ii =C ii , and D ij =0 for i different from j, 
         [0061]    L ij =q for i&gt;1 and i strictly greater than j, and I ij =0 for i less than or equal to j, 
         [0062]    U ij =q for j&gt;1 and j strictly greater than i, and U ij =0 for j less than or equal to i. 
         [0000]    The applicants have discovered that the matrix C may be established according to formula (80) of Annex A, wherein the term F kj  satisfies formula (90) of Annex A. 
         [0063]    In formula (80), the first line only represents initialization. Conceptually, this first line is equivalent to the second line. Indeed, for i=1 or j=1, then min (i, j)−1 has the value 0, which means that the sum of this second line does not comprise any term, and gives a result identical with that of the first line. 
         [0064]    The formula (90) expresses the fact that the matrix F which groups the terms F kj  is a matrix which approaches the diagonal block D kk  for the condition relating to the index j. Thus, the fact that F kj  satisfies formula (90) may be considered as an equivalence condition with the inverse of the diagonal block D kk  for the condition relating to the index j. 
         [0065]    When the vector U kj t j  does not have any zero component, calculation of F kj  is easy. However, in order to take into account cases when this vector has zero components, it is possible to modify the approaches of the literature according to formula (100) of Annex A. 
         [0066]    The applicants have also discovered another calculation for the matrix C, in which, in formula (80) the term F kj  is replaced with the term G kj  which is defined with formula (110) of Annex A. In order to calculate the terms G kj , the corresponding term F kj  is first calculated by means of formula (100), and then formula (110) is applied. 
         [0067]    It is also possible to define the term F kj  satisfying the filtering condition (90) by formula (120) combined with formula (140) of Annex A, which is derived from deflation methods of linear algebra. In the case when the blocks D kk  are symmetrical, it is possible to use formula (130) of Annex A, which is a simplified version of formula (120). 
         [0068]    In the present state of research of the applicants, formula (100) is preferred to formula (110), for reasons of stability. 
         [0069]      FIG. 4  represents an exemplary function with which it is possible to calculate the matrices L, D and U. For this, each term of the matrix is calculated, and allocated to the matrix L, D and U as appropriate. 
         [0070]    Alternatively, the terms are not allocated to each matrix L, D, U but to matrix C alone, which is directly used by the calculator-solver  12 . In fact, it was seen above that the matrix C is equivalent to the matrices L, D and U, and both of these alternatives only represent different ways for expressing the pre-conditioner M. 
         [0071]    Considering the foregoing, the first element of the matrix D may be calculated directly, since it corresponds to the first term of the diagonal of matrix A (or B if operation  320  is performed). 
         [0072]    Also, all the non-zero terms of the first column of the matrix L and the first line of the matrix U, respectively, are reset with the corresponding term of the matrix A. An index i is reset to 1. This is carried out in operation  400 . 
         [0073]    By first element or first term is meant a block. Indeed, the matrix A (or B if operation  320  is performed) is cut out into rectangular blocks, the sides of which are parameters which may be freely selected. Only the diagonal blocks of A have to be square. 
         [0074]    The applicants use values of size such that the product of these values is equal to the size of the buffer memory, i.e. a given block of the matrix A may be stored in the buffer memory. 
         [0075]    Alternatively, the applicants also use values of sides such that their product is less than the size of the buffer memory. If operation  320  is performed, the size of the blocks of matrix B is determined by this operation. 
         [0076]    Next, a so-called global loop is performed which calculates all the other terms of the matrix C, and therefore all the terms of the matrices L, D and U, which allows definition of the pre-conditioner M. 
         [0077]    The global loop in each iteration consists of first calculating the diagonal term, and then calculating by means of a local loop, the other terms, with increasing line and column index. 
         [0078]    First, the index i of the global loop is incremented in an operation  402 , and then in an operation  404 , the diagonal term D ii  is calculated according to formula (80). 
         [0079]    The term D ii , as this was seen previously, corresponds to the term C ii . The operation  404  includes the calculation of the matrix F so as to satisfy formula (90), according to formula (100). If the second calculation method is retained, the calculation of G is also carried out according to Formula (110). 
         [0080]    Next, the index j of the local loop is reset to two in an operation  406 . This is followed by an operation  408  of the end of the local loop in which it is tested whether j is equal to i. When i has the value 2, this gives the possibility of directly passing to the following global loop iteration, as C 12  and C 21  are known. 
         [0081]    The local loop is then performed, with the calculations of L ij  which corresponds to C ij  in an operation  410 , and of U ji  which corresponds to C ij  in an operation  412 . 
         [0082]    It should be noted that the operations  410 ,  412  may be carried out in parallel, which is advantageous. Indeed, because of formula (80), the calculation of the terms C ij  and C ji  is independent. 
         [0083]    Next, the index of the local loop j is incremented in an operation  414 , and the local loop resumes with the test of the operation  408 . When the local loop is finished, i.e. when all the terms of the line of L and all of the terms of the column of U have been calculated, a test checks in an operation  416  whether i is equal to the number of blocks N of the matrix M. 
         [0084]    If this is the case, then the global loop is finished, and the operation ends in an operation  418 , the call to the calculator-solver (12). Otherwise, the global loop resumes with incrementation of the index i of the global loop in operation  402 . 
         [0085]    As mentioned above, the function of  FIG. 4  gives the possibility of obtaining a decomposition of M into the LDU form, which is used as a basis for known solving methods in algebra. Thus, the pre-conditioner M is not explicitly calculated. However, it can be possible to explicitly calculate the pre-conditioner, by applying formula (30). 
         [0086]    The applicants have developed a device applying a pre-conditioner and a method for calculating a representation of this pre-conditioner which are particularly suitable for parallelization of the calculations. 
         [0087]    In order to better understand this, an exemplary embodiment of the operation  320  should be explained in more detail. This example is here based on the case of a two-level nested dissection. 
         [0088]    In this type of operation, the matrix A is modified so as to give it the form of a matrix B with the shape of an “arrow”. For this, the matrix A is “re-ordered” a first time in order to give it the form of the matrix illustrated in  FIG. 5 , and then the sub-matrices of the matrix of  FIG. 5  are themselves re-ordered in the same way. 
         [0089]    The matrix of  FIG. 5  includes three diagonal blocks B 1 , B 2  and B 3 , two blocks B 4  and B 5  respectively along the low and right edges of the matrix B and is zero elsewhere. This re-ordering of the matrix A is possible because of its low density. The same re-ordering is carried out on the vector t. Once the matrix of  FIG. 5  has been calculated, it is possible to reapply this same re-ordering to the blocks B 1  and B 2 , which results in the matrix B of  FIG. 6 . It should be noted in this figure that the block B 3  of  FIG. 5  is the block B 77  of  FIG. 6  and that the blocks B 4  and B 5  of  FIG. 5  respectively correspond to the blocks B 71  to B 76  and to the blocks B 17  to B 67  of  FIG. 6 . 
         [0090]    If formula (8) of the Annex A is analyzed, it appears by the first line of this formula that the blocks C 11  to C 17  and C 21  to C 71  are directly known from B. It also appears that in applying the second line of this formula, many blocks are zero or known, which makes possible the calculation of certain blocks C ij  in an independent way of each other, and therefore their calculation may be performed in parallel. 
         [0091]    Thus for B 11 , B 22 , B 44  and B 55 , if these blocks are calculated in parallel, the same situation is repeated, and new blocks B 33  and B 66  may in turn be calculated in parallel, and so forth. 
         [0092]    Generally, the applicants have therefore discovered that the operation  320  may be used for producing a matrix B equivalent to the matrix A, and which includes separate domains. 
         [0093]    From these domains, it is possible to generate a task dependence graph, in which for a given level, all the nodes represent blocks which may be calculated in parallel for applying formula (80) of Annex A. 
         [0094]    Once all the blocks related to the nodes of a given level are calculated, it becomes possible to calculate the blocks related to the nodes of the next level in the graph, there again in parallel. In order to calculate and order the task dependence graph, several techniques may be used, as this is known in graph theory. 
         [0095]    The task dependence graph is calculated by covering the structure of the matrix B. The nodes of this graph represent tasks, i.e. calculations of blocks C ij  of the formula (80) of Annex A. 
         [0096]    The dependencies in this graph represent the order of the calculations imposed by formula (80) of Annex A. This graph may then be ordered by using static ordering or dynamic ordering of the tasks on the processors. 
         [0097]    For example, dynamic ordering allocates during parallel execution the tasks which are ready to be executed on the available processors. Static ordering establishes in a first phase the order of the tasks to be executed on the different processing units in parallel with the purpose of minimizing the parallel computing time. 
         [0098]    In a second phase, their execution occurs. A static distribution of the data may be used on processors of the sub-tree-to-sub-cube type or of the bi-dimensional type. 
         [0099]    It is this observation which caused the modifications of the diagram of  FIG. 4 , which are shown with  FIG. 7 . 
         [0100]    In this function, the first operation  700  corresponds to the operation  400  of  FIG. 4 . A difference with operation  400  is that operation  700  comprises the calculation of the task dependence graph as described above. 
         [0101]    Next, the index i which corresponds to the level of the task dependence graph which is presently covered, is incremented in an operation  710 . 
         [0102]    Once the index i has been incremented, the driver  14  calls the adapter  10  in an operation  720  for recovering all the nodes of level i of the task dependence graph, by means of a function Dep_Gr( ). 
         [0103]    The result of this function is sought in a list (List) which is a local variable which contains at each iteration the list of the pairs (k, l) which identify the independent blocks of the same level of the task dependence graph. 
         [0104]    Next, the adapter calculates the blocks C kl  for all the pairs of the list (List) in an operation  730 . This calculation is executed in parallel, as all the blocks are independent with regard to formula (80) of Annex A, and are distributed on all the processors and the cores of the available processors. 
         [0105]    It should be noted here that the calculation of the blocks by operation  730  is different from that of the operations  404 ,  410 ,  412 . Indeed, if the formula used for the calculation is the same, the indices of the blocks are totally independent. 
         [0106]    There where the function of  FIG. 4  operates by first calculating the diagonal term, and then the terms of the line and of the corresponding column, here, it is the task dependence graph which determines which blocks are to be calculated. 
         [0107]    It should be noted that in the present example, the nature of the matrix B generates some symmetry of the indices of each level in the task dependence graph. 
         [0108]    However, the application of a method other than nested dissection may limit the symmetry, and the blocks may be calculated in an apparently arbitrary order. 
         [0109]    Finally, in operation  740 , the adapter  10  checks whether the index i is smaller than N, the number of levels of the graph. If this is the case, then the function resumes in  710  with incrementation of i for the next level of the task dependence graph. Otherwise, the function ends in operation  750  with calling to the calculator-solver  12 , like with operation 418. 
         [0110]    In the foregoing, the filtering condition is expressed by formula (20) of Annex A. This formula is a mathematical expression of the fact that the initial matrix A and the pre-conditioner M meet a stability condition which is based on the comparison of their product with a vector. 
         [0111]    However, the stability condition should not be limited to the single formula (20). Thus, the applicants also successfully used formula (150) of Annex A. 
         [0112]    As the formula (150) is almost the transposed of formula (20), the use of formula (150) as a stability condition does not change anything in the operating mode of the invention. Accordingly, the formulae (80) and (90) only have to be slightly modified, as shown with formulae (160) and (170). The formulae (100) and (140) may be adapted in a similar way. 
         [0113]    Further, all the previous examples were carried out for a stability condition using a vector t. 
         [0114]    However, when a physical system is modeled, many quantities are used. The experiments of the applicants show that it is advantageous to use a stability condition using a matrix, each column of which relates to a physical quantity. 
         [0115]    Thus, if two physical quantities characterized a given modeling equation, it is advantageous to use as a filtering element t a matrix having two columns. In practice, this does not change the philosophy of the invention, and the calculations shown earlier are very slightly or not modified. 
         [0116]    Indeed, in this type of situation, the equations represented in matrix A can be associated by square “miniblocks”, the side of which is equal to the number of columns of the matrix t. Thus, in the case described in the previous paragraph, each miniblock would be a square block with twice the two terms of the initial matrix A. 
         [0117]    The reason for which these miniblocks are mentioned is that they should not be separated during the optional operation  320 , and when the matrix A is cut into blocks. A given miniblock should always be contained in a single block of the matrix A or of the matrix B. 
         [0118]    The only element which slightly changes is the calculation of a F kj . Indeed, the formula (100) of Annex A is adapted to a matrix t with a single column, i.e. a vector, and the miniblocks are therefore of a 1×1 size, i.e. scalars. 
         [0119]    The applicants have therefore generalized the formula (100) in the form of formula (180) wherein Diag( ) designates a function which generates a diagonal matrix, the elements of which are designated, are arguments of this function, and wherein the operation “/.” designates term-to-term division of the matrices. Thus A1/.A2 is a matrix A3, each term (i, j) of which is equal to the quotient of A1 (i, j) by A2 (i, j). 
         [0120]    Another way of considering this modification is to note that the formula (100) may be considered as a particular case of formula (180), wherein t has a single column. 
         [0121]    In the foregoing, the adapter  10 , the computer 12 and the driver  14  may be made in different ways. 
         [0122]    First of all, the driver  14  may be made in an integrated way with the adapter  10  and the computer  12 , i.e. the latter are laid out in order to know how to interact, instead of being controlled separate elements which are not aware of each other. 
         [0123]    Further, the presentation of the elements of the system  2  is mainly functional. Thus, these elements may be physically separated and connected through communication links or applied remotely in time, or further applied on a same piece of equipment with the driver  14  defined by the intrinsic links between these elements and a user interface. 
         [0124]    Further, the discretizer  8 , the adapter  10 , the calculator  12  and the driver  14  may be applied in the form of analog elements, such as integrated circuits or daughterboards or in the form of numerical elements, i.e. in the form of programs applied by a computer, optionally in a remote and/or distributed way. 
         [0125]    It should also be noted that in the foregoing, reference is often made equally to matrices or their representation. It is obvious that a computer does not know what a matrix is, and it is actually the numerical representation of these matrices, i.e. the data which define these matrices which are targeted. By matrix or by matrix representation, is therefore meant any structure of numerical data which allows processing of matrices within the scope of the invention. 
         [0126]    Finally, the particular practical target of the device of the invention can be noted, which allows simulation and resolution of many physical problems which could not be solved earlier, for example in the oil industry. 
       ANNEX A 
       [0127]    
       
         
           
             
               
                 
                   Ax 
                   = 
                   y 
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
             
               
                 
                   At 
                   = 
                   Mt 
                 
               
               
                 
                   ( 
                   20 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       [ 
                       
                         
                           
                             
                               D 
                               11 
                             
                           
                           
                             
                                 
                             
                           
                           
                             
                                 
                             
                           
                           
                             
                                 
                             
                           
                         
                         
                           
                             
                               L 
                               21 
                             
                           
                           
                             
                               D 
                               22 
                             
                           
                           
                             
                                 
                             
                           
                           
                             
                                 
                             
                           
                         
                         
                           
                             ⋮ 
                           
                           
                             ⋱ 
                           
                           
                             ⋱ 
                           
                           
                             
                                 
                             
                           
                         
                         
                           
                             
                               L 
                               
                                 N 
                                  
                                 
                                     
                                 
                                  
                                 1 
                               
                             
                           
                           
                             ⋯ 
                           
                           
                             
                               L 
                               
                                 NN 
                                 - 
                                 1 
                               
                             
                           
                           
                             
                               D 
                               NN 
                             
                           
                         
                       
                       ] 
                     
                      
                     
                       [ 
                       
                         
                           
                             
                               D 
                               11 
                               
                                 - 
                                 1 
                               
                             
                           
                           
                             
                                 
                             
                           
                           
                             
                                 
                             
                           
                           
                             
                                 
                             
                           
                         
                         
                           
                             
                                 
                             
                           
                           
                             
                               D 
                               22 
                               
                                 - 
                                 1 
                               
                             
                           
                           
                             
                                 
                             
                           
                           
                             
                                 
                             
                           
                         
                         
                           
                             
                                 
                             
                           
                           
                             
                                 
                             
                           
                           
                             ⋱ 
                           
                           
                             
                                 
                             
                           
                         
                         
                           
                             
                                 
                             
                           
                           
                             
                                 
                             
                           
                           
                             
                                 
                             
                           
                           
                             
                               D 
                               NN 
                               
                                 - 
                                 1 
                               
                             
                           
                         
                       
                       ] 
                     
                   
                    
                   
                     [ 
                     
                       
                         
                           
                             D 
                             11 
                           
                         
                         
                           
                             U 
                             12 
                           
                         
                         
                           ⋯ 
                         
                         
                           
                             U 
                             
                               1 
                                
                               N 
                             
                           
                         
                       
                       
                         
                           
                               
                           
                         
                         
                           ⋱ 
                         
                         
                           ⋱ 
                         
                         
                           ⋮ 
                         
                       
                       
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           
                             N 
                             
                               N 
                               - 
                               
                                 1 
                                  
                                 N 
                               
                               - 
                               1 
                             
                           
                         
                         
                           
                             U 
                             
                               N 
                               - 
                               
                                 1 
                                  
                                 N 
                               
                             
                           
                         
                       
                       
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           
                             D 
                             NN 
                           
                         
                       
                     
                     ] 
                   
                 
               
               
                 
                   ( 
                   30 
                   ) 
                 
               
             
             
               
                 
                   L 
                   = 
                   
                     [ 
                     
                       
                         
                           0 
                         
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                       
                       
                         
                           
                             L 
                             21 
                           
                         
                         
                           ⋱ 
                         
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                       
                       
                         
                           ⋮ 
                         
                         
                           ⋱ 
                         
                         
                           ⋱ 
                         
                         
                           
                               
                           
                         
                       
                       
                         
                           
                             L 
                             N1 
                           
                         
                         
                           ⋯ 
                         
                         
                           
                             L 
                             
                               NN 
                               - 
                               1 
                             
                           
                         
                         
                           0 
                         
                       
                     
                     ] 
                   
                 
               
               
                 
                   ( 
                   40 
                   ) 
                 
               
             
             
               
                 
                   D 
                   = 
                   
                     [ 
                     
                       
                         
                           
                             D 
                             11 
                           
                         
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                       
                       
                         
                           
                               
                           
                         
                         
                           
                             D 
                             22 
                           
                         
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                       
                       
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           ⋱ 
                         
                         
                           
                               
                           
                         
                       
                       
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           
                             D 
                             NN 
                           
                         
                       
                     
                     ] 
                   
                 
               
               
                 
                   ( 
                   50 
                   ) 
                 
               
             
             
               
                 
                   U 
                   = 
                   
                     [ 
                     
                       
                         
                           0 
                         
                         
                           
                             U 
                             12 
                           
                         
                         
                           ⋯ 
                         
                         
                           
                             U 
                             
                               1 
                                
                               N 
                             
                           
                         
                       
                       
                         
                           
                               
                           
                         
                         
                           ⋱ 
                         
                         
                           ⋱ 
                         
                         
                           ⋮ 
                         
                       
                       
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           ⋱ 
                         
                         
                           
                             U 
                             
                               N 
                               - 
                               
                                 1 
                                  
                                 N 
                               
                             
                           
                         
                       
                       
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           
                               
                           
                         
                         
                           0 
                         
                       
                     
                     ] 
                   
                 
               
               
                 
                   ( 
                   60 
                   ) 
                 
               
             
             
               
                 
                   C 
                   = 
                   
                     L 
                     + 
                     D 
                     + 
                     U 
                   
                 
               
               
                 
                   ( 
                   70 
                   ) 
                 
               
             
             
               
                 
                   
                     C 
                     ij 
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               
                                 A 
                                 ij 
                               
                                
                               
                                   
                               
                                
                               if 
                                
                               
                                   
                               
                                
                               i 
                             
                             = 
                             
                               
                                 1 
                                  
                                 
                                     
                                 
                                  
                                 or 
                                  
                                 
                                     
                                 
                                  
                                 j 
                               
                               = 
                               1 
                             
                           
                         
                       
                       
                         
                           
                             
                               
                                 A 
                                 ij 
                               
                               - 
                               
                                 
                                   ∑ 
                                   
                                     
                                       k 
                                       = 
                                       1 
                                     
                                     , 
                                     
                                       
                                         L 
                                         ik 
                                       
                                       ≠ 
                                       0 
                                     
                                     , 
                                     
                                       
                                         U 
                                         kj 
                                       
                                       ≠ 
                                       0 
                                     
                                   
                                   
                                     
                                       min 
                                        
                                       
                                         ( 
                                         
                                           i 
                                           , 
                                           j 
                                         
                                         ) 
                                       
                                     
                                     - 
                                     1 
                                   
                                 
                                  
                                 
                                     
                                 
                                  
                                 
                                   
                                     L 
                                     ik 
                                   
                                    
                                   
                                     F 
                                     kj 
                                   
                                    
                                   
                                     U 
                                     kj 
                                   
                                    
                                   
                                       
                                   
                                    
                                   if 
                                    
                                   
                                       
                                   
                                    
                                   i 
                                 
                               
                             
                             &gt; 
                             
                               1 
                                
                               
                                   
                               
                                
                               or 
                                
                               
                                   
                               
                                
                               j 
                             
                             &gt; 
                             1 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   80 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       F 
                       kj 
                     
                      
                     
                       U 
                       kj 
                     
                      
                     
                       t 
                       j 
                     
                   
                   = 
                   
                     
                       D 
                       kk 
                       
                         - 
                         1 
                       
                     
                      
                     
                       U 
                       kj 
                     
                      
                     
                       t 
                       j 
                     
                   
                 
               
               
                 
                   ( 
                   90 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       F 
                       kj 
                     
                      
                     
                       ( 
                       
                         r 
                         , 
                         s 
                       
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               
                                 D 
                                 kk 
                                 
                                   - 
                                   1 
                                 
                               
                                
                               
                                 U 
                                 kj 
                               
                                
                               
                                 
                                   t 
                                   j 
                                 
                                  
                                 
                                   ( 
                                   r 
                                   ) 
                                 
                               
                                
                               
                                 / 
                               
                                
                               
                                 U 
                                 kj 
                               
                                
                               
                                 
                                   t 
                                   j 
                                 
                                  
                                 
                                   ( 
                                   r 
                                   ) 
                                 
                               
                                
                               
                                   
                               
                                
                               if 
                                
                               
                                   
                               
                                
                               r 
                             
                             = 
                             
                               
                                 s 
                                  
                                 
                                     
                                 
                                  
                                 and 
                                  
                                 
                                     
                                 
                                  
                                 
                                   U 
                                   kj 
                                 
                                  
                                 
                                   
                                     t 
                                     j 
                                   
                                    
                                   
                                     ( 
                                     r 
                                     ) 
                                   
                                 
                               
                               ≠ 
                               0 
                             
                           
                         
                       
                       
                         
                           
                             
                               
                                 D 
                                 kk 
                                 
                                   - 
                                   1 
                                 
                               
                                
                               
                                 U 
                                 kj 
                               
                                
                               
                                 
                                   t 
                                   j 
                                 
                                  
                                 
                                   ( 
                                   r 
                                   ) 
                                 
                               
                                
                               
                                 / 
                               
                                
                               
                                 U 
                                 kj 
                               
                                
                               
                                 
                                   t 
                                   j 
                                 
                                  
                                 
                                   ( 
                                   s 
                                   ) 
                                 
                               
                                
                               
                                   
                               
                                
                               if 
                                
                               
                                   
                               
                                
                               
                                 U 
                                 kj 
                               
                                
                               
                                 
                                   t 
                                   j 
                                 
                                  
                                 
                                   ( 
                                   r 
                                   ) 
                                 
                               
                             
                             = 
                             
                               
                                 
                                   0 
                                    
                                   
                                       
                                   
                                    
                                   with 
                                    
                                   
                                       
                                   
                                    
                                   s 
                                    
                                   
                                       
                                   
                                    
                                   such 
                                    
                                   
                                       
                                   
                                    
                                   that 
                                 
                                  
                                 
                                     
                                 
                                 | 
                                 
                                   s 
                                   - 
                                   r 
                                 
                                 | 
                               
                               = 
                               
                                 
                                   min 
                                   
                                     
                                       k 
                                        
                                       
                                         : 
                                       
                                        
                                       
                                         U 
                                         kj 
                                       
                                        
                                       
                                         
                                           t 
                                           j 
                                         
                                          
                                         
                                           ( 
                                           k 
                                           ) 
                                         
                                       
                                     
                                     ≠ 
                                     0 
                                   
                                 
                                  
                                 
                                   | 
                                   
                                     k 
                                     - 
                                     r 
                                   
                                   | 
                                 
                               
                             
                           
                         
                       
                       
                         
                           
                             0 
                              
                             
                                 
                             
                              
                             otherwise 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   100 
                   ) 
                 
               
             
             
               
                 
                   
                     G 
                     kj 
                   
                   = 
                   
                     
                       2 
                        
                       
                           
                       
                        
                       
                         F 
                         kj 
                       
                     
                     - 
                     
                       
                         F 
                         kj 
                       
                        
                       
                         D 
                         kk 
                       
                        
                       
                         F 
                         kj 
                       
                     
                   
                 
               
               
                 
                   ( 
                   110 
                   ) 
                 
               
             
             
               
                 
                   
                     Q 
                     = 
                     
                       
                         
                           ZE 
                           
                             - 
                             1 
                           
                         
                          
                         
                           ( 
                           
                             
                               D 
                               kk 
                             
                              
                             Z 
                           
                           ) 
                         
                       
                       T 
                     
                   
                   , 
                   
                     E 
                     = 
                     
                       
                         ( 
                         
                           
                             
                               ( 
                               
                                 
                                   D 
                                   kk 
                                 
                                  
                                 Z 
                               
                               ) 
                             
                             T 
                           
                            
                           
                             D 
                             kk 
                           
                            
                           Z 
                         
                         ) 
                       
                       
                         - 
                         1 
                       
                     
                   
                   , 
                   
                     Z 
                     = 
                     
                       
                         U 
                         kj 
                       
                        
                       
                         t 
                         j 
                       
                     
                   
                 
               
               
                 
                   ( 
                   120 
                   ) 
                 
               
             
             
               
                 
                   
                     Q 
                     = 
                     
                       
                         ZE 
                         
                           - 
                           1 
                         
                       
                        
                       
                         Z 
                         T 
                       
                     
                   
                   , 
                   
                     E 
                     = 
                     
                       
                         ( 
                         
                           
                             Z 
                             T 
                           
                            
                           
                             D 
                             kk 
                           
                            
                           Z 
                         
                         ) 
                       
                       
                         - 
                         1 
                       
                     
                   
                   , 
                   
                     Z 
                     = 
                     
                       
                         U 
                         kj 
                       
                        
                       
                         t 
                         j 
                       
                     
                   
                 
               
               
                 
                   ( 
                   130 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       F 
                       kj 
                     
                     = 
                     
                       P 
                       + 
                       Q 
                     
                   
                   , 
                   
                     P 
                     = 
                     
                       I 
                       - 
                       QA 
                     
                   
                 
               
               
                 
                   ( 
                   140 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       t 
                       T 
                     
                      
                     A 
                   
                   = 
                   
                     
                       t 
                       T 
                     
                      
                     M 
                   
                 
               
               
                 
                   ( 
                   150 
                   ) 
                 
               
             
             
               
                 
                   
                     C 
                     ij 
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               
                                 A 
                                 ij 
                               
                                
                               
                                   
                               
                                
                               if 
                                
                               
                                   
                               
                                
                               i 
                             
                             = 
                             
                               
                                 1 
                                  
                                 
                                     
                                 
                                  
                                 or 
                                  
                                 
                                     
                                 
                                  
                                 j 
                               
                               = 
                               1 
                             
                           
                         
                       
                       
                         
                           
                             
                               
                                 A 
                                 ij 
                               
                               - 
                               
                                 
                                   ∑ 
                                   
                                     
                                       k 
                                       = 
                                       1 
                                     
                                     , 
                                     
                                       
                                         L 
                                         ik 
                                       
                                       ≠ 
                                       0 
                                     
                                     , 
                                     
                                       
                                         U 
                                         jk 
                                       
                                       ≠ 
                                       0 
                                     
                                   
                                   
                                     
                                       min 
                                        
                                       
                                         ( 
                                         
                                           i 
                                           , 
                                           j 
                                         
                                         ) 
                                       
                                     
                                     - 
                                     1 
                                   
                                 
                                  
                                 
                                     
                                 
                                  
                                 
                                   
                                     L 
                                     ik 
                                   
                                    
                                   
                                     F 
                                     ik 
                                   
                                    
                                   
                                     U 
                                     kj 
                                   
                                    
                                   
                                       
                                   
                                    
                                   if 
                                    
                                   
                                       
                                   
                                    
                                   i 
                                 
                               
                             
                             &gt; 
                             
                               1 
                                
                               
                                   
                               
                                
                               or 
                                
                               
                                   
                               
                                
                               j 
                             
                             &gt; 
                             1 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   160 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       t 
                       i 
                       T 
                     
                      
                     
                       L 
                       ik 
                     
                      
                     
                       F 
                       ik 
                     
                   
                   = 
                   
                     
                       t 
                       i 
                       T 
                     
                      
                     
                       L 
                       ik 
                     
                      
                     
                       D 
                       kk 
                       
                         - 
                         1 
                       
                     
                   
                 
               
               
                 
                   ( 
                   170 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       F 
                       kj 
                     
                      
                     
                       ( 
                       
                         r 
                         , 
                         s 
                       
                       ) 
                     
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             
                               
                                 Diag 
                                  
                                 
                                   ( 
                                   
                                     
                                       D 
                                       kk 
                                       
                                         - 
                                         1 
                                       
                                     
                                      
                                     
                                       U 
                                       kj 
                                     
                                      
                                     
                                       
                                         t 
                                         j 
                                       
                                        
                                       
                                         ( 
                                         r 
                                         ) 
                                       
                                     
                                      
                                     
                                       
                                         / 
                                       
                                       . 
                                       
                                         U 
                                         jk 
                                       
                                     
                                      
                                     
                                       
                                         t 
                                         j 
                                       
                                        
                                       
                                         ( 
                                         r 
                                         ) 
                                       
                                     
                                   
                                   ) 
                                 
                               
                                
                               
                                   
                               
                                
                               if 
                                
                               
                                   
                               
                                
                               r 
                             
                             = 
                             
                               s 
                                
                               
                                   
                               
                                
                               and 
                                
                               
                                   
                               
                                
                               
                                 U 
                                 kj 
                               
                                
                               
                                 
                                   t 
                                   j 
                                 
                                  
                                 
                                   ( 
                                   r 
                                   ) 
                                 
                               
                                
                               
                                   
                               
                                
                               has 
                                
                               
                                   
                               
                                
                               no 
                                
                               
                                   
                               
                                
                               zero 
                                
                               
                                   
                               
                                
                               component 
                             
                           
                         
                       
                       
                         
                           
                             
                               
                                 Diag 
                                  
                                 
                                   ( 
                                   
                                     
                                       D 
                                       kk 
                                       
                                         - 
                                         1 
                                       
                                     
                                      
                                     
                                       U 
                                       kj 
                                     
                                      
                                     
                                       
                                         t 
                                         j 
                                       
                                        
                                       
                                         ( 
                                         r 
                                         ) 
                                       
                                     
                                      
                                     
                                       
                                         / 
                                       
                                       . 
                                       
                                         U 
                                         kj 
                                       
                                     
                                      
                                     
                                       
                                         t 
                                         j 
                                       
                                        
                                       
                                         ( 
                                         s 
                                         ) 
                                       
                                     
                                   
                                   ) 
                                 
                               
                                
                               
                                   
                               
                                
                               if 
                                
                               
                                   
                               
                                
                               
                                 U 
                                 kj 
                               
                                
                               
                                 
                                   t 
                                   j 
                                 
                                  
                                 
                                   ( 
                                   r 
                                   ) 
                                 
                               
                             
                             = 
                             
                               
                                 
                                   0 
                                    
                                   
                                       
                                   
                                    
                                   with 
                                    
                                   
                                       
                                   
                                    
                                   s 
                                    
                                   
                                       
                                   
                                    
                                   such 
                                    
                                   
                                       
                                   
                                    
                                   that 
                                 
                                  
                                 
                                     
                                 
                                 | 
                                 
                                   s 
                                   - 
                                   r 
                                 
                                 | 
                               
                               = 
                               
                                 
                                   min 
                                   
                                     
                                       k 
                                        
                                       
                                         : 
                                       
                                        
                                       
                                         U 
                                         kj 
                                       
                                        
                                       
                                         
                                           t 
                                           j 
                                         
                                          
                                         
                                           ( 
                                           k 
                                           ) 
                                         
                                       
                                     
                                     ≠ 
                                     0 
                                   
                                 
                                  
                                 
                                   | 
                                   
                                     k 
                                     - 
                                     r 
                                   
                                   | 
                                 
                               
                             
                           
                         
                       
                       
                         
                           
                             0 
                              
                             
                                 
                             
                              
                             otherwise 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   180 
                   )