*[[KIVA4 grid(kiva4grid)⇒VTK Unstructured Grid(vtu)]] [#d5674751]

エンジン内の燃焼解析ソフト[[KIVA4:http://www.lanl.gov/projects/feynman-center/deploying-innovation/intellectual-property/software-tools/kiva/index.php]]のメッシュデータ(kiva4grid)を[[VTK:http://www.vtk.org]]の非構造メッシュ形式(*.vtu)に変換します。



**使用法 [#k26ac7f5]

使用法は、コマンドプロンプト(Windows)やシェル(Linux)で以下のコマンドを打ちます。

kiva4ReaderTest.exe kiva4grid OutputFace

入力:
-kiva4grid: KIVA4のメッシュファイル名
-OutputFace: (0: ボリューム要素のみ、1: ボリューム要素+シェル要素、2: ボリューム要素+シェル要素(内部境界含む))

出力:
-kiva4grid.vtu: 変換されたVTKの非構造メッシュ

例:kiva4gridvalvesのボリュームのみ変換
  kiva4ReaderTest.exe kiva4gridvalves 0

#ref(kiva4_outputs.png,center,nowrap,50%, kiva4_outputs);

**kiva4ReaderTest.cxx [#oacf3017]

mainプログラムは以下の通り。

#code(c){{
#include <vtkGenericDataObjectWriter.h>
#include <vtkSmartPointer.h>
#include <vtkXMLUnstructuredGridWriter.h>
#include <vtksys/SystemTools.hxx>

#include "vtkKiva4Reader.h"

int main(int argc, char* argv[])
{
  if (argc < 3)
    {
  {
    std::cout << "Required parameters: FileName OutputFace" << std::endl;
    return EXIT_FAILURE;
    }
  }

  std::string fileName = argv[1];
  std::string fileNameWithoutExt =
    vtksys::SystemTools::GetFilenameWithoutExtension(fileName);
  int outputFace = atoi(argv[2]);

  vtkSmartPointer<vtkKiva4Reader> reader =
    vtkSmartPointer<vtkKiva4Reader>::New();
  auto reader = vtkSmartPointer<vtkKiva4Reader>::New();
  reader->SetFileName(fileName.c_str());
  reader->SetOutputFace(outputFace);
  reader->Update();

  std::string outputFileName = fileNameWithoutExt + ".vtu";
  vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer =
    vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
  auto writer = vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
  writer->SetFileName(outputFileName.c_str());
  writer->SetInputConnection(reader->GetOutputPort());
  writer->Write();

  return EXIT_SUCCESS;
}

}}

**ダウンロードとビルド [#h1b4b8d4]
[[Kiva4Reader:https://github.com/Kenichiro-Yoshimi/Kiva4Reader]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS