I am trying to model Stokes flow at very high viscosities (~10^20), from my results it looks like I cannot achieve this and am better suited using viscosities of ~10^5 or so. I know there is this older post [1] which states: "A word of warning though: SfePy does not have a dedicated Navier-Stokes solver (the Newton (+ and direct) solver use that is in the navier_stokes.py example is rather naive, and works for small problems with only, with viscosity "high enough")"
Has there been a different solver implemented since this was posted? If not, what do you recommend to work with such large viscosities?
Thank you
[1] "Problem with the mesh while trying to solve the Navier Stokes equations with sfepy"
Hi Ben,
On 06/06/2018 09:06 PM, Ben Melosh wrote:
I am trying to model Stokes flow at very high viscosities (~10^20), from my results it looks like I cannot achieve this and am better suited using viscosities of ~10^5 or so. I know there is this older post [1] which states: "A word of warning though: SfePy does not have a dedicated Navier-Stokes solver (the Newton (+ and direct) solver use that is in the navier_stokes.py example is rather naive, and works for small problems with only, with viscosity "high enough")"
Has there been a different solver implemented since this was posted? If not, what do you recommend to work with such large viscosities?
I have only some general recommendations:
is problematic - you might need to use some scaling, or choose different physical units for your input.
problem, if it is so large that it cannot be solved using a direct solver (Umfpack, or, in the git version, also MUMPS). Some of the relevant options of the solver are mentioned in the docstring of examples/multi_physics/biot_parallel_interactive.py, see PETSc docs for more, and examples/multi_physics/biot_short_syntax.py shows how to pass any additional options to the PETSc solvers from a problem description file.
Does it help?
Cheers, r.
Thank you
[1] "Problem with the mesh while trying to solve the Navier Stokes equations with sfepy" _______________________________________________ SfePy mailing list -- sfepy@python.org To unsubscribe send an email to sfepy-leave@python.org https://mail.python.org/mm3/mailman3/lists/sfepy.python.org/
Thanks for the help Robert,
I will look into these different options. I am wondering what specifically is problematic about using very different or very large magnitudes of items in different blocks? Is it a problem with processing power? I am hoping for specifics so I can better understand what is going on in the model and improve it.
Thanks
On 11/6/18 1:11 AM, Ben Melosh wrote:
Thanks for the help Robert,
I will look into these different options. I am wondering what specifically is problematic about using very different or very large magnitudes of items in different blocks? Is it a problem with processing power? I am hoping for specifics so I can better understand what is going on in the model and improve it.
It is a problem of machine precision - when using the 64 bit float values, 1 + 1e-17 is still just 1, so having a block with values of the order of magnitude 1e20 and another or the order 1e3, the second block is essentially zeros from the global matrix point of view.
r.