<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hello,<br>
      <br>
      Thank you for your answer, I agree with you.<br>
      <br>
      I have adapted the ex12 example for the system:<br>
      <br>
      -\nabla \nabla u + u + f = 0 in \Omega  (1)<br>
      <br>
      with f = 4-x^2-y^2<br>
      The solution is still x^2-y^2.<br>
      <br>
      It consists in adding the following gradient function:<br>
      <br>
      void g0_uu(const PetscScalar u[], const PetscScalar u_t[], const
      PetscScalar u_x[], const PetscScalar a[], const PetscScalar a_t[],
      const PetscScalar a_x[], const PetscReal x[], PetscScalar g0[])<br>
      {<br>
        g0[0] = 1.0;<br>
      }<br>
      ...<br>
      //and set gradient<br>
      ierr = PetscDSSetJacobian(prob, 0, 0, g0_uu, NULL, NULL,
      g3_uu);CHKERRQ(ierr);<br>
      ...<br>
      Of course, I have modified the f0_u function.<br>
      <br>
      <br>
      With Dirichlet BC, I get the solution.<br>
      <br>
      With Neumann BC, the solution is still shifted down (-2/3). The
      problem (1) with Neumann BC has a unique solution.<br>
      How remove the condition \int_\Omega u = 0 ?<br>
      <br>
      Thanks<br>
      Olivier Bonnefon<br>
      <br>
      <br>
      <br>
      <br>
      <br>
      On 11/06/2014 07:14 AM, Matthew Knepley wrote:<br>
    </div>
    <blockquote
cite="mid:CAMYG4G=etYSiocQq=nvGK5GRUZKyaPbSzUr23geGvFm7Fz_kVg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On Mon, Nov 3, 2014 at 9:46 AM,
            Olivier Bonnefon <span dir="ltr"><<a
                moz-do-not-send="true"
                href="mailto:olivier.bonnefon@avignon.inra.fr"
                target="_blank">olivier.bonnefon@avignon.inra.fr</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF">
                <div>Hello,<br>
                  <br>
                  Thank for your answer, I'll explain my trouble:<br>
                  <br>
                  My problem is that the BC Neumann leads to wrong
                  result.<br>
                  <br>
                  With Dirichlet BC, I get:<br>
                  -------------------------------<br>
                  <br>
                  > ./ex12 -run_type full -refinement_limit 0.0   
                  -bc_type dirichlet -interpolate 0 -petscspace_order 1
                  -show_initial -show_solution -dm_plex_print_fem 1<br>
                  ...<br>
                  ...<br>
                  Solution<br>
                  Vec Object:potential 1 MPI processes<br>
                    type: seq<br>
                  0.5<br>
                  <br>
                  This result is correct.<br>
                  <br>
                  With Neuman BC, I get:<br>
                  --------------------------------<br>
                  <br>
                  > ./ex12 -run_type full -refinement_limit 0.0   
                  -bc_type neumann -interpolate 1 -petscspace_order 1
                  -show_initial -dm_plex_print_fem 1 -show_solution
                  -bd_petscspace_order 1 -snes_linesearch_monitor  
                  -snes_monitor -ksp_monitor_true_residual
                  -snes_converged_reason -ksp_converged_reason<br>
                  ....<br>
                  ....<br>
                  <br>
                  <br>
                  Solution<br>
                  Vec Object:potential 1 MPI processes<br>
                    type: seq<br>
                  -0.75<br>
                  -0.583333<br>
                  0.0833333<br>
                  -0.583333<br>
                  -0.333333<br>
                  0.416667<br>
                  0.0833333<br>
                  0.416667<br>
                  1.25<br>
                  <br>
                  <br>
                  That is not the values of the solution x*x+y*y.<br>
                </div>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>Sorry, this is poor documentation on my part. I will
              fix it in the example. The Naumann solution</div>
            <div>explicitly discards the constant part, meaning</div>
            <div><br>
            </div>
            <div>  \int_\Omega u = 0</div>
            <div><br>
            </div>
            <div>If we look at my solution</div>
            <div><br>
            </div>
            <div>  \int^1_0 dx \int^1_0 dy x^2 + y^2 = 2/3</div>
            <div><br>
            </div>
            <div>However, this is for the continuum result, whereas we
              are enforcing this in the discrete case.</div>
            <div>Thus, what we really get is 0.75, since we are
              integrating linear patches instead of quadratic</div>
            <div>patches. After shifting by that, you still do not get
              exactly x^2 + y^2 since there is some</div>
            <div>discretization error. If you run with P2 you should get
              the exact answer, shifted down to eliminate</div>
            <div>the DC component.</div>
            <div><br>
            </div>
            <div>  Thanks,</div>
            <div><br>
            </div>
            <div>     Matt</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF">
                <div> <br>
                  I tried many ksp options. <br>
                  Moreover, the neumann BC with "-run_type full" is not
                  cover in the list <a moz-do-not-send="true"
href="https://bitbucket.org/petsc/petsc/src/fced3c3f9e703542693913793d15321603e40fe6/config/builder.py?at=master#cl-257"
                    target="_blank">https://bitbucket.org/petsc/petsc/src/fced3c3f9e703542693913793d15321603e40fe6/config/builder.py?at=master#cl-257</a><br>
                  <br>
                  Do you know what is wrong ?<br>
                  <br>
                  Thanks,<br>
                  <br>
                  Olivier Bonnefon<br>
                  <br>
                  On 10/31/2014 06:50 PM, Matthew Knepley wrote:<br>
                </div>
                <blockquote type="cite">
                  <div dir="ltr">
                    <div class="gmail_extra">
                      <div class="gmail_quote">On Fri, Oct 31, 2014 at
                        10:43 AM, Olivier Bonnefon <span dir="ltr"><<a
                            moz-do-not-send="true"
                            href="mailto:olivier.bonnefon@avignon.inra.fr"
                            target="_blank">olivier.bonnefon@avignon.inra.fr</a>></span>
                        wrote:<br>
                        <blockquote class="gmail_quote"
                          style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hello,<br>
                          <br>
                          I'm working on the snes/examples/tutorial/ex12
                          version 3.5.2.<br>
                          <br>
                          I didn't succed to run the simplest case with
                          Neumann BC:<br>
                          <br>
                          ./ex12 -run_type full -refinement_limit 0.0   
                          -bc_type neumann -interpolate 1
                          -petscspace_order 1 -show_initial
                          -dm_plex_print_fem 1 -show_solution
                          -bd_petscspace_order 1
                          -snes_linesearch_monitor -snes_monitor
                          -ksp_monitor_true_residual
                          -snes_converged_reason -ksp_converged_reason<br>
                          <br>
                          This leads to dofs negatives values.<br>
                        </blockquote>
                        <div><br>
                        </div>
                        <div>I do not understand what you mean. Please
                          always mail the full error message.</div>
                        <div> </div>
                        <blockquote class="gmail_quote"
                          style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Do

                          you know the options to get a correct result
                          with Neumann BC ?<br>
                        </blockquote>
                        <div><br>
                        </div>
                        <div>There are some tests here:</div>
                        <div><br>
                        </div>
                        <div><a moz-do-not-send="true"
href="https://bitbucket.org/petsc/petsc/src/fced3c3f9e703542693913793d15321603e40fe6/config/builder.py?at=master#cl-257"
                            target="_blank">https://bitbucket.org/petsc/petsc/src/fced3c3f9e703542693913793d15321603e40fe6/config/builder.py?at=master#cl-257</a><br>
                        </div>
                        <div><br>
                        </div>
                        <div>   Matt</div>
                        <div> </div>
                        <blockquote class="gmail_quote"
                          style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Regards,<br>
                          Olivier Bonnefon<br>
                          <br>
                        </blockquote>
                      </div>
                      <br>
                      <br clear="all">
                      <span class="HOEnZb"><font color="#888888">
                          <div><br>
                          </div>
                          -- <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 </font></span></div>
                    <span class="HOEnZb"><font color="#888888"> </font></span></div>
                  <span class="HOEnZb"><font color="#888888"> </font></span></blockquote>
                <span class="HOEnZb"><font color="#888888"> <br>
                    <br>
                    <pre cols="72">-- 
Olivier Bonnefon
INRA PACA-Avignon, Unité BioSP
Tel: <a moz-do-not-send="true" href="tel:%2B33%20%280%294%2032%2072%2021%2058" value="+33432722158" target="_blank">+33 (0)4 32 72 21 58</a></pre>
                  </font></span></div>
            </blockquote>
          </div>
          <br>
          <br clear="all">
          <div><br>
          </div>
          -- <br>
          <div class="gmail_signature">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>
      </div>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Olivier Bonnefon
INRA PACA-Avignon, Unité BioSP
Tel: +33 (0)4 32 72 21 58</pre>
  </body>
</html>