资源简介
该程序使用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个文件信息
评论
共有 条评论