Manual

High-level API

FinEtoolsMultithreading.parallel_make_matrixFunction
parallel_make_matrix(
    fes,
    u,
    createsubd,
    matrixupdt!;
    ntasks = Threads.nthreads(),
    kind = :CSC,
)

Assemble a sparse matrix.

Either a :CSC matrix or a :CSR matrix is created. We shall refer to this matrix as a CSX matrix. The process is:

  1. Construct the incidence relation node-to-neighbors.
  2. Make the sparse pattern and create a sparse CSX matrix with all values zero.
  3. Construct the incidence relation element-to-neighbors.
  4. Compute element coloring.
  5. Set up domain decomposition.
  6. Compute and assemble the matrix entries.
parallel_make_matrix(
    fes,
    dofnums,
    ndofs,
    FT,
    n2e,
    createsubd,
    matrixupdt!,
    ntasks,
    kind,
)

Assemble a sparse matrix.

  1. Construct the incidence relation node-to-neighbors.
  2. Make the sparse pattern and create a sparse CSX matrix with all values zero.
  3. Construct the incidence relation element-to-neighbors.
  4. Compute element coloring.
  5. Set up domain decomposition.
  6. Compute and assemble the matrix entries.