2016-11-16から1日間の記事一覧

Matlabで2次元移流拡散方程式を解く(拡散係数Dが場所によって異なる場合を考慮)

function velocity_variable_diffusion clear all; close all; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CAPTURE = false; VIEWTOP = true; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %condition …

Matlabで2次元拡散方程式を解く(拡散係数Dが場所によって異なる場合)

function diff2d_constD clear all; close all; % use surf() function for visualization xmax=2; ymax=2; deltaT = 0.1; % D=0.05; % dx=D*(deltaT)/() % dy= xwidth=31; ywidth=31; x=linspace(-xmax,xmax,xwidth); diffx=diff(x); dx=diffx(1); y=linspa…

Matlabで2次元拡散方程式を解く(拡散係数Dが一定の場合)

function diff2d_constD clear all; close all; % use surf() function for visualization %% define capture CAPTURE = false; xmax=2; ymax=2; deltaT = 0.1; D=0.05; % dx=D*(deltaT)/() % dy= xwidth=31; ywidth=31; x=linspace(-xmax,xmax,xwidth); dif…

matlabで1次元拡散方程式を解く

function diff1d clear all; close all; width=1; A=1; xmax=5; partition=101; x=linspace(-xmax,xmax,partition); D=0.04; dxs=diff(x); dx=dxs(1); deltaT=0.1; d=D*deltaT/dx^2; tmax=4; global f1; global f2; global f3; global f4; set(gcf, 'Positio…

matlabで一次元の移流方程式を解く

function advection_x clear all; close all; format shortG; %%define capture CAPTURE = false; partition=101; xmax=20; xx=linspace(0,xmax,partition)'; dxs=diff(xx); dx=dxs(1); deltaT=0.02; u=2; c=u*deltaT/dx; global d; global h; d=0.4; h=1.2;…

ポテンシャル流れの中に置かれたダブレット

function potential_doublet clear all; close all; x=-2:0.1:2; y=-2:0.1:2; [X,Y] = meshgrid(x,y); k=1.0; Phi = k*X./(X.^2+Y.^2); Psi = -k*Y./(X.^2+Y.^2); contour(X,Y,Phi,50,'LineColor','red'); hold on; contour(X,Y,Psi,50,'LineColor','blue');…

ポテンシャル流れで渦の周りに置かれたダブレット

function uniform_doublet_vortex clear all; close all; x=-2.0:0.1:2.0; y=-2.0:0.1:2.0; [X,Y] = meshgrid(x,y); U=2.0; alpha_deg=0; alpha=alpha_deg/180.0*pi; R=0.8; r=sqrt(X.^2+Y.^2); theta = atan2(Y,X); gamma = - 5.0; Phi = U*(r+R^2./r).*cos…

2次元流れのラプラス方程式を解いて速度ポテンシャルを求める

計算条件 速度ポテンシャルを求める function laplace2d_velocity_potential clear all; close all; format shortG; %%define capture CAPTURE = true; global L;global U;global W;global Xobs;global WobsX;global WobsY; L = 2.0; U = 1.0; W = 1.8; Xobs…

2次元流れのラプラス方程式を解いて流れ関数を求める

計算条件 流れ関数の計算 function laplace2d clear all; close all; %% define capture CAPTURE = false; Xobs = 0.8; WobsX = 0.4; WobsY = 0.5; L = 2; W = 1; deltaX = 100; deltaY = deltaX*W/2; x=linspace(0,L,deltaX); y=linspace(0,W,deltaY); [X,Y…

翼周りのポテンシャル流れをジューコフスキー変換で計算する

function wing_flow_conformal clear all;close all; R=0.8; U=10; alpha_deg = 20; alpha = alpha_deg/180*pi; gamma = -4*pi*R*U*sin(alpha); rho = 10; x=-2:0.05:2; y=-2:0.05:2; [X,Y] = meshgrid(x,y); Xi= X +i*Y; xi0 = -0.12; eta0 = 0.52; Rdash =…

matlabで平板翼周りの流れを計算する

function plate_flow_conformal clear all;close all; R=0.8; U=10; alpha_deg = 20; alpha = alpha_deg/180*pi; gamma = -4*pi*R*U*sin(alpha); rho = 10; x=-3:0.05:3; y=-3:0.05:3; [X,Y] = meshgrid(x,y); Xi= X +i*Y; % W = U*(Xi + R^2./Xi*exp(-2*i*a…

matlabで円柱周りのポテンシャル流を計算する

function pressure_map clear all; close all; def = 2; x=-def:0.1:def; y=-def:0.1:def; [X,Y] = meshgrid(x,y); U= 2.0; alpha_deg=0; alpha=alpha_deg/180.0*pi; R=0.8; r=sqrt(X.^2+Y.^2); theta = atan2(Y,X); gamma = -15.0; rho = 10.0; Phi = U*(r+…

matlabで自由渦

function doublet_in_uniform_flow % clear all; % close all; x=-2.0:0.1:2.0; y=-2.0:0.1:2.0; [X,Y] = meshgrid(x,y); U=1.0; alpha_deg=0; alpha=alpha_deg/180.0*pi; R=0.8; r=sqrt(X.^2+Y.^2); theta = atan2(Y,X); gamma = 1.0; Phi = U*(r+R^2./r).*…

matlabで一様流の中に置かれたダブレット

function doublet_in_uniform_flow % clear all; % close all; x=-2.0:0.1:2.0; y=-2.0:0.1:2.0; [X,Y] = meshgrid(x,y); U=1.0; alpha_deg=0; alpha=alpha_deg/180.0*pi; R=0.8; r=sqrt(X.^2+Y.^2); theta = atan2(Y,X); gamma = 1.0; Phi = U*(r+R^2./r).*…

matlabでポテンシャル湧き出しと吸い込み

function potential_source close all; clear all; x=-10:0.1:10; y=-10:0.1:10; [X,Y] = meshgrid(x,y); Q=1.0; r=sqrt(X.^2+Y.^2); U=1.0; alpha_deg=5; alpha=alpha_deg/180.0*pi; Phi = Q/(2*pi) * log(r); Psi = Q/(2*pi) * atan2(Y,X); contour(Phi,20…

matlabでポテンシャル湧き出し

function potential_source close all; clear all; x=-10:0.1:10; y=-10:0.1:10; [X,Y] = meshgrid(x,y); Q=1.0; r=sqrt(X.^2+Y.^2); U=1.0; alpha_deg=5; alpha=alpha_deg/180.0*pi; Phi = Q/(2*pi) * log(r); Psi = Q/(2*pi) * atan2(Y,X); contour(Phi,20…

matlabでポテンシャル流

function potential_flow x=0:0.1:10; y=0:0.1:10; [X,Y] = meshgrid(x,y); U=1.0; alpha_deg=5; alpha=alpha_deg/180.0*pi; Phi = U*(X.*cos(alpha)+Y.*sin(alpha)); Psi = U*(Y.*cos(alpha)-X.*sin(alpha)); contour(Phi,'LineColor','red'); hold on; con…

matlabで等角写像

function conformal_map clear all;close all; xi_x = -2:0.1:2; xi_y = -2:0.1:2; [X,Y] = meshgrid(xi_x,xi_y); Xi = X + i*Y; R=1; alpha_deg = 20; alpha=alpha_deg/180*pi; Z = Xi + R^2./Xi*exp(-i*2*alpha); axis equal; xlim([-2 2]); ylim([-2 2]);…

2次元弾性問題を有限要素法で解く

うまくいってないっぽい function simple_elastic clear all; close all; format compact; global np, global ne; global nf; global nb; global nodes; global elems; global loads; global bounds; global material; params_simple; load simpledata; np =…

2次元トラスの問題を有限要素法で解く

planer_truss.m function planer_truss clear all; close all; init_params2(); global np;global ne;global nb;global nf; global nodes;global elems; global cnsts;global loads; % load exp1; load exp2; draw_truss(); axis equal; eks = {}; K = zeros…

3次元トラスの問題を有限要素法で解く

solid_truss.m function solid_truss close all; clear all; init_params2(); format shortG; global nodes; global elems; global bounds; global loads; load model_data2; np = size(nodes,1); ne = size(elems,1); nb = size(bounds,1); nf = size(loads…