How to transform a nonlinear velocity field to a new frame of reference?

1 回表示 (過去 30 日間)
Mirlan Karimov
Mirlan Karimov 2020 年 5 月 12 日
編集済み: Mirlan Karimov 2020 年 5 月 12 日
Example:
Velocity Field:
v =
- x*sin(C*t) - y*(w/2 - cos(C*t))
y*sin(C*t) + x*(w/2 + cos(C*t))
0
The linear velocity field can be written as:
X = [x,y,z];
A = [-sin(C*t), cos(C*t) - w/2,0; cos(C*t) + w/2 , sin(C*t),0;0,0,0;];
v = A*transpose(X);
Transformation (Observer change): where
Q = [cos(C/2*t),sin(C/2*t),0;-sin(C/2*t),cos(C/2*t),0;0,0,1];
Based on continuum mechanics, velocity field transforms as . Applying this formula as:
vy = diff(Q,t,1)*transpose(X) + Q*v;
I do not get the correct answer. I believe that is because v and are still in the old frame. If I change them to the new frame it works. The procedure I used is as follows:
If is also linear, then it can be written as:
Then B is computed as:
Qtr = transpose(Q); assume(Qtr,'real')';
Q*(A*Qtr - diff(Qtr,t,1))
and it works. However, now the problem is that, I can not define A and B for nonlinear velocity fields, for numerical velocity fields not possible at all, so what do I do? How do I transform a velocity field with a given observer change?

回答 (0 件)

カテゴリ

Help Center および File ExchangeFluid Dynamics についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by