#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Options

# Finite elements

Created stub for finite elements.

I'll create some stubs about basic computational methods and abuse them as my personal labbook - the last weeks I've been scouting around to find literature and libraries that could help solving the most basic problems that one faces when one starts a GCM from scratch. As expected, the amount of material is immense, diverse, and none of it is of immediate use. Anyway, I'll need some space to take notes, or else I'll become completely buried...

• Options
1.

Cool that u started this ! I read your GCM page and saw u have GESM which I also have on Computational science I don't care if its in several places but just "bookmarking" it, if someone else do. Did u see MIT GCM btw and I got all my info from Real Climate data sources and software tools

Comment Source:Cool that u started this ! I read your GCM page and saw u have GESM which I also have on [[Computational science]] I don't care if its in several places but just &quot;bookmarking&quot; it, if someone else do. Did u see MIT GCM btw and I got all my info from [Real Climate data sources and software tools](http://www.realclimate.org/index.php/data-sources)
• Options
2.

Didn't know about the second page you link to, do have have that one on the wiki already?

Comment Source:Didn't know about the second page you link to, do have have that one on the wiki already?
• Options
3.

Yes but only as a link on Computational Science .

Comment Source:Yes but only as a link on [[Computational Science]] .
• Options
4.

A user named "Victor Calo" has answered a question I asked on the page finite elements, namely where the names "stiffness matrix" and "load vector" come from. I think I can use the buzzwords to look for references, or if he likes to, we can pick up the conversation here on the forum.

Comment Source:A user named "Victor Calo" has answered a question I asked on the page [[finite elements]], namely where the names "stiffness matrix" and "load vector" come from. I think I can use the buzzwords to look for references, or if he likes to, we can pick up the conversation here on the forum.
• Options
5.

Tim,

learning about FEM (Finite Elements Methods) is always useful; there is a lot of interesting math from deep Banach spaces to very practical numerical linear algebra involved. However, picking up on your phrase

when one starts a GCM from scratch

may I warn you not to lose the forest for the trees? If you really want to start a GCM from scratch (a noble goal; most people involved in GCMs have a large existing code base, so there is little incentive to start over, and a considerable one not to, yet these code bases are old, riddled with assumptions and compromises, and generally inscrutable) you should look at tools on as a high a level as possible. Starting with FEM is imo too far down. There are systems where you can specify the analytic equations, and leave discretization to the system. One that I've come across (but have not actually used) is Fenics. Maybe the approach to a GCM is to find the equations you want to model, and the basic idea of how to model them, and then refine down, rather than build up. Postpone design decisions as long as possible.

Comment Source:Tim, learning about FEM (Finite Elements Methods) is always useful; there is a lot of interesting math from deep Banach spaces to very practical numerical linear algebra involved. However, picking up on your phrase > when one starts a [[GCM]] from scratch may I warn you not to lose the forest for the trees? If you really want to start a GCM from scratch (a noble goal; most people involved in GCMs have a large existing code base, so there is little incentive to start over, and a considerable one not to, yet these code bases are old, riddled with assumptions and compromises, and generally inscrutable) you should look at tools on as a high a level as possible. Starting with FEM is imo too far down. There are systems where you can specify the analytic equations, and leave discretization to the system. One that I've come across (but have not actually used) is Fenics. Maybe the approach to a GCM is to find the equations you want to model, and the basic idea of how to model them, and then refine down, rather than build up. Postpone design decisions as long as possible.
• Options
6.

Victor wrote:

If you really want to start a GCM from scratch...

Since GCMs have millions of LoC and a single person will on average produce between 10 and 20 LoC/day, it is easy to see that a single person won't be able to program a GCM. But the question of "how would I do it" is very useful for my quest to better understand GCM, including programming solutions to toy problems.

Nevertheless I think that building a GCM from scratch using modern techniques and principles of software engineering would be a very useful project, but I'm sure that it won't be done by people in academia. Professors are too busy and too important to do it, and PhD-candidates and postdocs need publishable results within months, so there is no one left with both the time, energy, persistence and capability to do it.

Starting with FEM is imo too far down.

I'm not so sure about this. I think that modelling fluid flow for the atmosphere and the oceans on earth has other problems than the usual applications of FEM and similar methods in engineering.

Maybe the approach to a GCM is to find the equations you want to model, and the basic idea of how to model them, and then refine down, rather than build up.

I started about the equations - various approximations to the Navier-Stokes equations etc. - on this page: Atmospheric and oceanic fluid dynamics. Since I try to understand what people have already done, I'd say my approach is rather poking around instead of bottom up or top down.

Comment Source:Victor wrote: <blockquote> <p> If you really want to start a GCM from scratch... </p> </blockquote> Since GCMs have millions of LoC and a single person will on average produce between 10 and 20 LoC/day, it is easy to see that a single person won't be able to program a GCM. But the question of "how would I do it" is very useful for my quest to better understand GCM, including programming solutions to toy problems. Nevertheless I think that building a GCM from scratch using modern techniques and principles of software engineering would be a very useful project, but I'm sure that it won't be done by people in academia. Professors are too busy and too important to do it, and PhD-candidates and postdocs need publishable results within months, so there is no one left with both the time, energy, persistence and capability to do it. <blockquote> <p> Starting with FEM is imo too far down. </p> </blockquote> I'm not so sure about this. I think that modelling fluid flow for the atmosphere and the oceans on earth has other problems than the usual applications of FEM and similar methods in engineering. <blockquote> <p> Maybe the approach to a GCM is to find the equations you want to model, and the basic idea of how to model them, and then refine down, rather than build up. </p> </blockquote> I started about the equations - various approximations to the [[Navier-Stokes equations]] etc. - on this page: [[Atmospheric and oceanic fluid dynamics]]. Since I try to understand what people have already done, I'd say my approach is rather poking around instead of bottom up or top down.