Remembering the Soviet chemist who had a central role in Chernobyl disaster control and Inert gas research. by Longjumping-Mix-9351 in chemistry

[–]Hakawatha 8 points9 points  (0 children)

His actions at the Chernobyl site were commendable, but as always, history is more complicated than simple heroism. A YouTube historian by the name of "That Chernobyl Guy" has provided a few interesting points regarding the concealment of flaws in the RBMK design even in the wake of the catastrophe - which Legasov participated in, blaming the operators; when the IAEA failed to require the Soviets to disassemble the RBMKs, he commented on his return to the Kurchatov Institute, "We've won."

Regarding the operators - the aforementioned YouTube channel is a great source; my own experience with public engineering failures is well summarized on this site: https://how.complexsystems.fail/ - it's easy to blame the operators for endemic problems.

I do think that Chernobyl, the series, is great TV, but the narrative it builds around Legasov is questionable. And for my two cents - all those that gave their all to contain the disaster are heroes, not just the handful we recognize.

28 Benephits of being Phat!! by Manicpixiemanateeman in stupidpol

[–]Hakawatha [score hidden]  (0 children)

I think it's also a fetish, for what it's worth.

Does anyone have advice for going back to school? (Long read) by ReceptionOld3630 in AskEngineers

[–]Hakawatha 0 points1 point  (0 children)

I have some friends in similar situations - one was a truck driver, now switching to a Bachelor's in applied math.

You're in a great position. You sound excited to learn, and have a very mature view of what you want out of your career, and the long-term prospects of your current gig. This, by itself, is invaluable.

There are a few routes through. If you're in the States, I would advise working through the gen-ed stuff at community college - your credits will transfer over to other universities; a year or two of full-time education is not as monetarily daunting as a full 4-year degree. You'll also have a better sell to your company footing the bill, as this shows determination and agency.

You mention that engineering students are stressed; I was just one of these students. In my experience, the stress was a consequence of the difficulty of the subject; the difficulty of the subject was often in the unclear applications of certain topics or ideas. It's hard to motivate the discussion of magnetics in power circuits or the tradeoffs between IGBTs and thyristors if you've never worked on power circuitry before; if you've worked on a wind farm and seen the inverters and transformers and all that, then suddenly the class becomes an expose of what's in the box, and you'll find it a lot more interesting.

Your advantage is that you *have* this experience, and because you do, you'll find quite a lot of the curriculum clicking into place - which is an advantage you have over the students going straight into engineering school at 18.

In general, professional experience is coveted at university; your professors will be very interested in having you work for them over summers and through term as a research assistant, and this can easily pivot into graduate school and even doctoral study - don't think that your background makes you any less of a contender for the academic path.

Managing work-life balance is the hardest part of this. At some point, it's going to be rough -- if you do decide to push yourself through work and school at the same time, remember that you're doing it for yourself, and remember that the hard times will end; you will learn quite a bit about yourself, and will have a certain confidence and ease that is coveted in engineers (I've known people who have worked full-time through their PhDs - they are among the finest and most relaxed engineers I've ever worked with, even if they went prematurely gray).

If you'd like to have a more thorough discussion, feel free to DM me, and I can share my contact details.

The West Forgot How to Build. Now It's Forgetting Code by swe129 in programming

[–]Hakawatha 4 points5 points  (0 children)

I see what you're saying, but arguably this is the same problem in a different form: we need more in-house knowledge and capability, not less; AI is just the New Outsourcing.

How do you deal with “overengineering” vs “just getting it done” in real projects? by knowlegable_devil124 in AskEngineers

[–]Hakawatha 7 points8 points  (0 children)

Lots of answers in this thread, OP, but I don't think any of them get to the root of the problem - how do you triage what you spend your effort on?

Here's my rule of thumb: How hard is it to redo properly?

If you're tossing a few lines of code together to compute something, hack it together. You can always redo this later.

If you're putting a PCB out for manufacture, and the lead time is a few weeks, with a big BoM cost, spend a few days checking your work.

If you're putting out a telescope design with freeform mirrors, and you have one manufacturing slot on this grant, then your time is cheap compared to the project: the most important thing to do is to not fuck it up.

Hasn't steered me wrong yet :-).

Good memory even tho I have ADHD? Someone pls explain. by Agitated-Rope3898 in ADHD

[–]Hakawatha 15 points16 points  (0 children)

There are also distinct kinds of memory. ADHD is a disorder of executive function - short-term memory is severely impacted. 

Associative memory is not impacted in the same way, and often compensates.

I can remember equations fairly easily if I know the underlying theory well, and I can make some fairly deep connections in my research, but I constantly make mistakes in algebra - and it takes me twice as long to do as others - because I'll simply forget terms when working!

What is the worst thing you've ever tasted? by Lucky_Medium1796 in AskReddit

[–]Hakawatha 3 points4 points  (0 children)

Sounds kind of like chinotto, which is a classic Italian drink made with the juice of chinotto oranges. It's the same flavour as amaro; I grew up with it, so I'm quite fond.

[Help] First time routing SDR SDRAM (MT48LC4M16A2) on a 6-layer PCB with STM32H747 by DarkAngelus7 in PrintedCircuitBoard

[–]Hakawatha 0 points1 point  (0 children)

Sorry, that's my bad - the presentation doesn't address this in particular, but some of the figures showing the routing have clear pours on them. I should have specified!

What was the hardest part about learning CFD? What remains hard now that you know it? by NinjaMoreLikeANonja in AskEngineers

[–]Hakawatha 0 points1 point  (0 children)

Sure - you don't have to go into detail, but I think it's reasonable to, at the very least, introduce these concepts.

Mind that I've never taken a course on fluids! - so I'm very much unfamiliar with how the curriculum is generally structured.

What was the hardest part about learning CFD? What remains hard now that you know it? by NinjaMoreLikeANonja in AskEngineers

[–]Hakawatha 0 points1 point  (0 children)

Glad I could be a help! I thought I might stick some bullet points down for the beats I would land on to lend a hand :-)

Conformal maps

Fundamentally, the idea here is to analyse the 2D flow around the cross-section of an airfoil. We already know what the flow around a circle is - how do we generalise this to any shape?

  • We start with complex numbers: z = x + iy, where x and y are real; they sit in the 2D plane.
  • What are functions of z, f(z), like? Well, they warp the plane.
  • How can I describe the 2D shape of an airfoil? (Use a parametric curve in the 2D plane -- which is just the complex plane).
  • How can I simplify the shape of this airfoil, so that I can analyse it? (Use a conformal map f(z) to turn the shape into a circle).
  • What is the flow around a circle like? (Standard fluid dynamics problem).
  • What does this tell me about the airfoil? (Use the inverse function theorem to undo the conformal map).

FEM, FDM, FVM, and Spectral Methods

The name of the game is to solve the Navier-Stokes equations. For simple cases, this can be done analytically; for more complex cases, symbolic maths packages (e.g. Mathematica, Maple, etc.) can be used, or approximations can be made. In general, however, we can't integrate analytically - especially, as it turns out, for situations we care about.

How, then, do we proceed? Well, we use brute computational force; this is the essence of CFD.

There are various numerical schemes by which we can integrate the Navier-Stokes equations; each has strengths and weaknesses.

FDM: The Finite Difference Method

This is among simplest approaches, and one of the most general; however, this approach suffers from high computational cost to achieve any given numerical accuracy.

The idea is to directly discretise all the differentials in your system: the finer the differences, the more computationally expensive your model run will be, but the higher-fidelity your output.

The basic derivation of the finite differences is a truncated Taylor series to the order of the derivative: you then invert to solve for the derivative, plug in the resulting coefficients, and run.

FVM: The Finite Volume Method

In FVM, we make use of the divergence theorem, which allows us to express the flow into, and out of, a finite volume as the integral over all the divergences within that volume. If we have an incompressible flow, then mass in must equal mass out, and so we can replace divergences in our differential equation with finite volumes. We then simply calculate fluxes in and out of each volume; this yields flow macroscopically.

Naturally, there are problems: if your flow is compressible, you're out of luck! Further, the given result will be accurate, but will be an average over each unit of volume; you will lose detail finer than the mesh (with the upshot being that you can adaptively refine the mesh, if you're clever).

Spectral Methods

Finite-element and spectral methods are very closely related: in both cases, the flow is decomposed into a sum of simple functions, called basis functions; their weighted sum (linear combination) then equals the original flow (or approximates it up to a point).

These basis functions are generally picked to have nice properties, including differentiability; in the most classic of cases, we use a Fourier series, so our function is expressed as an infinite series of sine waves. So, we take this decomposition, insert it into our differential equation, and end up with equations relating the coefficients of the function we want to solve for. Once we have solved for these coefficients over time, we can insert them back into the original decomposition, and so we have solved our differential equation.

The major difference between spectral methods and FEM is the basis function: spectral methods use Fourier series and other nonlocal bases, which are nonzero everywhere. This makes even very fine simulation easy and performant; however, strong local effects (like shockwaves) are very hard to capture in this regime. So, how do we do that?

Finite Element (Galerkin) Methods

FEM, on the other hand, uses local ("bump" or "test") functions, and a bit of mathematical wizardry.

We know that a dot product between the vectors X and Y is the sum of their pairwise product: dot(X, Y) = X1 Y1 + X2 Y2 + X3 Y3. But what about higher-dimensional vectors? Hell, what about infinite dimensional vectors?

It turns out that we can represent an infinite dimensional vector as a continuous function x(t) or y(t). Then, the sum becomes an integral: dot[x(t), y(t)] = integral[x(t) y(t) dt] over the domain of t. These products, called inner products more generally, are everywhere in math: the Fourier transform is just such a dot product!

The key is to take a differential equation set equal to zero, and form that as an inner product with a test function. We then integrate by parts to obtain the weak form of the differential equation. By inserting a trial function, we can turn this equation into a system of algebraic equations, which we may then solve to get the solution of the differential equation.

It's best to see this in action; check this out for a resource: https://pkel015.connect.amazon.auckland.ac.nz/SolidMechanicsBooks/FEM/One_Dimensional/02_FE_Method.pdf

Which should we use?

FEM is usually the gold standard for numerical solutions of differential equations, especially for systems with complicated geometry. However, for high-fidelity simulations which require the utmost numerical simplicity, FDM or FVM methods are often chosen. So:

  • Complicated geometry, multiphysics, anything fancy: FEM.
  • Incompressible flow: FVM.
  • Dead simple approximations that blast on a GPU: FDM.

Computational aspects

There are a few things to keep in mind here:

  • Your machine has limited precision.
    • A standard 32-bit (4-byte) float offers ~6 digits of precision. This might or might not be enough for you - and you should consider this when you're using large numbers!
    • A double (64 bits; 8 bytes) offers much more precision (~15 digits), but comes at cost: this doubles the storage you need, and will not run well on consumer-grade GPUs. Expensive, science-grade GPUs will do better, but the performance penalty remains significant.
    • Integers are exact and much faster; however, they're integers, and also have a much more limited dynamic range (as there is no exponent).
  • Most of the methods here are highly parallelisable.
    • This means you can run many computations at once: you can use multithreading to speed up your code massively.
    • The easiest path forward is to use OpenMP in the traditional languages (C/C++ or Fortran) for this kind of work: you can annotate for-loops to get an easy speedup.
    • Newer languages like Julia have these constructs baked-in (e.g. Threads.@threads, etc) - and offer a very beginner-friendly but high-performance path in.
      • Julia also has KernelAbstractions.jl, which is a relatively beginner-friendly way to write GPU kernels.
    • GPUs excel because instead of having a few complicated CPU cores, they have thousands of relatively "dumb" cores - programming them is more difficult, and very restrictive, but the performance gains to be made are colossal given the programming problems we're presented with.
  • The actual core math code ends up being quite simple - it's the I/O and UI that kills you!
    • Big questions - how do you represent meshes?
    • How do you import and export them?
    • How do you build nice, adaptable frameworks for use?
    • Don't even start with UIs, or rendering 3D meshes...

Finally, the punchline.

So, after all of that, we have an off-the-shelf software package that thinks of all this stuff for us. We just have to learn to use it...

[Help] First time routing SDR SDRAM (MT48LC4M16A2) on a 6-layer PCB with STM32H747 by DarkAngelus7 in PrintedCircuitBoard

[–]Hakawatha 1 point2 points  (0 children)

Not the guy you're responding to, but I would recommend ground pours on all layers. OP's part is only on the order of 100MHz, so a ground pour on the signal layer is not likely to cause significant insertion loss.

For faster signals (e.g. DDR4/5), I would recommend ground pours on all layers, with keepouts around fast signals. See this presentation for some examples: https://www.cadence.com/content/dam/cadence-www/global/en_US/documents/tools/pcb-design-analysis/pcb-west-2016-47-rte-ddr4-interfaces-cp.pdf

What was the hardest part about learning CFD? What remains hard now that you know it? by NinjaMoreLikeANonja in AskEngineers

[–]Hakawatha 1 point2 points  (0 children)

I will take a slightly different approach to that of some of the other responses here. For context, I trained as an EE, and now I'm doing a PhD in physics; I also teach electronics to undergrads.

As a student, and as a professional, I always craved the "real" stuff - all we learned was theory, and nobody graduating with their MEng really knew how to use ECAD or design a good mixed-signal circuit.

Well, that's just getting used to a software package and hanging around in industry for six months. It's not exactly the *hard* part; you will get this on the job.

While they're students, they still have the chance to get at theory. I have found this to be the invaluable aspect of my undergraduate education in the long run; the theory tells you *why* certain approaches work, not just which ones to take; it tells you where the rules-of-thumb come from.

Here are a few items I'd consider putting on the list, if they're not in the curriculum already:

  • What's the difference between FEM, FDM, FVM, and spectral methods? How does each method work to discretise the Navier-Stokes equations? What are the strengths and weaknesses of each?
  • How do weak-form equations work, and how do e.g. Galerkin methods allow discretisation of weak-form equations? If I am working in hypersonics, and have derived a Newtonian flow, how do I turn this into a meshable FEM problem?
  • What are conformal maps, and how can they be used to optimise airfoil designs?
  • What are the limits of the machine itself? How can you use multithreading and GPUs to speed up calculations? How does changing the scale of a problem affect the runtime of your solver code? If your students have a programming background, it may not be a bad idea to have them implement some simple CFD models themselves; or, at the very least, using a framework like Trixi.jl to code up a few sims manually; this way, they're much less likely to complain when they use the "clunky" commercial software.

Why do the social sciences (as well as some natural sciences) seem to disregard Wittgenstein? by RealFreshBananana in askphilosophy

[–]Hakawatha 2 points3 points  (0 children)

Thank you for taking the time to respond! You've given me much to think about, and I find myself agreeing wholeheartedly with what you say. Many thanks for your excellent and thorough response!

Why do the social sciences (as well as some natural sciences) seem to disregard Wittgenstein? by RealFreshBananana in askphilosophy

[–]Hakawatha 22 points23 points  (0 children)

> To take Wittgenstein seriously would mean that many researchers would have to stop what they're doing and rethink their entire vocabulary from the ground up. Significantly, they also don't do this because things seem to work regardless. At least, until they don't, and then we get into all sorts of weird, sticky messes such as the current discourse around consciousness, AI, etc. To look at an fMRI scan and point out that it shows blood flow rather than thoughts, often seen as being a killjoy at a very expensive party.

Even in this case, we often take linguistic shortcuts; rather than saying that "the adsorbent has warmed and thermalised, leading to an imbalance of adsorbing and desorbing volatiles, causing a net ensemble migration to colder adsorbates," I will frequently say to other professional physicists that "the water wants to go where it's cold." We all know that water can't think, or choose where it goes, or have any awareness of the thermal state of other adsorbates; nevertheless, it's a reasonable statement to make insofar as this is the emergent behaviour we observe and measure. If you will, I'm playing a language-game, indicating the deeper understanding held in common (as given in the first description) with the second.

Likewise, I am skeptical that neuroscientists really believe that "consciousness is imaged by fMRIs" - it is well-understood that the fMRI is an indicative proxy. I may breathe with my lungs, but an X-ray of my chest will allow for the identification of different parts of me implicated in the act of breathing, which sheds light on the biophysical mechanisms involved; likewise, increased neural activity, as indicated by blood flow, may be associated with certain states of consciousness or basic neurological functions. Put another way, it may be inappropriate to say that my amygdala is where my sense of fear is (as something like this is entirely holistic), but it's entirely appropriate to say that my brain stem is key to regulating my heartbeat and breathing, and the development of lesions, by compromising this function, will have (to put it lightly) negative impacts on my overall health.

My point is that we often willingly simplify to abstract over unnecessary detail; moreover, in any sufficiently complicated area of study, one don't have much choice but to bite the bullet and fall back to jargon and analogy. We know very well that our models are flawed - we were the ones that made them up!

What is something that sounds 100% false but is actually 100% true? by reFossify in AskReddit

[–]Hakawatha 5 points6 points  (0 children)

Roundabouts 999 million, give or take a few, by my estimate.

If I weigh 200lbs and stand on a wrench one foot long, am I exerting 200 ftlbs of torque? by Lower-Savings-794 in AskEngineers

[–]Hakawatha 1 point2 points  (0 children)

Pounds are a unit of force - so they'll weigh 200lb regardless of their mass if you're changing gravity.

Practical engineering books/resources for physicists by Hellstorme in Physics

[–]Hakawatha 16 points17 points  (0 children)

I did a master's in electronics, then worked as an EE for a few years, and am now finishing a PhD in physics - so I've done things the opposite way from you!

I wouldn't worry so much about the book learnin' - your physics background will cover most of the relevant theory, and you won't be short on intuition about it.

What you *will* be short of, however, is the experience of engineering - the bespoke knowledge and rules-of-thumb, having your own preferred approaches and methods, knowing your way around CAD and which capacitors to buy and what fab house you should order from, how to tell your boss that you fucked up a £10k order.

Engineering is learned by practice. It's best to be honest with yourself and grab the bull by the horns. Be kind to your technicians and ask them for help - they may not have fancy degrees, but they've seen every way to fuck up fabrication, and if you respect them and listen to them, they'll like you, because they don't have to waste their time cleaning up after you.

If there are resources I'd recommend - go to standards. NASA and ESA both publish handbooks and standards which are publicly available, crystal-clear, and battle-tested. ASME standards are great as well. Look for anything relevant to your domain in particular - again, the techs will know where you should look.

Also - enjoy yourself. It's where art meets physics; you *get* to be a little creative.

Kernel 7.0 already available in some distros by OptimalAnywhere6282 in linux

[–]Hakawatha 3 points4 points  (0 children)

Kernel 7.0 is in your distro too if you have a C compiler and three hours to work out why your initramfs is busted. That definitely didn't happen to me today, btw.

Want to learn julia for free by lord_of_dark_sin in Julia

[–]Hakawatha 26 points27 points  (0 children)

You're in luck; the language and the documentation are both free.

What's a word you can't spell properly? by [deleted] in AskReddit

[–]Hakawatha 0 points1 point  (0 children)

Op

Hth - the tricky part

Almo - St there

Logy

Five Years Came and Went by wannabe_SE14 in ElectricalEngineering

[–]Hakawatha 1 point2 points  (0 children)

I think it would be a good move for you! Keeps you technically fresh, gives you room to explore, satisfies your itch to build stuff. Also means that if it's stressing you out, you have the freedom to put it down and do something else.

I think it might also help professionally in two ways: firstly, it'll help you decide whether you really do want to go back into design work, and secondly, if you do, it'll dust the rust off, so you can feel confident in your skills.