On Oct 7, 2013, at 2:49 PM, Christophe Ortiz <[email protected]> wrote:
> Thanks. I got it.
>
> For the moment I have some general questions.
>
> - I see that in this example all terms--diffusion and reactions--are put into
> RHSFunction. There is no IFunction. Is there a reason for that ? In which
> cases one should use IFunction or RHSFunction ? In ts/.../ex25.c, diffusion
> terms are defined in IFunction and reaction terms in RHSFunction. Why not
> here ?
RHS function is for non-stiff parts of the problem. IFunction for stiff
parts.
There reason they are not separated in ex10.c is because I don't know for
this problem what is what, so I just put them all in RHSFunction. But use a
fully implicit solver.
>
> - If only RHSFunction is used, how is it possible to define boundary
> conditions ? For instance, a Dirichlet boundary condition, u(i=0)=3. In
> ts/.../ex2.c, only RHSFunction is used and the boundary conditions are
> defined through u_t,
If, for example u is zero on the boundary for all time then you can just set
u(t=0) to 0 on the boundary and u_t = 0 on the boundary and the boundary values
of u will remain zero. If you want to do something like u = f(t) on the
boundary you can put that into the IFunction.
>
> - In this type of problem, which TS scheme is recommended ? TSARKIMEX ?
Beats me.
>
> - The option TSARKIMEXSetFullyImplicit is used. Why ? Does it help ?
I just wanted to use a fully implicit solver; since I just used RHSFunction
by default TSARKIMEX would treat it as explicit which I didn't want.
Barry
>
> Christophe
>
> CIEMAT
> Laboratorio Nacional de Fusión por Confinamiento Magnético
> Unidad de Materiales
> Edificio 2 - Planta 0 - Despacho 28m
> Avenida Complutense 40,
> 28040 Madrid, Spain
> Tel: +34 91496 2582
> Fax: +34 91346 6442
>
> --
> Q
> Por favor, piense en el medio ambiente antes de imprimir este mensaje.
> Please consider the environment before printing this email.
>
>
> On Mon, Oct 7, 2013 at 3:23 PM, Barry Smith <[email protected]> wrote:
>
> I have put it into the next branch. So just download petsc from the
> bitbucket site with git and then do git checkout next
>
> The code won't work with the current PETSc release.
>
> On Oct 7, 2013, at 8:16 AM, Christophe Ortiz <[email protected]>
> wrote:
>
> > Hi Barry,
> >
> > Thanks for the reply.
> >
> > I had a look at the example ex10.c. But I see it does not fully corresponds
> > to what one can see in the branch. For instance, in the example that is
> > found in the tutorials, there is no RHS defined, no Jacobian, just the
> > IFunction.
> >
> > Could you please send me the latest version of ex10.c ? Many thanks in
> > advance.
> >
> > Christophe
> >
> > CIEMAT
> > Laboratorio Nacional de Fusión por Confinamiento Magnético
> > Unidad de Materiales
> > Edificio 2 - Planta 0 - Despacho 28m
> > Avenida Complutense 40,
> > 28040 Madrid, Spain
> > Tel: +34 91496 2582
> > Fax: +34 91346 6442
> >
> > --
> > Q
> > Por favor, piense en el medio ambiente antes de imprimir este mensaje.
> > Please consider the environment before printing this email.
> >
> >
> > On Mon, Oct 7, 2013 at 2:00 PM, Barry Smith <[email protected]> wrote:
> >
> > Chris,
> >
> > Take a look in the petsc branch barry/wirth-fusion-materials
> > https://bitbucket.org/petsc/petsc/branch/barry%2Fwirth-fusion-materials
> > in the file src/ts/examples/tutorials/advection-diffusion-reaction/ex10.c
> > feel free to ask any questions.
> >
> > Barry
> >
> > On Oct 7, 2013, at 3:03 AM, Christophe Ortiz <[email protected]>
> > wrote:
> >
> > > Hi all
> > >
> > > I need some suggestions to design a code with PETSc.
> > >
> > > I want to solve a 1D problem composed of several diffusion equations and
> > > a lot of ODEs (thousands).
> > >
> > > - After discretization, the diffusion equations have terms in i-1, i and
> > > i+1.
> > >
> > > - The diffusion equations have additional terms due to couping with all
> > > the ODEs. These terms are non-linear.
> > >
> > > - The terms of the ODEs are local (only depend on node i) but are
> > > non-linear.
> > >
> > > Any advice to design the code ?
> > >
> > > How should I distribute the terms between IFunction and RHSFunction ?
> > >
> > > Any special attention to DMDA ? Should I declare just one DMDA with dof
> > > >>1 ?
> > >
> > > Many thanks in advance !
> > > Christophe
> > >
> >
> >
>
>