Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. load("dimension");
  2. depends(v, [t, x]);
  3. depends(p, [t, x]);
  4. /* put known dimensions */
  5. qput(rho, mass/length^3, dimension);
  6. qput(v, length/time, dimension);
  7. qput(t, time, dimension);
  8. qput(x, length, dimension);
  9. qput(L, length, dimension);
  10.  
  11. /* Navier-Stokes equation */
  12. ns: rho*(diff(v, t) + v*diff(v, x)) = -diff(p, x) + mu*diff(v, x, 2);
  13.  
  14. /* assume dimensions for `p' and `mu' are unknown and derive them */
  15. eq1: dimension(lhs(ns)) = dimension(part(rhs(ns), 1));
  16. eq2: dimension(lhs(ns)) = dimension(part(rhs(ns), 2));
  17. sol: solve([eq1, eq2], [dimension(p), dimension(mu)])[1];
  18.  
  19. /* this line should give an error becouse `ns' is dimensionally inconsistent */
  20. /* dimension(ns); */
  21.  
  22. /* put dimensions for `p' and `mu' */
  23. put(p, assoc(dimension(p), sol), 'dimension);
  24. put(mu, assoc(dimension(mu), sol), 'dimension);
  25.  
  26. /* now it is OK */
  27. dimension(ns);
  28.  
  29. /* define Reynolds number as dimensionless reverse viscosity */
  30. one_over_mu_unit: natural_unit(1/mu, [L, rho, v]);
  31. Re: (1/mu)/one_over_mu_unit;
  32.  
  33. print("dimension(mu): ", dimension(mu));
  34. print("dimension(p): ", dimension(p));
  35. print("Reynolds number: ", Re);
  36. print("dimension(ns): ", dimension(ns));
  37.  
  38. mass
  39. dimension(mu): -----------
  40. length time
  41. mass
  42. dimension(p): ------------
  43. 2
  44. length time
  45. rho v L
  46. Reynolds number: [-------]
  47. mu
  48. mass
  49. dimension(ns): -------------
  50. 2 2
  51. length time
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement