diff --git a/recipes/fans/fix_gitignore_ms.patch b/recipes/fans/fix_gitignore_ms.patch new file mode 100644 index 0000000000000..208a0637307d4 --- /dev/null +++ b/recipes/fans/fix_gitignore_ms.patch @@ -0,0 +1,25 @@ +From 393a0c622bcef196bbe1c0cc81fe8c15b9b152c4 Mon Sep 17 00:00:00 2001 +From: Claudius Haag +Date: Thu, 28 Nov 2024 11:04:56 +0100 +Subject: [PATCH] Fix gitignore for sphere32 inclusion + needed for copying + when doing test for conda-forge packaging + +--- + .gitignore | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.gitignore b/.gitignore +index 2bc948f..c713336 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -198,7 +198,7 @@ test/input_files/**/*.json + **/scratch/ + + # Test microstructure files +-!sphere.h5 ++!sphere32.h5 + + # Test input files + !test_LinearElastic.json +-- +2.34.1 diff --git a/recipes/fans/recipe.yaml b/recipes/fans/recipe.yaml new file mode 100644 index 0000000000000..78ad444a09cb9 --- /dev/null +++ b/recipes/fans/recipe.yaml @@ -0,0 +1,76 @@ +context: + version: "0.3.0" + +package: + name: fans + version: ${{ version }} + +source: + url: https://github.com/DataAnalyticsEngineering/FANS/archive/refs/tags/v${{ version }}.tar.gz + sha256: 1573478d9acd27a9cfc126a4167ce3951ec26e9896bf19577b44cbc4bdc48b88 + patches: + - fix_gitignore_ms.patch # modify so gitignore does not include the sphere32.h5 file + +build: + number: 0 + skip: + - win + - osx + script: + - if: linux + then: + - rm -rf build + - mkdir build + - cd build + - cmake .. $CMAKE_ARGS -DCMAKE_C_COMPILER=$PREFIX/bin/mpicc -DCMAKE_CXX_COMPILER=$PREFIX/bin/mpicxx + - cmake --build . -j + - cmake --install . + +requirements: + build: + - ${{ compiler('c') }} + - ${{ compiler('cxx') }} + - ${{ stdlib('c') }} + - cmake + - make + - ninja + host: + - hdf5 * mpi_openmpi* + - fftw * mpi_openmpi* + - openmpi-mpicxx + - eigen + +tests: + - package_contents: + bin: + - FANS + - script: + - JSON_FILE="$PREFIX/etc/conda/test-files/$PKG_NAME/0/test/input_files/test_LinearElastic.json" + - MODIFIED_JSON_FILE="$PREFIX/etc/conda/test-files/$PKG_NAME/0/test/input_files/test_LinearElastic_mod.json" + - NEW_MS_FILENAME="$PREFIX/etc/conda/test-files/$PKG_NAME/0/test/microstructures/sphere32.h5" + # Use jq to create a modified copy of the JSON file + - jq --arg new_filename "$NEW_MS_FILENAME" '.ms_filename = $new_filename' "$JSON_FILE" > "$MODIFIED_JSON_FILE" + # Run tests + - mpiexec -n 2 FANS "$MODIFIED_JSON_FILE" "$PREFIX/etc/conda/test-files/$PKG_NAME/0//test/test_results.h5" + requirements: + run: + - jq + files: + source: + - test/ + +about: + homepage: https://github.com/DataAnalyticsEngineering/FANS + summary: "FANS: an open-source, efficient, and parallel FFT-based homogenization solver designed to solve microscale multiphysics problems." + description: | + Fourier Accelerated Nodal Solvers (FANS) is an FFT-based homogenization solver designed to handle microscale multiphysics problems. + This repository contains a C++ implementation of FANS, built using CMake and MPI for parallel computations. + license: LGPL-3.0-only + license_family: LGPL + license_file: LICENSE + +extra: + recipe-maintainers: + - sanathkeshav + - claudiushaag + - EMMAOpenSource