Hi all, please keep discussions on list to spread the support load and ensure everyone has the chance to learn from the answers. Regards, David On Sun, 2 Apr 2017 at 15:58, Shipton, Jemma <j.shipton@imperial.ac.uk> wrote:
Hi Joy,
Yes, sorry, I'm afraid that there isn't much documentation on Gusto at the moment - I hope to write some soon.
We don't have a straightforward way to interact with "physics" just yet, although we are working on implementing moist physics.
I'll email you off-list to chat more about what you need...
Thanks!
Jemma ------------------------------ *From:* firedrake-bounces@imperial.ac.uk <firedrake-bounces@imperial.ac.uk> on behalf of Joy merwin monteiro <joy.merwin@gmail.com> *Sent:* 02 April 2017 15:44:21 *To:* firedrake *Subject:* [firedrake] Interacting with Gusto
Hello,
I have recently heard about Firedrake and Gusto, and am looking forward to using it!
I am working on a project named climt ( http://climt.readthedocs.io/en/latest/readme.html), and I was wondering whether I could get Gusto/Firedrake to work with the components already available there.
my question was what interface does Gusto provide for interaction with "physics", like say, a radiative transfer code?
In other words, is there a straightforward way to access model arrays, calculate physics tendencies, and provide them back to the dynamical core?
I tried to look for more documentation about Gusto, but could not find any. I would be grateful if you could point me in the right direction.
TIA, Joy
-- The best ruler, when he finishes his tasks and completes his affairs, the people say “It all happened naturally”
- Te Tao Ch'ing
-- Dr David Ham Department of Mathematics Imperial College London
OK David, thanks - I was just trying not to clutter the list. So Joy, what kind of problems would you like to run with Gusto? Jemma ________________________________ From: firedrake-bounces@imperial.ac.uk <firedrake-bounces@imperial.ac.uk> on behalf of David Ham <David.Ham@imperial.ac.uk> Sent: 02 April 2017 16:18:08 To: firedrake; joy.merwin@gmail.com Subject: Re: [firedrake] Interacting with Gusto Hi all, please keep discussions on list to spread the support load and ensure everyone has the chance to learn from the answers. Regards, David On Sun, 2 Apr 2017 at 15:58, Shipton, Jemma <j.shipton@imperial.ac.uk<mailto:j.shipton@imperial.ac.uk>> wrote: Hi Joy, Yes, sorry, I'm afraid that there isn't much documentation on Gusto at the moment - I hope to write some soon. We don't have a straightforward way to interact with "physics" just yet, although we are working on implementing moist physics. I'll email you off-list to chat more about what you need... Thanks! Jemma ________________________________ From: firedrake-bounces@imperial.ac.uk<mailto:firedrake-bounces@imperial.ac.uk> <firedrake-bounces@imperial.ac.uk<mailto:firedrake-bounces@imperial.ac.uk>> on behalf of Joy merwin monteiro <joy.merwin@gmail.com<mailto:joy.merwin@gmail.com>> Sent: 02 April 2017 15:44:21 To: firedrake Subject: [firedrake] Interacting with Gusto Hello, I have recently heard about Firedrake and Gusto, and am looking forward to using it! I am working on a project named climt (http://climt.readthedocs.io/en/latest/readme.html), and I was wondering whether I could get Gusto/Firedrake to work with the components already available there. my question was what interface does Gusto provide for interaction with "physics", like say, a radiative transfer code? In other words, is there a straightforward way to access model arrays, calculate physics tendencies, and provide them back to the dynamical core? I tried to look for more documentation about Gusto, but could not find any. I would be grateful if you could point me in the right direction. TIA, Joy -- The best ruler, when he finishes his tasks and completes his affairs, the people say “It all happened naturally” - Te Tao Ch'ing -- Dr David Ham Department of Mathematics Imperial College London
Hello Jemma, Thanks for your reply! First of all, what does moist physics imply? do you mean a convection scheme, or that the equations will contain an additional equation for an condensible tracer? Back to what I was talking about, to start with, if I want to run a Held-Suarez benchmark, how would I do it? Even if I begin without having to use climt, how would I go about this? Going through the examples, I see the following code at the end: stepper = Timestepper(state, advection_dict, linear_solver, forcing) ######################################################################## ###### # Run! ############################################################ ################## stepper.run(t=0, tmax=tmax) and the forcing seems to be a class of some sort: forcing = CompressibleForcing(state) for example. Now, I have a couple of questions: 1) what is involved in implementing a Forcing? 2) Suppose I want to implement a GCM with a nominal time step model_time_step = t so I do stepper.run(t=T, tmax=T+model_time_step) Then, I would like to access U,V,T (required for H-S forcing), create a forcing for the next t seconds, and excecute stepper again. Will I be able to do something like this? Pardon me if these issues seem self-evident, but I have no experience working with finite-element frameworks! Thanks, Joy On Sun, Apr 2, 2017 at 5:35 PM, Shipton, Jemma <j.shipton@imperial.ac.uk> wrote:
OK David, thanks - I was just trying not to clutter the list.
So Joy, what kind of problems would you like to run with Gusto?
Jemma ------------------------------ *From:* firedrake-bounces@imperial.ac.uk <firedrake-bounces@imperial.ac.uk> on behalf of David Ham <David.Ham@imperial.ac.uk> *Sent:* 02 April 2017 16:18:08 *To:* firedrake; joy.merwin@gmail.com *Subject:* Re: [firedrake] Interacting with Gusto
Hi all,
please keep discussions on list to spread the support load and ensure everyone has the chance to learn from the answers.
Regards,
David On Sun, 2 Apr 2017 at 15:58, Shipton, Jemma <j.shipton@imperial.ac.uk> wrote:
Hi Joy,
Yes, sorry, I'm afraid that there isn't much documentation on Gusto at the moment - I hope to write some soon.
We don't have a straightforward way to interact with "physics" just yet, although we are working on implementing moist physics.
I'll email you off-list to chat more about what you need...
Thanks!
Jemma ------------------------------ *From:* firedrake-bounces@imperial.ac.uk <firedrake-bounces@imperial. ac.uk> on behalf of Joy merwin monteiro <joy.merwin@gmail.com> *Sent:* 02 April 2017 15:44:21 *To:* firedrake *Subject:* [firedrake] Interacting with Gusto
Hello,
I have recently heard about Firedrake and Gusto, and am looking forward to using it!
I am working on a project named climt (http://climt.readthedocs.io/ en/latest/readme.html), and I was wondering whether I could get Gusto/Firedrake to work with the components already available there.
my question was what interface does Gusto provide for interaction with "physics", like say, a radiative transfer code?
In other words, is there a straightforward way to access model arrays, calculate physics tendencies, and provide them back to the dynamical core?
I tried to look for more documentation about Gusto, but could not find any. I would be grateful if you could point me in the right direction.
TIA, Joy
-- The best ruler, when he finishes his tasks and completes his affairs, the people say “It all happened naturally”
- Te Tao Ch'ing
-- Dr David Ham Department of Mathematics Imperial College London
-- The best ruler, when he finishes his tasks and completes his affairs, the people say “It all happened naturally” - Te Tao Ch'ing
Hi Joy! Sorry for the slow reply today - I'm at the PDEs on the Sphere conference this week... For moist physics I mean the second of the options you describe - advecting mixing ratios and calculating forcing terms for the potential temperature along the lines of Bryan and Frisch 2002. The reason I thought this might be relevant for you is because the forcing from the "physics" is solved in a different part of the time loop from the basic dynamical forcing from the dry equations. We haven't run many of the 3D DCMIP tests yet. Colin was looking at the gravity wave test but I'm not sure how far he got and he is away this week. To answer your questions... 1) To see how forcing is implemented you can look at gusto/forcing.py where we have classes that set up the forcing solvers. I am currently working on a way of allowing users to add in forcing terms a bit more easily but I haven't finished this yet. 2) The time stepper loops over the time steps - you can see it in gusto/timestepping.py. It uses a splitting scheme where the forcing is applied for half a timestep, the advection for a whole timestep and then an implicit half-timestep of forcing, all wrapped up in a quasi-Newton iterative loop. "physics" forcing is applied outside of this loop (see gusto/physics.py for an example of this - we only have a Condensation class so far). So you would write your forcing/physics class and it would be applied as part of the time loop. You access fields through state, e.g. velocity is state.fields('u'). Our prognostic variables are velocity, density ('rho') and potential temperature ('theta'). I hope that helps! Jemma ________________________________ From: Joy merwin monteiro <joy.merwin@gmail.com> Sent: 02 April 2017 17:45:20 To: Shipton, Jemma Cc: firedrake Subject: Re: [firedrake] Interacting with Gusto Hello Jemma, Thanks for your reply! First of all, what does moist physics imply? do you mean a convection scheme, or that the equations will contain an additional equation for an condensible tracer? Back to what I was talking about, to start with, if I want to run a Held-Suarez benchmark, how would I do it? Even if I begin without having to use climt, how would I go about this? Going through the examples, I see the following code at the end: stepper = Timestepper(state, advection_dict, linear_solver, forcing) ############################################################################## # Run! ############################################################################## stepper.run(t=0, tmax=tmax) and the forcing seems to be a class of some sort: forcing = CompressibleForcing(state) for example. Now, I have a couple of questions: 1) what is involved in implementing a Forcing? 2) Suppose I want to implement a GCM with a nominal time step model_time_step = t so I do stepper.run(t=T, tmax=T+model_time_step) Then, I would like to access U,V,T (required for H-S forcing), create a forcing for the next t seconds, and excecute stepper again. Will I be able to do something like this? Pardon me if these issues seem self-evident, but I have no experience working with finite-element frameworks! Thanks, Joy On Sun, Apr 2, 2017 at 5:35 PM, Shipton, Jemma <j.shipton@imperial.ac.uk<mailto:j.shipton@imperial.ac.uk>> wrote: OK David, thanks - I was just trying not to clutter the list. So Joy, what kind of problems would you like to run with Gusto? Jemma ________________________________ From: firedrake-bounces@imperial.ac.uk<mailto:firedrake-bounces@imperial.ac.uk> <firedrake-bounces@imperial.ac.uk<mailto:firedrake-bounces@imperial.ac.uk>> on behalf of David Ham <David.Ham@imperial.ac.uk<mailto:David.Ham@imperial.ac.uk>> Sent: 02 April 2017 16:18:08 To: firedrake; joy.merwin@gmail.com<mailto:joy.merwin@gmail.com> Subject: Re: [firedrake] Interacting with Gusto Hi all, please keep discussions on list to spread the support load and ensure everyone has the chance to learn from the answers. Regards, David On Sun, 2 Apr 2017 at 15:58, Shipton, Jemma <j.shipton@imperial.ac.uk<mailto:j.shipton@imperial.ac.uk>> wrote: Hi Joy, Yes, sorry, I'm afraid that there isn't much documentation on Gusto at the moment - I hope to write some soon. We don't have a straightforward way to interact with "physics" just yet, although we are working on implementing moist physics. I'll email you off-list to chat more about what you need... Thanks! Jemma ________________________________ From: firedrake-bounces@imperial.ac.uk<mailto:firedrake-bounces@imperial.ac.uk> <firedrake-bounces@imperial.ac.uk<mailto:firedrake-bounces@imperial.ac.uk>> on behalf of Joy merwin monteiro <joy.merwin@gmail.com<mailto:joy.merwin@gmail.com>> Sent: 02 April 2017 15:44:21 To: firedrake Subject: [firedrake] Interacting with Gusto Hello, I have recently heard about Firedrake and Gusto, and am looking forward to using it! I am working on a project named climt (http://climt.readthedocs.io/en/latest/readme.html), and I was wondering whether I could get Gusto/Firedrake to work with the components already available there. my question was what interface does Gusto provide for interaction with "physics", like say, a radiative transfer code? In other words, is there a straightforward way to access model arrays, calculate physics tendencies, and provide them back to the dynamical core? I tried to look for more documentation about Gusto, but could not find any. I would be grateful if you could point me in the right direction. TIA, Joy -- The best ruler, when he finishes his tasks and completes his affairs, the people say “It all happened naturally” - Te Tao Ch'ing -- Dr David Ham Department of Mathematics Imperial College London -- The best ruler, when he finishes his tasks and completes his affairs, the people say “It all happened naturally” - Te Tao Ch'ing
Thanks, Jemma! I will go through your pointers in detail soon, and get back if I have some doubts. It would also be great if you could let me know about any progress on the "adding forcing terms easily" bit. Going back to the earlier part of your email, you mention that the condensible will force the potential temperature. Does that mean you are not looking at total (dry air + condensible) mass conservation (which would also require a forcing term for the pressure)? This might be an issue for Mars or runaway greenhouse simulations. Thanks again, Joy On Mon, Apr 3, 2017 at 6:02 PM, Shipton, Jemma <j.shipton@imperial.ac.uk> wrote:
Hi Joy!
Sorry for the slow reply today - I'm at the PDEs on the Sphere conference this week...
For moist physics I mean the second of the options you describe - advecting mixing ratios and calculating forcing terms for the potential temperature along the lines of Bryan and Frisch 2002. The reason I thought this might be relevant for you is because the forcing from the "physics" is solved in a different part of the time loop from the basic dynamical forcing from the dry equations.
We haven't run many of the 3D DCMIP tests yet. Colin was looking at the gravity wave test but I'm not sure how far he got and he is away this week.
To answer your questions...
1) To see how forcing is implemented you can look at gusto/forcing.py where we have classes that set up the forcing solvers. I am currently working on a way of allowing users to add in forcing terms a bit more easily but I haven't finished this yet.
2) The time stepper loops over the time steps - you can see it in gusto/timestepping.py. It uses a splitting scheme where the forcing is applied for half a timestep, the advection for a whole timestep and then an implicit half-timestep of forcing, all wrapped up in a quasi-Newton iterative loop. "physics" forcing is applied outside of this loop (see gusto/physics.py for an example of this - we only have a Condensation class so far). So you would write your forcing/physics class and it would be applied as part of the time loop.
You access fields through state, e.g. velocity is state.fields('u'). Our prognostic variables are velocity, density ('rho') and potential temperature ('theta').
I hope that helps!
Jemma
------------------------------ *From:* Joy merwin monteiro <joy.merwin@gmail.com> *Sent:* 02 April 2017 17:45:20 *To:* Shipton, Jemma *Cc:* firedrake
*Subject:* Re: [firedrake] Interacting with Gusto
Hello Jemma,
Thanks for your reply!
First of all, what does moist physics imply? do you mean a convection scheme, or that the equations will contain an additional equation for an condensible tracer?
Back to what I was talking about, to start with, if I want to run a Held-Suarez benchmark, how would I do it? Even if I begin without having to use climt, how would I go about this? Going through the examples, I see the following code at the end:
stepper = Timestepper(state, advection_dict, linear_solver, forcing) ######################################################################## ###### # Run! ############################################################ ################## stepper.run(t=0, tmax=tmax)
and the forcing seems to be a class of some sort:
forcing = CompressibleForcing(state)
for example.
Now, I have a couple of questions:
1) what is involved in implementing a Forcing?
2) Suppose I want to implement a GCM with a nominal time step model_time_step = t so I do
stepper.run(t=T, tmax=T+model_time_step)
Then, I would like to access U,V,T (required for H-S forcing), create a forcing for the next t seconds, and excecute stepper again.
Will I be able to do something like this? Pardon me if these issues seem self-evident, but I have no experience working with finite-element frameworks!
Thanks, Joy
On Sun, Apr 2, 2017 at 5:35 PM, Shipton, Jemma <j.shipton@imperial.ac.uk> wrote:
OK David, thanks - I was just trying not to clutter the list.
So Joy, what kind of problems would you like to run with Gusto?
Jemma ------------------------------ *From:* firedrake-bounces@imperial.ac.uk <firedrake-bounces@imperial.ac .uk> on behalf of David Ham <David.Ham@imperial.ac.uk> *Sent:* 02 April 2017 16:18:08 *To:* firedrake; joy.merwin@gmail.com *Subject:* Re: [firedrake] Interacting with Gusto
Hi all,
please keep discussions on list to spread the support load and ensure everyone has the chance to learn from the answers.
Regards,
David On Sun, 2 Apr 2017 at 15:58, Shipton, Jemma <j.shipton@imperial.ac.uk> wrote:
Hi Joy,
Yes, sorry, I'm afraid that there isn't much documentation on Gusto at the moment - I hope to write some soon.
We don't have a straightforward way to interact with "physics" just yet, although we are working on implementing moist physics.
I'll email you off-list to chat more about what you need...
Thanks!
Jemma ------------------------------ *From:* firedrake-bounces@imperial.ac.uk <firedrake-bounces@imperial.ac .uk> on behalf of Joy merwin monteiro <joy.merwin@gmail.com> *Sent:* 02 April 2017 15:44:21 *To:* firedrake *Subject:* [firedrake] Interacting with Gusto
Hello,
I have recently heard about Firedrake and Gusto, and am looking forward to using it!
I am working on a project named climt (http://climt.readthedocs.io/e n/latest/readme.html), and I was wondering whether I could get Gusto/Firedrake to work with the components already available there.
my question was what interface does Gusto provide for interaction with "physics", like say, a radiative transfer code?
In other words, is there a straightforward way to access model arrays, calculate physics tendencies, and provide them back to the dynamical core?
I tried to look for more documentation about Gusto, but could not find any. I would be grateful if you could point me in the right direction.
TIA, Joy
-- The best ruler, when he finishes his tasks and completes his affairs, the people say “It all happened naturally”
- Te Tao Ch'ing
-- Dr David Ham Department of Mathematics Imperial College London
-- The best ruler, when he finishes his tasks and completes his affairs, the people say “It all happened naturally”
- Te Tao Ch'ing
-- The best ruler, when he finishes his tasks and completes his affairs, the people say “It all happened naturally” - Te Tao Ch'ing
participants (3)
- 
                
                David Ham
- 
                
                Joy merwin monteiro
- 
                
                Shipton, Jemma