Hello, I’m trying to set a prefix for a ksp context (from the libMesh PetscLinearSolver) that solves a “bidomain” problem.
Currently I’m simply calling KSPSetOptionsPrefix(ksp,"bidomain_"); PCFieldSplitSetIS(ksp->pc,"v",is_v_local); PCFieldSplitSetIS(ksp->pc,"ve",is_ve_local); where is_v_local and is_ve_local are the local index sets of the 2 fields, v and ve. In this way, I can use the -bidomain_pc_type option to set the preconditioner. But using the FIELDSPLIT preconditioner with: -bidomain_pc_type fieldsplit I actually get the error: "Unhandled case, must have at least two fields, not 1” If I specify the block size -bidomain_pc_type fieldsplit -bidomain_pc_fieldsplit_block_size 2 The fields are not split using the provided index sets and the splitnames correspond to the number of the split, i.e. -bidomain_fieldsplit_0 -bidomain_fieldsplit_1 On the contrary using: -pc_type fieldsplit the preconditioner uses the index set provided in the code, and the splitnames are correct -bidomain_fieldsplit_v -bidomain_fieldsplit_ve How can I call "-bidomain_pc_type fieldsplit" and get the splitting that uses the index sets provided in the code? Thanks for the help, Simone
