<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jul 30, 2013, at 10:06 AM, Olivier Bonnefon <<a href="mailto:olivier.bonnefon@avignon.inra.fr">olivier.bonnefon@avignon.inra.fr</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
  
    <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
  
  <div bgcolor="#FFFFFF" text="#000000">
    Hello,<br>
    <br>
    I want to use PETSC for large problem about diffusive model in
    epidemiological field.<br>
    I'm using the slides 'Advanced PETSc Tutorial, Maison de la
    Simulation, Orsay, France, June 2013 (Matt)'.<br>
    <br>
    My first step is to simulated a problem 0=-\nabla u + f(u), where f
    is a linear or non-linear function, with FEM. To do this I'm
    adapting the example ex12.c for the linear problem:<br>
    <br>
    0=-\nabla u + w*w*u<br>
    with the exact solution u(x,y)=exp(w*x)+exp(w*y). The Dirichlet
    boundary condition are defined from the exact solution, like in
    example ex12.<br>
    <br>
    To do this, I change only the two following functions:<br>
    <br>
    double WW=1.0;<br>
    void quadratic_u_2d(const PetscReal x[], PetscScalar *u)<br>
    {<br>
      *u = exp(WW*(x[0])) +exp(WW*(x[1]))  ;<br>
    }<br>
    <br>
    void f0_u(const PetscScalar u[], const PetscScalar gradU[], const
    PetscReal x[], PetscScalar f0[])<br>
    {<br>
      const PetscInt Ncomp = NUM_BASIS_COMPONENTS_0;<br>
      PetscInt       comp;<br>
    <br>
      for (comp = 0; comp < Ncomp; ++comp) f0[comp] = WW*WW*u[comp] ;<br>
    }<br>
    <br>
    <br>
    The result is :<br>
    $ ./ex12 -refinement_limit 0.01 -snes_monitor_short
    -snes_converged_reason<br>
      0 SNES Function norm 22.1518 <br>
      1 SNES Function norm 0.364312 <br>
      2 SNES Function norm 0.0165162 <br>
      3 SNES Function norm 0.000792446 <br>
      4 SNES Function norm 3.81143e-05 <br>
      5 SNES Function norm 1.83353e-06 <br>
      6 SNES Function norm 8.8206e-08 <br>
    Nonlinear solve converged due to CONVERGED_FNORM_RELATIVE iterations
    6<br>
    Number of SNES iterations = 6<br>
    L_2 Error: 0.00511<br>
    <br></div></blockquote><div><br></div><div>-ksp_monitor will show the linear solver residuals and these should match from one nonlinear iteration to the next if the problem is linear.  Your function and Jacobean might not be consistent (my guess).</div><br><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    Something is wrong because it is a linear problem, why the snes
    didn't converge in one iteration ?<br>
    <br>
    Thanks a lot.<br>
    <br>
    Olivier B<br>
    <br>
    On 07/18/2013 03:39 PM, Olivier Bonnefon wrote:
    <blockquote cite="mid:51E7F011.2020408@avignon.inra.fr" type="cite">
      <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
      On 07/18/2013 03:26 PM, Matthew Knepley wrote:
      <blockquote cite="mid:CAMYG4GmXRoVSctf57BnThOut=SZ+Ay_yKk_fwzH3786GKF212Q@mail.gmail.com" type="cite">
        <div dir="ltr">On Thu, Jul 18, 2013 at 8:17 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>
          <div class="gmail_extra">
            <div class="gmail_quote">
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">
                <div bgcolor="#FFFFFF" text="#000000"> It is what I
                  wanted, it works. <br>
                  If I well understand the code, ex12.h contains the P1
                  implementation. To simulate an other system, with time
                  dependences for examples (du/dt), I have to adapt the
                  plugin functions.<br>
                </div>
              </blockquote>
              <div><br>
              </div>
              <div>The way I would add time dependence is to convert
                this from a SNES example into a TS example. I can help
                you</div>
              <div>do this since I want to start using TS by default.
                Does this sound reasonable?</div>
            </div>
          </div>
        </div>
      </blockquote>
      Yes, of course. My goal is to simulate diffusive equation with non
      linear sources, for example Lotka-Voltera competion. <br>
      <br>
      Olivier B<br>
      <blockquote cite="mid:CAMYG4GmXRoVSctf57BnThOut=SZ+Ay_yKk_fwzH3786GKF212Q@mail.gmail.com" type="cite">
        <div dir="ltr">
          <div class="gmail_extra">
            <div class="gmail_quote">
              <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 bgcolor="#FFFFFF" text="#000000"> Thanks a lot.<br>
                  <br>
                  Olivier B<br>
                  <br>
                  On 07/18/2013 01:12 PM, Matthew Knepley wrote:
                  <blockquote type="cite">
                    <div dir="ltr">On Thu, Jul 18, 2013 at 5:08 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>
                      <div class="gmail_extra">
                        <div class="gmail_quote">
                          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px
                            #ccc solid;padding-left:1ex">Hello,<br>
                            <br>
                            I have a 2-d heat equation that I want to
                            simulate with Finit Element Method, to do
                            this, I'm looking for an example solving 2D
                            poisson equation with FEM (DMDA or DMPlex).
                            Is there an example like this ?<br>
                          </blockquote>
                          <div><br>
                          </div>
                          <div>There is, but there it is still somewhat
                            problematic. I use FIAT to generate the
                            basis function tabulation,</div>
                          <div>so you have to configure with</div>
                          <div><br>
                          </div>
                          <div>  --download-fiat
                            --download-scientificpython
                            --download-generator</div>
                          <div><br>
                          </div>
                          <div>and you need mesh generation and
                            partitioning</div>
                          <div><br>
                          </div>
                          <div>  --download-triangle --download-chaco</div>
                          <div><br>
                          </div>
                          <div>and then you can run SNES ex12 using
                            Builder (which will make the header file)</div>
                          <div><br>
                          </div>
                          <div>  python2.7 ./config/builder2.py check
                            src/snes/examples/tutorials/ex12.c</div>
                          <div><br>
                          </div>
                          <div>Jed and I are working on an all C version
                            of tabulation which would mean that you
                            could bypass</div>
                          <div> the Python code generation step. Once
                            the header is generated for the element you
                            want, then</div>
                          <div>you can just run the example as normal.</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"> Thanks a lot.<span><font color="#888888"><br>
                                <br>
                                Olivier Bonnefon<br>
                                <br>
                                -- <br>
                                Olivier Bonnefon<br>
                                INRA PACA-Avignon, Unité BioSP<br>
                                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><br>
                                <br>
                              </font></span></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>
            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>
      </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>
    </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>
  </div>

</blockquote></div><br></body></html>