-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementation of SuperLU_MT? #133
Comments
It seems your set up is similar to the example EXAMPLE/pdrrepeat.c. |
Dear Sherry Li,
Thank you so much for your reply. Yes I took this idea from the
EXAMPLE/pdrepeat.c. The only difference is just defining the matrix and
right hand side. That program runs but when I change the program to my
problem then they give me an error. My problem is time dependent and
nonlinear, so I repeat the iterations (time iteration by backward
euler method as well as newton iteration for nonlinearity). So I need this
approach to speed up my program.
Best Regards,
Salman AHmad
…On Sun, Feb 26, 2023 at 5:14 PM X. Sherry Li ***@***.***> wrote:
It seems your set up is similar to the example EXAMPLE/pdrrepeat.c.
Are you able to run that example?
—
Reply to this email directly, view it on GitHub
<#133 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AXKALTRYRMKGVQJP5ULZLR3WZMNH3ANCNFSM6AAAAAAVIKHWTU>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Dear Sherry Li, When, I run the dreadhb(&m, &n, &nnz, &a, &asub, &xa); function in SuperLU_MT, they gives me the error: Segmentation fault (core dumped). Best Regards, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I am the beginner for SuperLU. I am trying to solve my system A*X= B through C++ coding. In my code A is SK and B is f. I trying to solve this by
X = SK.Solve_superlu(f); where
FEM_Matrix_2<> SK(mesh);
template
std::vector FEM_Matrix_2::Solve_superlu(std::vector const &f) const
{
SuperMatrix A, AC, L, U, B;
NCformat *Astore;
SCPformat *Lstore;
NCPformat *Ustore;
superlumt_options_t superlumt_options;
pxgstrf_shared_t pxgstrf_shared;
pdgstrf_threadarg_t *pdgstrf_threadarg;
int_t nprocs;
fact_t fact;
trans_t trans;
yes_no_t refact, usepr;
double u, drop_tol;
double *a;
int_t *asub, *xa;
int_t perm_c; / column permutation vector */
int_t perm_r; / row permutations from partial pivoting */
void *work;
int_t info, lwork, nrhs, ldx;
int_t m, n, nnz, permc_spec, panel_size, relax;
int_t i, firstfact;
double *rhsb, *xact;
Gstat_t Gstat;
flops_t flopcnt;
int argc; char *argv; //int_t nprocs;
void parse_command_line(int argc, char *argv[], int_t *nprocs);
for (int_t j = 0; j < m; ++j)
{
rhsb[j] = f[j];
}
dCreate_Dense_Matrix(&B, m, nrhs, rhsb, m, SLU_DN, SLU_D, SLU_GE);
// ldx = n;
//dGenXtrue(n, nrhs, xact, ldx);
//dFillRHS(trans, nrhs, xact, ldx, &A, &B);
SUPERLU_ABORT("Malloc fails for etree[].");
if ( !(superlumt_options.colcnt_h = intMalloc(n)) )
SUPERLU_ABORT("Malloc fails for colcnt_h[].");
if ( !(superlumt_options.part_super_h = intMalloc(n)) )
SUPERLU_ABORT("Malloc fails for colcnt_h[].");
u, usepr, drop_tol, perm_c, perm_r,
work, lwork, &A, &AC, &superlumt_options, &Gstat);
}
In this way, the SuperLU is working but SuperLU_MT (the current code is not working). The following error gives me:
** On entry to sp_ienv, parameter number 1 had an illegal value
Storage for L subscripts exceeded; Current column 0; Need at least 72;
You may set it by the 8-th parameter in routine sp_ienv().
Memory allocation failed at line 222 in file pmemory.c
Please help me with this, what is the problem?
Best Regards,
Salman Ahmad
The text was updated successfully, but these errors were encountered: