On Tue, Sep 3, 2013 at 6:38 AM, Daniel Farrell <[email protected]> wrote:

> Dear list,
>
> The constraints system is extremely elegant way of applying boundary
> conditions to a problem. I was just wondering if there is any background
> information (notes, a paper or thesis) that covers how this is implemented?
>

I found two entries on the blog/wiki

   http://matforge.org/fipy/wiki/BoundaryConditions
   http://matforge.org/fipy/blog/BoundaryConditions

Not that either of these will be much help. Maybe the table will be a
little helpful. The robin boundary condition example might also be helpful


http://www.ctcms.nist.gov/fipy/examples/convection/generated/examples.convection.robin.html

However we don't have any explanation of how the constraints really work,
but there isn't anything magical about them. While the interface is
seemingly elegant, the implementation is not at all elegant. In fact I'm
not aware of what I would describe as an elegant way to include boundary
conditions in FiPy.



> I have been solving advection-diffusion-reaction type problems using the
> finite volume method (see my online notes here,
> http://danieljfarrell.github.io/FVM) and have found a elegant way of
> adding general boundary conditions to this equation. See here,
> http://danieljfarrell.github.io/FVM/advection_diffusion_boundary_conditions.html#general-matrix-form
>


Really nice notes. In fact I just tweeted the link.

Just glancing at it, I can't tell if it relates directly to the way we have
implemented the boundary conditions, but it might be a more elegant way.


>
> But this only really works when there is a transient term. As soon as the
> equation changes form then a I need to rethink how to apply the boundary
> conditions. The Fipy system seems to get round this problem I just wondered
> how it is working. I have read the source code and noticed the use of
> "masks" but I couldn't really glean much more than that.
>

I would have to spend some time reconciling your approach with FiPy. When I
have a moment I will give it a go.



>
> If possible I wish to implement a Fipy like constraints system in my code,
> but I want to stay in semi-discrete form so that I can used the method of
> lines. Can the constraints system be applied to the semi-discrete form?
>

When you say the semi-discrete form, I assume you mean that the equations
are only discretized in space, but not yet in time. If this is in fact your
question, I imagine that FiPy makes implicit assumptions regarding the time
stepping when implementing the boundary conditions, but I am not entirely
sure.

Cheers.

--
Daniel Wheeler
_______________________________________________
fipy mailing list
[email protected]
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to