@@ -44,10 +44,11 @@ void cleanArrays()
4444 }
4545
4646 /* ! free arrays */
47+ if (invariantFlux != nullptr ) { free (invariantFlux); invariantFlux = nullptr ; }
4748 if (b != nullptr ) { free (b); b = nullptr ; }
4849 if (C != nullptr ) { free (C); C = nullptr ; }
49- if (invariantFlux != nullptr ) { free (invariantFlux); invariantFlux = nullptr ; }
5050 if (X != nullptr ) { free (X); X = nullptr ; }
51+ if (X1 != nullptr ) { free (X1); X1 = nullptr ; }
5152}
5253
5354
@@ -72,38 +73,49 @@ void cleanNodes()
7273 */
7374int initializeArrays ()
7475{
75- long i, j, n;
76-
7776 /* ! clean previous arrays */
7877 cleanArrays ();
7978
80- /* ! matrix solver : rows */
79+ /* ! matrix A : rows */
8180 A = (TmatrixElement **) calloc (myStructure.nrNodes , sizeof (TmatrixElement *));
8281
83- /* ! matrix solver: columns */
84- for (i = 0 ; i < myStructure.nrNodes ; i++)
85- A[i] = (TmatrixElement *) calloc (myStructure.maxNrColumns , sizeof (TmatrixElement));
82+ /* ! matrix A: columns */
83+ for (long i = 0 ; i < myStructure.nrNodes ; i++)
84+ {
85+ A[i] = (TmatrixElement *) calloc (myStructure.maxNrColumns , sizeof (TmatrixElement));
86+ }
8687
87- /* ! initialize matrix solver */
88- for (i = 0 ; i < myStructure.nrNodes ; i++)
89- for (j = 0 ; j < (myStructure.nrLateralLinks + 2 ); j++)
88+ /* ! initialize matrix A */
89+ for (long i = 0 ; i < myStructure.nrNodes ; i++)
90+ {
91+ for (int j = 0 ; j < myStructure.maxNrColumns ; j++)
9092 {
9193 A[i][j].index = NOLINK;
9294 A[i][j].val = 0 .;
9395 }
96+ }
9497
9598 b = (double *) calloc (myStructure.nrNodes , sizeof (double ));
96- for (n = 0 ; n < myStructure.nrNodes ; n++) b[n] = 0 .;
99+ for (long i = 0 ; i < myStructure.nrNodes ; i++)
100+ {
101+ b[i] = 0 .;
102+ }
97103
98104 X = (double *) calloc (myStructure.nrNodes , sizeof (double ));
99105
100- /* ! mass diagonal matrix */
101- C = (double *) calloc (myStructure.nrNodes , sizeof (double ));
102- for (n = 0 ; n < myStructure.nrNodes ; n++) C[n] = 0 .;
106+ if (myParameters.numericalSolutionMethod == JACOBI)
107+ {
108+ X1 = (double *) calloc (myStructure.nrNodes , sizeof (double ));
109+ }
103110
104111 /* ! mass diagonal matrix */
112+ C = (double *) calloc (myStructure.nrNodes , sizeof (double ));
105113 invariantFlux = (double *) calloc (myStructure.nrNodes , sizeof (double ));
106- for (n = 0 ; n < myStructure.nrNodes ; n++) invariantFlux[n] = 0 .;
114+ for (long n = 0 ; n < myStructure.nrNodes ; n++)
115+ {
116+ C[n] = 0 .;
117+ invariantFlux[n] = 0 .;
118+ }
107119
108120 if (A == nullptr )
109121 return MEMORY_ERROR;
0 commit comments