@@ -2,7 +2,7 @@ name: Grid and Mesh Solver
22on : [push]
33
44env :
5- PETSC_VERSION : ' 3.24.2 '
5+ PETSC_VERSION : ' 3.24.4 '
66 HOMEBREW_NO_ANALYTICS : ' ON' # Make Homebrew installation a little quicker
77 HOMEBREW_NO_AUTO_UPDATE : ' ON'
88 HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK : ' ON'
@@ -25,12 +25,13 @@ jobs:
2525
2626 steps :
2727
28- - uses : actions/checkout@v4
28+ - name : DAMASK - Checkout
29+ uses : actions/checkout@v4
2930
3031 - name : GCC - Install
3132 run : |
3233 sudo apt-get update
33- sudo apt-get install liblapack-dev
34+ sudo apt-get install liblapack-dev libbz2-dev libfyaml-dev
3435 sudo apt-get install -y gcc-${GCC_V} gfortran-${GCC_V} g++-${GCC_V}
3536 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${GCC_V} 100 \
3637 --slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${GCC_V} \
6667 - name : PETSc - Installation
6768 run : |
6869 cd petsc-${PETSC_VERSION}
69- ./configure --with-fc=gfortran --with-cc=gcc --with-cxx=g++ \
70- --download-openmpi --download-fftw --download-hdf5 --with-hdf5-fortran-bindings=1 --download-zlib \
70+ sed -i 's/self.getCompiler().lower()/self.getCompiler()/g' config/BuildSystem/config/packages/boost.py # https://gitlab.com/petsc/petsc/-/merge_requests/9012
71+ ./configure \
72+ --with-fc=gfortran --with-cc=gcc --with-cxx=g++ \
73+ --download-openmpi --download-fftw --download-hdf5 --with-hdf5-fortran-bindings=1 --download-zlib --download-boost \
7174 --with-mpi-f90module-visibility=1
7275 make all
7376
9194 fail-fast : false
9295
9396 steps :
94- - uses : actions/checkout@v4
97+
98+ - name : DAMASK - Checkout
99+ uses : actions/checkout@v4
95100
96101 - name : Intel - Install
97102 run : |
@@ -104,7 +109,7 @@ jobs:
104109 | sudo tee /etc/apt/sources.list.d/oneAPI.list
105110 sudo apt-get update
106111 sudo apt-get install \
107- intel-basekit intel-hpckit
112+ intel-basekit intel-hpckit libbz2-dev libfyaml-dev
108113 source /opt/intel/oneapi/setvars.sh
109114 printenv >> $GITHUB_ENV
110115
@@ -138,11 +143,9 @@ jobs:
138143 run : |
139144 cd petsc-${PETSC_VERSION}
140145 ./configure \
141- --with-fc=mpiifx \
142- --with-cc=mpiicx \
143- --with-cxx=mpiicpx \
146+ --with-fc=mpiifx --with-cc=mpiicx --with-cxx=mpiicpx \
144147 --with-x=0 \
145- --download-fftw --download-hdf5 --with-hdf5-fortran-bindings=1 --download-zlib
148+ --download-fftw --download-hdf5 --with-hdf5-fortran-bindings=1 --download-zlib --download-boost
146149 make all
147150
148151 - name : DAMASK - Compile
@@ -155,3 +158,63 @@ jobs:
155158 run : |
156159 ./bin/DAMASK_grid -l tensionX.yaml -g 20grains16x16x16.vti -m material.yaml -w examples/grid
157160 ./bin/DAMASK_mesh -l tensionZ_3g.yaml -g cube_3grains.msh -m material.yaml -w examples/mesh
161+
162+
163+ macos_homebrew :
164+
165+ runs-on : macos-26
166+
167+ steps :
168+
169+ - name : DAMASK - Checkout
170+ uses : actions/checkout@v4
171+
172+ - name : GCC - Install
173+ uses : gerlero/brew-install@v1
174+ with :
175+ packages : gcc open-mpi bzip2 libfyaml
176+
177+ - name : PETSc - Cache download
178+ id : petsc-download
179+ uses : actions/cache@v4
180+ with :
181+ path : download
182+ key : petsc-${{ env.PETSC_VERSION }}.tar.gz
183+
184+ - name : PETSc - Download
185+ if : steps.petsc-download.outputs.cache-hit != 'true'
186+ run : |
187+ wget -q https://web.cels.anl.gov/projects/petsc/download/release-snapshots/petsc-${PETSC_VERSION}.tar.gz -P download
188+
189+ - name : PETSc - Prepare
190+ run : |
191+ tar -xf download/petsc-${PETSC_VERSION}.tar.gz -C .
192+ export PETSC_DIR=${PWD}/petsc-${PETSC_VERSION}
193+ export PETSC_ARCH=macos${GCC_V}
194+ printenv >> $GITHUB_ENV
195+
196+ - name : PETSc - Cache Installation
197+ id : petsc-install
198+ uses : actions/cache@v4
199+ with :
200+ path : petsc-${{ env.PETSC_VERSION }}
201+ key : petsc-${{ env.PETSC_VERSION }}-macos-${{ hashFiles('**/petscversion.h') }}
202+
203+ - name : PETSc - Installation
204+ run : |
205+ ln -s /opt/homebrew/bin/gfortran-15 /opt/homebrew/bin/gfortran
206+ cd petsc-${PETSC_VERSION}
207+ ./configure --with-fc=mpifort --with-cc=mpicc --with-cxx=mpic++ \
208+ --download-fftw --download-hdf5 --with-hdf5-fortran-bindings=1 --download-zlib --download-boost
209+ make all
210+
211+ - name : DAMASK - Compile
212+ run : |
213+ cmake -B build -DGRID=ON -DMESH=ON -DCMAKE_INSTALL_PREFIX=${PWD} -DBUILDCMD_POST="--include-directory-after=$(gfortran -print-file-name=include)"
214+ cmake --build build --parallel
215+ cmake --install build
216+
217+ - name : DAMASK - Run
218+ run : |
219+ ./bin/DAMASK_grid -l tensionX.yaml -g 20grains16x16x16.vti -m material.yaml -w examples/grid
220+ ./bin/DAMASK_mesh -l tensionZ_3g.yaml -g cube_3grains.msh -m material.yaml -w examples/mesh
0 commit comments