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