這裡使用隨機生成的方法在多邊形布里淵區生成k點座標,優點是程式好寫,缺點是計算量很大
下面這段**是生成六邊形內的點,是用數學方法生成的
function kpos=getkpoints(n)
a = 4.18879028;
%theta = linspace(0,2*pi,7);
%plot(a*cos(theta),a*sin(theta),'r-');
i = 0;
%n = 2000;
kpos = ;
%hold on
while i < n
x = 2*rand(1,2)-1;
if (abs(x(1)) + abs(x(2))/sqrt(3) ) <= 1 && abs(x(2)) <= sqrt(3)/2
x =a*x;
kpos = [kpos;x];
%plot(x(1),x(2),'b.');
i = i+1;
endend
這裡計算nesting完全按照標準公式,就是兩重迴圈, 時間複雜度o(n^2)
delta = 0.001;
t = 0.026;
sus = ;
n = 2000;
k=getkpoints(n);
n = length(k);
for i=1:n
x = 0;
for j=1:n
hk1=hamiltonian_tas2_k(k(j,1),k(j,2));
[~,ek1]=eig(hk1);
e1 = ek1(1,1);
f1 = (exp(e1/t)+1)^-1;
hk2=hamiltonian_tas2_k(k(j,1)+k(i,1),k(j,2)+k(i,2));
[~,ek2]=eig(hk2);
e2 = ek2(1,1);
f2 = (exp(e2/t)+1)^-1;
x = x+ f1*(1-f2)/(e2 - e1 + 1i*delta);
endsus =[sus,x];
enda = 4.18879028;
theta = linspace(0,2*pi,7);
plot(a*cos(theta),a*sin(theta),'r-');
hold on
x = k(:,1);
y = k(:,2);
z = real(sus);
[x,y,z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值
% pcolor(x,y,z);shading interp
% figure,contourf(x,y,z) %等高線圖
figure,surf(x,y,z);%三維曲面
% plot(a*cos(theta),a*sin(theta),zeros(1,7),'r-');
最後根據二維不規則離散點mesh實際有一步插值動作
與下面的矩形均勻採用對比
二維計算幾何複習
二維計算幾何 宣告 由於本人較弱,並不能保證以下內容的100 正確 歡迎大佬來挑錯 基本定義 1 struct point 6 point double xx,double yy 9 10 typedef point vec 1112 vec operator vec v1,vec v2 15 ve...
ansys軸對稱模型之二維模型
軸對稱問題 當用三維模型 計算時間太長時,將它轉化為二維模型,x軸為徑向方向,y軸為旋轉軸 軸對稱模型幾何建立有兩大要素,分別為 1.平面必須建立在全域性座標平面x y的第 一 二象限內 2.全域性座標y軸為原始模型的旋轉軸,全域性座標x軸為原始模型的徑向方向 如果是從外部匯入三維模型,則需要它先用...
計算幾何 圓 二維模板
include include include include include define fir first define sec second using namespace std const double eps 1e 8 const double pi acos 1.0 int dcmp...