Rayleigh-Benard convection at large Rayleigh number - convergence. #2698
Answered
by
colinjcotter
ethrelfall
asked this question in
Firedrake support
Replies: 3 comments 2 replies
-
Hi Ed,
For larger Re you’ll need a continuation method.
For running in parallel,
<http://firedrakeproject.org/parallelism.html#id2>
Parallelism in Firedrake — Firedrake 0.13.0+5418.g660d46b5 documentation<http://firedrakeproject.org/parallelism.html#id2>
firedrakeproject.org<http://firedrakeproject.org/parallelism.html#id2>
[icon.ico]<http://firedrakeproject.org/parallelism.html#id2>
all the best
cjc
On 30 Dec 2022, at 16:24, ethrelfall ***@***.***> wrote:
Dear community,
I have been working with the Rayleigh-B(')enard convection example found at
https://www.firedrakeproject.org/demos/rayleigh-benard.py
and I would like to be able to access larger values of the Rayleigh number (Ra). As supplied, the example stops converging at Ra=8e5 (this is using the direct solve and so it seems to be a failure of nonlinear convergence).
My attempt to improve this is at
https://github.com/ethrelfall/Heat-transport/tree/main/Firedrake;
by increasing the element order and using a mesh that's refined near the boundaries (see repo) I have been able to run up to about Ra=2e6 ... but I want more. And I don't really understand why the solution is problematic because there is nothing obviously pathological, e.g. a very thin boundary layer, in the solution.
Note: it is known that the flows I am running are laminar i.e. the transition to turbulence happens at much larger Ra, above 5e10, as presented in
https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/regime-transitions-in-thermally-driven-highrayleigh-number-vertical-convection/2C6892CA314FB35E39818039C64ED799.
Is is possible to initialize the nonlinear (=Newton?) solve with a flow field e.g. one calculated at a slightly lower Rayleigh number? (This is the sort of thing I do when running the same problem in Nektar++ using a time-dependent solver.)
One other little question - I am currently running Firedrake on one core; is it easy to get it to use multiple cores?
(Did search for matching discussions.)
Many thanks!
Ed.
—
Reply to this email directly, view it on GitHub<#2698>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABOSV4T55FX4PV4QVGLKSQ3WP35BHANCNFSM6AAAAAATM6YIN4>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
0 replies
-
ah sorry, didn’t read carefully. You are describing a (basic) continuation method.
To reuse the solution, just define Ra as a Constant. Then call the solver multiple times (it uses the contents of the field you want to solve to as an initial state), updating the value of the Constant using the .assign() method.
On 30 Dec 2022, at 16:40, Cotter, Colin J ***@***.***> wrote:
Hi Ed,
For larger Re you’ll need a continuation method.
For running in parallel,
<http://firedrakeproject.org/parallelism.html#id2>
Parallelism in Firedrake — Firedrake 0.13.0+5418.g660d46b5 documentation<http://firedrakeproject.org/parallelism.html#id2>
firedrakeproject.org<http://firedrakeproject.org/parallelism.html#id2>
<http://firedrakeproject.org/parallelism.html#id2>
<icon.ico>
all the best
cjc
On 30 Dec 2022, at 16:24, ethrelfall ***@***.***> wrote:
Dear community,
I have been working with the Rayleigh-B(')enard convection example found at
https://www.firedrakeproject.org/demos/rayleigh-benard.py
and I would like to be able to access larger values of the Rayleigh number (Ra). As supplied, the example stops converging at Ra=8e5 (this is using the direct solve and so it seems to be a failure of nonlinear convergence).
My attempt to improve this is at
https://github.com/ethrelfall/Heat-transport/tree/main/Firedrake;
by increasing the element order and using a mesh that's refined near the boundaries (see repo) I have been able to run up to about Ra=2e6 ... but I want more. And I don't really understand why the solution is problematic because there is nothing obviously pathological, e.g. a very thin boundary layer, in the solution.
Note: it is known that the flows I am running are laminar i.e. the transition to turbulence happens at much larger Ra, above 5e10, as presented in
https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/regime-transitions-in-thermally-driven-highrayleigh-number-vertical-convection/2C6892CA314FB35E39818039C64ED799.
Is is possible to initialize the nonlinear (=Newton?) solve with a flow field e.g. one calculated at a slightly lower Rayleigh number? (This is the sort of thing I do when running the same problem in Nektar++ using a time-dependent solver.)
One other little question - I am currently running Firedrake on one core; is it easy to get it to use multiple cores?
(Did search for matching discussions.)
Many thanks!
Ed.
—
Reply to this email directly, view it on GitHub<#2698>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABOSV4T55FX4PV4QVGLKSQ3WP35BHANCNFSM6AAAAAATM6YIN4>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
<icon.ico>
|
Beta Was this translation helpful? Give feedback.
1 reply
Answer selected by
ethrelfall
-
For continuation, you might also look at Patrick Farrel's code
https://bitbucket.org/pefarrell/defcon/src/master/ and papers using it,
such as https://journals.aps.org/pre/abstract/10.1103/PhysRevE.105.055106,
where he does RB convection in 2d.
On Fri, Dec 30, 2022 at 9:45 AM Colin J Cotter ***@***.***>
wrote:
… ah sorry, didn’t read carefully. You are describing a (basic) continuation
method.
To reuse the solution, just define Ra as a Constant. Then call the solver
multiple times (it uses the contents of the field you want to solve to as
an initial state), updating the value of the Constant using the .assign()
method.
On 30 Dec 2022, at 16:40, Cotter, Colin J ***@***.***> wrote:
Hi Ed,
For larger Re you’ll need a continuation method.
For running in parallel,
<http://firedrakeproject.org/parallelism.html#id2>
Parallelism in Firedrake — Firedrake 0.13.0+5418.g660d46b5 documentation<
http://firedrakeproject.org/parallelism.html#id2>
firedrakeproject.org<http://firedrakeproject.org/parallelism.html#id2>
<http://firedrakeproject.org/parallelism.html#id2>
<icon.ico>
all the best
cjc
On 30 Dec 2022, at 16:24, ethrelfall ***@***.***> wrote:
Dear community,
I have been working with the Rayleigh-B(')enard convection example found
at
https://www.firedrakeproject.org/demos/rayleigh-benard.py
and I would like to be able to access larger values of the Rayleigh number
(Ra). As supplied, the example stops converging at Ra=8e5 (this is using
the direct solve and so it seems to be a failure of nonlinear convergence).
My attempt to improve this is at
https://github.com/ethrelfall/Heat-transport/tree/main/Firedrake;
by increasing the element order and using a mesh that's refined near the
boundaries (see repo) I have been able to run up to about Ra=2e6 ... but I
want more. And I don't really understand why the solution is problematic
because there is nothing obviously pathological, e.g. a very thin boundary
layer, in the solution.
Note: it is known that the flows I am running are laminar i.e. the
transition to turbulence happens at much larger Ra, above 5e10, as
presented in
https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/regime-transitions-in-thermally-driven-highrayleigh-number-vertical-convection/2C6892CA314FB35E39818039C64ED799.
Is is possible to initialize the nonlinear (=Newton?) solve with a flow
field e.g. one calculated at a slightly lower Rayleigh number? (This is the
sort of thing I do when running the same problem in Nektar++ using a
time-dependent solver.)
One other little question - I am currently running Firedrake on one core;
is it easy to get it to use multiple cores?
(Did search for matching discussions.)
Many thanks!
Ed.
—
Reply to this email directly, view it on GitHub<
#2698>, or
unsubscribe<
https://github.com/notifications/unsubscribe-auth/ABOSV4T55FX4PV4QVGLKSQ3WP35BHANCNFSM6AAAAAATM6YIN4>.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
<icon.ico>
—
Reply to this email directly, view it on GitHub
<#2698 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AA4XUL4OBQKVJ6ZF7LFTS4TWP37TLANCNFSM6AAAAAATM6YIN4>
.
You are receiving this because you are subscribed to this thread.Message
ID: <firedrakeproject/firedrake/repo-discussions/2698/comments/4556526@
github.com>
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Dear community,
I have been working with the Rayleigh-B(')enard convection example found at
https://www.firedrakeproject.org/demos/rayleigh-benard.py
and I would like to be able to access larger values of the Rayleigh number (Ra). As supplied, the example stops converging at Ra=8e5 (this is using the direct solve and so it seems to be a failure of nonlinear convergence).
My attempt to improve this is at
https://github.com/ethrelfall/Heat-transport/tree/main/Firedrake;
by increasing the element order and using a mesh that's refined near the boundaries (see repo) I have been able to run up to about Ra=2e6 ... but I want more. And I don't really understand why the solution is problematic because there is nothing obviously pathological, e.g. a very thin boundary layer, in the solution.
Note: it is known that the flows I am running are laminar i.e. the transition to turbulence happens at much larger Ra, above 5e10, as presented in
https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/regime-transitions-in-thermally-driven-highrayleigh-number-vertical-convection/2C6892CA314FB35E39818039C64ED799.
Is is possible to initialize the nonlinear (=Newton?) solve with a flow field e.g. one calculated at a slightly lower Rayleigh number? (This is the sort of thing I do when running the same problem in Nektar++ using a time-dependent solver.)
One other little question - I am currently running Firedrake on one core; is it easy to get it to use multiple cores?
(Did search for matching discussions.)
Many thanks!
Ed.
Beta Was this translation helpful? Give feedback.
All reactions