Example to show how to use the SPM library with a 1-based constant multi-dof sparse matrix allocated through the library but initialized by the user.
- Copyright
- 2020-2024 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
- Version
- 1.2.4
- Author
- Mathieu Faverge
-
Tony Delarue
- Date
- 2024-06-26
/
value *= alpha;
for( d=0; d<(dof*dof); d++ ) {
values[v] = value;
v++;
}
}
if ( i < mdim1 ) {
rowptr[l] = (i+1) + dim1 * j + dim1 * dim2 * k + 1;
colptr[l] = i + dim1 * j + dim1 * dim2 * k + 1;
l++;
for( d=0; d<(dof*dof); d++ ) {
values[v] = - beta;
v++;
}
}
if ( j < mdim2 ) {
rowptr[l] = i + dim1 * (j+1) + dim1 * dim2 * k + 1;
colptr[l] = i + dim1 * j + dim1 * dim2 * k + 1;
l++;
for( d=0; d<(dof*dof); d++ ) {
values[v] = - beta;
v++;
}
}
if ( k < mdim3 ) {
rowptr[l] = i + dim1 * j + dim1 * dim2 * (k+1) + 1;
colptr[l] = i + dim1 * j + dim1 * dim2 * k + 1;
l++;
for( d=0; d<(dof*dof); d++ ) {
values[v] = - beta;
v++;
}
}
}
}
}
assert( l == ((2*(dim1)-1) * dim2 * dim3 + (dim2-1)*dim1*dim3 + dim2*dim1*(dim3-1)) );
}
nnz += (dim1 - 1) * dim2 * dim3;
nnz += dim1 * (dim2 - 1) * dim3;
nnz += dim1 * dim2 * (dim3 - 1);
spm->replicated = 1;
#if defined(SPM_WITH_MPI)
MPI_Finalize();
#endif
(void)argc;
(void)argv;
return rc;
}
void spmExit(spmatrix_t *spm)
Cleanup the spm structure but do not free the spm pointer.
Definition in file example_mdof2.c.