Lines Matching refs:lusol

166   Mat_LUSOL *lusol = (Mat_LUSOL *)A->spptr;
169 if (lusol && lusol->CleanUpLUSOL) {
170 PetscCall(PetscFree(lusol->ip));
171 PetscCall(PetscFree(lusol->iq));
172 PetscCall(PetscFree(lusol->lenc));
173 PetscCall(PetscFree(lusol->lenr));
174 PetscCall(PetscFree(lusol->locc));
175 PetscCall(PetscFree(lusol->locr));
176 PetscCall(PetscFree(lusol->iploc));
177 PetscCall(PetscFree(lusol->iqloc));
178 PetscCall(PetscFree(lusol->ipinv));
179 PetscCall(PetscFree(lusol->iqinv));
180 PetscCall(PetscFree(lusol->mnsw));
181 PetscCall(PetscFree(lusol->mnsv));
182 PetscCall(PetscFree3(lusol->data, lusol->indc, lusol->indr));
191 Mat_LUSOL *lusol = (Mat_LUSOL *)A->spptr;
201 m = n = lusol->n;
202 nnz = lusol->nnz;
204 for (i = 0; i < m; i++) lusol->mnsv[i] = bb[i];
206 LU6SOL(&mode, &m, &n, lusol->mnsv, xx, &nnz, lusol->luparm, lusol->parmlu, lusol->data, lusol->indc, lusol->indr, lusol->ip, lusol->iq, lusol->lenc, lusol->lenr, lusol->locc, lusol->locr, &status);
218 Mat_LUSOL *lusol = (Mat_LUSOL *)F->spptr;
227 PetscCheck(m == lusol->n, PETSC_COMM_SELF, PETSC_ERR_ARG_SIZ, "factorization struct inconsistent");
236 nnz = PetscMax(lusol->nnz, (int)(lusol->elbowroom * nz));
239 if (nnz < lusol->luparm[12]) {
240 nnz = (int)(lusol->luroom * lusol->luparm[12]);
241 } else if ((factorizations > 0) && (lusol->luroom < 6)) {
242 lusol->luroom += 0.1;
245 nnz = PetscMax(nnz, (int)(lusol->luroom * (lusol->luparm[22] + lusol->luparm[23])));
247 if (nnz > lusol->nnz) {
248 PetscCall(PetscFree3(lusol->data, lusol->indc, lusol->indr));
249 PetscCall(PetscMalloc3(nnz, &lusol->data, nnz, &lusol->indc, nnz, &lusol->indr));
250 lusol->nnz = nnz;
261 lusol->indc[nz] = i + 1;
262 lusol->indr[nz] = a->j[rs] + 1;
263 lusol->data[nz] = a->a[rs];
271 LU1FAC(&m, &n, &nz, &nnz, lusol->luparm, lusol->parmlu, lusol->data, lusol->indc, lusol->indr, lusol->ip, lusol->iq, lusol->lenc, lusol->lenr, lusol->locc, lusol->locr, lusol->iploc, lusol->iqloc, lusol->ipinv, lusol->iqinv, lusol->mnsw, &status);
311 Mat_LUSOL *lusol;
321 lusol = (Mat_LUSOL *)F->spptr;
325 lusol->luparm[i] = 0;
326 lusol->parmlu[i] = 0;
329 lusol->luparm[1] = -1;
330 lusol->luparm[2] = 5;
331 lusol->luparm[7] = 1;
333 lusol->parmlu[0] = 1 / Factorization_Tolerance;
334 lusol->parmlu[1] = 1 / Factorization_Tolerance;
335 lusol->parmlu[2] = Factorization_Small_Tolerance;
336 lusol->parmlu[3] = Factorization_Pivot_Tolerance;
337 lusol->parmlu[4] = Factorization_Pivot_Tolerance;
338 lusol->parmlu[5] = 3.0;
339 lusol->parmlu[6] = 0.3;
340 lusol->parmlu[7] = 0.6;
343 lusol->elbowroom = PetscMax(lusol->elbowroom, info->fill);
344 nnz = PetscMax((int)(lusol->elbowroom * nz), 5 * n);
346 lusol->n = n;
347 lusol->nz = nz;
348 lusol->nnz = nnz;
349 lusol->luroom = 1.75;
351 PetscCall(PetscMalloc(sizeof(int) * n, &lusol->ip));
352 PetscCall(PetscMalloc(sizeof(int) * n, &lusol->iq));
353 PetscCall(PetscMalloc(sizeof(int) * n, &lusol->lenc));
354 PetscCall(PetscMalloc(sizeof(int) * n, &lusol->lenr));
355 PetscCall(PetscMalloc(sizeof(int) * n, &lusol->locc));
356 PetscCall(PetscMalloc(sizeof(int) * n, &lusol->locr));
357 PetscCall(PetscMalloc(sizeof(int) * n, &lusol->iploc));
358 PetscCall(PetscMalloc(sizeof(int) * n, &lusol->iqloc));
359 PetscCall(PetscMalloc(sizeof(int) * n, &lusol->ipinv));
360 PetscCall(PetscMalloc(sizeof(int) * n, &lusol->iqinv));
361 PetscCall(PetscMalloc(sizeof(double) * n, &lusol->mnsw));
362 PetscCall(PetscMalloc(sizeof(double) * n, &lusol->mnsv));
363 PetscCall(PetscMalloc3(nnz, &lusol->data, nnz, &lusol->indc, nnz, &lusol->indr));
365 lusol->CleanUpLUSOL = PETSC_TRUE;
380 Mat_LUSOL *lusol;
390 PetscCall(PetscNew(&lusol));
391 B->spptr = lusol;
413 MATSOLVERLUSOL - "lusol" - Provides direct solvers, LU, for sequential matrices