59 pastix_int_t coefindx;
62 if ( cblk->
cblktype & CBLK_COMPRESSED ) {
63 fprintf(stderr,
"coeftab_zcblkdump: Can't dump a compressed cblk\n");
68 itercol <= cblk->lcolnum;
74 if (cblk->
cblktype & CBLK_LAYOUT_2D) {
82 iterrow <= blok->lrownum;
83 iterrow++, coefindx++)
85 if ((cabs( coeftab[coefindx] ) > 0.) &&
89 #if defined(PRECISION_z) || defined(PRECISION_c)
90 fprintf(stream,
"%ld %ld (%13e,%13e) [U]\n",
91 (
long)itercol, (
long)iterrow,
92 creal(coeftab[coefindx]), cimag(coeftab[coefindx]));
94 fprintf(stream,
"%ld %ld %13e [U]\n",
95 (
long)itercol, (
long)iterrow,
100 #if defined(PRECISION_z) || defined(PRECISION_c)
101 fprintf(stream,
"%ld %ld (%13e,%13e) [L]\n",
102 (
long)iterrow, (
long)itercol,
103 creal(coeftab[coefindx]), cimag(coeftab[coefindx]));
105 fprintf(stream,
"%ld %ld %13e [L]\n",
106 (
long)iterrow, (
long)itercol,
115 while( blok < (cblk+1)->fblokptr )
118 if (cblk->
cblktype & CBLK_LAYOUT_2D) {
126 iterrow <= blok->lrownum;
127 iterrow++, coefindx++)
129 if (cabs( coeftab[coefindx]) > 0.)
132 #if defined(PRECISION_z) || defined(PRECISION_c)
133 fprintf(stream,
"%ld %ld (%13e,%13e) [U]\n",
134 (
long)itercol, (
long)iterrow,
135 creal(coeftab[coefindx]), cimag(coeftab[coefindx]));
137 fprintf(stream,
"%ld %ld %13e [U]\n",
138 (
long)itercol, (
long)iterrow,
143 #if defined(PRECISION_z) || defined(PRECISION_c)
144 fprintf(stream,
"%ld %ld (%13e,%13e) [L]\n",
145 (
long)iterrow, (
long)itercol,
146 creal(coeftab[coefindx]), cimag(coeftab[coefindx]));
148 fprintf(stream,
"%ld %ld %13e [L]\n",
149 (
long)iterrow, (
long)itercol,
160 void coeftab_zcblkComputeILULevels(
const SolverMatrix *solvmtx,
SolverCblk *cblk )
166 for (; blokB<lblkB; blokB++) {
172 for (blokA=blokB; blokA<lblkB; blokA++) {
178 assert( blokC < fcblk[1].fblokptr );
182 if ( (blokA->
iluklvl == INT_MAX) ||
191 pastix_cblk_lock( fcblk );
195 pastix_cblk_unlock( fcblk );
198 pastix_atomic_dec_32b( &(fcblk->
ctrbcnt) );
202 void coeftab_zcblkComputePreselect(
const SolverMatrix *solvmtx,
SolverCblk *cblk )
208 for (; blok<lblk; blok++) {
212 if ( is_preselected ) {
252 const SolverMatrix *solvmtx,
254 pastix_int_t itercblk,
255 const char *directory )
257 SolverCblk *cblk = solvmtx->cblktab + itercblk;
258 int ilukmax = solvmtx->lowrank.ilu_lvl;
263 #if defined(PASTIX_DEBUG_DUMP_COEFTAB)
276 rc = asprintf( &filename,
"Lcblk%05ld_init.txt", itercblk );
288 rc = asprintf( &filename,
"Ucblk%05ld_init.txt", itercblk );
301 if ( (ilukmax > 0) && (ilukmax < INT_MAX) ) {
302 #if defined(PASTIX_WITH_MPI)
304 if ( solvmtx->clustnbr == 1 )
307 do {}
while( cblk->
ctrbcnt > 0 );
308 coeftab_zcblkComputeILULevels( solvmtx, cblk );
315 if ( (cblk->
cblktype & CBLK_COMPRESSED) &&
316 (ilukmax < INT_MAX) )