• 大小: 4.25MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-20
  • 语言: C/C++
  • 标签: 叶栅  HOH网格  

资源简介

该程序使用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个文件信息

评论

共有 条评论

相关资源