WEBVTT 00:00.000 --> 00:10.000 All right, next step, I was on there with some very interesting stuff in my business. 00:10.000 --> 00:11.000 Thank you. 00:11.000 --> 00:13.000 Good afternoon, everyone. My name is Alex Anderson. 00:13.000 --> 00:15.000 I'm the best of you. Call me Alex. 00:15.000 --> 00:19.000 Today, I'm talking to you about a pantheon of the gods. 00:19.000 --> 00:24.000 Collection of open source multi physics software for analysis of fusion power plant systems. 00:24.000 --> 00:27.000 A brief overview of what I'm going to talk to you about. 00:27.000 --> 00:30.000 If you don't know about it, give it a little introduction for you's energy. 00:30.000 --> 00:33.000 If you want to know a bit more about it, then please do ask me. 00:33.000 --> 00:35.000 It's one of my favorite subjects. 00:35.000 --> 00:39.000 While I am presenting fusion as an application here, 00:39.000 --> 00:44.000 most physics solvers can actually be used across a wide variety of engineering domains. 00:44.000 --> 00:47.000 So if it's useful to you, please do take it up and use it. 00:47.000 --> 00:49.000 I'm going to tell you about the challenges we face in fusion energy. 00:49.000 --> 00:52.000 Why is physically difficult? Why we need HPC? 00:52.000 --> 00:57.000 I'll tell you about how we found a solution, which is a pantheon of the gods. 00:57.000 --> 01:00.000 Also, some of the things we learned. 01:00.000 --> 01:03.000 So fusion, this is your typical fusion reaction. 01:03.000 --> 01:08.000 We take Juterium, Tritium, Smushing Together, make it really hot. 01:08.000 --> 01:11.000 We get some Helium and Neutron. 01:11.000 --> 01:13.000 And that's a nice amount of energy. 01:13.000 --> 01:16.000 And obviously this is very hot. 01:16.000 --> 01:20.000 Sort of an order of millions of Kelvin. 01:20.000 --> 01:23.000 So we need to stop it from touching things. 01:23.000 --> 01:26.000 So we put it inside this big magnetic cage. 01:26.000 --> 01:29.000 Of course, it's not just a magnetic cage, it's more to this. 01:29.000 --> 01:33.000 We need to actually get fuel in and then get the exhaust products out. 01:33.000 --> 01:39.000 We need to find some way of actually getting the heat we generate into some sort of useful energy 01:39.000 --> 01:41.000 that we can convert into electricity. 01:41.000 --> 01:44.000 And then we also need to maintain. 01:44.000 --> 01:46.000 So there are many other systems. 01:46.000 --> 01:50.000 That's generally what we tend to focus on in my group. 01:50.000 --> 01:53.000 We tend to focus on everything that isn't the plasma. 01:53.000 --> 01:55.000 And it turns out it's quite a hard problem. 01:55.000 --> 01:56.000 It involves quite a lot of physics. 01:56.000 --> 01:59.000 First of all, we've got these neutrons coming out of this magnetic cage, 01:59.000 --> 02:01.000 because they don't respond to magnetic fields. 02:01.000 --> 02:03.000 They're very nicely particles. 02:03.000 --> 02:05.000 And these come out. 02:05.000 --> 02:07.000 We need to stop them. 02:07.000 --> 02:11.000 We need to get their energy and we need to do useful things to them. 02:11.000 --> 02:13.000 It's also a big structural problem. 02:14.000 --> 02:17.000 We've got a big magnetic cage, strong magnetic fields. 02:17.000 --> 02:20.000 You know, tens of Tesla. 02:20.000 --> 02:23.000 And then we've got all the heat loads. 02:23.000 --> 02:26.000 Ten megwats per meter square roughly. 02:26.000 --> 02:30.000 You know, the sort of heat loads you might get in a reentry vehicle. 02:30.000 --> 02:33.000 And yeah, we've got some clothes flowing around. 02:33.000 --> 02:34.000 Some of them might be conducting. 02:34.000 --> 02:37.000 So when we've got electromagnetic, we've got fun things going on. 02:37.000 --> 02:39.000 Like magnetic or hydrodynamics. 02:39.000 --> 02:40.000 Add on to this. 02:40.000 --> 02:43.000 All of our data is quite uncertain. 02:43.000 --> 02:47.000 So we know a little bit about materials as they go in. 02:47.000 --> 02:48.000 Ten years into operation. 02:48.000 --> 02:51.000 We don't really know what our materials are going to behave like. 02:51.000 --> 02:59.000 And so we're going to need a bigger computer at some scalable software to run on it. 02:59.000 --> 03:01.000 So what I mean, that's scalable software. 03:01.000 --> 03:02.000 I mean, turn its parallel first. 03:02.000 --> 03:05.000 A code that's designed to scale well on HPC from the outset. 03:05.000 --> 03:08.000 Not so many that's had parallel sort of budget on top of a serial code. 03:08.000 --> 03:11.000 So I mean, it's permissively licensed that's able to run anywhere. 03:11.000 --> 03:16.000 Any number of processes with extension and modification permitted. 03:16.000 --> 03:17.000 Something that's portable. 03:17.000 --> 03:19.000 I will say more on this later. 03:19.000 --> 03:24.000 But, you know, we have access to a number of machines and it needs to be able to operate on all of these. 03:24.000 --> 03:29.000 It needs to be extensible because we don't have everything we need for fusion yet. 03:29.000 --> 03:32.000 So we're still writing the servers that we need. 03:32.000 --> 03:34.000 It needs to be supported. 03:35.000 --> 03:42.000 Which I'll make a nod to the high performance software foundation for this one as a good way of getting supported. 03:42.000 --> 03:47.000 This didn't exist five years ago when we made this selection. 03:47.000 --> 03:49.000 We did at the time choose a compiled language. 03:49.000 --> 03:54.000 I will say a bit more on that later and also want to stabilize stable API and something that's actually developed. 03:54.000 --> 03:59.000 If you want more details into how we selected a framework for this. 03:59.000 --> 04:01.000 That is a talk from 2020. 04:02.000 --> 04:04.000 But there's no clear winner. 04:04.000 --> 04:06.000 Made a trade-off and we selected moves. 04:06.000 --> 04:07.000 It's a snapshot in time. 04:07.000 --> 04:10.000 So if we did it again now, we might come up with a different answer. 04:10.000 --> 04:12.000 Your mileage may vary. 04:12.000 --> 04:15.000 So what do we do with moves? 04:15.000 --> 04:19.000 This is a multi-physics opportunity to set simulation environment. 04:19.000 --> 04:22.000 It's a framework and we came up with a collection of servers. 04:22.000 --> 04:24.000 They interpret for a multi-apsystem. 04:24.000 --> 04:28.000 So the fact that they extend on your single physics is an issue. 04:28.000 --> 04:30.000 You can still connect them up together. 04:30.000 --> 04:32.000 Aurora connects our neutron accept. 04:32.000 --> 04:37.000 Apollo slash her face this is our electromagnetic silver. 04:37.000 --> 04:46.000 You've got Atlas which does our hydrogen ice-trip transport. 04:46.000 --> 04:51.000 We've got Proteus which does our fluids and covers in a bit of electromagnetic. 04:51.000 --> 04:53.000 So we've got Maggie's hydrodynamics. 04:53.000 --> 05:00.000 And it also sort of is a drop-in replacement for pick your favourite commercial silver. 05:00.000 --> 05:03.000 And all the rest. 05:03.000 --> 05:06.000 So get some help in care for Aurora multi-physics. 05:06.000 --> 05:08.000 A few are highlight is Aegis. 05:08.000 --> 05:11.000 It is a charge particle tracking for heat deposition. 05:11.000 --> 05:15.000 Hippo which couples in open foam to do from hydraulic. 05:15.000 --> 05:19.000 We've got Fatal on which has got five coupling in. 05:19.000 --> 05:22.000 And one I want to say a bit more about is platypus. 05:22.000 --> 05:26.000 Which enables new simulations using the M-Found Finer Airboat Library. 05:26.000 --> 05:28.000 Which seems a bit backwards. 05:28.000 --> 05:32.000 But when I get onto the learnings it will make sense. 05:32.000 --> 05:35.000 So back to my initial criteria. 05:35.000 --> 05:38.000 First of all it's a portable Epsilon on X go hardware. 05:38.000 --> 05:41.000 Five years ago we thought, well this means GPU. 05:41.000 --> 05:46.000 Nowadays we didn't quite realise that everything is GPU. 05:46.000 --> 05:50.000 So this is where platypus comes in. 05:50.000 --> 05:55.000 M-Found is our library of choice to enable that GPU-fine element calculation. 05:55.000 --> 05:59.000 We also are collaborating with Argon using Cardinal. 05:59.000 --> 06:04.000 Which couples in the Finer element code neck RS which is the GPU fluids code. 06:04.000 --> 06:07.000 Which is where we spend a lot of our time to our calculations. 06:07.000 --> 06:09.000 So that's probably the best part to accelerate. 06:09.000 --> 06:14.000 We did choose to select down selects a compiled languages. 06:14.000 --> 06:17.000 Maybe this is not such a good idea. 06:17.000 --> 06:19.000 It's easier to find Python developers. 06:19.000 --> 06:22.000 And most of our users aren't actually running at the scale. 06:22.000 --> 06:26.000 Where the difference between Python and a compiled language actually matters. 06:26.000 --> 06:31.000 And finite element types were another thing that we sort of missed off of our criteria. 06:31.000 --> 06:33.000 This is a certain finite element time. 06:33.000 --> 06:36.000 So I'll allow for better formulations, more accurate answers. 06:36.000 --> 06:39.000 For some work we've now implemented the ones we need in Moose. 06:39.000 --> 06:45.000 But also platypus by leveraging M-Found also enables you to use their finite element types. 06:45.000 --> 06:48.000 Which is very handy. 06:48.000 --> 06:51.000 And I think that's all I have to say. 06:51.000 --> 06:53.000 Any questions?