MATLAb tremine 코드 압력 Diffusion in TKE 예산

Samoza

Guest
모든 것

나는 모세, 김 및 망사 (1999)에서 얻은 데이터와 곡선을 비교하기 위해 단일 차트에서 태크 예산의 모든 용어를 플로팅하려고합니다. tke 예산의 공식은 첨부 된 이미지에 표시됩니다. 고려된 흐름은 채널에서 turbulent 흐름입니다. 나는 거의 모든 용어 (생산, turbulence diffuseon, viscous diffuseon, dissipation rate)를 구울 것을 관리, moser, kim 및 mansour의 데이터를 사용하여 일관된 결과를 얻을 이미지 : 그러나, 나는 제대로 용어 압력 diffuseon을 그릴 어려움이 있습니다.

유효한 자료는 다음을 포함합니다:

- `u_prime`, `v_prime`, `w_prime`, `w_prime`라고 불리는 3개의 matrices 3d (256x128x128x128)는 각각 방향 x, y 및 z를 따라 속도 구성 요소의 변동을 나타냅니다.
- 압력 필드를 나타내는 3d `p_prime` matrix (256x128x128).
- 3개의 모조 3d `x`, `y` 및 `z`(256x128x128)는 공간 좌표를 나타냅니다.

moser, 김 및 mansour 데이터는 다음 웹 사이트에서 찾을 수 있습니다 : 590의 마찰 reynolds 수까지 turbulent 수를 위한 dns 자료 . 데이터를 포함하는 특정 파일은 `chan180/balances/chan180.kbal` 경로에 있습니다.

내 시도는:
옥수수;
명확한;
모두 닫기;


% 공간 통계
% 수입 셀 센터 좌표
ccx = importdata(전체 파일('velfieldschannel_corsoturb', 'ccx'));
ccy = importdata(전체 파일('velfieldschannel_corsoturb', 'ccy'));
ccz = importdata(전체 파일('velfieldschannel_corsoturb', 'ccz'));


% 수입 속도 필드
selectsnapshot = 3; %는 스냅 샷을 선택합니다 (1에서 22까지)
파일 경로 = 전체 파일('velfieldschannel_corsoturb', num2str(choosesnapshot), 'u.gz
tempdir = 전체 파일 (tempdir, 'tempextraction
gunzip (파일 경로, tempdir);
u = importdata (전체 파일 (tempdir, 'u'));


% 수입 압력 필드
pfield = importdata(전체 파일('velfieldschannel_corsoturb', 'p'));


% 매개 변수
nx = 256;
네 = 128;
NZ = 128;
델타 = 1;
u_tau = 1;
숫자 = 1/180;
= (델타 * u_tau) / nu;
rho = 1;


matrices의 % 할당 값
u = 0s (nx, ny, nz);
v = 0s (nx, ny, nz);
w = 0s (nx, ny, nz);
x = 0s (nx, ny, nz);
y = 0s (nx, ny, nz);
z = 제로 (nx, ny, nz);
p = 0s (nx, ny, nz);
인덱스 = 1;
k = 1:nz의 경우
j = 1:나
i = 1:nx의 경우
u(i, j, k) = u(index, 1);
v(i, j, k) = u(index, 2);
w (i, j, k) = u (index, 3);
x(즉, j, k) = ccx(index);
y(i, j, k) = ccy(index);
z (i, j, k) = ccz (index);
p(i, j, k) = pfield(index);
인덱스 = 인덱스 + 1;
이름 *
이름 *
이름 *


% 계산은 모든 y에 대한 프로파일을 의미
u_mean = 의미 (u, [1, 3]·
v_mean = 의미 (v, [1, 3]·
w_mean = 의미 (w, [1, 3]·
p_mean = 의미 (p, [1, 3]·


% 계산 변동 분야
u_prime = u - u_mean;
v_prime = v - v_mean;에 대 한
w_prime = w - w_mean;
p_prime = p - p_mean; (으)로


%extracting 위치 벡터
x_direc = x:), 1, 1;
y_direc = y(1, :, 1);
z_direc = z(1, 1, :);


% 계산 y_plus
y_plus = (y_direc * u_tau) / nu;


% 방향 x, y 및 z에 따라 계산 차이
dx = diff (x_direc);
dy = diff (y_direc);
dz = diff (z_direc);


% 수입 moser, 김 및 mansour 데이터
파일 경로 = fullfile('chan180', 'balance', 'chan180.kbal');
파일 = fopen (filepath, 'r');
chan180kbal = textcan (fileid, '%f%f%f%f%f%f%f%f%f%f', 'commentstyle', '#
fclose (파일);
y_plusmkm = chan180kbal {2};
dissipationmkm = chan180kbal {3};
= chan180kbal{6};;


% 압력 확산 기간
mean_pu_prime = 의미(p_prime .* u_prime, [1 3]·
mean_pv_prime = 의미(p_prime.* v_prime, [1 3]·
(p _ 프라임. * w _ 프라임, [1 3]·


dpu_dx = diff (mean_pu_prime) ./ dx;
dpv_dy = diff (mean_pu_prime) ./디;
dpw_dz = diff (mean_pu_prime) ./ dz;


pressdiff_pre = - (1/rho) * (dpu_dx + dpv_dy + dpw_dz);
pressdiff_pre = pressdiff_pre(1,:, 1);
pressdiff = 난 (1, 128);
pressdiff(1:127) = pressdiff_pre;




% 플로팅 압력 확산 조건
그림;
계속;
플롯(y_plus, pressdiff/re, 'displayname', '[imath]\피[/imath]·
(y_plusmkm, pressdiffmkm, '-', 'displayname', '[imath]\ 피 _ {mkm}[/imath]·
x 상표 ( 이름 *[imath]₢ 킹[/imath]','통역 ',' 라텍스 ');
엑스림 (xlim)[0 max(y_plusMKM)/2]·
floattitle = '압력 확산 용어';
‘plottitle, 'interpreter', 'latex
'노스토', '노스토', 'interpreter', 'latex'
에 격자;
상자에;
유지;
그런 부호의 산출은 뒤에 오는 이미지입니다: 두 개의 곡선이 일치하지 않는 것처럼.

압력 diffuseon의 공식이 이미지에 표시되어 있기 때문에, 코드를 제대로 용어 압력 diffuseon을 구울 수 있습니까?

어떤 선명도, 요청을 주저하지 않고 나는 대답하려고합니다.
 
Last edited:

Forum statistics

Threads
58,191
Messages
495,938
Members
103,104
Latest member
FabioFrontini

Members online

No members online now.

Back
Top