Hi Daniel,
Solving the flow equations isn't easy and we certainly don't provide
much guidance on how to solve them with FiPy. We do have the Stokes
cavity example [1] and reactive wetting example [2], which might be a
good place for you to start. The Stokes cavity example demonstrates
the simple algorithm [3] which basically turns the continuity equation
into an equation that solves for pressure. However, this becomes more
complicated if the convection terms are included in the momentum
equation.
I have solved compressible flow problems with FiPy for my research.
FWIW, I have code for this, see [4, 5]. However, I don't think that
the code is much use to you other than as a reference for what is
possible with FiPy given enough persistence.
You might also want to try Dolfyn [6]. It might have an example that
you can use right out of the box.
Cheers,
Daniel
[1]:
https://www.ctcms.nist.gov/fipy/examples/flow/generated/examples.flow.stokesCavity.html
[2]:
https://www.ctcms.nist.gov/fipy/examples/reactiveWetting/generated/examples.reactiveWetting.liquidVapor1D.html#module-examples.reactiveWetting.liquidVapor1D
[3]: https://en.wikipedia.org/wiki/SIMPLE_algorithm
[4]: https://gist.github.com/wd15/c28ab796cb3d9781482b01fb67a7ec2d
[5]: https://journals.aps.org/pre/abstract/10.1103/PhysRevE.82.051601
[6]: https://www.dolfyn.net/index_en.html
On Thu, Aug 29, 2019 at 10:33 AM Daniel DeSantis wrote:
>
> Hello to the FiPy Team:
>
> I was recently reviewing some old work and thinking of converting it over to
> FiPy and realized that, while I had done some successful work in FiPy (with
> your assistance several times), there are a few gaps in my knowledge of how
> to apply FiPy to some CFD type problems. I apologize for asking questions you
> may feel are clear in your guide, but I am trying to learn how to use your
> awesome program a bit better so I don't have to keep asking questions.
>
> I'm essentially looking at coupling the continuity equation for a fluid with
> the equations for motion or the equations of change. So, we start with this:
>
> \nabla(\rho*v) = -\frac{\partial \rho}{\partial t}
>
> But frequently I have a steady state situation in which:
> \nabla(\rho*v) = 0
>
> In either case, I'm not sure how the continuity equation up in FiPy. Do you
> have any suggestions? Should I set up multiple convection terms like this:
>
> PowerLawConvectionTerm(coeff=rho, var = v_x) +
> PowerLawConvectionTerm(coeff=rho, var = v_y) +
> PowerLawConvectionTerm(coeff=rho, var = v_z) = 0
>
> Similarly, we have momentum equations as:
>
> \nabla(\rho v_x) = -\frac{\partial{P}}{\partial x} +\rho g_x + \mu \nabla^2v_x
>
> \nabla(\rho v_y) = -\frac{\partial{P}}{\partial y} +\rho g_y + \mu \nabla^2v_y
>
> \nabla(\rho v_z) = -\frac{\partial{P}}{\partial z} +\rho g_z + \mu \nabla^2v_z
>
> I frequently am able to ignore the \rho g_i term but if I didn't, I believe I
> could treat this as a source term in Fipy, and simply add it to my equation.
> I understand how to do the diffusion and convection terms, from your guides.
>
> However, I don't know what to do with the pressure term. I don't usually have
> a consistent pressure in all dimensions so I would think that the pressure
> term should be a cell variable, but I don't know how to add it. I tried
> treating it as P.faceGrad, but I get errors. I've tried it as a
> PowerLawConvectionTerm, and I don't seem to get a result. Perhaps the problem
> is with the continuity equation?
>
> As a sort of classic example, I've uploaded a code that describes two plates
> with a fluid in between. In it, fluid is flowing between two plates. The
> bottom plate is stationary, the top one is moving. There's a pressure
> difference over the length of the plates. It's at steady state, but I'll
> probably end up playing with it as a non-steady state system eventually. I've
> tried it before, and perhaps I'm graphing it incorrectly, but it seems like
> it just presents a steady state solution.
>
> If I've got this completely wrong, could you suggest how to set up a
> continuity equation coupled with a momentum equation and, perhaps how to
> handle a first order differential term like the pressure gradient?
>
> Thank you,
>
> --
> Daniel DeSantis
>
>
> ___
> fipy mailing list
> fipy@nist.gov
> http://www.ctcms.nist.gov/fipy
> [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
--
Daniel Wheeler
___
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
[ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]