資源簡介
該程序使用CodeBlock C++編譯,包含非均勻B樣條功能。
該程序用于自動劃分葉輪機械葉柵通道網格,使用多塊結構化網格,類型為HOH。網格保存使用CGNS協議庫。其中input文件夾內為測試算例。
使用過程中如果遇到什么問題,請聯系作者:
x-lihaitao@sohu.com

代碼片段和文件信息
/*
?*?GridGen.cpp
?*
?*??Created?on:?2008-12-20
?*??????Author:?lioto
?*/
//?This?source?file‘s?header
#include?“Block.h“
//?C++?standard?headers
#include?
#include?
//?Headers?from?this?project
#include?“RangeFormat.h“
#include?“Spline.h“
#include?“BSpline.h“
using?namespace?std;
Block::Block(Face?facePoint?dir)
{
DefineButtomFaceID(face);
Point?p1p2p3p4p5p6p7p8;
p1=point_b_s_w_;
p2=point_b_w_n_;
p3=point_b_n_e_;
p4=point_b_e_s_;
p5=p1+dir;
p6=p2+dir;
p7=p3+dir;
p8=p4+dir;
line_t_w_=line_b_w_.TranslationLine(dir);
line_t_n_=line_b_n_.TranslationLine(dir);
line_t_e_=line_b_e_.TranslationLine(dir);
line_t_s_=line_b_s_.TranslationLine(dir);
line_s_w_(p1p5);
line_w_n_(p2p6);
line_n_e_(p3p7);
line_e_s_(p4p8);
Volume?vol(line_b_w_line_b_n_line_b_e_line_b_s_
???line_t_w_line_t_n_line_t_e_line_t_s_
???line_s_w_line_w_n_line_n_e_line_e_s_);
DefineID(vol);
}
void?Block::operator?()(Face?facePoint?dir)
{
DefineButtomFaceID(face);
Point?p1p2p3p4p5p6p7p8;
p1=point_b_s_w_;
p2=point_b_w_n_;
p3=point_b_n_e_;
p4=point_b_e_s_;
p5=p1+dir;
p6=p2+dir;
p7=p3+dir;
p8=p4+dir;
line_t_w_=line_b_w_.TranslationLine(dir);
line_t_n_=line_b_n_.TranslationLine(dir);
line_t_e_=line_b_e_.TranslationLine(dir);
line_t_s_=line_b_s_.TranslationLine(dir);
line_s_w_(p1p5);
line_w_n_(p2p6);
line_n_e_(p3p7);
line_e_s_(p4p8);
Volume?vol(line_b_w_line_b_n_line_b_e_line_b_s_
???line_t_w_line_t_n_line_t_e_line_t_s_
???line_s_w_line_w_n_line_n_e_line_e_s_);
DefineID(vol);
}
void?Block::DefineButtomFaceID(Face?face)
{
/*劃分讀取進來面的東、南、西、北邊界*/
/*
?*塊buttom邊界及方向示意圖
?*???????-->???????????*??????????-->
?*?????___N______??????*??????_____S_____
?*????|??????????|?????*?????|???????????|
?*???^|??????????|^????*???W||???????????||E
?*??W||??????????||E???*????V|???????????|V
?*????|__________|?????*?????|___________|
?*????????-->??????????*??????????-->
?*?????????S???????????*???????????N
?*???????方案一????????????*?????????方案二
?*/
int?iwieisininumnum_wnum_enum_snum_n;
iw=0;
num_w=face[iw].size();
for(i=1;i<4;++i)
{
num=face[i].size();
/*與west邊界沒有交點的定義為east邊界*/
if(face[iw][0]!=face[i][0]??????&&face[iw][0]!=face[i][num-1]??????&&
???face[iw][num_w-1]!=face[i][0]&&face[iw][num_w-1]!=face[i][num-1])
ie=i;
/*與west相同的線定義為east邊界,這種情況出現于west、east邊界重合時*/
if(face[iw]==face[i])
ie=i;
}
for(i=1;i<4;++i)
{
if(i!=ie)
{
num=face[i].size();
/*與west邊界起點有交點的定義為south邊界*/
if(face[iw][0]==face[i][0]||face[iw][0]==face[i][num-1])
is=i;
/*與west邊界終點有交點的定義為north邊界*/
if(face[iw][num_w-1]==face[i][0]||face[iw][num_w-1]==face[i][num-1])
in=i;
}
}
/*當出現north、south邊界重合時,以上語句自動選擇相同的線,故要排除*/
if(is==in)
{
for(i=1;i<4;++i)
{
if(i!=iw&&i!=ie&&i!=in)
is=i;
}
}
/*判斷west、north、east、south邊界設置是否正確*/
if(iw==in||iw==ie||iw==is||in==ie||in==is||ie==is)
{
cout<<“ERROR:?Face?error!“< assert(fals
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????4107911??2013-09-05?23:32??GridGen\bin\Debug\GridGen.exe
?????文件??????10365??2011-07-13?17:05??GridGen\Block.cpp
?????文件???????6120??2011-07-13?17:05??GridGen\Block.h
?????文件???????5524??2011-07-13?17:05??GridGen\BSpline.cpp
?????文件???????4018??2011-07-13?17:05??GridGen\BSpline.h
?????文件??????46532??2011-07-13?17:05??GridGen\cgnslib.h
?????文件???????3264??2011-07-13?17:05??GridGen\Circle.cpp
?????文件???????1380??2011-07-13?17:05??GridGen\Circle.h
?????文件????????243??2011-07-13?17:05??GridGen\Face.cpp
?????文件???????3949??2011-07-13?17:05??GridGen\Face.h
?????文件???????1322??2011-07-13?17:05??GridGen\Gauss.cpp
?????文件????????490??2011-07-13?17:05??GridGen\Gauss.h
?????文件???????7831??2011-07-13?17:05??GridGen\GeomTurbo.cpp
?????文件???????2270??2011-07-13?17:05??GridGen\GeomTurbo.h
?????文件???????2049??2011-09-14?17:04??GridGen\GridGen.cbp
?????文件??????24911??2011-07-13?17:06??GridGen\GridGen.cpp
?????文件???????6558??2013-09-05?23:33??GridGen\GridGen.depend
?????文件????4107911??2013-09-05?23:32??GridGen\GridGen.exe
?????文件???????6939??2011-07-13?17:06??GridGen\GridGen.h
?????文件????????563??2013-09-06?08:52??GridGen\GridGen.layout
?????文件????????563??2013-09-05?23:53??GridGen\GridGen.layout.cbTemp
?????文件??????10806??2013-09-06?11:22??GridGen\input\blade.GeomTurbo
?????文件??????10882??2013-09-05?16:05??GridGen\input\blade.GeomTurbo.bak
?????文件????????266??2013-09-06?09:59??GridGen\input\blade.para
?????文件??????10808??2013-09-05?23:42??GridGen\input\blade1.GeomTurbo
?????文件????????266??2013-09-06?09:06??GridGen\input\復件?blade.para
?????文件?????699074??2011-07-13?17:06??GridGen\libcgns.lib
?????文件???????5333??2011-07-13?17:06??GridGen\Line.cpp
?????文件???????4194??2011-07-13?17:06??GridGen\Line.h
?????文件????????915??2011-09-14?17:03??GridGen\main.cpp
............此處省略49個文件信息
評論
共有 條評論