Algorithm developer for computational fluid dynamics/numerical method/I do like CFD book/hyperbolic-Navier-Stokes/Michigan/Virginia/数値流体力学/西川裕章/青春の高校数学
Hyperbolize, discretize, and derive various useful algorithms for CFD. In the main path (middle), solution and gradients are solved together by upwind methods, giving highly accurate and smooth gradients on unstructured grids. See, e.g., AIAA2016- 3969
BTW, as everyone knows, if you ask me "What discretization methods do you like?", I'll say "I do like all the methods". For every CFD algorithm, I know I can find a reason or more why I like it. --- "I do like CFD, VOL.1"; there's still a free pdf at
Found a book that I bought at a bookstore in London, UK, in March, 1993. I remember that problems listed at the end of each chapter were useful when I was studying for a graduate-school entrance exam in Japan, which I took and passed later in September, 1993.
First discovery in 2023. This is the same book as the one I borrowed many times from library when I was an undergrad at Tokai University in Japan decades ago. I learned both math and how to do math in English; in a way, it was an English textbook as well.
I like panel methods, which are as simple as discretizing a wing surface, building a linear system, and solving it to get a solution at any point in a domain around the wing. I learned a lot about it with this book … and wrote some codes long time ago.
Started to get some solutions on adaptive grids. There're things I still have to work on, but I now have to focus on some other topics.. I'll continue to work on this on a side.
If you ever calculated the Reynolds # for running a CFD code, what was the reason for doing so? One possibility is to see if the flow is expected to be laminar or turbulent. Another would be to match the condition with an experiment or another simulation. Any other reason?
I'm a CFD algorithm developer trying to develop robust and accurate discretization algorithms for easier grid generation and adaptation. In a way, I'm trying to prove that there is no such thing as a bad mesh (and a solver, maybe), only a bad discretization.
Here's a general form of nondimensionalized Navier-Stokes system given in
"I do like CFD, VOL.1" . The book gives 3 examples of specific nondimentionalizations, but you can choose any reference states you want. I'll have to add another example.
Took 12 hours to debug an f90 code and then write a C code: 1st-order explicit Euler solver. I didn't expect to get this done today since this is my first time to write a C code. I don't understand many things: e.g., why I need to put '&' in front of some variables, but it runs..
Started to bring back books to the office. It'll take a couple of more trips to complete it. In June, I brought all books to home in case I had to leave when my position was advertised and I almost lost my place at NASA Langley. I survived and I'm now in my 17th year at NIA/NASA.
I intend to continue to contribute to CFD research at NIA and NASA Langley until the day comes when I become useless as a CFD algorithm developer. I'd like to thank all who value my contribution and have been trying to keep me alive as a passionate CFD researcher.
Had a chat about how I ended up here in 2007. It was my 13th year at U of Michigan (2 masters,PhD,postdoc), and told I'd have to leave in 3 months (no funding), searched for a job, the only offer I got was from
@NationalAero
to work for NASA's FUN3D team
Today I turned 51, and I still feel like I'm as passionate as I used to be, like in the summer of 1994 when I suddenly left Tokyo and arrived in Michigan to study CFD algorithms which I still do. I think I love it when I haven't accomplished anything yet and I'm still trying.
was asked "Who is Katate Masatsuka?", the author of "I do like CFD, VOL.1" . It's my Japanese pen name meaning a spare-time writer: Katate Ma=spare time; satsuka=writer. I write (as Katate Masatsuka) when I have time. I don't write when I don't have time.
This one? It's a good book. I've tweeted the picture before. This is an international edition I purchased in London, UK, 1993. I remember I worked on exercises in this book in preparing for an entrance exam to a graduate school in Japan.
Revisiting a space-time problem with adaptive tetrahedral grid, now using a 3rd-order hyperbolic Navier-Stokes scheme. It took some time to get it to work, but looks like it's working now. This is for another summer paper.
Started to get some solutions on adaptive grids. There're things I still have to work on, but I now have to focus on some other topics.. I'll continue to work on this on a side.
To those interested, please remember that the latest version of "I do like CFD, VOL.1" is always available at the official website . You might find a pdf somewhere else, but it's usually an older version.
Visited Aero Department at U of Tokyo for the first time in 30 years. I was there in 1994, but I left suddenly after the first semester of Master's program. I never thought I'd be invited, or even allowed, to give a talk at this place. It was a very emotional visit.
This one? It's a good book. I've tweeted the picture before. This is an international edition I purchased in London, UK, 1993. I remember I worked on exercises in this book in preparing for an entrance exam to a graduate school in Japan.
Sad news came in: Sergei Godunov passed away on 15 July, 2023 Godunov-type numerical methods are still widely used in CFD. I had a chance to see him in 1997 in Michigan at a symposium honoring his great contributions.
I remember someone said "CFD algorithm research is dead" in around 1994 and many students decided to pursue other areas of research. That's exactly when I started to pursue my graduate study in CFD algorithm development. There was no research fund for me; I did TA for living.
At ICCFD12, a student came to me and asked "Are you Katate Masatsuka", I said "Yes", and we had a good conversation. Later, two more students came to me and asked the same question. I'm glad to know that they've found my book useful and also found out that I'm "Katate Masatsuka".
This paper presents an extensive study of comparing various limiter functions including mine for practical supersonic-flow problems: "Evaluation of Limiter Functions for Supersonic Applications", AIAA 2023-4405
I'd really like to finish one presentation file today... Here's a pair of figures showing the advantage of an adaptive grid. We just need a robust and accurate discretization scheme for such a highly-skewed irregular grid; and we have it.
I use this to illustrate my life: I'm always running at full speed in good and bad times in life. - Good times (tops) are unstable and it's easy to fall down; bad times (bottoms) are stable and it's not easy to climb up. So, I just run through all; life gets better if I'm lucky.
If I'm asked "Are you busy?", my answer is always "Yes, I am". But if there's something I can contribute and if I find I can do it quickly, I usually do it. So, I've started to investigate a low-Mach accuracy problem with my 2D code using my own grids and a 1st-order scheme.
selected as Engineer of the Year (EOY) for AIAA Region 1, which is the third award I received as a CFD researcher: (1st award) AIAA Best CFD Paper 2017 and (2nd award) EOY Hampton Roads section 2020.
Probably still largely true, but textbooks used at Japanese universities are usually all written in Japanese. Prof. Oguro's courses at Tokai university were exceptional. His viscous fluid flow course was one example, for which he prepared this material:
This is an 80-page textbook I found useful when I was an undergrad in the 1990s. Title is 'Viscous Fluid Dynamics" but it also covers other topics such as the potential-flow theory. Inside, everything is written in English. Some people might find it useful. I'll try to scan it.
Actually, 'good' and 'bad' aren't suitable words for talking about CFD: "... a good grid can be a bad grid for a bad scheme and a bad grid can be a good grid for a bad scheme (or a bad scheme can be a good scheme on a bad grid)" from AIAA2017-4295
Had a chat about how I ended up here in 2007. It was my 13th year at U of Michigan (2 masters,PhD,postdoc), and told I'd have to leave in 3 months (no funding), searched for a job, the only offer I got was from
@NationalAero
to work for NASA's FUN3D team
To anyone interested, PhD thesis of Bram van Leer (1970) is available at , where he discusses Rusanov, Godunov, and Lax-Wendroff schemes in terms of the dissipation/stabilization matrix.
Wrote a flux Jacobian code for a numerical flux, and it seems working fine so far. Jacobian is not difficult to write but it takes some hours. At each step, I try to write down what the code is doing inside the code like this because it's quite complicated.
Now, here's a question: what length should be used to calculate the Reynolds number for this flow? Diameter of the larger cylinder or the smaller cylinder, or something else? -- It depends on the purpose of calculating the Reynolds number. What do you compute Reynolds number for?
I feel lucky I can work on CFD algorithm development every day; maybe such is possible because I'm still 100% on soft money; there were times when I almost lost my job: "No funding, no position. Sorry, Hiro. That's the fact of life". But it fits me so well and I'm enjoying it.
I'm a CFD algorithm developer who works on things inbetween. Here, I'm working on something between node- and cell-centered FV methods. I've just found its advantage that an efficient algorithm developed for a node-centered FV method can be employed without losing its benefits.
11th-order accurate scheme. This is my first time to try out an 11th-order accurate scheme constructed based on 10th-order polynomials. This is what a numerical solution looks like on a coarse two-element grid (with multiple solution points in each element).
Creating some figures for Fraenkel's flow, which is an intriguing analytical solution to the Euler equations. You can find the analytical expressions in "I do like CFD, VOL.1" available at
Nice. I remember I derived a lift coefficient for an airfoil with a horizontal lower surface and a circular-arc upper surface with the equal-transit assumption, and found it too small compared with a correct lift coefficient. It was a long time ago when I was a graduate student..
Flow around a Joukowsky airfoil. Notice that the lines of same color don't meet at the rear. Falsifying the 'equal transit' explanation of lift generated by an airfoil. Particles split at the front, simply don't have to join at the rear at the same time…
Comparing two first-order formulations for diffusion. The variable p is introduced as the diffusive flux or the solution gradient. Which formulation would you prefer?
Some tetrahedral or mixed-element grids can be structured grids if a structured grid is defined as the one where grid points can be stored in a structured array like x(i,j,k). Grids generated by a code presented in AIAA2018-1101 are structured grids
I, as a CFD algorithm developer, always try to look at things in a different way, which is essential to developing new/improved algorithms. This is not just a one-sided difference but also central difference at j+1/2, gradient of P1 shape function, or Green-Gauss gradient, etc.
Finally, the solver started to converge rapidly with viscous terms for OM6 wing at Mach=0.3 and Re=100. CFL is 10^15 as before. This is good. Need to organize the code.
The Jacobi iteration for Laplace equation is a pseudotime stepping scheme . Then, it might make you think about a possibility of employing a high-order RK time stepping scheme or an implicit time-stepping scheme, instead of the forward Euler scheme.
In the last session of
#AIAASciTech
, we witnessed a historical breakthrough moment in CFD: it was demonstrated that accurate heat prediction was possible on a highly irregular anisotropic tetrahedral viscous adaptive mesh. Must read this, AIAA2023-2629
I develop CFD algorithms but often don't have time/skills to implement them in a practical CFD code. When someone asks me "Can you implement your algorithms in our code?", I reply "No, I cannot" and the conversation stops.
Always good to have your own CFD code, so that you can try things by yourself. Sometimes you get results you never expected, and that's an opportunity for learning. Find a bug in the code or in your theory. The latter is fun; I got experience and will report it in a future paper.
Found that I still have this, showing I was a postdoc working with Prof. Bram van Leer until Feb 2003 (from May 2001). Two outcomes: (1) an optimal multigrid paper and (2) a general theory of local-preconditioning paper
Found a small Matlab code I wrote 3 years ago, at researchgate , which solves linear advection of a sine wave with the central scheme using RK2 and RK3 time stepping schemes and shows RK3 is stable (its stability region includes imaginary axis).
Good. A 2D implicit Navier-Stokes solver has started to work: rapid iterative convergence and 2nd-order error convergence for irregular tria grids. Edge-based scheme for inviscid and Galerkin for viscous like NASA's FUN3D. Now I'm ready to investigate something for FUN3D.
Updated my list of grid generation codes: "Making Your Own Mesh" : moved all codes to researchgate (except those at NASA TMR website), fixed broken url links, updated some codes with more options, added a page on grids for supersonic duct case.
Finally debugged the code and start seeing 3rd-order accuracy on irregular hexahedral grids. I love bugs when I'm able to fix them and show that proposed algorithms work as expected. For the first time, economical 3rd-order scheme is demonstrated on non-tetra grids. Feeling great
Found a two-page note on "On a False Theory of Flight" that I (as a TA) prepared as a model solution to a problem set in an aerodynamics course at Aero Eng Department in U of Michigan, in 1998: .
Nice. I remember I derived a lift coefficient for an airfoil with a horizontal lower surface and a circular-arc upper surface with the equal-transit assumption, and found it too small compared with a correct lift coefficient. It was a long time ago when I was a graduate student..
The main focus of my research has always been to develop robust and accurate methods for arbitrary grids. There's no such thing as a bad grid; fix the discretization, not the grid. This paper is just one of many examples:
This one has finally been published officially; here's a free-download link (free until September 19, 2023) This is one of the examples about how I try to analyze and understand a problem I encounter, and then how it leads to the resolution of the problem.
Revisiting my PhD thesis (2001) , where I explored a method for solving PDEs for both dependent and independent variables (solutions and grid) simultaneously. A 1D viscous shock (middle) is a curve in a 3D space with coordinates (x,u,J=du/dx) on the left.
Applying the central difference formula twice, you'll get a wide-stencil second derivative formula known as 2h-Laplacian. This is not considered as a good formula for diffusion (odd-even decoupling), but it's useful for generating a high-order scheme for advection.
As I mentioned, a typical us-versus-them mentality in CFD is the cell-centered versus node-centered mentality. There're pros and cons in both methods, and we can debate forever. The point of this talk is that I resolved a difficulty by combining both.
Bad memories came back. In 2003, I had to implement high-order DG schemes in an F77 code in a specific way a prof insisted: create and pass lots of 1D arrays to a subroutine like this, and then I got a compilation error I had never seen before: "Too many continuations"...
I'm not sure if all CFD codes have gone through a code verification process. To verify the discretization residual, you can use the method of manufactured solutions and here's an example of how to compute exact solutions and MMS forcing terms for 3D Euler.
I guess I don't have any particular book to recommend, but it reminds me of a graduate-level aerodynamics course I took in 1995. There was no textbook, but the instructor (Prof. Phil Roe) suggested Lighthill's book as a book to enjoy reading.
Ran a script I've used before and obtained this grid after 10 grid adaptation cycles, using the 'refine' package for a supersonic flow through a duct with triangular bumps. This is a good test case to try out an idea for a limiter.
was asked to provide some material to highlight my work in 2022, and so sent something. One is the space-time hyperbolic Navier-Stokes solver, presented in this paper
Impressive CFD simulation of a swimming dolphin: I remember I've seen Prof. Aoki's presentation on a CFD simulation of a falling leave at ICCFD1 in 2000.
2024: 30 years since I suddenly left a graduate school in Japan after the first semester (April-July 1994), and started a new graduate study at U of Michigan in Fall 1994. It wasn't a smooth transition with various challenges lying ahead; I like I'm still challenging myself.
Revisited a special source discretization What's interesting here is that high-order accuracy requires a low-order source formula, and is lost with the most accurate source formula. This is an interesting case where "Invisible hand" doesn't exist for CFD.
Here's a free-download link for a recent paper "A Flux Correction for Finite-Volume Discretizations: Achieving Second-Order Accuracy on Arbitrary Polyhedral Grids"
I'm excited to find that the idea discussed has a much wider application than it might seem
As a researcher, I'm more interested in ideas and explanations than good results. Bad results are interesting when there's a convincing explanation about why they're bad. Good results are really good when they come with a convincing explanation why they're good.
My talk "Making Your Own Mesh" will begin at 9:45am today at SU2 workshop Here is the presentation file (pdf): a catalog of grid generation codes that I wrote for my own research and you can use for your purposes (e.g., run SU2) ->
Also found in the office are 31-year-old college course notes (1991, my 2nd year at Tokai University): classical thin-airfoil theory (薄翼理論) and lifting-line theory (揚力線理論). Later at some point, I started to translate all course notes in English in each day.
Maybe even FUN3D developers don't know that I created this character, Dr. FUN3D. It is printed on my mouse pad that I use in my office at NASA Langley.
Glad to hear that this paper about implicit-gradient-based high-resolution conservative schemes has been accepted to Journal of Scientific Computing. It's interesting that a 4th-order scheme is shown to be more accurate than a 6th-order scheme.
Wrote a function that computes a volume of a prismatic cell. If any quad face is not planar, the volume is not uniquely determined. Here, I choose the volume given by the Green-Gauss formula with the face normal defined by the sum of normals of two triangles forming the quad.