Discussion:
... FiPy capabilities ...
Matt Koch
2007-04-16 15:01:41 UTC
Permalink
Hello,

I was just wondering whether FiPy, in general, can solve a set of PDEs
including the following equations:

1) Navier-Stokes equation (transient, non-linear)
2) Heat Conduction (transient, non-linear, with phase change)
3) Species Diffusion (transient, non-linear, with phase change)

The boundary conditions would be as follows:

1) moving interface of liquid to gas, constant inflow
2) moving interface of liquid to solid, Stefan Problem, thermal radiation
3) moving interface of liquid to solid, equivalent Stefan Problem for species

I am not after exact examples or implementations, just a general
statement as to whether it might be possible to attack such a problem
successfully in FiPy at all? I am thinking, though, of capturing the
liquid to solid interface and the liquid to gas interface with two
separate Level Sets?

Thanks and Regards,

Matt Koch
Daniel Wheeler
2007-04-16 20:13:34 UTC
Permalink
Hi Matt,
Post by Matt Koch
Hello,
I was just wondering whether FiPy, in general, can solve a set of
1) Navier-Stokes equation (transient, non-linear)
2) Heat Conduction (transient, non-linear, with phase change)
3) Species Diffusion (transient, non-linear, with phase change)
Yes to all the above. I am currently using fipy to solve a phase
field binary solid-liquid-vapor problem with full
Navier-Stokes. Examples for this problem will be publicly available
in the next month or two.
Post by Matt Koch
1) moving interface of liquid to gas, constant inflow
Should be okay, but I haven't tried it.
Post by Matt Koch
2) moving interface of liquid to solid, Stefan Problem, thermal radiation
3) moving interface of liquid to solid, equivalent Stefan Problem for species
Yes to the last two. I think the above are generally introduced
source terms that are applied to the "interface region" of the domain.
They would be implicitly handled with a phase field method, but would
require explicit construction for
the level set method. Note, that these are different from boundary
conditions in fipy that are applied to the external mesh.
Post by Matt Koch
I am not after exact examples or implementations, just a general
statement as to whether it might be possible to attack such a
problem successfully in FiPy at all?
Yes with caveats. fipy has efficiency limitations that we have only
partially addressed and no parallel as yet. Flow problems
with multiple species take a lot of memory and converge slowly so
this is definitely a consideration. I am solving my flow
problems in 2D with success (but not fast).
Post by Matt Koch
I am thinking, though, of capturing the liquid to solid interface
and the liquid to gas interface with two separate Level Sets?
I have never used the level set method in fipy with flow, I have used
it exclusively for electrodeposition problems. I may be
working with Andrew Reeve later this summer who is interested in
ground water flows on addressing some of the level set
and flow issues. The level set code as it stands only works on 1D and
2D grids and may need some tweaking for new
problems. Also, it is written entirely in python.

Hope this helps.

Cheers
Post by Matt Koch
Thanks and Regards,
Matt Koch
--
Daniel Wheeler
Matt Koch
2007-04-16 21:33:40 UTC
Permalink
Hi Daniel,

thank you so very much for your quick and rather encouraging response.
Let me follow up with more questions then.

1) Can FiPy handle curvature effects, such as capillary rise in a
tube, or surface tension driven species segregation?

2) So far, I have thought of the Level Set method as an alternative to
the Phase Field method. Is this an incorrect view, and which of the
two is the better method to use?

3) When I refer to species diffusion, I have only one species to
account for. Will that by itself mean a substantial speed decrease
over problems that use Navier-Stokes and heat conduction only?

4) How would you describe the development status of FiPy? What
direction is it going into? Are all features presently implemented in
the code documented? Are there more features implemented than
documented? Are there fewer features implemented than documented? Does
all that IS documented work properly? Is there a development roadmap
for FiPy?

I apologize for so many questions, but I come to FiPy from an odyssey
through the free PDE software world, including OpenFOAM, FreeFEM,
keyFE2 and GetDP. While each have great features by themselves, they
either lack the flexibility or the usability to implement the problem
I described. I just want to make sure that I have a fighting chance
with FiPy. There are several pieces of commercial software out there,
or course, that could handle this, but they all go for between $10,000
and $20,000, which is completely out of the question.

Thanks,

Matt Koch


----- Message from daniel.wheeler-R3+/***@public.gmane.org ---------
Date: Mon, 16 Apr 2007 16:13:34 -0400 (EDT)
From: Daniel Wheeler <daniel.wheeler-R3+/***@public.gmane.org>
Reply-To: fipy-R3+/***@public.gmane.org
Subject: Re: ... FiPy capabilities ...
Post by Daniel Wheeler
Hi Matt,
Post by Matt Koch
Hello,
I was just wondering whether FiPy, in general, can solve a set of
1) Navier-Stokes equation (transient, non-linear)
2) Heat Conduction (transient, non-linear, with phase change)
3) Species Diffusion (transient, non-linear, with phase change)
Yes to all the above. I am currently using fipy to solve a phase field
binary solid-liquid-vapor problem with full
Navier-Stokes. Examples for this problem will be publicly available in
the next month or two.
Post by Matt Koch
1) moving interface of liquid to gas, constant inflow
Should be okay, but I haven't tried it.
Post by Matt Koch
2) moving interface of liquid to solid, Stefan Problem, thermal radiation
3) moving interface of liquid to solid, equivalent Stefan Problem for species
Yes to the last two. I think the above are generally introduced source
terms that are applied to the "interface region" of the domain.
They would be implicitly handled with a phase field method, but would
require explicit construction for
the level set method. Note, that these are different from boundary
conditions in fipy that are applied to the external mesh.
Post by Matt Koch
I am not after exact examples or implementations, just a general
statement as to whether it might be possible to attack such a
problem successfully in FiPy at all?
Yes with caveats. fipy has efficiency limitations that we have only
partially addressed and no parallel as yet. Flow problems
with multiple species take a lot of memory and converge slowly so this
is definitely a consideration. I am solving my flow
problems in 2D with success (but not fast).
Post by Matt Koch
I am thinking, though, of capturing the liquid to solid interface
and the liquid to gas interface with two separate Level Sets?
I have never used the level set method in fipy with flow, I have used
it exclusively for electrodeposition problems. I may be
working with Andrew Reeve later this summer who is interested in
ground water flows on addressing some of the level set
and flow issues. The level set code as it stands only works on 1D and
2D grids and may need some tweaking for new
problems. Also, it is written entirely in python.
Hope this helps.
Cheers
Post by Matt Koch
Thanks and Regards,
Matt Koch
--
Daniel Wheeler
----- End message from daniel.wheeler-R3+/***@public.gmane.org -----
Daniel Wheeler
2007-04-17 00:22:11 UTC
Permalink
Date: April 16, 2007 10:39:02 PM GMT
Subject: Re: ... FiPy capabilities ...
Post by Matt Koch
Hi Daniel,
thank you so very much for your quick and rather encouraging
response. Let me follow up with more questions then.
1) Can FiPy handle curvature effects, such as capillary rise in a
tube, or surface tension driven species segregation?
I think these effects are model dependent. fipy just solves
whatever equations you specify assuming they are tractable.
I am currently solving equations in fipy that include these effects.
Post by Matt Koch
2) So far, I have thought of the Level Set method as an
alternative to the Phase Field method.
Yes, level set is an alternative to phase field. I view them as
completely separate methods. That is not how everyone views them.
I see level set as a sharp interface method that artificially
creates a diffuse interface and phase field as a true diffuse
interface method.
Post by Matt Koch
Is this an incorrect view, and which of the two is the better
method to use?
This is a hard question. The answer has to be whichever method gives
acceptable results in the least amount of time. Often, one is
constrained to one method or the other.
Essentially, phase field is far more fundamental approach so has to
be better in general and easier
to implement numerically. Level set is good when you don't have a
fundamental understanding of
the physics or when the scales or parameters in the problem make
phase field impractical.
I would seriously think about phase field. Multiple level sets
could be a headache.
Post by Matt Koch
3) When I refer to species diffusion, I have only one species to
account for. Will that by itself mean a substantial speed decrease
over problems that use Navier-Stokes and heat conduction only?
No. Won't have a substantial impact.
Post by Matt Koch
4) How would you describe the development status of FiPy?
Fairly stable.
Post by Matt Koch
What direction is it going into?
Parallel and adaptive griding, more solvers. One or two of these
items will get addressed in the next year.
Post by Matt Koch
Are all features presently implemented in the code documented?
Pretty much.
Post by Matt Koch
Are there more features implemented than documented?
No.
Post by Matt Koch
Are there fewer features implemented than documented?
No.
Post by Matt Koch
Does all that IS documented work properly?
Yes. We use doctests. If it is documented it has passed the
associated test. These are tested every night.
At the moment we have two or three insignificant test failures out
of hundreds.
Post by Matt Koch
Is there a development roadmap for FiPy?
Not as such. The tracker has most of our proposed enhancements. The
wiki also has stuff scattered about.
Post by Matt Koch
I apologize for so many questions, but I come to FiPy from an
odyssey through the free PDE software world, including OpenFOAM,
FreeFEM, keyFE2 and GetDP. While each have great features by
themselves, they either lack the flexibility or the usability to
implement the problem I described. I just want to make sure that I
have a fighting chance with FiPy.
I''m feeling your pain. That is why we started fipy. I've used
PHSICA (commercial) and dolfyn among others.
Dolfyn is good, I've been using it to compare with fipy. However,
It only solves a fixed set of equations.
There is also FENICS, which I haven't tried.
Post by Matt Koch
There are several pieces of commercial software out there, or
course, that could handle this, but they all go for between
$10,000 and $20,000, which is completely out of the question.
Thanks,
Matt Koch
Date: Mon, 16 Apr 2007 16:13:34 -0400 (EDT)
Subject: Re: ... FiPy capabilities ...
Post by Daniel Wheeler
Hi Matt,
Post by Matt Koch
Hello,
I was just wondering whether FiPy, in general, can solve a set
1) Navier-Stokes equation (transient, non-linear)
2) Heat Conduction (transient, non-linear, with phase change)
3) Species Diffusion (transient, non-linear, with phase change)
Yes to all the above. I am currently using fipy to solve a phase
field
binary solid-liquid-vapor problem with full
Navier-Stokes. Examples for this problem will be publicly
available in
the next month or two.
Post by Matt Koch
1) moving interface of liquid to gas, constant inflow
Should be okay, but I haven't tried it.
Post by Matt Koch
2) moving interface of liquid to solid, Stefan Problem, thermal
radiation
3) moving interface of liquid to solid, equivalent Stefan
Problem for species
Yes to the last two. I think the above are generally introduced
source
terms that are applied to the "interface region" of the domain.
They would be implicitly handled with a phase field method, but
would
require explicit construction for
the level set method. Note, that these are different from boundary
conditions in fipy that are applied to the external mesh.
Post by Matt Koch
I am not after exact examples or implementations, just a
general statement as to whether it might be possible to attack
such a problem successfully in FiPy at all?
Yes with caveats. fipy has efficiency limitations that we have only
partially addressed and no parallel as yet. Flow problems
with multiple species take a lot of memory and converge slowly
so this
is definitely a consideration. I am solving my flow
problems in 2D with success (but not fast).
Post by Matt Koch
I am thinking, though, of capturing the liquid to solid
interface and the liquid to gas interface with two separate
Level Sets?
I have never used the level set method in fipy with flow, I have
used
it exclusively for electrodeposition problems. I may be
working with Andrew Reeve later this summer who is interested in
ground water flows on addressing some of the level set
and flow issues. The level set code as it stands only works on 1D
and
2D grids and may need some tweaking for new
problems. Also, it is written entirely in python.
Hope this helps.
Cheers
Post by Matt Koch
Thanks and Regards,
Matt Koch
--
Daniel Wheeler
--
Daniel Wheeler
--
Daniel Wheeler

Loading...