A dynamic similarity solver for fluid dynamics.
A symbolic PDE finder for similarity solutions.
đ Cracking PDEs with Similarity: Automating a Classic Physics Trick
In fluid mechanics, heat transfer, or even population dynamics, many problems start with a messy-looking partial differential equation (PDE). But sometimes, thereâs a hidden trickâan ancient physics moveâthat transforms a complex PDE into a much simpler ordinary differential equation (ODE). That trick is called dynamical similarity.
This Julia package helps you automate the search for those transformationsâusing symbolic computation and a touch of math elegance.
What is Similarity, Really?
Similarity solutions arise when you can rewrite a PDE in terms of a new variable (like ( \eta = y / \sqrt{x} )) that combines space and time into a single coordinate. This collapses a 2D or 3D problem into 1D, making it much easier to analyze or solve.
Youâve probably seen it in boundary layers (Blasius), diffusion (error function), or wave propagation. The idea is: if the physics âscalesâ in the right way, then so should the solution.
But finding the right substitution isnât always obvious. Thatâs where this tool comes in.
đ§ What This Tool Does
This Julia package:
- Parses symbolic PDEs like
"du/dt + 6*u*du/dx + d3u/d3x = 0"
- Checks if there exists a change of variables (( \eta = x y^m ), ( u = x^n f(\eta) )) that simplifies the equation
- Returns a reduced ODE if successful
- Parses and transforms boundary conditions too
- Outputs all the substitutions and symbolic forms used
Itâs built using Symbolics.jl, the symbolic engine for the Julia language.
âš Example: Reduce a PDE to an ODE
result = find_similarity("du/dt + 6 * u * du/dx + d3u/d3x = 0", "u(x=Inf, t) = 0")
# Output:
# â similarity variable η = x * t^m
# â solution guess u = x^n * f(η)
# â simplified ODE returned!
You donât need to manually compute derivatives or try a dozen substitutions. This function automates all of that for you.
đ Whoâs This For?
This tool is for:
- Engineering students studying transport, waves, or fluid mechanics
- Applied mathematicians exploring symmetry and scaling
- Anyone trying to symbolically reduce PDEs to something tractable
đ§ Behind the Scenes
- It uses symbolic differentiation to test if a substitution âkills offâ the PDEâs dependence on ( x ), ( y ), or ( t )
- If so, it simplifies the result and checks if it looks like an ODE
- It tries a grid of possible powers ( n, m ) using rational guesses
- It even parses differential operators like
d2x/dy
from strings
đ Try It Out
Want to see it in action or use it in your own models?
đ Why This Matters
Similarity isnât just elegantâitâs practical. It appears in:
- Drag coefficients that scale with Reynolds number
- Heat penetration depth in conduction problems
- Boundary layer theory in aerodynamics
This tool helps democratize that powerâmaking it accessible to students, teachers, and researchers alike.
The next time youâre staring at a tough PDE⊠maybe it just needs the right variable change. đ§ âđ