Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Dakota+openFoam1

48 views

Published on

Parameter studies for Steady flow around Ahmed body are executed by OpenFoam and Dakota

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Dakota+openFoam1

  1. 1. OpenFOAMにおけるDakota使用例(その1) An Use Case of DAKOTA with OpenFOAM moritam51@gmail.com
  2. 2. Introduction 1. 平成30年8月岐阜のオープンCAE勉強会夏の合宿において、野村氏によるOpenFOAM でのDAKOTA-UIの使用方法の講習に参加。よくわからないので調べることにした。 2. 2016年のOpenFOAM Workshop11(ポルトガル)においてDakotaのトレーニング コースあり、教材がダウンロードできる。このトレーニングの題材の一部をトレースする。 3. トレース環境:OpenFOAM v1806 DAKOTA 6.8 4. http://www.wolfdynamics.com/tutorials.html?id=46
  3. 3. TEXT Introduction to numerical optimization using DAKOTA and OpenFOAM® Instructor: Joel Guerrero Summary: In this training session the attendees will be introduced to numerical optimization using DAKOTA. We will address how to conduct parametrical and design of experiments studies, single and multi-objective optimization, surrogate based optimization, exploratory data analysis, and how to couple DAKOTA with OpenFOAM® (or any other black box solver). To follow this training session a basic knowledge of OpenFOAM® is required. No prior knowledge of DAKOTA is required. Abstract: Course_abstract-Joel_Guerrero-Dakota.pdf Training type: Intermediate Session type: Undefined Software stack: OpenFOAM 3.0.x, Dakota 6.3, OpenSCAD, Salome 7.7.1, Python 2.7 (Anaconda). Training Material: https://drive.google.com/open?id=0BwfuSMqexhZxUExmbTF4Z2Ztckk
  4. 4. DAKOTAでは何ができるか? • パラメータスタディ(Parameter Studies)Vecter,List,Centered,Multidimensional • 実験計画法(Design of Experiments)DDACE,FSUDACE,PSUADE • 不確かさ定量(Uncertainty Quantification) • 最適化(Optimization) • 校正(Calibration) DAKOTA BlackBox (OpenFOAM) input X 決定論的、確率論的 output Y 微分可能/不可能、連続/離散 Experimental Data Constraint Condition
  5. 5. なぜDAKOTAなのか? • Hybrid optimization(continuous,descrete, stochastic etc.) • Surrogate-based optimization • GUI • Bayesian Calibration • Parallel Computing
  6. 6. Seleciton of Parameter study, DOE,DACE,sampling method
  7. 7. UQ method selection
  8. 8. Optimization method selection Method Variable Constraint Gradient Based Local Smooth Continuous No bound Bound Linear & nonlinear Gradient Based Global Smooth Continuous Bound Linear & nonlinear Derivative Free Local Nonsmooth Continuous/ Decreate Bound Linear & nonlinear Derivative Free Global Nonsmooth Continuous/ Decreate Bound Linear & nonlinear
  9. 9. AhmedBody周りの流れ 40m/s L×W×H=1.044×0.389×0.338m 約20万セル simpleFoam, Steady, kωSST Iteration:200(original=500) Slant angle= 0-25deg(6case) (0riginal 26case) openscad Dakota OpenFoam Slant angle Stl file Cd:抗力係数 Slant angle
  10. 10. ファイル構成 (ahmed_multi_v1806_1) casebase  OpenFOAM case file templatedir : input.template  OpenFOAMへ引き渡すインプット値のテンプレート run_simulation.template  OpenFOAMでの命令プログラムのテンプレート dprepro OpenFOAM実行前後のプリポスト処理プログラム(今回は詳細説明はなし) simulator_script  DAKOTA制御プログラム Dakota_of_ahmed_multi.in  DAKOTA制御インプットファイル dakota_cleanup  ファイル初期化
  11. 11. Dakota_of_arhmed_multi.in environment #graphics tabular_data tabular_data_file = 'table_out.dat' method multidim_parameter_study partitions = 5 model single variables continuous_design = 1 lower_bounds 0.0 upper_bounds 25.0 descriptors 'x1'  Cd値の結果ファイル名  領域を5分割  入力変数 ‘x1’  変数 1個  下限 0.0  上限 25.0  多次元パラメータスタディ
  12. 12. Dakota_of_arhmed_multi.in (つづき) interface fork asynchronous evaluation_concurrency = 2 analysis_driver = 'simulator_script' parameters_file = 'params.in' results_file = 'results.out’ work_directory directory_tag copy_files = ‘templatedir/*’ # uncomment to leave params.in and results.out files in work_dir subdirectories named ‘workdir‘ file_save directory_save aprepro ## when using conmin_frcg (above) with analytic_gradients (below), ## need to turn off the active set vector as the interface does not parse it. deactivate active_set_vector  計算実行命令ファイル  パラメータ入力ファイル  計算結果出力ファイル  テンプレートファイル  外部ソルバー利用  複数条件の同時計算  同時計算数  ワーキングディレクトリにタグをつける 例 条件番号Nのときworkdir.N ワーキングディレクトリ名 ファイル保存ON ディレクトリ保存ON
  13. 13. simlator_script dprepro $1 run_simulation.template run_simulation dprepro $1 input.template input.txt pwd cp -r ../casebase/* . sh run_simulation awk 'NR>=100 && NR<=200 { total += $3; count++ } END { print "Mean_drag " total/count}' postProcessing/forceCoeffs1/0/coefficient.dat > drag_coe.txt awk 'NR>=100 && NR<=200 { total += $3; totalsq += $3*$3; count++} END {print "Std_dev " sqrt(1/count*(totalsq - (total/count)^2))}' postProcessing/forceCoeffs1/0/coefficient.dat >> drag_coe.txt awk 'NR==1 {print $2}' drag_coe.txt > tmp.txt mv tmp.txt $2 テンプレートからrun_simulation, input.txtの生成 coefficient.datの100~200ステップのCd平均値をdrag_coe.txtに出力 作業フォルダの生成、OpenFOAM実行 coefficient.datの100~200ステップのCd偏差値Cdをdrag_coe.txtに出力
  14. 14. run_simulation openscad -o geo/ab.stl -D angle=0.000000000000000e+00 geo/ahmed_body2.scad cp geo/ab.stl constant/triSurface/ surfaceTransformPoints -scale '(0.001 0.001 0.001)' constant/triSurface/ab.stl constant/triSurface/abscale.stl > log.surfacescale surfaceFeatureExtract > log.featureextract Openscadでahmed_body2.scadにangle=0を代入し、ab.stlを出力
  15. 15. run_simulation(つづき) blockMesh > log.blockmesh decomposePar > log.decomposepar mpirun -np 4 snappyHexMesh -overwrite -parallel > log.snappy mpirun -np 4 checkMesh -parallel > log.checkmesh reconstructParMesh -mergeTol 1e-06 -constant decomposePar -fields mpirun -np 4 simpleFoam -parallel > log.simpleFoam reconstructPar -latestTime > log.reconstructPar rm -rf processor*
  16. 16. Dakota実行 $ . /opt/DAKOTA/dakota68/setDakota $dakota -i dakota_of.in –o run.out > stdout.out
  17. 17. openscad Slant angle プログラム言語によるCAD。パラメータ を変数で与えやすい。
  18. 18. mesh Angle=0° Angle=10° Angle=20°
  19. 19. U Angle=0° Angle=10° Angle=20°
  20. 20. table_out.dat Cd:抗力係数 今回計算 オリジナル計算
  21. 21. 並列数の影響 OpenFOAM並列数 Evalution concurrency Total wall clock (s) 4 1 620 4 2 2976 4 3 4283 1 1 1029 1 2 714 1 3 613
  22. 22. まとめ ・OpenFOAMにおけるDAKOTA使用についてOFWorkshop11のトレーニング例をトレース。但し、 環境はDAKOTA6.8、OpenFOAM v1806としたためCasebaseを修正した。 ・ArhmedBody周りの定常流れについて、Cd値へのSlant Angle(傾斜角)の影響をパラメーター スタディした。

×