{"id":13349,"date":"2021-08-22T11:06:52","date_gmt":"2021-08-22T02:06:52","guid":{"rendered":"https:\/\/ocse2.com\/?p=13349"},"modified":"2021-10-04T18:41:57","modified_gmt":"2021-10-04T09:41:57","slug":"dexcs%e3%83%a9%e3%83%b3%e3%83%81%e3%83%a3%e3%83%bc-v2-5-%e8%a3%bd%e4%bd%9c%e3%83%a1%e3%83%a2-4-5","status":"publish","type":"post","link":"https:\/\/ocse2.com\/?p=13349","title":{"rendered":"DEXCS\u30e9\u30f3\u30c1\u30e3\u30fc v2.5 \u88fd\u4f5c\u30e1\u30e2 \/ 4.5"},"content":{"rendered":"<p><!-- admax --><br \/>\n<script src=\"\/\/adm.shinobi.jp\/s\/f441a8efe75e3127b36ac8c4fda493f7\"><\/script><br \/>\n<!-- admax --><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4.5 \u307e\u3068\u3081<\/h2>\n\n\n\n<p>\u4ee5\u4e0a\u3067\u3001CfdOF\u3092\u6539\u5909\u3057\u3066\u3001DEXCS\u30e9\u30f3\u30c1\u30e3\u30fc\u306e\u6a5f\u80fd\u306e\u80a9\u4ee3\u308f\u308a\u3068\u3001\u4e88\u5b9a\u3057\u3066\u3044\u305f\u6a5f\u80fd\u8ffd\u52a0\u3092\u51e1\u305d\u5b9f\u73fe\u3067\u304d\u305f\u3068\u8003\u3048\u3066\u3044\u308b\uff08\u6b21\u7ae0\u306epost\u51e6\u7406\u6a5f\u80fd\u306f\u3001CfdOF\u306e\u6539\u5909\u3068\u306f\u76f4\u63a5\u95a2\u4fc2\u306a\u3044\uff09\u3002<\/p>\n\n\n\n<p>\u3053\u3053\u3067\u6539\u3081\u3066\u3001DEXCS\u6a19\u6e96\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u984c\u6750\u306b\u6539\u5909\u3057\u305fdexcsCfdOF\u306e\u52d5\u4f5c\u3092\u78ba\u8a8d\u3057\u3001\u8868\u793a\u3084\u64cd\u4f5c\u65b9\u6cd5\u306e\u9762\u3067\u554f\u984c\u306b\u306a\u308b\u304b\u3082\u3057\u308c\u306a\u3044\u9805\u76ee\u3092\uff08\u3053\u308c\u307e\u3067\u306e\u53d6\u308a\u7d44\u307f\u3067\u4eca\u5f8c\u306e\u8ab2\u984c\u3068\u3057\u305f\u9805\u76ee\u3082\u542b\u3081\u3066\uff09\u53d6\u308a\u7e8f\u3081\u3066\u304a\u304f\u3053\u3068\u306b\u3057\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.5.1 \u52d5\u4f5c\u78ba\u8a8d<\/h3>\n\n\n\n<p>\u5148\u306b\u3001<a href=\"https:\/\/ocse2.com\/?p=13228\">3.7. \u4e2d\u9593\u307e\u3068\u3081<\/a>\u3067\u5b9f\u65bd\u3057\u305f\u3082\u306e\u3068\u6bd4\u8f03\u3057\u306a\u304c\u3089\u8aac\u660e\u3059\u308b\u3002\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u3092\u5207\u308a\u66ff\u3048\u3001[CfdAnalysisis]\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u307e\u3067\u306f\u540c\u3058\u3067\u3042\u308b\u304c\u3001\u3053\u3053\u3067\u306f\u3001\u3053\u306e\u6bb5\u968e\u3067\u3001<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"882\" height=\"570\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/ff996b37cb57020b11bb67cda3f97a6e.png\" alt=\"\" class=\"wp-image-13350\"\/><figcaption>\u56f342<\/figcaption><\/figure><\/div>\n\n\n\n<p>CFDMesh\u30b3\u30f3\u30c6\u30ca\u3082\u4f75\u305b\u3066\u8ffd\u52a0\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u3002\u3053\u308c\u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3059\u308c\u3070\u3001\u6539\u5909\u3057\u305f\u30e1\u30c3\u30b7\u30e5\u4f5c\u6210\u30bf\u30b9\u30af\u753b\u9762\uff08dexcsCFD Mesh\uff09\u304c\u8868\u793a\u3055\u308c\u308b\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"797\" height=\"414\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/e18d3670052722b7b537212857f2b98a.png\" alt=\"\" class=\"wp-image-13351\"\/><figcaption>\u56f343<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u3053\u308c\u3092\u4e00\u65e6\u9589\u3058\u3066\u3001<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">CFDMesh\u30b3\u30f3\u30c6\u30ca\u3092\u9078\u629e\u3057\u305f\u72b6\u614b\u306b\u3042\u308c\u3070\u3001[\u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316]\u30dc\u30bf\u30f3\u304c\u6709\u52b9\u306b\u306a\u308b\u306e\u3067\u3001\u3053\u308c\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u540c\u69d8\u306b\u6539\u5909\u3057\u305f\u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316\u306e\u30bf\u30b9\u30af\u753b\u9762\uff08Mesh refinement\uff09\u304c\u73fe\u308c\u308b\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"788\" height=\"430\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/4d1b946850c53c9d7099a8202b53fd71.png\" alt=\"\" class=\"wp-image-13352\"\/><figcaption>\u56f344<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u30aa\u30ea\u30b8\u30ca\u30eb\u306eCdfOF\u8a2d\u5b9a\u753b\u9762\u306b\u6bd4\u3079\u308b\u3068\u3001\u8a2d\u5b9a\u9805\u76ee\u304c\u5897\u3048\u305f\u3068\u3044\u3046\u7169\u308f\u3057\u3055\u306f\u3042\u308b\u304b\u3082\u3057\u308c\u306a\u3044\u304c\u3001\u7d30\u5206\u5316\u30ec\u30d9\u30eb\u3068\u30bb\u30eb\u30b5\u30a4\u30ba\u304c\u9023\u52d5\u3057\u3066\u52d5\u304f\u8fba\u308a\u306f\u89e3\u308a\u3084\u3059\u304f\u306a\u3063\u305f\u306e\u3067\u306f\u306a\u3044\u304b\u3068\u601d\u3046\u3002\u8ffd\u52a0\u3057\u305f\u9805\u76ee\u306b\u3064\u3044\u3066\u3082\u3001cfMesh\u306b\u95a2\u3059\u308b\u77e5\u8b58\u306e\u7121\u3044\u4eba\u306b\u306f\u96e3\u3057\u3044\u304b\u3082\u3057\u308c\u306a\u3044\u304c\u3001\u4f55\u3082\u30c1\u30a7\u30c3\u30af\u305b\u305a\u305d\u306e\u307e\u307e\u3067\u3082\u4f7f\u3048\u308b\u306e\u3067\u5927\u304d\u306a\u554f\u984c\u306f\u306a\u3044\u304c\u3001\u5f8c\u3067\u3082\u3046\u5c11\u3057\u8003\u3048\u308b\u3053\u3068\u3068\u3057\u305f\u3044\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"653\" height=\"514\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/c89f981495cb1d9d615215fb0d0f3ab8.png\" alt=\"\" class=\"wp-image-13353\"\/><figcaption>\u56f345<\/figcaption><\/figure><\/div>\n\n\n\n<p>DEXCS\u6a19\u6e96\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u5834\u5408\u306e\u63a8\u5968\u8a2d\u5b9a\u306f\u3001Dexcs\u3092\u5bfe\u8c61\u3068\u3057\u305f\u8868\u9762\u7d30\u5206\u5316\u3068\u3001regionBox\u3092\u5bfe\u8c61\u3068\u3057\u305f\u5185\u90e8\u9818\u57df\u7d30\u5206\u5316\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u306b\u306a\u308b\uff08\u56f3\uff09\u304c\u3001\u5bfe\u8c61\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6bce\u306e\u533a\u5225\u3067\u306a\u304f\u3001\u7d30\u5206\u5316\u65b9\u6cd5\u6bce\u306e\u533a\u5225\u3067\u3042\u308b\u70b9\u306b\u306f\u7559\u610f\u3057\u305f\u3044\u3002\u3059\u306a\u308f\u3061\u7d30\u5206\u5316\u65b9\u6cd5\u3068\u3044\u3046\u306e\u306f\u3001<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u8868\u9762\u7d30\u5206\u5316\u304b\u5185\u90e8\u7d30\u5206\u5316<\/li><li>\u7d30\u5206\u5316\u30ec\u30d9\u30eb\u306e\u9055\u3044<\/li><li>\u30ec\u30a4\u30e4-\u306e\u6709\u7121\u3001\u307e\u305f\u305d\u306e\u30d1\u30e9\u30e1\u30bf\u306e\u9055\u3044<\/li><li>keepCellIntersectingPatches\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u6709\u7121<\/li><li>removeCellsIntersectingPatch\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u6709\u7121<\/li><\/ul>\n\n\n\n<p>\u306e\u9055\u3044\u306b\u5fdc\u3058\u3066\u5fc5\u8981\u306a\u6570\u3060\u3051\u8ffd\u52a0\u3059\u308b\u3053\u3068\u306b\u306a\u308b\u306e\u3067\u3042\u3063\u3066\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u5bfe\u8c61\u306b\u500b\u3005\u306b\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u306f\u306a\u304f\u3001References\u306e\u30ea\u30b9\u30c8\u306e\u4e2d\u3067\u8907\u6570\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u308b\u3002\u4f46\u3057\u4e00\u3064\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5bfe\u3057\u3066\u3001\u8907\u6570\u306e\u7570\u306a\u308b\u8a2d\u5b9a\u304c\u3042\u3063\u305f\u5834\u5408\u306e\u7d50\u679c\u304c\u3069\u3046\u306a\u308b\u304b\u306f\u3001\u3084\u3063\u3066\u307f\u306a\u3044\u3068\u308f\u304b\u3089\u306a\u3044\uff08\u3069\u3061\u3089\u304c\u8a2d\u5b9a\u3055\u308c\u308b\u304b\u306f\u30b1\u30fc\u30b9\u30d0\u30a4\u30b1\u30fc\u30b9\u306b\u306a\u308b\u3068\u601d\u308f\u308c\u308b\uff09\u3002<\/p>\n\n\n\n<p>\u7d30\u5206\u5316\u8a2d\u5b9a\u304c\u7d42\u4e86\u3057\u305f\u3089\u3001\u30e1\u30c3\u30b7\u30e5\u4f5c\u6210\u30bf\u30b9\u30af\u753b\u9762\u306b\u623b\u308b\u3002\u30b0\u30ed\u30fc\u30d0\u30eb\u30aa\u30d7\u30b7\u30e7\u30f3\u3084\u3001Scale to Meter \u3068\u3044\u3063\u305f\u6539\u5909\u9805\u76ee\u306f\u3042\u308b\u304c\u3001<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">DEXCS\u6a19\u6e96\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u5834\u5408\u306f\u3053\u306e\u307e\u307e[Write mesh case]\u21d2[Run mesher]<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">\u21d2{Paraview]\u3068\u62bc\u3057\u3066\u3044\u3063\u3066\u3001\u30bd\u30eb\u30d0\u30fc\u5b9f\u884c\u307e\u3067\u306e\u64cd\u4f5c\u306f<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\"><a href=\"https:\/\/ocse2.com\/?p=13228\">3.7. \u4e2d\u9593\u307e\u3068\u3081<\/a>\u3067\u5b9f\u65bd\u3057\u305f\u306e\u3068\u5168\u304f\u540c\u4e00\u306e\u624b\u9806\u3067\u540c\u4e00\u306e\u7d50\u679c\u306b\u306a\u308b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.5.2 \u554f\u984c\u70b9\u306a\u3069<\/h3>\n\n\n\n<p>\u30e1\u30c3\u30b7\u30e5\u4f5c\u6210\u30bf\u30b9\u30af\u753b\u9762<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30b3\u30f3\u30dc\u30d3\u30e5\u30fc\u306e\u30bf\u30b9\u30af\u753b\u9762\u306f\u7e26\u30b9\u30af\u30ed\u30fc\u30eb\u53ef\u80fd\u3060\u304c\u6a2a\u30b9\u30af\u30ed\u30fc\u30eb\u304c\u3067\u304d\u306a\u3044\u3002\u6539\u5909\u306b\u3088\u3063\u3066\u6a2a\u5e45\u304c\u5927\u304d\u304f\u306a\u3063\u305f\u4e8b\u306b\u3088\u308a\u3001\u753b\u9762\u30b5\u30a4\u30ba\u306e\u5909\u66f4\u7b49\u306e\u624b\u9593\u304c\u5897\u3048\u308b\u3002\u21d2\u6a2a\u5e45\u304c\u5927\u304d\u304f\u306a\u3089\u306a\u3044\u30ec\u30a4\u30a2\u30a6\u30c8\u306b\u3067\u304d\u308c\u3070\u826f\u3044\u3002<\/li><li>Visualisation \u30d6\u30ed\u30c3\u30af\u306e\u3001[Load surface mesh][Clear]\u30dc\u30bf\u30f3\u306e\u610f\u5473\u4e0d\u660e\u21d2\u5f53\u9762\u524a\u9664<\/li><li>\u4ee3\u308f\u308a\u306b[checkMesh]\u3067\u3069\u3046\u304b<\/li><li>Mesh Parameter \u30d6\u30ed\u30c3\u30af\u306e[Element dimension:],[Mesh utility]\u21d2\u5f53\u9762\u524a\u9664<\/li><li>optimiseLayer \u30aa\u30d7\u30b7\u30e7\u30f3\u306emaximum allowed thickness \u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u30000.01\u3000\u21d2\u30000.05 \u21d2<a href=\"#ref4\">(5)<\/a><\/li><\/ul>\n\n\n\n<p>\u30e1\u30c3\u30b7\u30e5\u4f5c\u6210\u30b3\u30f3\u30c6\u30ca<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>[Characteristic Length Max] \u21d2 [Base Mesh Size] \u21d2<a href=\"#ref2\" data-type=\"URL\">(2)<\/a><\/li><li>\u4e0a\u8a18\u306e\u30ed\u30b8\u30c3\u30af\u5909\u66f4\u21d2<a href=\"#ref3\" data-type=\"URL\">(3)<\/a><\/li><li>\u4f7f\u7528\u3057\u306a\u3044\u307e\u305f\u306f\u4e0d\u8981\u306a\u30d1\u30e9\u30e1\u30bf<ul><li>Case Name<\/li><li>Number Of Processes<\/li><li>Number Of Treads<\/li><li>STLLinear Deflection<\/li><li>Cells Between Levels<\/li><li>Edge Refinement<\/li><li>(Element Dimension)<\/li><li>(Mesh Utility)<\/li><li>Part<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>\u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316\u30bf\u30b9\u30af\u753b\u9762<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Boundary Layers\u306b\u30c1\u30a7\u30c3\u30af\u3092\u5165\u308c\u305f\u5834\u5408\u306e[Number of layers:]\u30c7\u30d5\u30a9\u30eb\u30c8\u5024 1\u21d2 3 \u21d2<a href=\"#ref4\">(6)<\/a><\/li><li>[keepCells&#8230;][removeCells&#8230;]\u3092[MoreOption]\u3067\u4e00\u62ec\u3000\u21d2<a href=\"#ref8\">(8)<\/a><\/li><li>References \u21d2 Object \u21d2<a href=\"#ref4\">(7)<\/a><\/li><li>Refinement Parameter (cfMesh) \u306e\u30e9\u30d9\u30eb\u4e0d\u8981\u3001\u30d1\u30e9\u30e1\u30bf\u3082[MoreOption]\u3078<\/li><\/ul>\n\n\n\n<p>\u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316\u30b3\u30f3\u30c6\u30ca<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>snappy Hex&#8230; \u4ee5\u4e0b\u306f\u4e0d\u8981 \u21d2<a href=\"#ref9\">(9)<\/a><\/li><\/ul>\n\n\n\n<p>\u30bd\u30eb\u30d0\u30fc<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Input Case Name ?<\/li><li>\u4e26\u5217\u30aa\u30d7\u30b7\u30e7\u30f3<ul><li>\u30bf\u30b9\u30af\u753b\u9762\u3067\u8a2d\u5b9a\u9805\u76ee\u306a\u3057<\/li><li>\u30d7\u30ed\u30d1\u30c6\u30a3\u3067\u8a2d\u5b9a\u306f\u3042\u308b\u304c\u3001\u6a5f\u80fd\u3057\u3066\u3044\u306a\u3044<\/li><\/ul><\/li><li>Iteration Control \/ Time Step Control \u306f\u4f7f\u7528\u3057\u3066\u3044\u306a\u3044<\/li><\/ul>\n\n\n\n<p>\u305d\u306e\u4ed6\u5168\u822c<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u306e\u30a2\u30a4\u30b3\u30f3<\/li><li>\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u3044\u8868\u793a\u3055\u308c\u308b\u6570\u5024\u306e\u5c0f\u6570\u70b9\u4ee5\u4e0b\u6841\u6570\u306e\u554f\u984c<\/li><li>CfdOF\u306e\u30aa\u30ea\u30b8\u30ca\u30eb\u30bd\u30fc\u30b9\uff08\u30d5\u30a1\u30a4\u30eb\u540d\uff09\u306e\u6539\u5909\u21d2\u5225\u540d\uff08dexcs&#8230;.py\uff09\u21d2<a href=\"#ref1\">(1)<\/a><\/li><li>testDict_&#8230;. \u21d2 dexcsCfdDict_&#8230; \u21d2<a href=\"#ref4\">(4)<\/a><\/li><li>\u65e5\u672c\u8a9e\u8f9e\u66f8<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4.5.3 \u8ffd\u52a0\u306e\u30bd\u30fc\u30b9\u6539\u5909<\/h3>\n\n\n\n<p>\u524d\u7bc0\u306e\u554f\u984c\u70b9\u306b\u5bfe\u3057\u3001\u73fe\u6642\u70b9\u3067\u5bfe\u5fdc\u53ef\u80fd\u3067\u3042\u3063\u305f\u7b87\u6240\u306b\u3064\u3044\u3066\u3001\u4ee5\u4e0b\u306b\u53d6\u308a\u7e8f\u3081\u3066\u304a\u304f\u304c\u3001\u5bfe\u5fdc\u306e\u9806\u756a\u306f\u884c\u8fba\u308a\u3070\u3063\u305f\u308a\u3067\u3042\u308b\u70b9\u306f\u304a\u65ad\u308a\u3057\u3066\u304a\u304f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ref1\">(1) CfdOF\u306e\u30aa\u30ea\u30b8\u30ca\u30eb\u30bd\u30fc\u30b9\uff08\u30d5\u30a1\u30a4\u30eb\u540d\uff09\u306e\u6539\u5909\u21d2\u5225\u540d\uff08dexcs&#8230;.py\uff09<\/h4>\n\n\n\n<p>\u6700\u7d42\u7684\u306b\u3001CfdOF\u306e\u30aa\u30ea\u30b8\u30ca\u30eb\u30bd\u30fc\u30b9\u304b\u3089\u306e\u5909\u66f4\u70b9\u3092diff\u30c4\u30fc\u30eb\u3092\u4f7f\u3063\u3066\u660e\u78ba\u306b\u3057\u305f\u304f\u306a\u308b\u3067\u3042\u308d\u3046\u304b\u3089\u3001\u73fe\u6642\u70b9\u3067CfdOF\u30aa\u30ea\u30b8\u30ca\u30eb\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u3068\u3001\u305d\u308c\u306b\u5bfe\u5fdc\u3059\u308bdecxsCfdOF\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u3068\u306e\u5bfe\u5fdc\u8868\u3092\u4ee5\u4e0b\u306b\u793a\u3057\u3066\u304a\u304f\u3002<\/p>\n\n\n\n<p>\u57fa\u672c\u306f\u3001\u30aa\u30ea\u30b8\u30ca\u30eb\u306e\u30b3\u30fc\u30c9\u3092\u5c11\u3057\u3067\u3082\u5909\u66f4\u3057\u305f\u3089\u6539\u540d\u3057\u3066\u3044\u308b\u304c\u3001\u6539\u540d\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3082\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u51fa\u3066\u304f\u308b\u306e\u3067\u3001\u6700\u7d42\u7684\u306b\u306f\u307b\u3068\u3093\u3069\u3059\u3079\u3066\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u751f\u3058\u3066\u3057\u307e\u3046\u3002\u3055\u3059\u304c\u306binitGUI.py \u306e\u540d\u524d\u307e\u3067\u5909\u66f4\u3057\u3066\u3057\u307e\u3046\u3068\u3001\uff08\u591a\u5206\uff09\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u304c\u8d77\u52d5\u3057\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3046\u306e\u3067\u3001\u305d\u3053\u307e\u3067\u306f\u6539\u540d\u3057\u306a\u304b\u3063\u305f\u304c\u3001\u305d\u306e\u307e\u307e\u4f7f\u3048\u3066\u3044\u308b\u30d5\u30a1\u30a4\u30eb\u3082\u3044\u304f\u3064\u304b\u5b58\u5728\u3059\u308b\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>CfdOF\u30aa\u30ea\u30b8\u30ca\u30eb<\/th><th>dexcsCfdOF<\/th><\/tr><\/thead><tbody><tr><td>CfdAnalysis.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsCfdAnalysis.py<\/span><\/td><\/tr><tr><td>CfdCaseWriterFoam.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsCfdCaseWriterFoam.py<\/span><\/td><\/tr><tr><td>CfdConsoleProcess.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsCfdConsoleProcess.py<\/span><\/td><\/tr><tr><td>CfdFaceSelectWidget.py<\/td><td>CfdFaceSelectWidget.py<\/td><\/tr><tr><td>CfdFluidBoundary.py<\/td><td><\/td><\/tr><tr><td>CfdFluidMaterial.py<\/td><td><\/td><\/tr><tr><td>CfdInitialiseFlowField.py<\/td><td><\/td><\/tr><tr><td>CfdMesh.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsCfdMesh.py<\/span><\/td><\/tr><tr><td>CfdMeshRefinement.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsCfdMeshRefinement.py<\/span><\/td><\/tr><tr><td>CfdMeshTools.py<\/td><td><\/td><\/tr><tr><td>CfdPhysicsSelection.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsCfdMeshTools.py<\/span><\/td><\/tr><tr><td>CfdPreferencePage.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsCfdPreferencePage.py<\/span><\/td><\/tr><tr><td>CfdPreferencePage.ui<\/td><td>CfdPreferencePage.ui<\/td><\/tr><tr><td>CfdResidualPlot.py<\/td><td>CfdResidualPlot.py<\/td><\/tr><tr><td>CfdRunnableFoam.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsCfdRunnableFoam.py<\/span><\/td><\/tr><tr><td>CfdSolverFoam.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsCfdSolverFoam.py<\/span><\/td><\/tr><tr><td>CfdTools.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsCfdTools.py<\/span><\/td><\/tr><tr><td>CfdZone.py<\/td><td><\/td><\/tr><tr><td>Init.py<\/td><td><meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">Init.py<\/td><\/tr><tr><td>InitGui.py<\/td><td><span class=\"has-inline-color has-vivid-cyan-blue-color\">InitGui.py<\/span><\/td><\/tr><tr><td>README.md<\/td><td>README.md<\/td><\/tr><tr><td>TaskPanelCfdFluidBoundary.ui<\/td><td><\/td><\/tr><tr><td>TaskPanelCfdFluidProperties.ui<\/td><td><\/td><\/tr><tr><td>TaskPanelCfdInitialiseInternalField.ui<\/td><td><\/td><\/tr><tr><td>TaskPanelCfdListOfFaces.ui<\/td><td>TaskPanelCfdListOfFaces.ui<\/td><\/tr><tr><td>TaskPanelCfdMesh.ui<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsTaskPanelCfdMesh.ui<\/span><\/td><\/tr><tr><td>TaskPanelCfdMeshRefinement.ui<\/td><td><span class=\"has-inline-color has-vivid-red-color\">dexcsTaskPanelCfdMeshRefinement.ui<\/span><\/td><\/tr><tr><td>TaskPanelCfdSolverControl.ui<\/td><td>TaskPanelCfdSolverControl.ui<\/td><\/tr><tr><td>TaskPanelCfdZone.ui<\/td><td><\/td><\/tr><tr><td>TaskPanelPhysics.ui<\/td><td><\/td><\/tr><tr><td>TemplateBuilder.py<\/td><td><meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">TemplateBuilder.py<\/td><\/tr><tr><td>TestCfd.py<\/td><td><\/td><\/tr><tr><td>WindowsRunWrapper.py<\/td><td>WindowsRunWrapper.py<\/td><\/tr><tr><td>_TaskPanelCfdFluidBoundary.py<\/td><td><\/td><\/tr><tr><td>_TaskPanelCfdFluidProperties.py<\/td><td><\/td><\/tr><tr><td>_TaskPanelCfdInitialiseInternalFlowField.py<\/td><td><\/td><\/tr><tr><td>_TaskPanelCfdMesh.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">_dexcsTaskPanelCfdMesh.py<\/span><\/td><\/tr><tr><td>_TaskPanelCfdMeshRefinement.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">_dexcsTaskPanelCfdMeshRefinement.py<\/span><\/td><\/tr><tr><td>_TaskPanelCfdPhysicsSelection.py<\/td><td><\/td><\/tr><tr><td>_TaskPanelCfdSolverControl.py<\/td><td><span class=\"has-inline-color has-vivid-red-color\">_dexcsTaskPanelCfdSolverControl.py<\/span><\/td><\/tr><tr><td>_TaskPanelCfdZone.py<\/td><td><\/td><\/tr><tr><td>metadata.txt<\/td><td><meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">metadata.txt<\/td><\/tr><tr><td>Gui<\/td><td>Gui<\/td><\/tr><tr><td>data\/CfdFluidMaterialProperties<\/td><td><\/td><\/tr><tr><td>data\/defaults<\/td><td><\/td><\/tr><tr><td>data\/defaultsMesh<\/td><td><\/td><\/tr><tr><td><\/td><td><span class=\"has-inline-color has-vivid-green-cyan-color\">data\/dexcs<\/span><\/td><\/tr><tr><td><\/td><td><span class=\"has-inline-color has-vivid-green-cyan-color\">data\/dexcsMesh<\/span><\/td><\/tr><tr><td>testFiles<\/td><td><\/td><\/tr><tr><td><\/td><td><span class=\"has-inline-color has-vivid-purple-color\">dexcsCfMeshTools.py<\/span><\/td><\/tr><\/tbody><\/table><figcaption>\u8868\u3000CfdOF\u30aa\u30ea\u30b8\u30ca\u30eb\u30bd\u30fc\u30b9\u3068dexcsCfdOF \u3067\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u5bfe\u5fdc\u8868<\/figcaption><\/figure>\n\n\n\n<p>\u53f3\u6b04\u9ed2\u5b57\u4ee5\u5916\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3001\u5de6\u6b04\u306e\u30aa\u30ea\u30b8\u30ca\u30eb\u30d5\u30a1\u30a4\u30eb\u3092\u30d9\u30fc\u30b9\u306b\u6539\u5909\u304c\u65bd\u3055\u308c\u3066\u3044\u308b\u3002\u307e\u305f\u6700\u4e0b\u884c\u306e\u3001dexcsCfMeshTools.py \u306f\u3001DEXCS\u30de\u30af\u30ed\u306e\u30aa\u30ea\u30b8\u30ca\u30eb\u30b3\u30fc\u30c9\u3092\u6539\u5909\u3057\u305f\u3082\u306e\u3067\u3042\u308a\u3001\u305d\u306e\u4e0a\u306e\u7dd1\u5b57\u30d5\u30a9\u30eb\u30c0\u5185\u306b\u53ce\u9332\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306f\u3001\u30aa\u30ea\u30b8\u30ca\u30eb\u306edata\/defaults, data\/defaultsMesh\u306b\u5b58\u5728\u3057\u305fparaView\u306e\u7acb\u3061\u4e0a\u3052\u7528\u30b9\u30af\u30ea\u30d7\u30c8\u3060\u3051\u3092\u30d5\u30a9\u30eb\u30c0\u540d\u3092\u5909\u66f4\u3057\u3066\u8ffd\u52a0\u3057\u305f\u3082\u306e\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ref2\">(2) <span style=\"background-color: rgba(0, 0, 0, 0.2); font-size: revert; color: initial;\">CharacteristicLengthMax \u21d2 BaseCellSize<\/span> <\/h4>\n\n\n\n<p>\u57fa\u672c\u7684\u306b\u30c6\u30ad\u30b9\u30c8\u691c\u7d22\u3057\u3066\u3001\u7f6e\u304d\u63db\u3048\u308b\u3060\u3051\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>_dexcsTaskPanelCfdMesh.py<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>def load(self):\n    \"\"\" Fills the widgets \"\"\"\n    setQuantity(self.form.if_max, self.mesh_obj.<span class=\"has-inline-color has-vivid-red-color\">CharacteristicLengthMax<\/span>)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>def store(self):\n    FreeCADGui.doCommand(\"FreeCAD.ActiveDocument.{}.MeshUtility \"\n                         \"= '{}'\".format(self.mesh_obj.Name, self.form.cb_utility.currentText()))\n    FreeCADGui.doCommand(\"\\nFreeCAD.ActiveDocument.{}.<span class=\"has-inline-color has-vivid-red-color\">CharacteristicLengthMax<\/span> \"\n                         \"= '{}'\".format(self.mesh_obj.Name, getQuantity(self.form.if_max)))<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>_dexcsTaskPanelCfdMeshRefinement.py<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>(L73)    self.baseMeshSize = Units.Quantity(self.mesh_obj.<span class=\"has-inline-color has-vivid-red-color\">CharacteristicLengthMax<\/span>).Value<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>(L109)   self.mesh_obj.<span class=\"has-inline-color has-vivid-red-color\">CharacteristicLengthMax<\/span> = float(cellLength) * 2**(self.form.if_reflevel.value())<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>dexcsCfdMesh.py<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>(L138) addObjectProperty(obj, \"<span class=\"has-inline-color has-vivid-red-color\">CharacteristicLengthMax<\/span>\", \"0 m\", \"App::PropertyLength\", \"Mesh Parameters\",\n                          \"Max mesh element size (0.0 = infinity)\")\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>dexcsCfdMeshTools.py<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>(L54)       self.clmax = Units.Quantity(self.mesh_obj.<span class=\"has-inline-color has-vivid-red-color\">CharacteristicLengthMax<\/span>).Value<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code> (L86)      self.mesh_obj.<span class=\"has-inline-color has-vivid-red-color\">CharacteristicLengthMax<\/span> = sumOf3Edges \/ 60.0       <\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>dexcsCfMeshTools.py<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>(L1694)  testDict_maxCellSize = self.mesh_obj.<span class=\"has-inline-color has-vivid-red-color\">CharacteristicLengthMax<\/span> * self.mesh_obj.ScaleToMeter<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ref3\">(3) BaseMeshSize \u306e\u30ed\u30b8\u30c3\u30af\u5909\u66f4<\/h4>\n\n\n\n<p><meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">\u524d\u9805\u306b\u304a\u3044\u3066\u3001<span style=\"font-size: revert; color: initial;\">dexcsCfdMeshTools.py\u306b\u3066BaseCellSize\u3092\u8a08\u7b97\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u6539\u3081\u3066\u308f\u304b\u3063\u305f\u306e\u3067\u3001\u3064\u3044\u3067\u306b\u3053\u306e\u30ed\u30b8\u30c3\u30af\u3082\u5909\u66f4\u3057\u305f\u3002<\/span><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><span class=\"has-inline-color has-vivid-green-cyan-color\">#self.mesh_obj.BaseCellSize = sumOf3Edges \/ 60.0       \n<\/span>self.mesh_obj.BaseCellSize = ((xmax-xmin)*(ymax-ymin)*(zmax-zmin)\/<span class=\"has-inline-color has-vivid-red-color\">6000<\/span>) ** (1\/3)       <\/code><\/pre>\n\n\n\n<p>\u65e7\u30ed\u30b8\u30c3\u30af\u3082\u30b3\u30e1\u30f3\u30c8\u884c\u3068\u3057\u3066\u6b8b\u3057\u3066\u304a\u304f\u3053\u3068\u306b\u3057\u305f\u3002<span class=\"has-inline-color has-vivid-red-color\">6000<\/span>\u3068\u3044\u3046\u6570\u5b57\u306f\u3001Dexcs\u306e\u6a19\u6e96\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u554f\u984c\u306b\u3066\u3001\u65e7\u30ed\u30b8\u30c3\u30af\u3068\u5927\u4f53\u540c\u3058\u5024\u306b\u306a\u308b\u3088\u3046\u306b\u8a2d\u5b9a\u3057\u305f\u3082\u306e\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ref4\">(4)\u3000testDict_&#8230;. \u21d2 dexcsCfdDict_&#8230;<\/h4>\n\n\n\n<p>\u524d\u3005\u9805\u306b\u304a\u3044\u3066\u3001testDict_&#8230;\u3068\u3044\u3046\u5909\u6570\u540d\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u7b87\u6240\u306b\u8fbf\u308a\u7740\u3044\u3066\u3044\u308b\u306e\u3067\u3001\u524d\u9805\u3068\u540c\u69d8\u3001\u3064\u3044\u3067\u306b\u3053\u308c\u3082\u4fee\u6b63\u3057\u3066\u304a\u304f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(L1693)        \n<span class=\"has-inline-color has-vivid-red-color\">#testDict<\/span> = True\n<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_maxCellSize = self.mesh_obj.BaseCellSize * self.mesh_obj.ScaleToMeter\n<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_minCellSize = Model.EMPTY_STR\n<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_untangleLayerCHKOption = 0\n<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_optimiseLayerCHKOption = self.mesh_obj.optimiseLayer\n<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_nSmoothNormals= str(self.mesh_obj.opt_nSmoothNormals)\n<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_maxNumIterations= str(self.mesh_obj.opt_maxNumIterations)\n<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_featureSizeFactor= str(self.mesh_obj.opt_featureSizeFactor)\nif self.mesh_obj.opt_reCalculateNormals==1:\n    <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_reCalculateNormalsCHKOption = \"1\"\nelse:\n    <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_reCalculateNormalsCHKOption = \"0\"\n<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_relThicknessTol= str(self.mesh_obj.opt_relThicknessTol)\n<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_keepCellsIntersectingBoundaryCHKOption = self.mesh_obj.keepCellsIntersectingBoundary<\/code><\/pre>\n\n\n\n<p>\u306a\u304a\u3001L1693\u3092\u30b3\u30e1\u30f3\u30c8\u884c\u306b\u5909\u66f4\u3057\u305f\u306e\u306f\u3001\u30aa\u30ea\u30b8\u30ca\u30eb\u306eDEXCS\u30de\u30af\u30ed\u306b\u304a\u3044\u3066\u3001\u7d30\u5206\u5316\u6307\u5b9a\u30d1\u30e9\u30e1\u30bf\u306e\u6570\u5b57\u3092CellSize \/ RefLevel\u306e\u3069\u3061\u3089\u3067\u89e3\u91c8\u3055\u305b\u308b\u304b\u306b\u5fdc\u3058\u3066\u3001\u96a0\u3057\u30d1\u30e9\u30e1\u30bf\u7684\u306bmeshDict\u4e2d\u306b\u51fa\u529b\u3057\u3066\u3044\u305f\u7b87\u6240\uff08\u4e0b\u8a18\uff09<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(L1714)\n#if self.viewControl.get_refinementOption() == 1 :\n#if (<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>) :\n#    strings = &#91;'\/\/CellSize\\n']\n#else:\n#    strings = &#91;'\/\/RefLevel\\n']\n#meshDict.writelines(strings)        <\/code><\/pre>\n\n\n\n<p>\u304c\u3042\u3063\u305f\u70ba\u3001\u3053\u308c\u307e\u3067\u306f\u3001<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">self.viewControl.\u3092\u4f7f\u308f\u305a\u306b\u3053\u306e\u90e8\u5206\u3092\u6574\u5408\u3055\u305b\u3088\u3046\u3068\u3057\u3066\u66ab\u5b9a\u7684\u306b\u4f7f\u7528\u3057\u3066\u3044\u305f\u3082\u306e\u3067\u3042\u308b\u304c\u3001\u4eca\u5f8c\u306f\u5fc5\u8981\u7121\u3057\u3068\u5224\u65ad\u3057\u3001\u4e0a\u8a18\u30d6\u30ed\u30c3\u30af\u3082\u4f75\u305b\u3066\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3057\u305f\uff08\u6700\u7d42\u7684\u306b\u306f\u524a\u9664\u306e\u4e88\u5b9a\uff09\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(L1733)        'maxCellSize\\t' + str(<span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_maxCellSize) + ';\\n'<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>(L1741)\nminCellSizeValue = <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_minCellSize\nif str(minCellSizeValue) != Model.EMPTY_STR:\n    meshDict.write('minCellSize\\t' + str(minCellSizeValue) + ';\\n')\nelse:\t\n    meshDict.write('\/\/minCellSize\\t' + ';\\n')\n\nFmsFileName = os.path.basename(self.fmsFileName)\n\n#if self.viewControl.get_untangleLayerCHKOption() == 1 :\nif <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_untangleLayerCHKOption == 1 :\n    untangleLayerString = '\\tuntangleLayers    0; \/\/ \\n'\nelse :\n    untangleLayerString = '\\t\/\/ untangleLayers    0; \/\/ \\n'\n\n#if self.viewControl.get_optimiseLayerCHKOption() == 1 :\nif <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_optimiseLayerCHKOption == 1 :<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>(L1800)\n'  \\t\\tnSmoothNormals\\t' + <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_nSmoothNormals + ';\\n'\n'\\t\\n'\n'  \\t\\t\/\/ maximum number of iterations\\n'\n'  \\t\\t\/\/ of the whole procedure (optional)\\n'\n#'  \\t\\tmaxNumIterations\\t5;\\n'\n'  \\t\\tmaxNumIterations\\t' + <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_maxNumIterations + ';\\n'\n'\\t\\n'\n'  \\t\\t\/\/ ratio between the maximum layer thickness\\n'\n'  \\t\\t\/\/ and the estimated feature size (optional)\\n'\n#'  \\t\\tfeatureSizeFactor\\t0.4;\\n'\n'  \\t\\tfeatureSizeFactor\\t' + <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_featureSizeFactor + ';\\n'\n'\\t\\n'\n'  \\t\\t\/\/ activale 1 or deactivate 0 calculation of normal\\n'\n'  \\t\\t\/\/ (optional)\\n'\n#'  \\t\\treCalculateNormals\\t1;\\n'\n'  \\t\\treCalculateNormals\\t' + <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_reCalculateNormalsCHKOption + ';\\n'\n'\\t\\n'\n'  \\t\\t\/\/ maximum allowed thickness variation of thickness\\n'\n'  \\t\\t\/\/ between two neighbouring points, devided by\\n'\n'  \\t\\t\/\/ the distance between the points (optional)\\n'\n#'  \\t\\trelThicknessTol\\t0.01;\\n'\n'  \\t\\trelThicknessTol\\t' + <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_opt_relThicknessTol + ';\\n'<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>(L1931)\nif <span class=\"has-inline-color has-vivid-red-color\">testDict<\/span>_keepCellsIntersectingBoundaryCHKOption == 1 :<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"ref5\">(5) optimiseLayer \u30aa\u30d7\u30b7\u30e7\u30f3\u306emaximum allowed thickness \u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024<\/h4>\n\n\n\n<p>dexcsCfdMesh.py<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(L131) \naddObjectProperty(obj, \"opt_relThicknessTol\", <span class=\"has-inline-color has-vivid-red-color\">0.05<\/span>, \"App::PropertyFloat\", \"Mesh Parameters\",\n                  \"maximum allowed thickness variation of thickness between two neighbouring points, devided by the distance between the points\")\n <\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Ref6\">(6) Boundary Layers\u306b\u30c1\u30a7\u30c3\u30af\u3092\u5165\u308c\u305f\u5834\u5408\u306e[Number of layers:]\u30c7\u30d5\u30a9\u30eb\u30c8\u5024 <\/h4>\n\n\n\n<p>_dexcsTaskPanelCfdMeshRefinement.py \u306e\u3001def updateUI(self)\u306b\u304a\u3044\u3066\u3001\u4ee5\u4e0b\u8ffd\u52a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if self.form.check_boundlayer.isChecked():\n    if self.form.if_numlayer.value()==1:\n        self.form.if_numlayer.setValue(3)<\/code><\/pre>\n\n\n\n<p>\u307e\u305f\u3001def load(self) \u306b\u304a\u3044\u3066\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (self.obj.KeepCell == True) or (self.obj.RemoveCell == True): \n    self.form.check_moreoption.setChecked(self.obj.KeepCell)\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Ref7\">(7) References \u21d2 Object<\/h4>\n\n\n\n<p>dexcsTaskPanelCfdMeshRefinement.ui \u4e2d\u306e\u4e0b\u8a182\u884c\u306e\u8868\u793a\u30e9\u30d9\u30eb\u3060\u3051\u3092\u5909\u66f4\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(L527)\n(L577)\n         &lt;string&gt;<span class=\"has-inline-color has-vivid-red-color\">Objects<\/span>&lt;\/string&gt;<\/code><\/pre>\n\n\n\n<p>\u306a\u304a\u3001\u3053\u306e\u30e9\u30d9\u30eb\u306f\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    &lt;widget class=\"QFrame\" name=\"ReferencesFrame\"&gt;<\/code><\/pre>\n\n\n\n<p>\u306e\u4e2d\u3067\u8a18\u8ff0\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u3001\u30e9\u30d9\u30eb\u540d\u3092\u5909\u66f4\u3057\u305f\u3089\u3001\u3053\u306ewidget\u540d\u3082\u5909\u66f4\u3057\u305f\u65b9\u304c\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7406\u89e3\u3059\u308b\u306b\u306f\u89e3\u308a\u6613\u3044\u3060\u308d\u3046\u3068\u8003\u3048\u3089\u308c\u308b\u3002\u3057\u304b\u3057\u3053\u3053\u307e\u3067\u5909\u66f4\u3059\u308b\u3068\u3001\u3053\u308c\u306b\u95a2\u9023\u3057\u305f\u7b87\u6240\u3082\u657010\u7b87\u6240\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u305d\u3046\u3060\u3063\u305f\u3002\u3053\u308c\u3092\u3084\u3063\u305f\u3068\u3057\u3066\u3082\u3001\u30e6\u30fc\u30b6\u30fc\u76ee\u7dda\u304b\u3089\u306f\u898b\u3048\u306a\u3044\u90e8\u5206\u306e\u5909\u66f4\u3067\u3057\u304b\u306a\u3044\u3002\u3057\u305f\u304c\u3063\u3066\u3001\u95a2\u9023\u7b87\u6240\u306f\u5909\u66f4\u3057\u3066\u3044\u306a\u3044\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Ref8\">(8)\u3000[keepCells&#8230;][removeCells&#8230;]\u3092[MoreOption]\u3067\u4e00\u62ec<\/h4>\n\n\n\n<p>More Option \u306e\u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u3092\u8ffd\u52a0\u3057\u305f\u306e\u3067\u3001\u3053\u306e\u72b6\u614b\u5909\u5316<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form.check_boundlayer.stateChanged.connect(self.updateUI)\nself.form.check_moreoption.stateChanged.connect(self.updateUI)<\/code><\/pre>\n\n\n\n<p>def updateUI(self) \u3067\u306f\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if self.form.check_moreoption.isChecked():\n    self.form.moreoption_frame.setVisible(True)\nelse:\n    self.form.moreoption_frame.setVisible(False)\n    self.form.check_keepCells.setChecked(False)\n    self.form.check_removeCells.setChecked(False)<\/code><\/pre>\n\n\n\n<p>\u307e\u305f<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"Ref9\">(9)  \u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316\u30b3\u30f3\u30c6\u30ca\u306esnappy Hex&#8230;\u306f\u4e0d\u8981\uff08\u90aa\u9b54\uff09<\/h4>\n\n\n\n<p id=\"Ref9\"> \u5c06\u6765\u7684\u306b\u306f\u3001snappyHex\u306b\u3082\u5bfe\u5fdc\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u304b\u3082\u3057\u308c\u306a\u3044\u306e\u3067\u3001\u5f53\u9762\u306f\u524a\u9664\u3059\u308b\u3067\u306a\u304f\u3001\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u7b49\u3057\u3066\u5358\u306b\u8868\u793a\u3055\u305b\u306a\u3044\u3088\u3046\u306b\u3057\u305f\u3044\u3002<\/p>\n\n\n\n<p>\u672c\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u3001\u305d\u306e\u5b9a\u7fa9\u90e8\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3057\u305f\u3068\u3053\u308d\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># snappy:\n#addObjectProperty(obj, \"RegionEdgeRefinement\", 1, \"App::PropertyFloat\", \"snappyHexMesh\",\n#                  \"Relative edge (feature) refinement\")<\/code><\/pre>\n\n\n\n<p>\u3060\u3051\u3067\u306a\u304f\u3001def load(self) \u306b\u304a\u3044\u3066\u3001\u3053\u308c\u3092\u53c2\u7167\u3057\u3066\u3044\u308b\u7b87\u6240\u304c\u3042\u308a\u3001\u30a8\u30e9\u30fc\u3068\u306a\u308b\u306e\u3067\u3001\u3053\u308c\u3082\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3059\u308b\u5fc5\u8981\u304c\u3042\u3063\u305f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#self.form.if_edgerefinement.setValue(self.obj.RegionEdgeRefinement)<\/code><\/pre>\n\n\n\n<p>def accept(self) <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#FreeCADGui.doCommand(\"FreeCAD.ActiveDocument.{}.RegionEdgeRefinement \"\n#                     \"= {}\".format(self.obj.Name, self.form.if_edgerefinement.value()))<\/code><\/pre>\n\n\n\n<p>\u4ed6\u306b\u3082\u3001\u53c2\u7167\u3057\u3066\u3044\u308b\u7b87\u6240\u306f\u5b58\u5728\u3059\u308b\u304c\u3001\u73fe\u72b6\u60f3\u5b9a\u3055\u308c\u308b\u4f7f\u7528\u7bc4\u56f2\u306e\u4e2d\u3067\u53c2\u7167\u3055\u308c\u308b\u3053\u3068\u306e\u7121\u3055\u305d\u3046\u306a\u90e8\u5206\u306f\u3001\u5c06\u6765\u7684\u306a\u62e1\u5f35\u306e\u53ef\u80fd\u6027\u3092\u8003\u3048\u3066\u3001\u305d\u306e\u307e\u307e\u6b8b\u3059\u3053\u3068\u3068\u3057\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4.5.4 \u30bf\u30b9\u30af\u753b\u9762\u3068\u30d7\u30ed\u30d1\u30c6\u30a3\u30b3\u30f3\u30c6\u30ca\u306e\u518d\u69cb\u7bc9\u6574\u7406<\/h3>\n\n\n\n<p>\u3053\u3053\u307e\u3067\u30bf\u30b9\u30af\u753b\u9762\u3092\u5909\u66f4\u3059\u308b\u306e\u306b\u3001\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3055\u308c\u308b\u62e1\u5f35\u5b50\u304c.ui\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u3001\u30a8\u30c7\u30a3\u30bf\u3067\u76f4\u63a5\u5909\u66f4\u3057\u3066\u304d\u305f\u304c\u3001\u30d5\u30a1\u30a4\u30eb\u30de\u30cd\u30fc\u30b8\u30e3\u4e0a\u3067\u3001\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3059\u308c\u3070\u3001Qt Desiner \u3068\u3044\u3046GUI\u30c4\u30fc\u30eb\u304c\u7acb\u3061\u4e0a\u304c\u308b\u3053\u3068\u304c\u308f\u304b\u3063\u305f\uff08\u56f3\uff09\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1187\" height=\"709\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/Qt-Designer_269.png\" alt=\"\" class=\"wp-image-13365\"\/><figcaption>\u56f346.\u3000Qt Designer<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u3053\u308c\u3092\u4f7f\u3063\u3066\u3001<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30dc\u30bf\u30f3\u3084\u30c6\u30ad\u30b9\u30c8\u306a\u3069\u306e\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u306e\u4f4d\u7f6e\u3084\u8868\u793a\u540d\u3092\u5909\u66f4\u3057\u3066\u4fdd\u5b58\u3059\u308c\u3070\u3001FreeCAD\u4e0a\u3067\u4f55\u306e\u554f\u984c\u3082\u306a\u304f\u53cd\u6620\u3055\u308c\u308b\u3002<\/li><li>\u65b0\u305f\u306b\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u3082\u3001FreeCAD\u4e0a\u306e\u30bf\u30b9\u30af\u753b\u9762\u306b\u306f\u554f\u984c\u306a\u304f\u53cd\u6620\u3055\u308c\u308b\u3002<\/li><li>\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u3092\u524a\u9664\u3059\u308b\u5834\u5408\u306f\u3001objectName\u306e\u540d\u524d\u3092\u899a\u3048\u3066\u304a\u304f\u3002\u524a\u9664\u3057\u305f\u3053\u3068\u3067\u554f\u984c\u304c\u3042\u308b\u3088\u3046\u306a\u3089\u3001FreeCAD\u4e0a\u306e\u30bf\u30b9\u30af\u753b\u9762\u64cd\u4f5c\u3092\u3057\u305f\u969b\u306b\u305d\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u95a2\u3059\u308b\u30a8\u30e9\u30fc\u304c\u8868\u793a\u3055\u308c\u308b\u3002\u5358\u306b\u672a\u5b9a\u7fa9\u30a8\u30e9\u30fc\u3067\u3042\u308c\u3070\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u8a72\u5f53\u7b87\u6240\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3059\u308b\u306a\u308a\u306e\u5bfe\u51e6\u304c\u3067\u304d\u308b\u3002<\/li><li>\u3053\u308c\u3089\u4e00\u9023\u306e\u64cd\u4f5c\u3092\u3059\u308b\u306b\u969b\u3057\u3066\u3001.ui\u30d5\u30a1\u30a4\u30eb\u306e\u5b9f\u4f53\u306b\u3064\u3044\u3066\u306f\u3001\u4f55\u3089\u53c2\u7167\u3084\u7de8\u96c6\u306e\u5fc5\u8981\u306f\u751f\u3058\u306a\u304b\u3063\u305f\u3002<\/li><\/ul>\n\n\n\n<p>\u3068\u3044\u3046\u3053\u3068\u304c\u308f\u304b\u3063\u305f\u306e\u3067\u3001\u4ee5\u964d\u306f\u3001\u3053\u308c\u3092\u4f7f\u3063\u3066\u30bf\u30b9\u30af\u753b\u9762\u3092\u518d\u69cb\u7bc9\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">(1) \u30bf\u30b9\u30af\u753b\u9762\u306e\u518d\u69cb\u7bc9<\/h4>\n\n\n\n<p>\u4ee5\u4e0b\u306b\u3001\u518d\u69cb\u7bc9\u524d\u5f8c\u306e\u30bf\u30b9\u30af\u753b\u9762\u3092\u6bd4\u8f03\u8868\u793a\u3057\u3066\u304a\u304f\u304c\u3001\u6539\u5909\u5f8c\u306e\u56f3\u4e2d\u3067\u3001\u8d64\u67a0\u3067\u62ec\u3063\u305f\u90e8\u5206\u306f\u3001\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u3092\u8ffd\u52a0\u3057\u305f\u3068\u3044\u3046\u3060\u3051\u3067\u3001\u3053\u306e\u6642\u70b9\u3067\u6a5f\u80fd\u306f\u5b9f\u88c5\u3057\u3066\u3044\u306a\u3044\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"740\" height=\"497\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/82b9eaaf9e27974aaab88dd952a2447e.png\" alt=\"\" class=\"wp-image-13366\"\/><figcaption>\u56f347.\u3000\u30e1\u30c3\u30b7\u30e5\u4f5c\u6210\u30bf\u30b9\u30af\u753b\u9762\u306e\u518d\u69cb\u7bc9<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"873\" height=\"440\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/ddd057105d88f972fa0d51dc046736de.png\" alt=\"\" class=\"wp-image-13367\"\/><figcaption>\u56f348.\u3000\u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316\u30bf\u30b9\u30af\u753b\u9762\u306e\u518d\u69cb\u7bc9<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"738\" height=\"497\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/6ea629d45b16275e3e13dfe34da7f96c.png\" alt=\"\" class=\"wp-image-13368\"\/><figcaption>\u56f349.\u3000\u30bd\u30eb\u30d0\u30fc\u5b9f\u884c\u30bf\u30b9\u30af\u753b\u9762\u306e\u518d\u69cb\u7bc9<\/figcaption><\/figure><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">(2) \u30d7\u30ed\u30d1\u30c6\u30a3\u30ea\u30b9\u30c8\u306e\u518d\u69cb\u7bc9<\/h4>\n\n\n\n<p>\u30b3\u30f3\u30c6\u30ca\u3092\u9078\u629e\u3057\u305f\u6642\u306b\u30d7\u30ed\u30d1\u30c6\u30a3\u30ea\u30b9\u30c8\u306b\u8868\u793a\u3055\u308c\u308b\u9805\u76ee\u306b\u3064\u3044\u3066\u306f\u3001\u305d\u308c\u304c\u5b9a\u7fa9\u3055\u308c\u308b\u30b3\u30fc\u30c9\u7b87\u6240\u3001\u3059\u306a\u308f\u3061<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30e1\u30c3\u30b7\u30e5\u30b3\u30f3\u30c6\u30ca dexcsCfdMesh.py \u306e\u3001class _CfMesh \/ def initProperties() \u30bb\u30af\u30b7\u30e7\u30f3<\/li><li>\u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316\u30b3\u30f3\u30c6\u30ca dexcsCfdMeshRefinement.py \u306e\u3001class _CfMeshRefinement \/ def initProperties() \u30bb\u30af\u30b7\u30e7\u30f3<\/li><li>\u30bd\u30eb\u30d0\u30fc\u5b9f\u884c\u30b3\u30f3\u30c6\u30cadexcsCfdSolverFoam.py \u306e\u3001class _CfdSolverFoam \/ def __init__() \u30bb\u30af\u30b7\u30e7\u30f3<\/li><\/ul>\n\n\n\n<p>\u306b\u304a\u3044\u3066\u3001\u8868\u793a\u3055\u305b\u305f\u304f\u306a\u3044\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u76f8\u5f53\u3059\u308b\u90e8\u5206\u3092\u4e00\u65e6\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3059\u308b\u3002FreeCAD\u3067\u52d5\u4f5c\u78ba\u8a8d\u3002\u30a8\u30e9\u30fc\u7121\u304f\u5b9f\u884c\u53ef\u80fd\u3001\u3082\u3057\u304f\u306f\u524a\u9664\u3057\u305f\u3053\u3068\u306b\u3088\u308a\u3001\u30a8\u30e9\u30fc\u304c\u8868\u793a\u3055\u308c\u308b\u5834\u5408\u306b\u3001\u305d\u308c\u304c\u5358\u306b\u88ab\u53c2\u7167\u30a8\u30e9\u30fc\u3067\u3001\u305d\u306e\u53c2\u7167\u90e8\u5206\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3059\u308b\u3060\u3051\u3067\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u672c\u4f53\u306e\u5b9f\u884c\u306b\u652f\u969c\u304c\u6765\u305f\u3059\u3053\u3068\u304c\u306a\u3044\u3088\u3046\u3067\u3042\u308c\u3070\u3001\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u306b\u3088\u308b\u524a\u9664\u4f5c\u696d\u5b8c\u4e86\u3068\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u524a\u9664\u3059\u308b\u3053\u3068\u306b\u3088\u308b\u5f71\u97ff\u304c\u591a\u304f\u306e\u7b87\u6240\u306b\u53ca\u3076\u3082\u306e\u306f\u3001\u5143\u306b\u623b\u3057\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"645\" height=\"491\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/f5ff724a5df40bad1fe48a7015b072dc.png\" alt=\"\" class=\"wp-image-13372\"\/><figcaption>\u56f350.\u3000\u30e1\u30c3\u30b7\u30e5\u4f5c\u6210\u30b3\u30f3\u30c6\u30ca<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"395\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/b4073f73d06d6c76c9c29a73ee79151e.png\" alt=\"\" class=\"wp-image-13373\"\/><figcaption>\u56f351.\u3000\u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316\u30b3\u30f3\u30c6\u30ca<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"681\" height=\"392\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/c23dd8fb85852093baf850ade6523889.png\" alt=\"\" class=\"wp-image-13374\"\/><figcaption>\u56f352.\u3000\u30bd\u30eb\u30d0\u30fc\u5b9f\u884c\u30b3\u30f3\u30c6\u30ca<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u306a\u304a\u3001\u4ee5\u4e0a\u306e\u518d\u69cb\u7bc9\u306b\u3088\u3063\u3066\u3001dexcsCfdOF\u306e\u52d5\u4f5c\u306b\u652f\u969c\u304c\u7121\u304b\u3063\u305f\u3053\u3068\u306f\u78ba\u8a8d\u6e08\u307f\u3067\u3042\u308b\u304c\u3001DEXCS\u6a19\u6e96\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u554f\u984c\u3067\u306e\u4f7f\u3044\u65b9\u3067\u3057\u304b\u78ba\u8a8d\u3057\u3066\u3044\u306a\u3044\u3068\u3044\u3046\u70b9\u3082\u304a\u65ad\u308a\u3057\u3066\u304a\u304f\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0a\u3067\u30014.5.2.\u3067\u53d6\u308a\u7e8f\u3081\u305f\u554f\u984c\u70b9\u306e\u3046\u3061\u306e\u8868\u793a\u4e0a\u306e\u554f\u984c\u306e\u5927\u534a\u306f\u89e3\u6c7a\u3057\u305f\u3068\u8003\u3048\u3066\u3044\u308b\u304c\u3001\u6b8b\u3055\u308c\u305f\u8ab2\u984c\u3068\u3057\u3066\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u5024\u304c\u7a7a\u6b04\u306b\u306a\u3063\u3066\u3044\u308b\u7b87\u6240\u304c\u3042\u308b\u70b9\u306f\u53d6\u308a\u4e0a\u3052\u3089\u308c\u308b\u3060\u308d\u3046\u3002\u3053\u308c\u306b\u95a2\u3057\u3066\u306f\u3001\u5148\u306b\u8ff0\u3079\u305f\u3088\u3046\u306b\u3001\u3053\u308c\u3092\u524a\u9664\u3059\u308b\u3068\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u5168\u4f53\u306e\u591a\u304f\u306e\u7b87\u6240\u306b\u4fee\u6b63\u304c\u5fc5\u8981\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u3052\u3089\u308c\u308b\u304c\u3001\u4e00\u65b9\u3001CfdOF\u672c\u6765\u306e\u4f7f\u3044\u65b9\u3067\u306a\u304f\u3001dexcsCfdOF\u3068\u3057\u3066\u306e\u4f7f\u3044\u65b9\u3092\u8003\u3048\u308b\u3068\u3001\u4f55\u3089\u304b\u306e\u60c5\u5831\u8868\u793a\u7b87\u6240\u3068\u3057\u3066\u6d41\u7528\u3067\u304d\u305d\u3046\u306a\u9762\u3082\u3042\u3063\u305f\u3002\u21d2\u4eca\u5f8c\u306e\u8ab2\u984c\u3068\u3057\u305f\u3044\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.5.5 \u8ffd\u52a0\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u306e\u6a5f\u80fd\u62e1\u5f35<\/h3>\n\n\n\n<p>\u524d\u9805\u3067\u8ffd\u52a0\u3057\u305f\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u306f\u5927\u304d\u304f\u5206\u3051\u30662\u70b9\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u30e1\u30c3\u30b7\u30e5\u4f5c\u6210\u30bf\u30b9\u30af\u753b\u9762\u306b\u304a\u3051\u308bCheckMesh \u30dc\u30bf\u30f3<\/li><li>\u30bd\u30eb\u30d0\u30fc\u30bf\u30b9\u30af\u753b\u9762\u306b\u304a\u3051\u308b\u3001\u4e26\u5217\u8a08\u7b97\u30d1\u30e9\u30e1\u30bf<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\"><\/li><\/ul>\n\n\n\n<p>\u305d\u308c\u305e\u308c\u306b\u5fc5\u8981\u306a\u6a5f\u80fd\u306f\u8aac\u660e\u3059\u308b\u307e\u3067\u3082\u306a\u3044\u3068\u601d\u308f\u308c\u3001\u3053\u308c\u3089\u3092\u5b9f\u88c5\u3057\u3066\u3044\u304f\u304c\u3001\u305d\u306e\u524d\u306b\u5f8c\u8005\u306b\u3064\u3044\u3066\u306f\u30bf\u30b9\u30af\u753b\u9762\u3067\u8a2d\u5b9a\u3057\u305f\u5024\u3068\u30b3\u30f3\u30c6\u30ca\u4e0a\u3067\u8868\u793a\u3055\u308c\u308b\u30d7\u30ed\u30d1\u30c6\u30a3\u5024\u3092\u4e00\u81f4\u3055\u305b\u308b\u4ed5\u7d44\u307f\u304c\u5fc5\u8981\u3067\u3042\u308b\u3002\u307e\u305a\u3053\u308c\u3089\u306e\u30d1\u30e9\u30e1\u30bf\u306b\u76f8\u5fdc\u3055\u305b\u308b\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u540d\u524d\u3067\u3042\u308b\u304c\u3001\u3053\u308c\u306f\u3001<span style=\"font-size: revert; color: initial;\">dexcsCfdSolverFoam.py \u306e\u3001class _CfdSolverFoam \/ def __init__() \u30bb\u30af\u30b7\u30e7\u30f3<\/span>\u306b\u304a\u3044\u3066\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>addObjectProperty(obj, \"<span class=\"has-inline-color has-vivid-red-color\">ParallelCores<\/span>\", 2, \"App::PropertyInteger\", \"Solver\",\n                  \"Number of cores on which to run parallel analysis\")\n<span class=\"has-inline-color has-vivid-cyan-blue-color\">known_method<\/span> = &#91;'scotch','simple','hierachical','metis','manual']\naddObjectProperty(obj, \"<span class=\"has-inline-color has-vivid-red-color\">ParallelMethod<\/span>\", known_method, \"App::PropertyEnumeration\", \"Solver\",\n                  \"Method on which to run parallel analysis\")<\/code><\/pre>\n\n\n\n<p>\u3068\u5b9a\u7fa9\u3057\u305f\u3002\u3053\u3053\u306b\u3001<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">ParallelCores\u306f\u3001CfdOF\u30aa\u30ea\u30b8\u30ca\u30eb\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u305f\u3082\u306e\u3092\u6d41\u7528\u3057\u3001<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">ParallelMethod\u306f\u65b0\u898f\u306b\u8ffd\u52a0\u3057\u305f\u3082\u306e\u3067\u3042\u308b\u3002\u30bd\u30eb\u30d0\u30fc\u30bf\u30b9\u30af\u753b\u9762\u306e\u8d77\u52d5\u6642\u306b\u306f\u3001<span style=\"font-size: revert; color: initial;\">_<\/span><meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\"><span style=\"font-size: revert; color: initial;\">dexcsTaskPanelCfdSolverControl.py \u306e\u3001class _<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\"><span style=\"font-size: revert; color: initial;\">dexcsTaskPanelCfdSolverControl<\/span> \/ def __init__() \u30bb\u30af\u30b7\u30e7\u30f3\u306b\u304a\u3044\u3066\u3001\u4e0a\u8a18<\/span>\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3001\u753b\u9762\u304c\u7acb\u3061\u4e0a\u304c\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form.<span class=\"has-inline-color has-vivid-red-color\">if_ncpu<\/span>.setValue(self.solver_object.<span class=\"has-inline-color has-vivid-red-color\">ParallelCores<\/span>) \n<span class=\"has-inline-color has-vivid-cyan-blue-color\">known_method<\/span> = &#91;'simple','hierachical','scotch','metis','manual']\nself.form.<span class=\"has-inline-color has-vivid-red-color\">cb_method<\/span>.addItems(known_method)\nindex_method = self.form.cb_method.findText(self.solver_object.<span class=\"has-inline-color has-vivid-red-color\">ParallelMethod<\/span>)\nself.form.<span class=\"has-inline-color has-vivid-red-color\">cb_metho<\/span>d.setCurrentIndex(index_method)<\/code><\/pre>\n\n\n\n<p>\u307e\u305f\u3001<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">\u30bd\u30eb\u30d0\u30fc\u30bf\u30b9\u30af\u753b\u9762\u3067\u3001write mesh \u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u3001\u305d\u306e\u6642\u70b9\u3067\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u305f\u5024\u304c\u3001def UpdateUI(self)\u306b\u3088\u3063\u3066\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u5024\u3068\u3057\u3066\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FreeCADGui.doCommand(\"FreeCAD.ActiveDocument.{}.<span class=\"has-inline-color has-vivid-red-color\">ParallelMethod<\/span> \"\n                     \"= '{}'\".format(self.solver_object.Name,<span class=\"has-inline-color has-vivid-red-color\"> self.form.cb_method.currentText()<\/span>))\nFreeCADGui.doCommand(\"\\nFreeCAD.ActiveDocument.{}.<span class=\"has-inline-color has-vivid-red-color\">ParallelCores<\/span> \"\n                             \"= {}\".format(self.solver_object.Name, self.form.<span class=\"has-inline-color has-vivid-red-color\">if_ncpu.value()<\/span>))<\/code><\/pre>\n\n\n\n<p>\u3068\u3057\u3066\u4fdd\u5b58\u3055\u308c\u308b\u3088\u3046\u306b\u3057\u305f\u3002\u4ee5\u4e0a\u3067\u3001\u30bd\u30eb\u30d0\u30fc\u30bf\u30b9\u30af\u753b\u9762\u4e0a\u3067\u65b0\u305f\u306b\u8ffd\u52a0\u3057\u305f\u30d1\u30e9\u30e1\u30bf\u3068\u30b3\u30f3\u30c6\u30ca\u306e\u30d7\u30ed\u30d1\u30c6\u30a3<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>if_ncpu \/ ParrallelCores<\/li><li>cb_method \/ ParallelMethod<\/li><\/ul>\n\n\n\n<p>\u306e\u5024\u304c\u9023\u52d5\u3059\u308b\u3088\u3046\u306b\u306f\u306a\u3063\u3066\u3044\u308b\u304c\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u7684\u306b\u306f2\u70b9\u307b\u3069\u554f\u984c\u3092\u6b8b\u3057\u3066\u3044\u308b\u7b87\u6240\u304c\u3042\u308b\u3053\u3068\u3092\u304a\u65ad\u308a\u3057\u3066\u304a\u304f\u3002\u3064\u307e\u308a\u3001<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\"><span class=\"has-inline-color has-vivid-cyan-blue-color\">known_method<\/span>\u3000\u30922\u7b87\u6240\u3067\u5b9a\u7fa9\u3057\u3066\u304a\u308a\u3001\u672c\u6765\u306f\u3069\u3061\u3089\u304b\u4e00\u65b9\u3067\u5b9a\u7fa9\u3057\u3066\u304a\u3044\u3066\u3001\u4ed6\u65b9\u306f\u5b9a\u7fa9\u6e08\u307f\u306e\u305d\u308c\u3092\u53c2\u7167\u3059\u308b\u5f62\u306b\u3057\u305f\u304b\u3063\u305f\u304c\u3001\u3069\u3061\u3089\u304c\u5148\u306b\u5b9a\u7fa9\u3055\u308c\u308b\u306e\u304b\u3001\u307e\u305f\u4ed6\u65b9\u306e\u53c2\u7167\u65b9\u6cd5\u3092\u8abf\u3079\u308b\u3053\u3068\u304c\u5fc5\u8981\u3067\u3001\u305d\u306e\u624b\u9593\u3092\u60dc\u3057\u3093\u3067\u3001\u4fbf\u5b9c\u7684\u306b\u305d\u306e\u307e\u307e\u306e\u72b6\u614b\u306b\u306a\u3063\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<p>\u307e\u305f\u3001\u3082\u30461\u70b9\u306f\u3001[Write] \u30dc\u30bf\u30f3\u3092\u62bc\u3055\u306a\u3044\u3068\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u53cd\u6620\u3055\u308c\u306a\u3044\u3068\u3044\u3046\u3053\u3068\u3067\u3042\u308b\u3002\u3053\u308c\u3082\u672c\u6765\u306f\u3001\u30bf\u30b9\u30af\u753b\u9762\u4e0a\u3067\u5909\u66f4\u3057\u3001\u30bf\u30b9\u30af\u753b\u9762\u3092\u9589\u3058\u305f\u3089\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u53cd\u6620\u3055\u308c\u308b\u3088\u3046\u306b\u3057\u305f\u304b\u3063\u305f\u304c\u3001\u305d\u3046\u306a\u3063\u3066\u3044\u306a\u3044\u3002\u3053\u308c\u306f\u3001\u30bf\u30b9\u30af\u753b\u9762\u3092\u9589\u3058\u308b\u6642\u306b\u767a\u751f\u3059\u308b\u30a4\u30d9\u30f3\u30c8\u3092\u8abf\u3079\u304d\u308c\u3066\u3044\u306a\u3044\u70ba\u3067\u3001\u3053\u308c\u304c\u308f\u304b\u308c\u3070\u3001\u305d\u3053\u306b\u4e0a\u8a18\u30b3\u30fc\u30c9\u3092\u914d\u7f6e\u3059\u308b\u3060\u3051\u3067\u3042\u308b\u3068\u3044\u3046\u70b9\u3082\u307e\u305f\u304a\u65ad\u308a\u3057\u3066\u304a\u304f\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0a\u3001\u3068\u308a\u3042\u3048\u305a\u3001GUI\u4e0a\u306e\u52d5\u4f5c\u3068\u3057\u3066\u306f\u554f\u984c\u306a\u3044\u30ec\u30d9\u30eb\u306b\u306a\u3063\u305f\u306e\u3067\u3001\u8ffd\u52a0\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u306b\u5bfe\u3059\u308b\u6a5f\u80fd\u5f37\u5316\u3092\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3059\u308b\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">(1) checkMesh \u30dc\u30bf\u30f3<\/h4>\n\n\n\n<p>\u3053\u306e\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u305f\u3089\u3001OpenFOAM\u306echeckMesh \u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3001\u305d\u306e\u30ed\u30b0\u3092\u8868\u793a\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308c\u3070\u826f\u3044\u3067\u3042\u308d\u3046\u3002\u305f\u3060\u3001\u30e1\u30c3\u30b7\u30e5\u304c\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u306b\u306f\u3001\u30dc\u30bf\u30f3\u3092\u62bc\u305b\u306a\u3044\u72b6\u614b\u306b\u3057\u3066\u304a\u304f\u306e\u304c\u671b\u307e\u3057\u3044\u3002\u3053\u308c\u306f\u5de6\u96a3\u306e[Paraview]\u30dc\u30bf\u30f3\u3068\u540c\u3058\u306a\u306e\u3067\u3001\u540c\u69d8\u306b\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3067\u304d\u308b\u3002<\/p>\n\n\n\n<p>_dexcsTaskPanelCfdMesh.py class _TaskPanelCfdMesh \/ def __init__(&#8230;)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form.pb_paraview.clicked.connect(self.openParaview)\nself.form.<span class=\"has-inline-color has-vivid-red-color\">pb_checkmesh<\/span>.clicked.connect(self.runCheckMesh)\n\nself.form.pb_paraview.setEnabled(False)\nself.form.<span class=\"has-inline-color has-vivid-red-color\">pb_checkmesh<\/span>.setEnabled(False)<\/code><\/pre>\n\n\n\n<p>def updateUI(self)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form.pb_paraview.setEnabled(os.path.exists(os.path.join(case_path, \"pv.foam\")))\nself.form.<span class=\"has-inline-color has-vivid-red-color\">pb_checkmesh<\/span>.setEnabled(os.path.exists(os.path.join(case_path, \"pv.foam\")))<\/code><\/pre>\n\n\n\n<p>def runMesh(self):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form.pb_paraview.setEnabled(False)\nself.form.<span class=\"has-inline-color has-vivid-red-color\">pb_checkmesh<\/span>.setEnabled(False)<\/code><\/pre>\n\n\n\n<p>def meshFinished(&#8230;)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if exit_code == 0:\n    ......\n    self.form.pb_paraview.setEnabled(True)\n    self.form.<span class=\"has-inline-color has-vivid-red-color\">pb_checkmesh<\/span>.setEnabled(True)\n    .....\nelse:\n    .....\n    self.form.pb_paraview.setEnabled(False)\n    self.form.<span class=\"has-inline-color has-vivid-red-color\">pb_checkmesh<\/span>.setEnabled(False)<\/code><\/pre>\n\n\n\n<p>\u6700\u5f8c\u306b\u3001def runCheckMesh(self)\u3068\u3057\u3066\u3001def runMesh(self) \u3092\u96db\u5f62\u3068\u3057\u3066\u30b3\u30d4\u30fc\u3057\u3066\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u66f8\u304d\u63db\u3048\u305f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def <span class=\"has-inline-color has-vivid-red-color\">runCheckMesh<\/span>(self):\n    self.Start = time.time()\n    cart_mesh = self.cart_mesh\n    try:\n        QApplication.setOverrideCursor(Qt.WaitCursor)\n        self.consoleMessage(\"Running {} ...\".format(self.mesh_obj.MeshUtility))\n        cart_mesh.error = False\n        cmd = dexcsCfdTools.makeRunCommand('.\/<span class=\"has-inline-color has-vivid-red-color\">Allcheck<\/span>', cart_mesh.meshCaseDir, source_env=False)\n        FreeCAD.Console.PrintMessage(\"Executing: \" + ' '.join(cmd) + \"\\n\")\n        env_vars = dexcsCfdTools.getRunEnvironment()\n        self.mesh_process.start(cmd, env_vars=env_vars)\n        if self.mesh_process.waitForStarted():\n            self.form.pb_run_mesh.setEnabled(False)  # Prevent user running a second instance\n            self.form.pb_stop_mesh.setEnabled(True)\n            self.form.pb_paraview.setEnabled(False)\n            self.form.pb_checkmesh.setEnabled(False)\n            #self.form.pb_load_mesh.setEnabled(False)\n            self.consoleMessage(\"Mesher started\")\n        else:\n            self.consoleMessage(\"Error starting meshing process\", \"#FF0000\")\n            cart_mesh.error = True\n    except Exception as ex:\n        self.consoleMessage(\"Error \" + type(e).__name__ + \": \" + str(ex), '#FF0000')\n        raise\n    finally:\n        QApplication.restoreOverrideCursor()<\/code><\/pre>\n\n\n\n<p>\u66f8\u304d\u63db\u3048\u305f\u90e8\u5206\u306eAllcheck\u306b\u76f8\u5f53\u3059\u308b\u90e8\u5206\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u306a\u3044\u3068\u52d5\u304b\u306a\u3044\u306e\u3067\u3042\u308b\u304c\u3001\u3053\u308c\u306fAllmesh\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f5c\u6210\u3057\u3066\u3044\u308b\u7b87\u6240\u3067\u3001\u540c\u6642\u306b\u4f5c\u6210\u3057\u3066\u304a\u3051\u3070\u826f\u3044\u3067\u3042\u308d\u3046\u3002\u3059\u306a\u308f\u3061\u3001dexcsCfdMeshTools.py \u306edef perform(self, CaseFilePath):\u30bb\u30af\u30b7\u30e7\u30f3\u306e\u6700\u5f8c\u8fba\u308a\u306b\u3001Allmesh\u3092\u4f5c\u6210\u3057\u3066\u3044\u308b\u7b87\u6240\u304c\u3042\u308b\u306e\u3067\u3001\u9014\u4e2d\u304b\u3089\u307e\u308b\u3054\u3068\u30b3\u30d4\u30fc\u3057\u3066\u3001\u4ee5\u4e0b\u6539\u5909\u8ffd\u52a0\u3057\u305f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>        solverSet = \"<span class=\"has-inline-color has-vivid-red-color\">checkMesh <\/span>| tee <span class=\"has-inline-color has-vivid-red-color\">checkMesh<\/span>.log\\n\"\n        sleep = \"sleep 2\\n\"\n        cont = title + envSet + solverSet + sleep\n        f=open(\".\/<span class=\"has-inline-color has-vivid-red-color\">Allcheck<\/span>\",\"w\")\n        f.write(cont)\n        f.close()\n        #\u5b9f\u884c\u6a29\u4ed8\u4e0e\n        os.system(\"chmod a+x <span class=\"has-inline-color has-vivid-red-color\">Allcheck<\/span>\")<\/code><\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u3001\u672c\u6539\u5909\uff08checkMesh\u6a5f\u80fd\u306e\u7d44\u307f\u8fbc\u307f\uff09\u306f\u3001\u307b\u3068\u3093\u3069\u30b3\u30d4\u30da\u4f5c\u696d\u3060\u3051\u3067\u5b8c\u6210\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">(2) \u4e26\u5217\u8a08\u7b97\u30d1\u30e9\u30e1\u30bf<\/h4>\n\n\n\n<p>\u4e26\u5217\u8a08\u7b97\u306b\u3064\u3044\u3066\u306f\u3001\u4e26\u5217\u6570\u306b\u5fdc\u3058\u3066\u30bd\u30eb\u30d0\u30fc\u306e\u5b9f\u884c\u30b3\u30de\u30f3\u30c9\u3092\u5909\u66f4\u3059\u308b\u8a2d\u5b9a\u3092\u8ffd\u52a0\u3059\u308b\u70b9\u3068\u3001\u5206\u5272\u65b9\u6cd5\u306b\u5fdc\u3058\u3066decomposeParDict \u30d5\u30a1\u30a4\u30eb\u3092\u5909\u66f4\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p>\n\n\n\n<p>\u524d\u8005\u306b\u3064\u3044\u3066\u306f\u3001\u5b9f\u884c\u7528\u306eAllrun\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f5c\u6210\u3057\u3066\u3044\u308b\u7b87\u6240\uff08dexcsCfdCaseWriterFoam.py \u306e\u3001def_writeAllrun(&#8230;)\u30bb\u30af\u30b7\u30e7\u30f3\uff09\u3067\u3001\u3053\u308c\u307e\u3067\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u672c\u4f53\u3068\u3057\u3066\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\"> solverSet = solver + \" | tee solve.log\"<\/code><\/pre>\n\n\n\n<p>\u3068\u3057\u3066\u3044\u305f\u7b87\u6240\u3092\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5909\u66f4<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.ParallelCores = self.solver_obj.ParallelCores\n#print(self.ParallelCores)\nif self.ParallelCores == 1:\n\n    solverSet = solver + \" | tee solve.log\"\nelse:\n    solverSet = \"decomposePar | tee decomposePar.log\\n\"\n    solverSet = solverSet + \"mpirun -np \" + str(self.ParallelCores) + \" \" + solver + \" -parallel | tee solve.log\"<\/code><\/pre>\n\n\n\n<p>\u3057\u3066\u3001\u5bfe\u51e6\u3067\u304d\u305f\u3002\u4f46\u3057\u3001\u30d7\u30ed\u30bb\u30c3\u30b5\u6570\u306e\u5909\u66f4\u306f\u3001\u524d\u9805\u3067\u8a18\u3057\u305f\u3088\u3046\u306b\u3001Write\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u305f\u5f8c\u306e\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u3001\u3057\u304b\u3082\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f5c\u6210\u5f8c\u306e\u30bf\u30a4\u30df\u30f3\u30b0\u306b\u306a\u3063\u3066\u3044\u305f\u306e\u3067\u3001<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\"><span style=\"font-size: revert; color: initial;\">_<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\"><span style=\"font-size: revert; color: initial;\">dexcsTaskPanelCfdSolverControl<\/span> \/  <\/span>def updateUI(self)\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u8ffd\u52a0\u3057\u305f2\u884c\u3092\u3001def write_input_file_handler_dexcs(self):\u306b\u304a\u3044\u3066\u3001\u5b9f\u969b\u306bAllrun\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u751f\u6210\u3055\u308c\u308b\u524d\uff08\u5192\u982d\uff09\u306b\u3082\u8ffd\u52a0\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u4e26\u5217\u5206\u5272\u65b9\u6cd5\u306e\u9055\u3044\u306f\u3001system\/decomposeParDict \u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304d\u63db\u3048\u308b\u3053\u3068\u306b\u306a\u308b\u304c\u3001\u524d\u8ff0\u306eAllrun\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f5c\u6210\u3057\u305f\u5f8c\u306b\u3001\u4e8b\u524d\u306b<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">&nbsp;.FreeCAD\/Mod\/CfdOF\/data\/dexcs\u30d5\u30a9\u30eb\u30c0\u4e0b\u306b\u53ce\u7d0d\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u66f8\u304d\u63db\u3048\u51e6\u7406\u3092\u884c\u3063\u3066\u3044\u308b\u7b87\u6240\u304c\u3042\u308b\u306e\u3067\u3001\u3053\u3053\u3067\u4f75\u305b\u3066\u5b9f\u884c\u3059\u308c\u3070\u3088\u3044\u3060\u308d\u3046\u3002<\/p>\n\n\n\n<p>\u3064\u307e\u308a\u96db\u5f62\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u306f\u3001&nbsp;.FreeCAD\/Mod\/CfdOF\/data\/dexcs\/system \u30d5\u30a9\u30eb\u30c0\u4e0b\u306b\u3001\u4ee5\u4e0b\u306e\u5185\u5bb9\u3067decomposeParDict\u30d5\u30a1\u30a4\u30eb\u3092\u8ffd\u52a0\u53ce\u7d0d\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FoamFile\n{\n    version     2.0;\n    format      ascii;\n    class       dictionary;\n    object      decomposeParDict;\n}\n\/\/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \/\/\n\nnumberOfSubdomains  <span class=\"has-inline-color has-vivid-red-color\">%(solver\/ParallelCores%)<\/span>;\n\nmethod              <span class=\"has-inline-color has-vivid-red-color\">%(solver\/ParallelMethod%)<\/span>;\n\n\n\/\/ ************************************************************************* \/\/<\/code><\/pre>\n\n\n\n<p>settings[]\u30d1\u30e9\u30e1\u30bf\u306b\u3064\u3044\u3066\u306f\u3001\u4ee5\u4e0b\u8ffd\u52a0\u3059\u308b\u3060\u3051\u3067\u3042\u308b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>settings&#91;'solver']&#91;'ParallelCores'] = self.solver_obj.<span class=\"has-inline-color has-vivid-red-color\">ParallelCores<\/span>\nsettings&#91;'solver']&#91;'ParallelMethod'] = self.solver_obj.<span class=\"has-inline-color has-vivid-red-color\">ParallelMethod<\/span><\/code><\/pre>\n\n\n\n<p>\u306a\u304a\u3001\u5206\u5272\u65b9\u6cd5\u306b\u3088\u3063\u3066\u3001\u30b5\u30d6\u30d1\u30e9\u30e1\u30bf\u306e\u8a2d\u5b9a\u3082\u5fc5\u8981\u306b\u306a\u308b\u3002\u73fe\u6642\u70b9\u3067\u306f\u307e\u3060\u30b5\u30d6\u30d1\u30e9\u30e1\u30bf\u3092\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306eGUI\u3092\u7528\u610f\u3067\u304d\u3066\u3044\u306a\u3044\u306e\u3067\u3001\u5206\u5272\u6570\u306e\u8a2d\u5b9a\u3060\u3051\u3067\u6e08\u3080\u65b9\u6cd5\uff08scotch \u307e\u305f\u306f metis\uff09\u3067\u3057\u304b\u901a\u7528\u3057\u306a\u3044\u3082\u306e\u3067\u3042\u308b\u3068\u3044\u3046\u70b9\u306f\u304a\u65ad\u308a\u3057\u3066\u304a\u304f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.5.6. \u30bd\u30eb\u30d0\u30fc\u5b9f\u884c\u30bf\u30b9\u30af\u753b\u9762\u306e\u518d\u3005\u69cb\u7bc9<\/h3>\n\n\n\n<p>\u4e26\u5217\u8a08\u7b97\u304c\u5b9f\u88c5\u3067\u304d\u3066\u307f\u308b\u3068\u3001\u3082\u3046\u4e00\u3064\u4e0d\u8db3\u3057\u3066\u3044\u308b\u3082\u306e\u304c\u3042\u308b\u306e\u306b\u6c17\u4ed8\u3044\u305f\u3002\u7d50\u679c\u306e\u518d\u69cb\u7bc9\uff08reconstructPar\uff09\u3067\u3042\u308b\u3002\u3055\u3089\u306b\u4e26\u5217\u8a08\u7b97\u7528\u306e\uff12\u3064\u306e\u30d1\u30e9\u30e1\u30bf\u306f\u3001\u5e38\u6642\u8868\u793a\u3055\u305b\u308b\u3082\u306e\u3067\u306a\u304f\u3001\u4e26\u5217\u8a08\u7b97\u3059\u308b\u304b\u3069\u3046\u304b\u306e\u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u3092\u4ecb\u3057\u3066\u3001\u30c1\u30a7\u30c3\u30af\u3055\u308c\u305f\u6642\u306e\u307f\u8868\u793a\u3055\u305b\u305f\u65b9\u304c\u826f\u3044\u3067\u3042\u308d\u3046\u3068\u601d\u308f\u308c\u305f\uff08\u56f353\uff09\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"451\" src=\"https:\/\/ocse2.com\/wp-content\/uploads\/2021\/08\/0a7139c44f4704fff915c56c5ebd6b5b.png\" alt=\"\" class=\"wp-image-13380\"\/><figcaption>\u56f353.\u3000\u30bd\u30eb\u30d0\u30fc\u5b9f\u884c\u30bf\u30b9\u30af\u753b\u9762\u306e\u518d\u3005\u69cb\u7bc9\u30a4\u30e1\u30fc\u30b8<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u3053\u306e\u30bf\u30b9\u30af\u753b\u9762\u3092\u4f5c\u6210\u3059\u308b\u306b\u969b\u3057\u3066\u306f\u3001Parallel\u306e\u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u5982\u4f55\u3067\u3001\u8868\u793a\u3092\u5207\u308a\u66ff\u3048\u308b\u30d1\u30fc\u30c4\u3092QtFrame\u3068\u3044\u3046\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u306e\u4e2d\u306b\u53ce\u7d0d\u3057\u3066\u304a\u304f\u5fc5\u8981\u304c\u3042\u308b\u3068\u601d\u308f\u308c\u3001\u5f53\u521d\u30aa\u30ea\u30b8\u30ca\u30eb\u306e\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u3092\u30d9\u30fc\u30b9\u306b\u6539\u5909\u3092\u8a66\u307f\u305f\u304c\u3001\u4f55\u6545\u304b\u65b0\u305f\u306b<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">QtFrame\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u306a\u304b\u3063\u305f\u3002\u305d\u3053\u3067\u3084\u3080\u306a\u304f\u3001\u65b0\u305f\u306b\u30b9\u30af\u30e9\u30c3\u30c1\u3067<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u3092\u4f5c\u6210\u3002\u6700\u521d\u306b<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">QtFrame\u3092\u8ffd\u52a0\u3057\u3066\u304a\u3044\u3066\u304b\u3089\u3001\u30aa\u30ea\u30b8\u30ca\u30eb\u306e\u30a6\u30a3\u30b8\u30a7\u30c3\u30c8\u304b\u3089\u3001\u3059\u3079\u3066\u306e\u30d1\u30fc\u30c4\u3092\u30b3\u30d4\u30da\u3059\u308b\u3068\u3044\u3046\u4f5c\u696d\u306b\u3066\u5b8c\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u305f\u3002<\/p>\n\n\n\n<p>\u8ffd\u52a0\u3057\u305f\u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\uff08\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u540d\u306fcheck_parallel\uff09\u306b\u3064\u3044\u3066\u306f\u3001\u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316\u30bf\u30b9\u30af\u753b\u9762\u3067\u30ec\u30a4\u30e4\u30fc\u30c1\u30a7\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u3068\u540c\u69d8\u306b\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3001\u3064\u307e\u308a_dexcsTaskPanelCfdSolverControl.py \u306e\u3001class _dexcsTaskPanelCfdSolverControl \/ def __init__(&#8230;)\u306b\u304a\u3044\u3066\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form.check_parallel.stateChanged.connect(self.updateUI)\nself.form.check_parallel.setChecked(self.solver_object.ParallelCores &gt; 1)<\/code><\/pre>\n\n\n\n<p>\u540c\u3058\u304f\u3001def updateUI(self) \u306b\u304a\u3044\u3066<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form<span class=\"has-inline-color has-vivid-red-color\">.parallel_frame<\/span>.setVisible(self.form.check_parallel.isChecked())\nif self.form.check_parallel.isChecked():\n    if self.form.if_ncpu.value()==1:\n        self.form.if_ncpu.setValue(2)\nelse:\n    FreeCADGui.doCommand(\"\\nFreeCAD.ActiveDocument.{}.ParallelCores \"\n                     \"= {}\".format(self.solver_object.Name, 1))<\/code><\/pre>\n\n\n\n<p>1\u884c\u76ee\u3067\u3001\u8ffd\u52a0\u3057\u305f\u30d5\u30ec\u30fc\u30e0\uff08parallel_frame\uff09\u306e\u8868\u793a\/\u975e\u8868\u793a\u3092\u5236\u5fa1\u3057\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<p>\u306a\u304a\u3001\u3053\u306e\u6539\u5909\u306b\u4f34\u3063\u3066\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u4e26\u5217\u8a08\u7b97\u3057\u306a\u3044\uff08<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">ParallelCores=1\uff09\u3068\u3057\u305f\u3044\u306e\u3067\u3001\u305d\u306e\u521d\u671f\u5024\u3092\u5909\u66f4\u3057\u305f\uff08dexcsCfdSolverFoam.py class _CfdSolverFoam \/ def __init__(&#8230;)\uff09\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>addObjectProperty(obj, \"ParallelCores\", <span class=\"has-inline-color has-vivid-red-color\">1<\/span>, \"App::PropertyInteger\", \"Solver\",\n                  \"Number of cores on which to run parallel analysis\")\n<\/code><\/pre>\n\n\n\n<p>\u307e\u305f\u3001\u65b0\u305f\u306b\u8ffd\u52a0\u3057\u305f[reconstructPar]\u30dc\u30bf\u30f3\u306b\u3064\u3044\u3066\u3001\u305d\u306e\u57fa\u672c\u7684\u306a\u6a5f\u80fd\u306f\u3001[Paraview]\u30dc\u30bf\u30f3\u3068\u540c\u3058\u3067\u3001\u5b9f\u884c\u5185\u5bb9\u3092\u5909\u66f4\u3059\u308b\u3060\u3051\u3067\u3042\u308b\u3002\u3053\u308c\u306f\u3001\u5148\u306b[checkMesh]\u30dc\u30bf\u30f3\u3092\u8ffd\u52a0\u3057\u305f\u969b\u306e_dexcsTaskPanelCfdMesh.py\u306b\u304a\u3051\u308b\u6539\u5909\u3068\u540c\u69d8\u306e\u5185\u5bb9\u3092\u3001_dexcsTaskPanelCfdSolverControl.py \u306b\u304a\u3044\u3066\u5b9f\u65bd\u3057\u3066\u3084\u308c\u3070\u3088\u3044\u3068\u3044\u3046\u3053\u3068\u3067\u3042\u308b\u3002\u3064\u307e\u308a\u3001class _dexcsTaskPanelCfdSolverControl \/ def __init__(&#8230;)\u306b\u304a\u3044\u3066\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form.pb_paraview.clicked.connect(self.openParaview)\nself.form.<span class=\"has-inline-color has-vivid-red-color\">pb_reconstruct.<\/span>clicked.connect(self.<span class=\"has-inline-color has-vivid-red-color\">runReconstruct<\/span>)<\/code><\/pre>\n\n\n\n<p>def updateUI(self) \u306b\u304a\u3044\u3066\u3001<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form.pb_paraview.setEnabled(os.path.exists(os.path.join(solverDirectory, \"pv.foam\")))\nself.form.<span class=\"has-inline-color has-vivid-red-color\">pb_reconstruct<\/span>.setEnabled(os.path.exists(os.path.join(solverDirectory, \"<span class=\"has-inline-color has-vivid-red-color\">Allreconst<\/span>\")))<\/code><\/pre>\n\n\n\n<p>def write_input_file_handler_dexcs(self)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form.pb_paraview.setEnabled(False)\nself.form.<span class=\"has-inline-color has-vivid-red-color\">pb_reconstruct<\/span>.setEnabled(False)<\/code><\/pre>\n\n\n\n<p>def runSolverProcess(self):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>self.form.pb_paraview.setEnabled(True)\nself.form.<span class=\"has-inline-color has-vivid-red-color\">pb_reconstruct<\/span>.setEnabled(True)<\/code><\/pre>\n\n\n\n<p>\u3068\u3044\u3063\u305f\u5177\u5408\u306b\u3001pb_paraview\u306b\u3064\u3044\u3066\u8a18\u8ff0\u3055\u308c\u305f\u884c\u3092\u305d\u306e\u4e0b\u306b\u30b3\u30d4\u30da\u3057\u3066\u3001<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">pb_paraview\u3092\u3001pb_reconstruct\u306b\u3001\u305d\u306e\u4ed6\u3001\u624b\u7d9a\u304d\u540d\u306a\u3069\u76f8\u5fdc\u306b\u5909\u66f4\u3002\u65b0\u305f\u306b\u8ffd\u52a0\u3057\u305f\u624b\u7d9a\u304d\u30d6\u30ed\u30c3\u30af\u3092\u3001\u985e\u4f3c\u30d6\u30ed\u30c3\u30af\u304b\u3089\u30b3\u30d4\u30da\u6539\u5909\u3059\u308b\u3053\u3068\u306b\u306a\u308b\u3002<\/p>\n\n\n\n<p>\u30af\u30ea\u30c3\u30af\u3057\u305f\u6642\u306e\u98db\u3073\u5148\uff08self.runReconstruct\uff09\u306b\u3064\u3044\u3066\u306f\u3001def runReconstruct(self):\u3092\u65b0\u898f\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u304c\u3001\u3053\u308c\u306f\u306b\u306f\u3001\u985e\u4f3c\u306e\u95a2\u6570\u3068\u3057\u3066\u3001def runSolverProcess(self):\u304c\u3042\u308b\u306e\u3067\u3001\u3053\u308c\u3092\u30b3\u30d4\u30da\u3057\u3066\u3001\u4ee5\u4e0b\u6731\u5b57\u90e8\u5206\u3092\u6539\u5909\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def <span class=\"has-inline-color has-vivid-red-color\">runReconstruct<\/span>(self):\n    self.Start = time.time()\n\n    solverDirectory = os.path.join(self.working_dir, self.solver_object.InputCaseName)\n    solverDirectory = os.path.abspath(solverDirectory)\n    cmd = self.solver_runner.<span class=\"has-inline-color has-vivid-red-color\">get_reconst_cmd<\/span>(solverDirectory)\n    FreeCAD.Console.PrintMessage(' '.join(cmd) + '\\n')\n    envVars = self.solver_runner.getRunEnvironment()\n    QApplication.setOverrideCursor(Qt.WaitCursor)\n    self.solver_run_process.start(cmd, env_vars=envVars)\n    if self.solver_run_process.waitForStarted():\n        # Setting solve button to inactive to ensure that two instances of the same simulation aren't started\n        # simultaneously\n        self.form.pb_write_inp.setEnabled(False)\n        self.form.pb_run_solver.setEnabled(False)\n        self.form.terminateSolver.setEnabled(True)\n        self.form.pb_paraview.setEnabled(True)\n        self.form.pb_reconstruct.setEnabled(True)\n        self.consoleMessage(\"Solver started\")\n    else:\n        self.consoleMessage(\"Error starting solver\")\n    QApplication.restoreOverrideCursor()<\/code><\/pre>\n\n\n\n<p>\u3053\u3053\u3067\u5909\u66f4\u3057\u305f<meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\">.<span class=\"has-inline-color has-vivid-red-color\">get_reconst_cmd<\/span>\u306f\u3001\u30aa\u30ea\u30b8\u30ca\u30eb\u3067\u306f\u3000get_solver_cmd\u3000\u3068\u306a\u3063\u3066\u3044\u305f\u3082\u306e\u3067\u3001\u3053\u308c\u306f\u3001dexcsCfdRunnableFoam.py \u306b\u3066\u3001\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u3002\u305d\u3053\u3067\u3053\u306e\u90e8\u5206\u3092\u30b3\u30d4\u30da\u3057\u3066\u3001get_reconst_cmd \u3092\u65b0\u305f\u306b\u8ffd\u52a0\u3057\u3066\u3084\u308c\u3070\u3088\u3044\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def <span class=\"has-inline-color has-vivid-red-color\">get_reconst_cmd<\/span>(self, case_dir):\n\n    # Environment is sourced in run script, so no need to include in run command\n    cmd = dexcsCfdTools.makeRunCommand('.\/<span class=\"has-inline-color has-vivid-red-color\">Allreconst<\/span>', case_dir, source_env=False)\n    FreeCAD.Console.PrintMessage(\"Solver run command: \" + ' '.join(cmd) + \"\\n\")\n    return cmd<\/code><\/pre>\n\n\n\n<p>\u307e\u305f\u3001Allreconst\u3068\u3044\u3046\u7528\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u30d5\u30a1\u30a4\u30eb\u304c\u5fc5\u8981\u306b\u306a\u308b\u304c\u3001\u3053\u308c\u306fAllrun\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f5c\u6210\u3057\u3066\u3044\u308b\u7b87\u6240\u3067\u3001\u540c\u69d8\u306b\u4f5c\u6210\u3059\u308c\u3070\u826f\u3044\u3002\u3059\u306a\u308f\u3061\u3001dexcsCfdCaseWriterFoam.py \u306e\u3001class dexcsCfdCaseWriterFoam: \/ def writeAllrun(self, progressCallback=None):\u306b\u304a\u3044\u3066\u3001Allrun\u3092\u4f5c\u6210\uff08f.write(cont)\uff09\u3057\u305f\u5f8c\u3001\u4ee5\u4e0b\u6731\u5b57\u90e8\u3092\u8ffd\u52a0\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>with p_new.open(mode='w') as f:\n    f.write(cont)\n\n<span class=\"has-inline-color has-vivid-red-color\">fname = os.path.join(self.case_folder, \"Allreconst\")\np_new = pathlib.Path(fname)\nsolverSet = \"reconstructPar -latestTime | tee reconstructPar.log\"\ncont = title + envSet + solverSet\nwith p_new.open(mode='w') as f:\n    f.write(cont)\ns = os.stat(fname)\nos.chmod(fname, s.st_mode | stat.S_IEXEC)<\/span><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"japanese\">4.6 \u307e\u3068\u3081\u6539<\/h2>\n\n\n\n<ul class=\"wp-block-list\" id=\"japanes\"><li>CfdOF\u3092\u6539\u9020\u3057\u3066\u3001DEXCS\u30e9\u30f3\u30c1\u30e3\u30fcv2.5\u306e\u30d7\u30ed\u30c8\u30bf\u30a4\u30d7\u3092\u4f5c\u6210\u3057\u305f\u3002<\/li><li>\u5f93\u6765\u306eDEXCS\u30de\u30af\u30ed\u306b\u304a\u3051\u308b\u61f8\u6848\u4e8b\u9805\uff08\u4ee5\u4e0b\u306e\u7b2c4,6\u9805\u306f\u9664\u304f\uff09\u306f\u307b\u307c\u89e3\u6d88\u3055\u308c\u3001\u64cd\u4f5c\u6027\u3001GUI\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3082\u6539\u5584\u3055\u308c\u305f\uff08\u3068\u601d\u3046\uff09\u3002<ol><li>\u30b9\u30b1\u30fc\u30eb\u5909\u63db\u6a5f\u80fd\u306e\u7d44\u307f\u8fbc\u307f<\/li><li>meshDict \u30a4\u30f3\u30dd\u30fc\u30c8\u4e0d\u5177\u5408\u5bfe\u5fdc<\/li><li>\u30aa\u30d7\u30b7\u30e7\u30f3\u30d1\u30e9\u30e1\u30bf\u306e GUI \u5316<\/li><li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30b1\u30fc\u30b9\u306e\u5909\u66f4\u8a2d\u5b9a<\/li><li>maxCellSize \u306e\u30ed\u30b8\u30c3\u30af\u5909\u66f4<\/li><li>OF \u7aef\u672b\u8d77\u52d5<\/li><\/ol><\/li><li>\u3053\u306e\u3046\u3061\u3001\u7b2c2\u9805\u306f\u3001\u30a4\u30f3\u30dd\u30fc\u30c8\u304c\u4e0d\u8981\u3068\u306a\u308a\u3001\u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316\u60c5\u5831\u3092FreeCAD\u306e\u30e2\u30c7\u30eb\u60c5\u5831\u3068\u3057\u3066\u5177\u5099\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u3002<\/li><li>\u7b2c6\u9805\u306fDEXCS\u30c4\u30fc\u30eb\u30d0\u30fc\u306b\u3066\u5b9f\u88c5\u6e08\u307f\u3002<\/li><li>\u7b2c4\u9805\u306f\u3001\u3053\u308c\u304b\u3089\u8abf\u67fb\u3057\u3001\u5177\u4f53\u7684\u8ab2\u984c\u3092\u660e\u78ba\u5316 \u21d2\u3000<a href=\"https:\/\/ocse2.com\/?p=13437\">\u307b\u307c\u5b8c\u4e86<\/a><\/li><li>DEXCS2021\u3067\u306e\u30ea\u30ea\u30fc\u30b9\uff082021\/9\u301c10\u6708\uff09\u306b\u5411\u3051\u3066\u3001\u51fa\u6765\u305f\u3089\u826f\u3044\u306a\u3041\u30fb\u30fb\u30fb\u3092\u4ee5\u4e0b\u5217\u6319\u3057\u3066\u304a\u304f\u3002<ul><li>\u65e5\u672c\u8a9e\u5316\u3000\u21d2\u3000<a href=\"https:\/\/ocse2.com\/?p=13425\">\u307b\u307c\u5b8c\u4e86<\/a><\/li><li><span class=\"has-inline-color has-vivid-red-color\">\u4e26\u5217\u5206\u5272\u30b5\u30d6\u30e1\u30cb\u30e5\u30fc<\/span><\/li><li><span class=\"has-inline-color has-vivid-red-color\">\u30e1\u30c3\u30b7\u30e5\u7d30\u5206\u5316\u30bf\u30b9\u30af\u753b\u9762\u3067\u306e\u7d30\u5206\u5316\u5bfe\u8c61\u9762\u306e\u9078\u629e\u6642\u306b\u8907\u30ea\u30b9\u30c8\u304c\u51fa\u306a\u3044\u3088\u3046\u306b\u3059\u308b<\/span><\/li><li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30b1\u30fc\u30b9\u3001\u5b9f\u884c\u30b1\u30fc\u30b9\u306e\u5909\u66f4\u65b9\u6cd5\u3092\u660e\u78ba\u5316\u21d2\u3000<a href=\"https:\/\/ocse2.com\/?p=13437\">\u307b\u307c\u5b8c\u4e86<\/a><\/li><li>CfdOF\u30d5\u30a9\u30eb\u30c0\u540d\u3092\u5909\u66f4 \u21d2 dexcsCfMesh\u3000\u21d2\u3000\u6e08\u307f<\/li><li>\u30a2\u30a4\u30b3\u30f3\u3082\u5909\u66f4\u3000\u21d2\u3000\u6e08\u307f<\/li><li><span class=\"has-inline-color has-vivid-red-color\">\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u4e2d\u3001\u4e0d\u8981\u7b87\u6240\u3092\u524a\u9664<\/span><\/li><li>\u3061\u306a\u307f\u306bFreeCAD\u306e\u30a2\u30c9\u30aa\u30f3\u30bd\u30d5\u30c8\u3068\u3057\u3066\u6b63\u5f0f\u767b\u9332\u3057\u3066\u6b32\u3057\u3044\u3068\u3044\u3046\u671f\u5f85\u306f\u3042\u308b\u3060\u308d\u3046\u304c\u3001<span class=\"has-inline-color has-vivid-red-color\">DEXCS\u30c4\u30fc\u30eb\u30d0\u30fc\u3068\u4f75\u305b\u3066\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u5316<\/span>\u3057\u306a\u3044\u3068\u610f\u5473\u304c\u7121\u3055\u305d\u3046\u3002\u3053\u308c\u306f\u3082\u3046\u3061\u3087\u3063\u3068\u5148\u306b\u306a\u308b\u3002<\/li><\/ul><\/li><li>\u4e0a\u8a18\u53d6\u308a\u7d44\u307f\u306e\u524d\u306b\u3001\u6b21\u7ae0\u306ePlot\u30ef\u30fc\u30af\u30d9\u30f3\u30c1\u5fdc\u7528\u306e\u53ef\u80fd\u6027\u3092\u898b\u6975\u3081\u305f\u3044\u3002\u3068\u3044\u3046\u304b\u3001\u65e2\u306b<a href=\"https:\/\/ocse2.com\/?p=13166\">3-1<\/a>.\u3067\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u5bfe\u8c61\u306b\u6b8b\u6e23\u56f3\u3092\u63cf\u3051\u3066\u3044\u308b\u306e\u3067\u3001\u3053\u308c\u3092postProcess\u30d5\u30a9\u30eb\u30c0\u5185\u306e\u30c7\u30fc\u30bf\u5bfe\u8c61\u306b\u5909\u66f4\u3001\u6700\u4f4e\u9650\u30b3\u30f3\u30dc\u30dc\u30c3\u30af\u30b9\u9078\u629e\u3067\u500b\u5225\u306b\u30d7\u30ed\u30c3\u30c8\u3059\u308b\u3068\u3053\u308d\u307e\u3067\u306f\u3084\u308a\u305f\u3044\u3000\u21d2\u3000\u307b\u307c\u5b8c\u4e86<\/li><li>\u30de\u30cb\u30e5\u30a2\u30eb\u5236\u4f5c\u904e\u7a0b\u306b\u304a\u3044\u3066\u767a\u899a\u3057\u305f\u4e8b\u9805\u306b\u5bfe\u3059\u308b<a href=\"https:\/\/ocse2.com\/?p=13364\">\u5bfe\u51e6<\/a>\u3082\u5fc5\u8981\u3067\u3042\u3063\u305f\u3002<ul><li>\u3053\u308c\u306b\u3088\u3063\u3066\u3001\u5f93\u6765\u306eDEXCS\u30de\u30af\u30ed\u306b\u304a\u3044\u3066\u51fa\u6765\u3066\u3044\u305f\u304c\u3001\u51fa\u6765\u306a\u304f\u306a\u3063\u305f\u70b9\u3082\u3042\u308b\u4e8b\u3082\u8a18\u3057\u3066\u304a\u304f\u5fc5\u8981\u304c\u751f\u3058\u305f\u3002\u3064\u307e\u308a\u3001<span class=\"has-inline-color has-vivid-red-color\">\u5883\u754c\u30bf\u30a4\u30d7\u306e\u6307\u5b9a\u304c patch\uff08\u3053\u308c\u304c\u30c7\u30d5\u30a9\u30eb\u30c8\uff09 \u307e\u305f\u306f\u3001wall\uff08\u30ec\u30a4\u30e4\u30fc\u6307\u5b9a\u306e\u3042\u308b\u5834\u5408\uff09\u3057\u304b\u306a\u3044<\/span>\u3068\u3044\u3046\u70b9\u3067\u3042\u308b\u3002<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>\u6700\u7d42\u7684\u306b\u3001\u4e0a\u8a18<span class=\"has-inline-color has-vivid-red-color\">\u6731\u5b57\u90e8\u5206<\/span>\u306f\u3001DEXCS2021\u306b\u304a\u3044\u3066\u7a4d\u307f\u6b8b\u3057\u306b\u306a\u308a\u305d\u3046\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u3000<a href=\"https:\/\/ocse2.com\/?p=13333\">\u524d\u3078<\/a>\u3000<a href=\"https:\/\/ocse2.com\/?p=13115\">\u76ee\u6b21<\/a>\u3000<a href=\"https:\/\/ocse2.com\/?p=13388\">\u6b21\u3078<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>4.5 \u307e\u3068\u3081 \u4ee5\u4e0a\u3067\u3001CfdOF\u3092\u6539\u5909\u3057\u3066\u3001DEXCS\u30e9\u30f3\u30c1\u30e3\u30fc\u306e\u6a5f\u80fd\u306e\u80a9\u4ee3\u308f\u308a\u3068\u3001\u4e88\u5b9a\u3057\u3066\u3044\u305f\u6a5f\u80fd\u8ffd\u52a0\u3092\u51e1\u305d\u5b9f\u73fe\u3067\u304d\u305f\u3068\u8003\u3048\u3066\u3044\u308b\uff08\u6b21\u7ae0\u306epost\u51e6\u7406\u6a5f\u80fd\u306f\u3001CfdOF\u306e\u6539\u5909\u3068\u306f\u76f4\u63a5\u95a2\u4fc2\u306a\u3044\uff09\u3002 \u3053\u3053\u3067\u6539\u3081\u3066\u3001DEX [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[17],"tags":[74,48,28,23,13,77],"class_list":["post-13349","post","type-post","status-publish","format-standard","hentry","category-toolstips","tag-cfdof","tag-cfmesh","tag-dexcs","tag-freecad","tag-openfoam","tag-qtdesigner"],"views":294,"_links":{"self":[{"href":"https:\/\/ocse2.com\/index.php?rest_route=\/wp\/v2\/posts\/13349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ocse2.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ocse2.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ocse2.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ocse2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13349"}],"version-history":[{"count":29,"href":"https:\/\/ocse2.com\/index.php?rest_route=\/wp\/v2\/posts\/13349\/revisions"}],"predecessor-version":[{"id":13469,"href":"https:\/\/ocse2.com\/index.php?rest_route=\/wp\/v2\/posts\/13349\/revisions\/13469"}],"wp:attachment":[{"href":"https:\/\/ocse2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ocse2.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ocse2.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}