Docker-Compose로 OpenFOAM 개발 환경 구축
소개
Docker에서 OpenFOAM 개발 및 컴퓨팅 환경을 구축하는 방법을 기록해 둡니다.
OpenFOAM은 fundation 버전을 가정합니다.
이 내용은 github에 공개되어 있으므로 참고해 주셨으면합니다.
htps : // 기주 b. 코 m / 속눈썹 다 이스케 / 오펜 후 아 m도 c 케 rs rt
환경
docker와 docker-compose는 이미 설치되어 있다고 가정합니다.
docker 버전 19.03.4
docker-compose version 1.24.1
구성
디렉토리 구성은 다음과 같습니다.
project
├ docker-compose.yml
├ docker
| └ openfoam
| └ Dockerfile
└ of-develop(このディレクトリ内で開発する)
환경 구축
1. 디렉토리 생성
위의 구성을 참조하여 디렉토리와 파일을 만들거나 github에서 clone하십시오.
git clone https://github.com/matsubaraDaisuke/openfoam-docker-start.git
cd openfoam-docker-start
2.docker-compose.yml
이번에 사용하는 컨테이너는 openfoam뿐이므로 다음과 같이 씁니다. 파이썬 라이브러리 등을 결합하고 싶다면 필요에 따라 늘립니다.
volumes:
곳에서 openfoam의 $WM_PROJECT_USER_DIR
에 마운트하고 있음을 알 수 있습니다.
docker-compose.ymlversion: '3'
services:
openfoam:
container_name: openfoam
build: ./docker/openfoam
volumes:
- ./of-develop:/home/openfoam
3.Dockerfile 만들기
OpenFOAM 용 Dockerfile을 만듭니다.
이번에는 version7을 이용합니다.
htps : // 후 b. 두 c r. 코 m/r/오펜후아아 m/오펜후아아 m7-파라ゔぃ에w56
다른 버전을 사용하려면 아래 링크에서 다른 컨테이너를 찾으십시오.
htps : // 후 b. 두 c r. 코 m/r/오펜후아아 m/
./openfoam/DockerfileFROM openfoam/openfoam7-paraview56
WORKDIR /home/openfoam
4. 동작 확인
docker-compose.yml
가있는 디렉토리에서 다음 명령을 실행하면 빌드가 시작됩니다.
호스트$ docker-compose up --build
문제없이 끝나면 다음 명령을 사용하여 openfoam 컨테이너에 들어갈 수 있습니다.
호스트$ docker-compose run openfoam /bin/sh
컨테이너 내에서 pwd
하면 /home/openfoam
에 있음을 알 수 있습니다.
또한 적절한 파일을 만들면 touch a.foam
호스트 of-develop
에 a.foam
가 출력되는지 확인할 수 있습니다.
OpenFOAM도 그대로 이용할 수 있는 상태로 되어 있는 것을 확인할 수 있습니다.
container$ simpleFoam -help
Usage: simpleFoam [OPTIONS]
options:
-case <dir> specify alternate case directory, default is the cwd
-fileHandler <handler>
override the fileHandler
-hostRoots <(((host1 dir1) .. (hostN dirN))>
slave root directories (per host) for distributed running
-libs <(lib1 .. libN)>
pre-load libraries
-listFunctionObjects
List functionObjects
-listFvOptions List fvOptions
-listRegisteredSwitches
List switches registered for run-time modification
-listScalarBCs List scalar field boundary conditions (fvPatchField<scalar>)
-listSwitches List switches declared in libraries but not set in
etc/controlDict
-listTurbulenceModels
List turbulenceModels
-listUnsetSwitches
List switches declared in libraries but not set in
etc/controlDict
-listVectorBCs List vector field boundary conditions (fvPatchField<vector>)
-noFunctionObjects
do not execute functionObjects
-parallel run in parallel
-postProcess Execute functionObjects only
-roots <(dir1 .. dirN)>
slave root directories for distributed running
-srcDoc display source code in browser
-doc display application documentation in browser
-help print the usage
Using: OpenFOAM-7 (see https://openfoam.org)
Build: *******
계산 입력 파일과 환경을 공유하려는 경우
(계산 자체도 상대에게 밀어붙이고 싶은 사람용)
먼저 계산 결과를 공유하는 예제를 작성해 보겠습니다.
컨테이너 내에서 튜토리얼의 pitzDaily를 복사합니다.
container$ cp -r $WM_PROJECT_DIR/tutorials/incompressible/simpleFoam/pitzDaily .
of-develop 디렉토리 아래에 케이스 파일이 있습니다.
이 상태에서 docker-compose.yml 등으로 세트로 보내면 좋을 것입니다.
데이터 용량도 303KB로 경량입니다.
데이터를 수신 한 측은 위의 동작 확인 항목과 동일한 조작을 한 후 케이스 파일에서 계산을 실행하는 것이 좋습니다.
container$ cd pitzDaily
$ blockMesh
$ simpleFoam
계산 결과는 of-develo/pitzDaily
디렉토리에 출력됩니다.
케이스 파일을 보내는 사람은 실행에 필요한 명령을 Makefile
등에 기술해 주면 더 친절하다고 생각됩니다.
이와 같이, 계산과 입력 파일과 계산 환경의 정보를 세트로 해 git등으로 관리하는 것으로, 기술적 부채가 되는 것을 피할 수가 있습니다.
솔버 개발을 원한다면
적절한 솔버를 복사합니다.
containercp -r $WM_PROJECT_DIR/applications/solvers/basic/laplacianFoam/ .
철자 laplacianFoam2
라는 해법을 작성해 보겠습니다.
파일 이름 변경
containermv laplacianFoam.C laplacianFoam2.C
laplacianFoam/Make/files
수정
laplacianFoam/Make/fileslaplacianFoam2.C
EXE = $(FOAM_USER_APPBIN)/laplacianFoam2
마지막으로 컴파일합니다.
container (laplacianFoam 바로 아래)$ wmake
성공하면 다음과 같이 실행할 수 있다고 생각합니다.
container$ laplacianFoam2 -help
Usage: laplacianFoam2 [OPTIONS]
options:
-case <dir> specify alternate case directory, default is the cwd
-fileHandler <handler>
override the fileHandler
-hostRoots <(((host1 dir1) .. (hostN dirN))>
slave root directories (per host) for distributed running
-libs <(lib1 .. libN)>
pre-load libraries
-listFunctionObjects
List functionObjects
-listFvOptions List fvOptions
-listRegisteredSwitches
List switches registered for run-time modification
-listScalarBCs List scalar field boundary conditions (fvPatchField<scalar>)
-listSwitches List switches declared in libraries but not set in
etc/controlDict
-listUnsetSwitches
List switches declared in libraries but not set in
etc/controlDict
-listVectorBCs List vector field boundary conditions (fvPatchField<vector>)
-noFunctionObjects
do not execute functionObjects
-parallel run in parallel
-roots <(dir1 .. dirN)>
slave root directories for distributed running
-srcDoc display source code in browser
-doc display application documentation in browser
-help print the usage
Using: OpenFOAM-7 (see https://openfoam.org)
Build: ******
이상의 방법으로, 개조하는 솔버의 부분만이, 호스트측에서 보이는 상황에서 개발을 진행할 수가 있습니다. 버전의 차이에 의한 결과의 비교 등도 편하게 실시할 수 있을 것이다.
이번은 무리하게 compose로 할 필요는 없다고 생각합니다만, 개발 도중에 다양한 이미지를 조합하고 싶어진 경우를 상정해 이렇게 하고 있습니다.
Reference
이 문제에 관하여(Docker-Compose로 OpenFOAM 개발 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubara_d/items/5330a66801142d6afd6a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
docker와 docker-compose는 이미 설치되어 있다고 가정합니다.
docker 버전 19.03.4
docker-compose version 1.24.1
구성
디렉토리 구성은 다음과 같습니다.
project
├ docker-compose.yml
├ docker
| └ openfoam
| └ Dockerfile
└ of-develop(このディレクトリ内で開発する)
환경 구축
1. 디렉토리 생성
위의 구성을 참조하여 디렉토리와 파일을 만들거나 github에서 clone하십시오.
git clone https://github.com/matsubaraDaisuke/openfoam-docker-start.git
cd openfoam-docker-start
2.docker-compose.yml
이번에 사용하는 컨테이너는 openfoam뿐이므로 다음과 같이 씁니다. 파이썬 라이브러리 등을 결합하고 싶다면 필요에 따라 늘립니다.
volumes:
곳에서 openfoam의 $WM_PROJECT_USER_DIR
에 마운트하고 있음을 알 수 있습니다.
docker-compose.ymlversion: '3'
services:
openfoam:
container_name: openfoam
build: ./docker/openfoam
volumes:
- ./of-develop:/home/openfoam
3.Dockerfile 만들기
OpenFOAM 용 Dockerfile을 만듭니다.
이번에는 version7을 이용합니다.
htps : // 후 b. 두 c r. 코 m/r/오펜후아아 m/오펜후아아 m7-파라ゔぃ에w56
다른 버전을 사용하려면 아래 링크에서 다른 컨테이너를 찾으십시오.
htps : // 후 b. 두 c r. 코 m/r/오펜후아아 m/
./openfoam/DockerfileFROM openfoam/openfoam7-paraview56
WORKDIR /home/openfoam
4. 동작 확인
docker-compose.yml
가있는 디렉토리에서 다음 명령을 실행하면 빌드가 시작됩니다.
호스트$ docker-compose up --build
문제없이 끝나면 다음 명령을 사용하여 openfoam 컨테이너에 들어갈 수 있습니다.
호스트$ docker-compose run openfoam /bin/sh
컨테이너 내에서 pwd
하면 /home/openfoam
에 있음을 알 수 있습니다.
또한 적절한 파일을 만들면 touch a.foam
호스트 of-develop
에 a.foam
가 출력되는지 확인할 수 있습니다.
OpenFOAM도 그대로 이용할 수 있는 상태로 되어 있는 것을 확인할 수 있습니다.
container$ simpleFoam -help
Usage: simpleFoam [OPTIONS]
options:
-case <dir> specify alternate case directory, default is the cwd
-fileHandler <handler>
override the fileHandler
-hostRoots <(((host1 dir1) .. (hostN dirN))>
slave root directories (per host) for distributed running
-libs <(lib1 .. libN)>
pre-load libraries
-listFunctionObjects
List functionObjects
-listFvOptions List fvOptions
-listRegisteredSwitches
List switches registered for run-time modification
-listScalarBCs List scalar field boundary conditions (fvPatchField<scalar>)
-listSwitches List switches declared in libraries but not set in
etc/controlDict
-listTurbulenceModels
List turbulenceModels
-listUnsetSwitches
List switches declared in libraries but not set in
etc/controlDict
-listVectorBCs List vector field boundary conditions (fvPatchField<vector>)
-noFunctionObjects
do not execute functionObjects
-parallel run in parallel
-postProcess Execute functionObjects only
-roots <(dir1 .. dirN)>
slave root directories for distributed running
-srcDoc display source code in browser
-doc display application documentation in browser
-help print the usage
Using: OpenFOAM-7 (see https://openfoam.org)
Build: *******
계산 입력 파일과 환경을 공유하려는 경우
(계산 자체도 상대에게 밀어붙이고 싶은 사람용)
먼저 계산 결과를 공유하는 예제를 작성해 보겠습니다.
컨테이너 내에서 튜토리얼의 pitzDaily를 복사합니다.
container$ cp -r $WM_PROJECT_DIR/tutorials/incompressible/simpleFoam/pitzDaily .
of-develop 디렉토리 아래에 케이스 파일이 있습니다.
이 상태에서 docker-compose.yml 등으로 세트로 보내면 좋을 것입니다.
데이터 용량도 303KB로 경량입니다.
데이터를 수신 한 측은 위의 동작 확인 항목과 동일한 조작을 한 후 케이스 파일에서 계산을 실행하는 것이 좋습니다.
container$ cd pitzDaily
$ blockMesh
$ simpleFoam
계산 결과는 of-develo/pitzDaily
디렉토리에 출력됩니다.
케이스 파일을 보내는 사람은 실행에 필요한 명령을 Makefile
등에 기술해 주면 더 친절하다고 생각됩니다.
이와 같이, 계산과 입력 파일과 계산 환경의 정보를 세트로 해 git등으로 관리하는 것으로, 기술적 부채가 되는 것을 피할 수가 있습니다.
솔버 개발을 원한다면
적절한 솔버를 복사합니다.
containercp -r $WM_PROJECT_DIR/applications/solvers/basic/laplacianFoam/ .
철자 laplacianFoam2
라는 해법을 작성해 보겠습니다.
파일 이름 변경
containermv laplacianFoam.C laplacianFoam2.C
laplacianFoam/Make/files
수정
laplacianFoam/Make/fileslaplacianFoam2.C
EXE = $(FOAM_USER_APPBIN)/laplacianFoam2
마지막으로 컴파일합니다.
container (laplacianFoam 바로 아래)$ wmake
성공하면 다음과 같이 실행할 수 있다고 생각합니다.
container$ laplacianFoam2 -help
Usage: laplacianFoam2 [OPTIONS]
options:
-case <dir> specify alternate case directory, default is the cwd
-fileHandler <handler>
override the fileHandler
-hostRoots <(((host1 dir1) .. (hostN dirN))>
slave root directories (per host) for distributed running
-libs <(lib1 .. libN)>
pre-load libraries
-listFunctionObjects
List functionObjects
-listFvOptions List fvOptions
-listRegisteredSwitches
List switches registered for run-time modification
-listScalarBCs List scalar field boundary conditions (fvPatchField<scalar>)
-listSwitches List switches declared in libraries but not set in
etc/controlDict
-listUnsetSwitches
List switches declared in libraries but not set in
etc/controlDict
-listVectorBCs List vector field boundary conditions (fvPatchField<vector>)
-noFunctionObjects
do not execute functionObjects
-parallel run in parallel
-roots <(dir1 .. dirN)>
slave root directories for distributed running
-srcDoc display source code in browser
-doc display application documentation in browser
-help print the usage
Using: OpenFOAM-7 (see https://openfoam.org)
Build: ******
이상의 방법으로, 개조하는 솔버의 부분만이, 호스트측에서 보이는 상황에서 개발을 진행할 수가 있습니다. 버전의 차이에 의한 결과의 비교 등도 편하게 실시할 수 있을 것이다.
이번은 무리하게 compose로 할 필요는 없다고 생각합니다만, 개발 도중에 다양한 이미지를 조합하고 싶어진 경우를 상정해 이렇게 하고 있습니다.
Reference
이 문제에 관하여(Docker-Compose로 OpenFOAM 개발 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubara_d/items/5330a66801142d6afd6a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
project
├ docker-compose.yml
├ docker
| └ openfoam
| └ Dockerfile
└ of-develop(このディレクトリ内で開発する)
1. 디렉토리 생성
위의 구성을 참조하여 디렉토리와 파일을 만들거나 github에서 clone하십시오.
git clone https://github.com/matsubaraDaisuke/openfoam-docker-start.git
cd openfoam-docker-start
2.docker-compose.yml
이번에 사용하는 컨테이너는 openfoam뿐이므로 다음과 같이 씁니다. 파이썬 라이브러리 등을 결합하고 싶다면 필요에 따라 늘립니다.
volumes:
곳에서 openfoam의 $WM_PROJECT_USER_DIR
에 마운트하고 있음을 알 수 있습니다.docker-compose.yml
version: '3'
services:
openfoam:
container_name: openfoam
build: ./docker/openfoam
volumes:
- ./of-develop:/home/openfoam
3.Dockerfile 만들기
OpenFOAM 용 Dockerfile을 만듭니다.
이번에는 version7을 이용합니다.
htps : // 후 b. 두 c r. 코 m/r/오펜후아아 m/오펜후아아 m7-파라ゔぃ에w56
다른 버전을 사용하려면 아래 링크에서 다른 컨테이너를 찾으십시오.
htps : // 후 b. 두 c r. 코 m/r/오펜후아아 m/
./openfoam/Dockerfile
FROM openfoam/openfoam7-paraview56
WORKDIR /home/openfoam
4. 동작 확인
docker-compose.yml
가있는 디렉토리에서 다음 명령을 실행하면 빌드가 시작됩니다.호스트
$ docker-compose up --build
문제없이 끝나면 다음 명령을 사용하여 openfoam 컨테이너에 들어갈 수 있습니다.
호스트
$ docker-compose run openfoam /bin/sh
컨테이너 내에서
pwd
하면 /home/openfoam
에 있음을 알 수 있습니다.또한 적절한 파일을 만들면
touch a.foam
호스트 of-develop
에 a.foam
가 출력되는지 확인할 수 있습니다.OpenFOAM도 그대로 이용할 수 있는 상태로 되어 있는 것을 확인할 수 있습니다.
container
$ simpleFoam -help
Usage: simpleFoam [OPTIONS]
options:
-case <dir> specify alternate case directory, default is the cwd
-fileHandler <handler>
override the fileHandler
-hostRoots <(((host1 dir1) .. (hostN dirN))>
slave root directories (per host) for distributed running
-libs <(lib1 .. libN)>
pre-load libraries
-listFunctionObjects
List functionObjects
-listFvOptions List fvOptions
-listRegisteredSwitches
List switches registered for run-time modification
-listScalarBCs List scalar field boundary conditions (fvPatchField<scalar>)
-listSwitches List switches declared in libraries but not set in
etc/controlDict
-listTurbulenceModels
List turbulenceModels
-listUnsetSwitches
List switches declared in libraries but not set in
etc/controlDict
-listVectorBCs List vector field boundary conditions (fvPatchField<vector>)
-noFunctionObjects
do not execute functionObjects
-parallel run in parallel
-postProcess Execute functionObjects only
-roots <(dir1 .. dirN)>
slave root directories for distributed running
-srcDoc display source code in browser
-doc display application documentation in browser
-help print the usage
Using: OpenFOAM-7 (see https://openfoam.org)
Build: *******
계산 입력 파일과 환경을 공유하려는 경우
(계산 자체도 상대에게 밀어붙이고 싶은 사람용)
먼저 계산 결과를 공유하는 예제를 작성해 보겠습니다.
컨테이너 내에서 튜토리얼의 pitzDaily를 복사합니다.
container$ cp -r $WM_PROJECT_DIR/tutorials/incompressible/simpleFoam/pitzDaily .
of-develop 디렉토리 아래에 케이스 파일이 있습니다.
이 상태에서 docker-compose.yml 등으로 세트로 보내면 좋을 것입니다.
데이터 용량도 303KB로 경량입니다.
데이터를 수신 한 측은 위의 동작 확인 항목과 동일한 조작을 한 후 케이스 파일에서 계산을 실행하는 것이 좋습니다.
container$ cd pitzDaily
$ blockMesh
$ simpleFoam
계산 결과는 of-develo/pitzDaily
디렉토리에 출력됩니다.
케이스 파일을 보내는 사람은 실행에 필요한 명령을 Makefile
등에 기술해 주면 더 친절하다고 생각됩니다.
이와 같이, 계산과 입력 파일과 계산 환경의 정보를 세트로 해 git등으로 관리하는 것으로, 기술적 부채가 되는 것을 피할 수가 있습니다.
솔버 개발을 원한다면
적절한 솔버를 복사합니다.
containercp -r $WM_PROJECT_DIR/applications/solvers/basic/laplacianFoam/ .
철자 laplacianFoam2
라는 해법을 작성해 보겠습니다.
파일 이름 변경
containermv laplacianFoam.C laplacianFoam2.C
laplacianFoam/Make/files
수정
laplacianFoam/Make/fileslaplacianFoam2.C
EXE = $(FOAM_USER_APPBIN)/laplacianFoam2
마지막으로 컴파일합니다.
container (laplacianFoam 바로 아래)$ wmake
성공하면 다음과 같이 실행할 수 있다고 생각합니다.
container$ laplacianFoam2 -help
Usage: laplacianFoam2 [OPTIONS]
options:
-case <dir> specify alternate case directory, default is the cwd
-fileHandler <handler>
override the fileHandler
-hostRoots <(((host1 dir1) .. (hostN dirN))>
slave root directories (per host) for distributed running
-libs <(lib1 .. libN)>
pre-load libraries
-listFunctionObjects
List functionObjects
-listFvOptions List fvOptions
-listRegisteredSwitches
List switches registered for run-time modification
-listScalarBCs List scalar field boundary conditions (fvPatchField<scalar>)
-listSwitches List switches declared in libraries but not set in
etc/controlDict
-listUnsetSwitches
List switches declared in libraries but not set in
etc/controlDict
-listVectorBCs List vector field boundary conditions (fvPatchField<vector>)
-noFunctionObjects
do not execute functionObjects
-parallel run in parallel
-roots <(dir1 .. dirN)>
slave root directories for distributed running
-srcDoc display source code in browser
-doc display application documentation in browser
-help print the usage
Using: OpenFOAM-7 (see https://openfoam.org)
Build: ******
이상의 방법으로, 개조하는 솔버의 부분만이, 호스트측에서 보이는 상황에서 개발을 진행할 수가 있습니다. 버전의 차이에 의한 결과의 비교 등도 편하게 실시할 수 있을 것이다.
이번은 무리하게 compose로 할 필요는 없다고 생각합니다만, 개발 도중에 다양한 이미지를 조합하고 싶어진 경우를 상정해 이렇게 하고 있습니다.
Reference
이 문제에 관하여(Docker-Compose로 OpenFOAM 개발 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubara_d/items/5330a66801142d6afd6a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ cp -r $WM_PROJECT_DIR/tutorials/incompressible/simpleFoam/pitzDaily .
$ cd pitzDaily
$ blockMesh
$ simpleFoam
적절한 솔버를 복사합니다.
container
cp -r $WM_PROJECT_DIR/applications/solvers/basic/laplacianFoam/ .
철자
laplacianFoam2
라는 해법을 작성해 보겠습니다.파일 이름 변경
container
mv laplacianFoam.C laplacianFoam2.C
laplacianFoam/Make/files
수정laplacianFoam/Make/files
laplacianFoam2.C
EXE = $(FOAM_USER_APPBIN)/laplacianFoam2
마지막으로 컴파일합니다.
container (laplacianFoam 바로 아래)
$ wmake
성공하면 다음과 같이 실행할 수 있다고 생각합니다.
container
$ laplacianFoam2 -help
Usage: laplacianFoam2 [OPTIONS]
options:
-case <dir> specify alternate case directory, default is the cwd
-fileHandler <handler>
override the fileHandler
-hostRoots <(((host1 dir1) .. (hostN dirN))>
slave root directories (per host) for distributed running
-libs <(lib1 .. libN)>
pre-load libraries
-listFunctionObjects
List functionObjects
-listFvOptions List fvOptions
-listRegisteredSwitches
List switches registered for run-time modification
-listScalarBCs List scalar field boundary conditions (fvPatchField<scalar>)
-listSwitches List switches declared in libraries but not set in
etc/controlDict
-listUnsetSwitches
List switches declared in libraries but not set in
etc/controlDict
-listVectorBCs List vector field boundary conditions (fvPatchField<vector>)
-noFunctionObjects
do not execute functionObjects
-parallel run in parallel
-roots <(dir1 .. dirN)>
slave root directories for distributed running
-srcDoc display source code in browser
-doc display application documentation in browser
-help print the usage
Using: OpenFOAM-7 (see https://openfoam.org)
Build: ******
이상의 방법으로, 개조하는 솔버의 부분만이, 호스트측에서 보이는 상황에서 개발을 진행할 수가 있습니다. 버전의 차이에 의한 결과의 비교 등도 편하게 실시할 수 있을 것이다.
이번은 무리하게 compose로 할 필요는 없다고 생각합니다만, 개발 도중에 다양한 이미지를 조합하고 싶어진 경우를 상정해 이렇게 하고 있습니다.
Reference
이 문제에 관하여(Docker-Compose로 OpenFOAM 개발 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/matsubara_d/items/5330a66801142d6afd6a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)