Consolidated Thread for "The 'F' Word" Livestreams & Videos

Subscribe to Fluid Numerics YouTube channel

The Next Livestream (TBD)

Simulating Kelvin Waves using the Spectral Element Library in Fortran


Upcoming Videos

Some commentary and ranting below :slight_smile:
Look, I’ve got a lot of things I want to present. But keeping Fluid Numerics running and having other things going on in life, it’s challenging to stick to scheduled dates for these. At any rate, here’s a mind dump of a number of things I’ll likely cover at some point… Perhaps drop a comment below to tell me what you’d want to see!

  • [TBD] The ‘F’ Word : A configurable CLI with FLAP and JSON-Fortran
  • [TBD] The ‘F’ Word : Reading in accelerometer data from an Arduino in Fortran
  • [TBD] The ‘F’ Word : Making a highly customizable PDE solver : A deep dive into inheritance and procedure pointers
  • [TBD] The ‘F’ Word : Using OO Fortran features for portability; CPUs, GPUs, and APUs
  • [TBD] The ‘F’ Word : Building the linear Euler equations solver in SELF (again!)
  • [TBD] The ‘F’ Word : Adding nonlinearity to the Euler equations solver in SELF (again!)
  • [TBD] The ‘F’ Word : Describing 2-D unstructured meshes and computing Riemann fluxes in SELF
  • [TBD] The ‘F’ Word : What the flip?! Describing 3-D unstructured meshes and computing Riemann fluxes in SELF

Previous Videos

The ‘F’ Word Youtube Playlist


About the ‘F’ Word

“The ‘F’ Word” series is meant to document the use of modern fortran for developing an extensible library that can be used to solve conservation laws (PDEs) using spectral and spectral element methods. By documenting the development process, my hope is to curate examples of using OO Fortran as well as Fortran-C interoperability features for portable GPU and multi-GPU application development.

Another goal is to dispel the idea that Fortran is just about punch cards and GOTO statements by providing an example of an active modern Fortran project. I’ve heard too many times that Fortran is archaic, when it’s clear from this community that Fortran is alive and well in a vibrant and growing community.

For those interested in the mathematical theory, I’m putting together notes before each livestream that covers material relevant to the algorithms that are later implemented in Fortran. Here, the idea is to depict the process of transitioning from an idea and a mathematical model into an implementation in OO Fortran.

The current plan is to have livestreams every two weeks and to start putting out polished videos at least once per month. Rather than creating a new topic every time and polluting this Discourse, I figured it’d be best to share updates on this activity in this one topic.

Feel free to post any questions or discussions about this series or any of the material here. I enjoy spending time on this regularly and I hope this community finds this valuable.

13 Likes

@fluidnumerics_joe Is this a new series, or a continuation of the series that I posted some time ago here?
I think that’s a good idea to consolidate all discussion relating to this in a single thread.

@wyphan , this is the same series. I figured it was time to let folks know a bit more about what I am doing and why I am doing it.

Thanks for helping to spread the word

2 Likes

Hey everyone, Below is the information for this week’s livestream! See you there!


GPU Programming in Fortran : Building a linear Shallow Water Equation Solver
February 11, 2022 4PM MT

Abstract

In this livestream, Joe will work through the algorithm development for the linear shallow water equations with flat-bottomed topography and no background flow. In the process, we will discuss the development of the Local Lax-Friedrich’s Riemann solver and how to specify radiation and reflecting (no-normal-flow) boundary conditions. Following this discussion, we’ll show how to use Fortran type extensions for the Model2D class in SELF to build the linear shallow water equation solver. Additionally, we’ll cover how to enable GPU acceleration using HIP and ISO_C_Binding to expose the kernel launches in Fortran. Finally, we’ll draft an example program that simulates linear plane wave propagation and reflection.

Reference Materials

2 Likes

Hey all, I’ve opted to have the description of this post be continually updated so that it’s easier to find the link to the next video as well as links to all of the previous ones. Feel free to share any feedback that can help make it easier to find all of this content.

2 Likes

Livestream details for 2/25 have been added to the description of this thread! I’ll see you all tomorrow for another “F” Word livestream

1 Like

@moderators - It seems I am no longer to make edits to this posts description. In an effort to not “spam” this discourse with weekly/bi-weekly updates to this series, I was hoping to be able to modify the description for this post to keep the community updated on past, present, and future episodes for this series. Is there a way you can enable post editing indefinitely , e.g ( Free to edit post at any time - feature - Discourse Meta ) ?

If you can tell me where the setting is to enable it, let me know. It seems it requires to have admin access to the server, which we don’t have.

@certik , @awvwgk was able to convert this post to a wiki so that I can edit indefinitely. I think we’re good to go here. Thank you, though!

1 Like

Hey everyone, the post has been updated with details for this week’s livestream. I’ve also added the planned schedule through July 2022. If you have any requests on topics you’d like to see covered, I’d love to hear your feedback! See you this Friday at 4pm MT!

1 Like

The next livestream materials have been added to this thread’s description . If you’re interested in solving conservation laws in complex geometries with curved elements, this livestream will be right up your alley. See you there!

The ‘F’ Word : Differential Geometry and the Metric Identities
March 25, 2022 4PM MT

Hey everyone! I’m back at it. It took some time to getting used to having a young kiddo at home (18 months now! woot!) Kicking things off with a livestream next week :star:

The ‘F’ Word : Shockwaves in 1-D and some major updates to SELF
October 16, 2024 3PM ET

I’m also looking for folks who want to talk about their Fortran projects on future livestreams. Message me here on fortran-lang if you’re interested in doing a live 30-60 minute chat about your work :slight_smile:

8 Likes

New stream this week!

October 24, 2024
The ‘F’ Word : Using object oriented Fortran and CMake to support GPU acceleration as an optional feature

As usual,

  • To participate in the chat during the stream, you need to subscribe to the Fluid Numerics YouTube channel
  • If you can’t make it to the stream, the video will be posted to YouTube immediately after so that you can watch at a time the best fits your schedule.

How you can help keep these videos going

6 Likes

Thanks for all the work you’ve done @fluidnumerics_joe! This isn’t a complete idea, but what I’m interested in is modelling sediment transport. I’d be interested in how you can use the library to solve a coupled set of PDEs. I haven’t used general PDE solvers before. All my experience has been with purpose built solvers. I also haven’t used the spectral element method before. I’ve looked into it some and would like to learn more.

Additionally, I might have some free time next year and would be interested in helping out with SELF. I have some experience with Fortran and FEM. If I do end up with some time I’d be happy to work on documentation or other simple tasks until you, the team, and I have more confidence in the code I produced. Honestly, I’d like to use the opportunity of working on SELF to learn the spectral element method, gpu computing, and object orientated techniques in Fortran. I’ve done some OOP work in Fortran but nowhere near as intricate as you guys have done here.

Thanks again!

1 Like

@WaveHello - There’s a few ways I’m aware of for modeling sediment transport. If you have any reference papers/texts that illustrate the mathematical model you’re looking to implement, I’m happy to put it on the list :slight_smile:

You can open an issue with these details, which can help bring visibility to our collaborators as well.

We’re working on docs and more videos to help explain exactly how SELF is designed. If you’d like to get involved in development, take a look through our issue tracker. If there’s something that you’d like to work on, drop some comments on the relevant issue to discuss how to get things done (and to confirm that we’re not already working on it).

Thanks for tuning in !

1 Like

New stream this week!

November 7, 2024
The ‘F’ Word : Six ways to implement spectrally accurate vector divergence on CPUs and GPUs

As usual,

  • To participate in the chat during the stream, you need to subscribe to the Fluid Numerics YouTube channel
  • If you can’t make it to the stream, the video will be posted to YouTube immediately after so that you can watch at a time the best fits your schedule.

How you can help keep these videos going

1 Like

New stream this week!

November 14, 2024
The ‘F’ Word : Spectrally accurate DG Solver for the compressible Euler Equations in 2-D

As usual,

  • To participate in the chat during the stream, you need to subscribe to the Fluid Numerics YouTube channel
  • If you can’t make it to the stream, the video will be posted to YouTube immediately after so that you can watch at a time the best fits your schedule.

How you can help keep these videos going

3 Likes

New stream this week!

December 18, 2024
The ‘F’ Word : Spectrally accurate DG Solver for the compressible Euler Equations in 3-D

As usual,

  • To participate in the chat during the stream, you need to subscribe to the Fluid Numerics YouTube channel
  • If you can’t make it to the stream, the video will be posted to YouTube immediately after so that you can watch at a time the best fits your schedule.

How you can help keep these videos going

1 Like

In case you missed it, last week, I interviewed a PhD student at the University of Melbourne, (Marco Rosenzwieg) about his research and how he uses Fortran and GPU acceleration for CFD and combustion simulations.

If you would like to share your work on “The ‘F’ Word”, reach out! I’m always happy to talk shop

3 Likes

Updates on "The ‘F’ Word

Happy new year (belated) everyone!

Public Service Announcement

We’re still working through our schedule for the year, but have a short public service announcement for you! Initialize your memory and avoid potential correctness issues when porting to new hardware

Public Service Announcement : Initialize your memory on GPUs

New videos coming up :slight_smile:

Now that that’s out of the way, we’re currently planning introduction/refresher videos on modern Fortran that will be published to “The ‘F’ Word” playlist. This is in response to a few requests from folks. Additionally, we have introduction to numerical methods and spectral element methods in the works as well. These will all be pre-recorded videos that will get published as time allows.

So what’s up with the live streams ?

Live streams will continue, as new models get added to SELF. In the works at the moment are

  • Nonlinear compressible Euler for atmospheric flows (2D and 3D models) - this uses a potential temperature as the energy variable and is quite useful for satisfying the “motionless atmosphere” conditions in the presence of gravity.
  • Nonlinear compressible Euler for transonic flows (2D and 3D models) - this uses internal energy as the energy variable and will be useful for moderate Mach number engineering applications
  • Two-point flux vectors and split form implementations - we’ll revisit our models and implement entropy conserving formulations using two-point flux divergence operations for dealiasing nonlinear fluxes and stabilizing simulations.

In addition to these, I had a ton of fun talking with Marco about his work. If you’d like to talk shop and share your work on the channel, reach out. :slight_smile:

5 Likes