DualPhysicsはApple Silicon版が見当たらないのですが、CrossOver for Macで動かすことができましたので、ここに覚え書きを残しておきます。
方法としては2つあります。
- CrossOverのコマンドプロンプトを起動してDualSPHysicsを実行
- ターミナルからDualSPHysicsを実行
1の手順は下のようになりますが、CrossOverのcmd.exeはターミナルに比べると操作しづらいので、2の方がやりやすいです。
- DualSPHysicsのwindows版のzipを適当なフォルダに展開しておく
- DesignSPHysicsでケースを作成する
- CrossOverにボトルを作成(この場合はFreeCAD)
- そのボトルでコマンドプロンプトを起動
- 1のディレクトリにcd
- DualSPHysics5.2CPU_win64.exeがあるbinディレクトリをPATHに通す。
- 2のケースをDualSPHysics5.2CPU_win64.exeで実行する。
下のは2つ目の方法で、CrossOverのコマンドプロンプトを使わずに直接ターミナルから実行する場合のコマンドです。wineというのがCrossOverが含んでいるWindowsのアプリケーションを実行するソフトウェアです。
- DualSPHysicsのwindows版のzipを適当なフォルダに展開しておく
- DesignSPHysicsでケースを作成する
- CrossOverにボトルを作成(この場合はFreeCAD)
- Macのターミナルを起動する
- wineコマンドにパスを通す
- 「export PATH=”/Applications/CrossOver.app/Contents/SharedSupport/CrossOver/bin”:$PATH」
- 下のコマンドで実行する
- GenCase_win64.exe <defファイル> <outフォルダ>/<out名> -save:all
- DualSPHysics5.4_win64.exe <outフォルダ>/<out名> -dirout:<genフォルダ> -sv:vtk
コマンド:GenCase_win64.exeの場合
例1. USAGE
wine -bottle FreeCAD "/Users/USERNAME/Library/Application Support/CrossOver/Bottles/FreeCAD/drive_c/users/crossover/AppData/Roaming/FreeCAD/Mod/DesignSPHysics/dualsphysics/bin/GenCase_win64.exe" <case_def> <case_name>
例2. case2の場合
wine -bottle FreeCAD "/Users/USERNAME/Library/Application Support/CrossOver/Bottles/FreeCAD/drive_c/users/crossover/AppData/Roaming/FreeCAD/Mod/DesignSPHysics/dualsphysics/bin/GenCase_win64.exe" case2_def case2
コマンド:DualSPHysics5.2CPU_win64.exeの場合
例1. USAGE
wine -bottle FreeCAD "/Users/USERNAME/Library/Application Support/CrossOver/Bottles/FreeCAD/drive_c/users/crossover/AppData/Roaming/FreeCAD/Mod/DesignSPHysics/dualsphysics/bin/DualSPHysics5.2CPU_win64.exe" <case>
例2. case1の場合
wine -bottle FreeCAD "/Users/USERNAME/Library/Application Support/CrossOver/Bottles/FreeCAD/drive_c/users/crossover/AppData/Roaming/FreeCAD/Mod/DesignSPHysics/dualsphysics/bin/DualSPHysics5.2CPU_win64.exe" case1
例3. ケースDesignSPHysicsTutorialの場合
wine -bottle DualSPHysics "/Users/takahiro/Documents/DualSPHysics/DualSPHysics_v5.4/bin/windows/DualSPHysics5.4CPU_win64.exe" DesignSPHysicsTutorial_out/DesignSPHysicsTutorial
Mac mini Apple M2での実行結果のログ
wine -bottle FreeCAD "/Users/USERNAME/Library/Application Support/CrossOver/Bottles/FreeCAD/drive_c/users/crossover/AppData/Roaming/FreeCAD/Mod/DesignSPHysics/dualsphysics/bin/GenCase_win64.exe" case2_Def case2
wineserver: using server-side synchronization.
<GENCASE> Copyright (c) 2020 by Dr Jose M. Dominguez
All rights reserved.
GenCase is a free tool for DualSPHysics simulations.
DualSPHysics project is an international collaboration between
University of Vigo (Spain) and University of Manchester (UK).
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the GenCase nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
GenCase v5.0.278c (30-10-2023)
===============================
LoadDsphConfig> .../dualsphysics/bin/DsphConfig.xml
OmpThreads: 8
[LoadXMLInit]
List: MAIN
Total operations: 8
[LoadXMLInit-End time:0.008s]
[Draw]
List of available variables: Gravity_x=[0] Gravity_y=[0] Gravity_z=[-9.81] Rhop0=[1000] MResId=[0] Dp=[0.01] PosMin_x=[0] PosMin_y=[0] PosMin_z=[0] PosMax_x=[1] PosMax_y=[1] PosMax_z=[1] CaseName=["case2"] Data2D=[0] Data2DPosy=[0] H=[0.0207846] MassBound=[0.001] MassFluid=[0.001]
Mk size: 1 bytes
Case limits: (0,0,0) - (1,1,1)
Distance between points (Dp): 0.01
Reference position: (0,0,0)
Case domain: (0,0,0)-(99,99,99)
Domain points: 100 x 100 x 100 = 1000000
Case parts: 1 x 100z
Memory: 0.00Gb 0.95Mb (1000000)
> MAIN
FileShapes> _Dp.vtk shapes:582 points:562 (time:0.004s)
FileShapes> _Actual.vtk shapes:582 points:562 (time:0.000s)
<MAIN (Operations= 6+2+1 = 9)
Triangles: 16 (0 ignored)
[Draw-End time:0.016s]
[LoadsXMLConfig]
Execution parameters.
Initials configuration.
Floating bodies configuration.
Properties configuration.
Predefined motion configuration.
[LoadsXMLConfig-End time:0.001s]
[PreparePoints]
Computing Vtk-Cells data... (time:0.009s)
BitSizeTot: 20 (1 + 7+7+5)
Points loaded: 260000
Sorting points by Z...
Sorting points by Mk...
List of Points:
Points -> Fixed-Boundary particles:
block[ 0] (mk: 11): 260000 --> 260000
Particle summary:
Fixed....: 260000 id:(0-259999) MKs:1 (11)
Moving...: 0
Floating.: 0
Fluid....: 0
Total particles: 260000 (bound=260000 (fx=260000 mv=0 ft=0) fluid=0)
Total MK blocks: 1 (bound=1 (fx=1 mv=0 ft=0) fluid=0)
*** WARNING: No fluid particles were created in the defined domain.
*** WARNING: Automatic maximum depth is zero since there are no fluid particles.
Maximum depth: 0 (automatic)
Speed of system: 0 (automatic)
Speed of sound: max(coefsound*speedsystem,10*sqrt(g*depth))
Speed of sound: 0 max(0,0)
Speed of sound: 0 (automatic)
Coefh:1.200000 (hdp:2.078461)
*** WARNING: Constant B is zero.
[PreparePoints-End time:0.023s]
[SaveCase3D]
case2_MkCells.vtk (time:0.000s, shapes:6, points:24)
case2.bi4<double> (time:0.030s)
case2.xml (time:0.004s)
Save files time: 0.034s
Particle limits:
X range: 0 to 0.99 [m]
Y range: 0 to 0.99 [m]
Z range: 0 to 0.25 [m]
[SaveCase3D-End time:0.041s]
[WARNINGS]
1. No fluid particles were created in the defined domain.
2. Automatic maximum depth is zero since there are no fluid particles.
3. Constant B is zero.
Time of execution: 0.095 sec. (8 threads)
Finished execution (code=0).