/[escript]/trunk/paso/src/SCSL_direct.c
ViewVC logotype

Diff of /trunk/paso/src/SCSL_direct.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 414 by gross, Tue Jan 3 00:23:48 2006 UTC revision 415 by gross, Wed Jan 4 05:37:33 2006 UTC
# Line 51  void Paso_SCSL_direct(Paso_SystemMatrix* Line 51  void Paso_SCSL_direct(Paso_SystemMatrix*
51    long long non_zeros;    long long non_zeros;
52    double ops;    double ops;
53    
54    if (A->type==CSC_SYM) {    if (A->type & MATRIX_FORMAT_SYM) {
55        method=PASO_CHOLEVSKY;        method=PASO_CHOLEVSKY;
56    } else {    } else {
57        method=PASO_DIRECT;        method=PASO_DIRECT;
# Line 60  void Paso_SCSL_direct(Paso_SystemMatrix* Line 60  void Paso_SCSL_direct(Paso_SystemMatrix*
60        Paso_setError(TYPE_ERROR,"Paso_SCSL_direct: linear solver can only be applied to block size 1.");        Paso_setError(TYPE_ERROR,"Paso_SCSL_direct: linear solver can only be applied to block size 1.");
61    }    }
62    if (method==PASO_CHOLEVSKY) {    if (method==PASO_CHOLEVSKY) {
63        if (A->type!=CSC_SYM) {        if (! (A->type & (MATRIX_FORMAT_CSC + MATRIX_FORMAT_SYM + MATRIX_FORMAT_BLK1)) )
64            Paso_setError(TYPE_ERROR,"Paso_SCSL_direct: direct solver for symmetric matrices can only be applied to symmetric CSC format.");            Paso_setError(TYPE_ERROR,"Paso_SCSL_direct: direct solver for symmetric matrices can only be applied to symmetric CSC format with block size 1 and index offset 0.");
       }  
65    } else {    } else {
66        if (A->type!=CSC) {        if (! (A->type & (MATRIX_FORMAT_CSC + MATRIX_FORMAT_BLK1)) )
67            Paso_setError(TYPE_ERROR,"Paso_SCSL_direct: direct solver can only be applied to CSC format.");            Paso_setError(TYPE_ERROR,"Paso_SCSL_direct: direct solver can only be applied to CSC format with block size 1 and index offset 0.");
       }  
68    }    }
69    method=Paso_Options_getSolver(options->method,PASO_PASO,options->symmetric);    method=Paso_Options_getSolver(options->method,PASO_PASO,options->symmetric);
70    if (Paso_noError()) {    if (Paso_noError()) {

Legend:
Removed from v.414  
changed lines
  Added in v.415

  ViewVC Help
Powered by ViewVC 1.1.26