<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hi Matt, <br>The DM being created is here (this is from Libmesh code <br>(petscdmlibmesh.C <span style="font-size: 12pt;">) </span><br><br>   01047 { <br>   01048 PetscErrorCode ierr;<br>   01049 PetscFunctionBegin;<br>   01050 ierr = DMCreate(comm, dm); CHKERRQ(ierr);<br>   01051 ierr = DMSetType(*dm, DMLIBMESH); CHKERRQ(ierr);<br>   01052 ierr = DMLibMeshSetSystem(*dm, sys); CHKERRQ(ierr);<br>   01053 PetscFunctionReturn(0);<br>   01054 }<br><br><br>This file has methods to access the  variables assigned to the DM (this seems to be stored in a struct.) <div>So , I guess one should be able to add a bit of code to create sections as you mentioned somewhere around here. </div><div>Thanks, </div><div>Subramanya <br><br><br><br><br><br>Date: Fri, 19 Jul 2013 21:33:11 -0500<br>Subject: Re: [petsc-users] Trying to set up a field-split preconditioner<br>From: knepley@gmail.com<br>To: potaman@outlook.com<br>CC: petsc-users@mcs.anl.gov<br><br>On Fri, Jul 19, 2013 at 9:17 PM, subramanya sadasiva <potaman@outlook.com> wrote:<br>Hi Matt, <br>I am using Libmesh so the DM stuff is actually in the background, and unfortunately the matrix doesn't have a saddle point, <br>I thought that <br><br>  -ch_solve_fieldsplit_block_size 2<br>  -ch_solve_fieldsplit_0_fields 0<br>  -ch_solve_fieldsplit_1_fields 1<br><br>The block_size argument presumes you are using a DA. Are you?<br><br>The other two options just say select the first DM field as field 0 in this PC, and the same with the second field. The<br>DM must inform the PC about the initial field decomposition.<br> <br>would inform the solver of the structure. If this doesn't work owing to the fact that the problem is only being solved on a section of the mesh (because of the reduced space method), I guess I will have to use the PetscSection. Does that sound right?<br><br>First, I think the right people to do this are the Libmesh people (we will of course help them). Second, you have not said<br>whether you are using a structured or unstructured mesh. What DM class does the solver actually see?<br><br>  Thanks,<br><br>      Matt<br> <br>Thanks, <br>Subramanya <br>  <br><br>Subject: Re: [petsc-users] Trying to set up a field-split preconditioner<br>From: knepley@gmail.com<br>To: potaman@outlook.com<br>CC: petsc-users@mcs.anl.gov; libmesh-users@lists.sourceforge.net<br><br>On Fri, Jul 19, 2013 at 7:56 PM, subramanya sadasiva <potaman@outlook.com> wrote:<br>Hi, <br>I am trying to set up a fieldsplit preconditioner for my Cahn Hilliard solver and I get the following error, <br><br>You have to tell the PCFIELDSPLIT about the dofs in each field. So<br><br>1) You are probably not using a DA, since it would tell it automatically<br><br>2) If you have a saddle point, you can use -pc_fieldsplit_detect_saddle_point<br><br>3) If none of those apply, you can set a PetscSection describing your layout to the DM for the solver.<br>     Since this is new, I suspect you will need help, so mail back.<br><br>  Thanks,<br><br>     Matt<br> <br><br>[0]PETSC ERROR: --------------------- Error Message ------------------------------------<br>[0]PETSC ERROR: Petsc has generated inconsistent data!<br>[0]PETSC ERROR: Unhandled case, must have at least two fields, not 0!<br>[0]PETSC ERROR: ------------------------------------------------------------------------<br><br>These are the options that I am using, <br>-ch_solve is just a prefix. <br><br><br><br>-ch_solve_pc_type fieldsplit<br>-ch_solve_pc_fieldsplit_type schur<br>-ch_solve_fieldsplit_block_size 2<br>-ch_solve_fieldsplit_0_field 1<br>-ch_solve_fieldsplit_1_field 0<br>-ch_solve_fieldsplit_0_ksp_type cg <br>-ch_solve_fieldsplit_0_pc_type hypre<br>-ch_solve_fieldsplit_0_pc_type_hypre boomeramg <br>-ch_solve_fieldsplit_1_ksp_type cg<br>-ch_solve_fieldsplit_1_pc_type hypre <br>-ch_solve_fieldsplit_1_pc_type_hypre boomeramg<br><br>Any ideas?<br><br>Thanks,<br>Subramanya <br><br><br><br><br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener<br><br><br><br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>                                       </div></body>
</html>