いわて駐在研究日誌2。

NEVER STAND BEHIND ME

includeAngleとresolveFeatureAngleについて

いまさらながらsHMねたです。 STLで出力した図形のresolveFeatureAngleをうまく設定するには、paraviewのFeature edges filterを使うと、角度毎に表示させて確認ができる。この値をsHMDictで指定すれば良い。 surfaceFeatureExtractDictに指定するincludeAng…

あらかじめ境界メッシュの動きが分かっている場合のdynamicMesh

境界パッチの動きが時間や空間の関数として分かっている場合にどうするかを調べたい。 境界パッチ形状の移動に伴う流体メッシュ変形については、例によってPenguintsさんのサイトにまとめられていた。ただし、パッチ形状が変形するわけではなく、あくまで剛…

mesh tutorial (OF4.x)

ということで、これまでmeshの剛体回転ばかりやってきたので、少し目先を変えてmesh morphing関係の調査。まずはチュートリアルから。 ① tutorials/incompressible/pimpleDyMFoam/movingCone 円筒領域(くさび型で2D化)の中をconeが平行移動する。メッシ…

OF-devのビルドエラー

学生に教える都合もあって、基本的に4.xの系列しか入れてないのだけど、岩手大の学生さんからの相談対応で、meshMorphing機能とかIB法関連の実装を調べるため、devとfoam-extend4.0を入れてみる。 extend4.0は問題なかったが、devがビルドエラーになり、/src…

新年度です。

結局、動的ライブラリが放置状態なので今年度こそはと思う。 今年度の目標は、 校務 授業は確実に準備をすすめること(前倒しでやること) 卒研・特研は学生との作業時間を増やすこと 地域連携を進め、共同研究3件を目指す(1件決定済み) 研究 マイクロO…

動的なsolidBodyMotionFvMeshのライブラリ作成(その2)

基礎にもどって、dynamicMeshの調査。 OF4.xでのdynamicメッシュは大きく分けると、 dynamicFvMesh ・・・Automatic mesh motion topoChangerFvMesh・・・Topological mesh changes に大別される(Ref.: A.O.Gonzalez,Mesh motion alternatives in OpenFOAM,…

動的なsolidBodyMotionFvMeshのライブラリ作成

OF、あるいは、動的メッシュ機能をもつたいていのCFDソフトは、メッシュの移動・回転速度を指定して計算するのが一般的だろう。 風車の研究をしているので、ブレードトルク→回転の運動方程式→角速度→回転角のような動的なメッシュ移動ができないか試行…

extBlockMesh for OF3.0 and higher

extBlockMeshをOF3.0以降で利用する場合はこちらから。 GitHub - HIKassem/extBlockMesh: extBlockMesh fork for OpenFOAM-dev version

SL6にdevtoolを入れる

SL6やCentOS6系はコンパイラのバージョンが古いため、OF4.xのビルドなどのためには、いろいろ支障が出てきている。そこで、devtoolと呼ばれるコンパイラ関係の更新パッケージをいれてみる(SL6.8)。 linux.web.cern.ch devtoolは現在4まであるみたいだが、…

chtMulitRegionFoam + DynamicMesh(fluidRegion) + interFoam + Evapolation/Condensation on OF3.0.x (その1)

というのをやりたいので、以下の順番に進める。 OF4.0が出たばっかりだが、ちょっとヘッダファイルが変わったようなので、とりあえず3.0.xで進める。 ①chtMulitRegionFoam + DynamicMesh(fluidRegion) = chtMultiReginDyMFoam

Immersed boundary method on foam-extend 3.2

(注意) foam-extend 3..2はgcc 4.9.2以上が必要なようです。 OpenFOAMのforkしたバージョンであるfoam-extend 3.2が昨年9月にリリースされ、前から気になっていたImmersed boundary methodが正式にリリースされていたので、知らべてみた。現在は、nextRele…

Adaptive Mesh Refinement(AMR) on OpenFOAM 3.0.x

AMRはDyMソルバーで利用可能。3Dメッシュのみ+Parallel計算可能。 interDyMFoamのチュートリアルに含まれているconstant/dynamicMeshDictでは以下の通りに記述されている。 dynamicFvMesh dynamicRefineFvMesh;dynamicRefineFvMeshCoeffs{ // How often to …

助成金申請

なかなか科研費があたらないので、助成金のほうで頑張って稼ごうと足掻いています。 本日2件提出しました。来月も2件提出予定です。 現状、 ・企業さんの申請に協力する形で2件(@30弱) ・某M社、E社の助成金(@100, @65) を提出して結果待ちで、来月〆…

Dakotaの並列計算機能について(その5)

Dakotaの並列計算機能について整理してみる。 計算機環境で整理すると、 1)マルチコアワークステーション1ノード向け dakotaのinstanceは1つだけ起動(シリアル) 例えばasynchrnous evaluation_concurrency 4 (4つ同時にeval.)を指定する。 1個1個のeva…

平成28年度開始しました。

年度初めのドタバタを終了し、なんとか毎日のリズムが出てきた。 昨年度は練習問題を一生懸命やっていたなぁというのが正直な所で、今年度はちゃんとアウトプットしていきたい。 研究リハビリ第1段として、昨秋にやっていたDakotaのRosenbrock関数(2D)の最…

OpenCV3.1.0+VS2015+Win10Pro

前から気になっていたOpenCVをいじってみようということで、とりあえずWebカメラのついている家PC(Win10Pro x86_64)に環境構築をトライしてみる。OpenCV3.1.0が年末に公開され、VS2015にも対応したとのことなので、C++の勉強もかねてVS2015 C++での開発を考…

blockMeshのmultiGrading 機能(2.3.x~)

blockMeshDGなんていうツールもあるが、ちょっと調べたら2.3.xから本家のblockMeshコマンドにmultiGrading機能が追加されていたとのことで調べてみた。 従来のblockMeshでは例えば矩形ダクト流れを計算するときに壁面にメッシュを寄せたい場合は、ブロックを…

Dakotaの並列計算機能について(その4)

ちょっと時間が開いてしまった。 4ノードの「なんちゃってクラスタ」でdakota+OF並列計算したいときのやり方をまとめておく。 クラスタでの利用にはいくつか(計算したい内容に応じて)方法があるが、ここでは、 個々の目的関数の評価はOpenFOAMの並列計算…

Dakotaの並列計算機能について(その3)

MOGAがやっぱり時間がかかるので、近似応答局面を導入した計算(Surrogate based optimization)の効率化を図ってみる。 テスト問題はBranin function(2D)で、3つの最小点がある。 f(-pi, 12.275)=f(pi,2.275)=f(9.42478,2.475)=0.397887 moga部分は共通で、以…

Dakotaの並列計算機能について(その2)

以下のような簡単な問題(Beale's function)を最適化で解いてみる。設計変数がx1, x2で、目的関数(単一)がf、制約条件(単一)がc>=0である。最小値の答えはf(3, 0.5)=0。 See: Test functions for optimization - Wikipedia, the free encyclopedia #!/bi…

Dakotaの並列計算機能について

ようやく復帰。Dakotaの並列計算機能について調べたのでまとめてみる。 概観と簡単なサマリー Dakota自体から起動する"simulator"はシリアル計算でも並列計算でももちろん構わない(たとえばOFの並列計算など)ので、ここではDakota本体の並列計算について調べ…

最近の状況

子育て中心で、なかなかブログを更新できておりません。 定時を過ぎたらばたばたと迎えにいって、おむつ替えて、遊びの相手して、風呂入れて、ミルク飲ませて、寝かしつける、で8時過ぎ。 飯を食って風呂入ると、疲れて眠くなり、机で気絶してたりする。少…

パスフレーズなしのSSHログイン(OpenMPI)と、NFSマウントの設定

パスフレーズなしのSSHログイン設定メモ (1)クライアント(ログインユーザはwaku)でssh2のRSA暗号鍵を生成 $ ssh-keygen -t rsa ※ パスフレーズを聞いてくるが、なしでよければそのままリターンでOK (2)公開鍵(*.pub)のほうを接続したいサーバ…

OF+外部ライブラリ(物性値ライブラリ)その3

水・水蒸気のライブラリであるfreesteamとOFの併用テスト freesteam 2.1: http://freesteam.sourceforge.net/ IAPWS-IF97-OF:https://github.com/romansCode/IAPWS-IF97-OF (freesteam 2.0~, OF 2.2~) 1)まず、freesteamをビルドして(sconsが必要)、.s…

VAWT翼型最適化(2)

メッシャーの問題がひと段落したので、いよいよ計算という感じであるが、ここから泥臭い作業が続くのだろうなと覚悟しておく。 その前に、Dakotaで計算する場合、特定のCFD計算が発散したりしてエラーになる場合、それを飛ばして次の計算に移る仕組みを調…

cfMeshで機能追加を希望するところ

cfMeshをいろいろ使っていて、やっぱり非常に使いやすい。 ちょっと不具合があってtwitterでぼやいていたら、わざわざ中の人が声を掛けてくれて直してくれたし(正確には、自分のSTLデータの造り方が想定外だったようだけど)、非常に好感触である。 さらに…

VAWT翼型最適化(1)

子育てしてると時間の感覚がなくなってしまっていかんな。もう6月半ばになってしまった。7月上旬に岩手大で発表するのに間に合わせるために、ちゃんとやらねば。 VAWT用2次元翼型の形状最適化を行いたいのだが、メッシュの自動生成でblockMeshではなかなか…

cfMesh v1.0.1 my tutorial

いろいろメモ(cartesian2DMesh関係) fms形式のジオメトリデータをstlに変換 FMSToSurface geom.fms geom.stl stlデータをfms形式に変換(同じファイル名) surfaceToFMS geom.stl 境界条件用に、パッチ毎のstl solidエンティティとする(1つのstlファイル…

C++のダイナミックライブラリの作成・使用

$ more hello.cpp #include<iostream>#include<stdio.h>using namespace std;int hello(){ cout<<"Hello,World!"<</stdio.h></iostream>

OF+外部ライブラリ(物性値ライブラリ)その2

去年の9月に調べていたOF+熱物性値ライブラリ関連を放置していたけど、μORCシステムを真面目に設計するため、再調査してみる。 使えそうなライブラリ freesteam 2.1: 国際標準IAPWSを利用した水・水蒸気熱物性値ライブラリ(C/C++) http://freesteam.source…

refineWalllayerコマンド

OFのツールに標記のコマンドがあって、メッシュを再分割(とくに物体のパッチ近傍など)ができるんだが、文法が変わったのかな。'()'で括るようになってた。 refineWallLayer '(blade1)' 0.47 -overwrite -noFunctionObjects あと、派生バージョンで http://…

Blanin問題(単一目的関数、多峰性、制約条件なし)

Blanin問題 http://www-optima.amp.i.kyoto-u.ac.jp/member/student/hedar/Hedar_files/TestGO_files/Page913.htm をDakotaのSOGAとSBO(Surrogate Based Optimaization (Kriging))でやってみた。poulation とかgeneration とかはそろえてある。 計算結果は下…

最適化手法の勉強

DAKOTAを使えるだけではなくて、ちゃんと最適化手法を勉強せんとあかんなということで、まとめてみる。言葉だけだと、なんか分かりにくいかもしれないが...。 勾配法のほうが最適解を求めるのは早いが、複数の最適解が存在する場合や、応答曲面にノイズが乗…

もう少しで3ヶ月

息子の話。22日で3ヶ月になる。大分、腹とか太ももとかムチムチしてきた。 気がついた点は、 先日計ったら体重6.2kgで倍以上になってた。 目つきや顔つきがしっかりしてきたような気が...。 前に比べて、アー・ウーとかいって会話?が成立するようになってき…

LHS

LHSとかRHSとか、流体とか数学やってる人は、数式の左辺(left hand side)の意味というのは分かってるが、最適化の勉強を始めるとLHSが結構出てくるので何ぞや?ってなことになったので調べてみた。 LHS: Latin HyperCube Sampring=ラテン超方格の訳だそう…

新年度業務一巡したか。

授業も2週目が終わり、新年度切り替え業務も概ね収まるところに収まってきたので、ちょっと仕事を整理してみよう。 教育活動 某数学科目の自学自習問題の更新 某工学のファシリテーション方法の検討(受講者4名なので柔軟に) 某実験の3Dプリンタ関連の資料 …

あっというまに新年度。

息子はすくすく成長中。最近は、アウーとか言うようになってきた。 自分も頑張ろう!

blockMesh/sHM/extrudeMeshで2Dメッシュ生成

最適化計算のため、形状パラメータ>blockMeshDict生成>blockMesh、の手順のみではなかなか品質の良い計算メッシュが作られないので、標記のコマンドの組み合わせて2Dメッシュ(例えばz方向にメッシュ1)を作成する手順をまとめてみる。 1.blockMesh…

翼型点列データを出力するpythonスクリプト

NACA 4 digit ※ スクリプト中で4桁を指定しています。 # Import librariesfrom __future__ import divisionimport osimport sysfrom sys import exitfrom math import *import numpy as npimport scipy.optimize as optimport matplotlib.pyplot as pltimpor…

SOM_PAK

遅ればせながら長男が生まれ、お産の入院やら退院やらでばたばたしていたが、嫁実家に落ち着いたので、ようやく日記記録を復帰させることができた。 MOGAなどで出てきたパレート解をSOM(自己組織化写像 - Wikipedia)で評価してみたい。SOMのアルゴリズム自…

GitHubを使ってみました。

Githubとやらを使ってみたいと思いまして、せっかくなのでチュートリアルを公開することにしました。ご自由にお試し下さい。 https://github.com/waku2011/Dakota_tutorials

形状最適化(練習4)

勉強会@関西のKさんの資料に乗っていた例題を参考に、OFを利用する最適化をやってみよう(細かい寸法は勝手にアレンジしています。) 設計変数2、目的関数3、制約条件は設計変数範囲のみという基本的な問題。 簡単に説明すると、規定の入り口、出口形状が…

形状最適化(ちょっと脱線)

パレート解を評価するのに、自己組織化マップ(SOM)という手法を使うことが多い。これは、多目的関数の結果を可視化するのに便利なのと、多数のパレート解をグルーピングするのに使えるためらしい。SOMのアルゴリズム自体は、いくつかバリエーションがある…

形状最適化(練習3)

前回まではgradientベースの最適化を行った。解析的な勾配であれ、数値的な(差分法)勾配であれ、目的関数の変化量から最適な方向を探索することになる。この方法は、計算時間は短くてすむが、目的関数の変化が複雑(多峰性を持つ)な場合、必ずしも大域的…

形状最適化(練習2)

単目的関数に対する設計変数の最適化 次のステップとして、単一目的関数に対する設計変数(今回は2つ)の最適化を行ってみる。単一目的関数は前回と同様にpythonで実施し、以下のようなBeale's functionとする。 minimize f(x1,x2)=(1.5-x1+x1*x2)^2+(2.25-…

形状最適化(練習1)

Dakotaに含まれる関数(rosenblock/textbook etc.)ではなく、自前で多目的関数を実装して、実際に最適化してみる。pyhtonを使用。 問題は、図示しやすいのを適当にネットから探してきて、設計変数2(x1,x2)+目的関数2(f1,f2)の下記の問題としてみた。python…

形状最適化の実施手順

形状最適化にも様々なものが存在する(位相最適化、寸法最適化)が、ちょっと整理しておく。 形状最適化に当たって、以下の情報を求めることになる。 設計変数(Design parameters):寸法、位置、境界条件.... 制約条件(Constraints):設計変数の範囲、目的関…

メモ:dictionary中のsubDictionaryへのアクセスの仕方

// read patches for torque calculation from dynamicMeshDict IOdictionary dynamicMeshDict ( IOobject ( "dynamicMeshDict", runTime.constant(), mesh, IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE ) ); // access subdict of dynamicMeshDic…

cfMesh v1.0.1 Tutorial

インストールがうまく行ったことを確認した上で、付属のTutorialの実行をしてみた。 cd tutorials/cartesian2DMesh/hatOctree FMSToSurface geom.fms geom.stl paraview geom.stl ./Allrun cd ../../cartesianMesh/bunnyOctree paraview bunnyWrapped.stl ./…

cfMesh v1.0.1

snappyHexMeshと同様のメッシュ生成ソフトウェアであるcfMesh(by Creative Fields Ltd.)が1.0.1にバージョンアップされたので使ってみる。 もともと、cfSuiteというOF用統合GUIソフトウェアのメッシュ生成部分をオープンソースとして公開しているものらし…