diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 0082982..2ace33e 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -27,7 +27,7 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push fans-ci image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: ${{ github.workspace }} file: docker/Dockerfile @@ -42,7 +42,7 @@ jobs: build-args: UBUNTU_VERSION=${{ matrix.ubuntu-version }} - name: Build and push fans-dev image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: ${{ github.workspace }} file: docker/Dockerfile diff --git a/.github/workflows/test_pyfans.yaml b/.github/workflows/test_pyfans.yaml index 674693d..d510a62 100644 --- a/.github/workflows/test_pyfans.yaml +++ b/.github/workflows/test_pyfans.yaml @@ -22,7 +22,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Generate build directory run: mkdir -p ${{ env.FANS_BUILD_DIR }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 92ce63c..5f62666 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # FANS Changelog +## v0.4.1 + +- remove std::sqrt from constexpr - failed on Clang https://github.com/DataAnalyticsEngineering/FANS/pull/64 + ## v0.4.0 - Support compilaion on MacOS X via conda-forge https://github.com/DataAnalyticsEngineering/FANS/pull/59 diff --git a/CMakeLists.txt b/CMakeLists.txt index 83c94f9..4294bfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.21) # ############################################################################## project(FANS - VERSION 0.4.0 + VERSION 0.4.1 LANGUAGES C CXX ) diff --git a/FANS_Dashboard/pyproject.toml b/FANS_Dashboard/pyproject.toml index d38d245..c9f5287 100644 --- a/FANS_Dashboard/pyproject.toml +++ b/FANS_Dashboard/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "fans-dashboard" -version = "0.4.0" +version = "0.4.1" requires-python = ">=3.13" dependencies = [ "numpy>=2.2.5,<3", diff --git a/README.md b/README.md index a303380..e900a83 100644 --- a/README.md +++ b/README.md @@ -233,7 +233,7 @@ FANS requires a JSON input file specifying the problem parameters. Example input - `macroscale_loading`: This defines the external loading applied to the microstructure. It is an array of arrays, where each sub-array represents a loading condition applied to the system. The format of the loading array depends on the problem type: - For `thermal` problems, the array typically has 3 components, representing the temperature gradients in the $x$, $y$, and $z$ directions. -- For `mechanical` problems, the array must have 6 components, corresponding to the components of the strain tensor in Mandel notation (e.g., $[\varepsilon_{11},\; \varepsilon_{22},\; \varepsilon_{33},\; \sqrt{2}\varepsilon_{12},\; \sqrt{2}\varepsilon_{13},\; \sqrt{2}\varepsilon_{23}]$). +- For `mechanical` problems, the array must have 6 components, corresponding to the components of the strain tensor in Mandel notation (e.g., $[\varepsilon_{11}, \varepsilon_{22}, \varepsilon_{33}, \sqrt{2}\varepsilon_{12}, \sqrt{2}\varepsilon_{13}, \sqrt{2}\varepsilon_{23}]$). In the case of path/time-dependent loading as shown, for example as in plasticity problems, the `macroscale_loading` array can include multiple steps with corresponding loading conditions. diff --git a/docs/ReleaseGuide.md b/docs/ReleaseGuide.md index dc99747..4baaebf 100644 --- a/docs/ReleaseGuide.md +++ b/docs/ReleaseGuide.md @@ -6,11 +6,13 @@ The release of the `FANS` repository is made directly from a release branch call 1. Create a branch called `FANS-v1.2.3` from the latest commit of the `develop` branch. -2. If it is a real release, [open a Pull Request `main` <-- `FANS-v1.2.3`](https://github.com/DataAnalyticsEngineering/FANS/compare/main...main) named after the version (i.e. `Release v1.2.3`) and briefly describe the new features of the release in the PR description. +2. Bump the version in the `CHANGELOG.md`, the base `CMakeLists.txt`, and in the file `FANS_Dashboard/pyproject.toml` on the branch `FANS-v1.2.3`. -3. Bump the version in the `CHANGELOG.md` and the base `CMakeLists.txt` on the branch `FANS-v1.2.3`. +3. Assuming you have pixi installed, run the command `pixi lock` in the base directory file to update the version of the FANS dashboard in the pixi lock file. -4. [Draft a new release](https://github.com/DataAnalyticsEngineering/FANS/releases/new) in the `Releases` section of the repository page in a web browser. The release tag needs to be the exact version number (i.e.`v1.2.3` or `v1.2.3rc1`, compare to [existing tags](https://github.com/DataAnalyticsEngineering/FANS/tags)). Use `@target:main`. Release title is also the version number (i.e. `v1.2.3` or `v1.2.3rc1`, compare to [existing releases](https://github.com/DataAnalyticsEngineering/FANS/tags)). +4. If it is a real release, [open a Pull Request `main` <-- `FANS-v1.2.3`](https://github.com/DataAnalyticsEngineering/FANS/compare/main...main) named after the version (i.e. `Release v1.2.3`) and briefly describe the new features of the release in the PR description. + +5. [Draft a new release](https://github.com/DataAnalyticsEngineering/FANS/releases/new) in the `Releases` section of the repository page in a web browser. The release tag needs to be the exact version number (i.e.`v1.2.3` or `v1.2.3rc1`, compare to [existing tags](https://github.com/DataAnalyticsEngineering/FANS/tags)). Use `@target:main`. Release title is also the version number (i.e. `v1.2.3` or `v1.2.3rc1`, compare to [existing releases](https://github.com/DataAnalyticsEngineering/FANS/tags)). * *Note:* If it is a pre-release then the option *This is a pre-release* needs to be selected at the bottom of the page. Use `@target:FANS-v1.2.3` for a pre-release, since we will never merge a pre-release into `main`. * Use the `Auto-generate release notes` feature. @@ -19,6 +21,6 @@ The release of the `FANS` repository is made directly from a release branch call b) If this is a "real" release: As soon as one approving review is made, merge the release PR (from `FANS-v1.2.3`) into `main`. -5. Merge `main` into `develop` for synchronization of `develop`. +6. Merge `main` into `develop` for synchronization of `develop`. -6. If everything is in order up to this point then the new version can be released by hitting the "Publish release" button in your Release Draft. This will create the corresponding tag. +7. If everything is in order up to this point then the new version can be released by hitting the "Publish release" button in your Release Draft. This will create the corresponding tag. diff --git a/include/solver.h b/include/solver.h index 81fedd4..8197206 100644 --- a/include/solver.h +++ b/include/solver.h @@ -490,7 +490,7 @@ void Solver::postprocess(Reader reader, const char resultsFileName[], i const double Lx2 = reader.L[0] / 2.0; const double Ly2 = reader.L[1] / 2.0; const double Lz2 = reader.L[2] / 2.0; - constexpr double rs2 = 1.0 / std::sqrt(2.0); + constexpr double rs2 = 0.7071067811865475; // 1.0 / std::sqrt(2.0) VectorXd u_total(local_n0 * n_y * n_z * howmany); /* ---------- single sweep ------------------------------------------------- */ ptrdiff_t n = 0; diff --git a/pixi.lock b/pixi.lock index 43ee2b9..822be9d 100644 --- a/pixi.lock +++ b/pixi.lock @@ -110,7 +110,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl - - pypi: git+https://github.com/FlorianPfaff/pyRecEst.git#e3536319e7f6eeda70d763419e85db07c1f73777 + - pypi: git+https://github.com/FlorianPfaff/pyRecEst.git#37090d82e4ef0980d79944906136f935ae1b7697 - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/18/a6/f048826bc87528c208e90604c3bf573801e54bd91e390cbd2dfa860e82dc/pyzmq-26.4.0-cp313-cp313-manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl @@ -221,7 +221,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl - - pypi: git+https://github.com/FlorianPfaff/pyRecEst.git#e3536319e7f6eeda70d763419e85db07c1f73777 + - pypi: git+https://github.com/FlorianPfaff/pyRecEst.git#37090d82e4ef0980d79944906136f935ae1b7697 - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d7/20/fb2c92542488db70f833b92893769a569458311a76474bda89dc4264bd18/pyzmq-26.4.0-cp313-cp313-macosx_10_15_universal2.whl - pypi: https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl @@ -332,7 +332,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl - - pypi: git+https://github.com/FlorianPfaff/pyRecEst.git#e3536319e7f6eeda70d763419e85db07c1f73777 + - pypi: git+https://github.com/FlorianPfaff/pyRecEst.git#37090d82e4ef0980d79944906136f935ae1b7697 - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d7/20/fb2c92542488db70f833b92893769a569458311a76474bda89dc4264bd18/pyzmq-26.4.0-cp313-cp313-macosx_10_15_universal2.whl - pypi: https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl @@ -439,7 +439,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/e7/df2285f3d08fee213f2d041540fa4fc9ca6c2d44cf36d3a035bf2a8d2bcc/pyparsing-3.2.3-py3-none-any.whl - - pypi: git+https://github.com/FlorianPfaff/pyRecEst.git#e3536319e7f6eeda70d763419e85db07c1f73777 + - pypi: git+https://github.com/FlorianPfaff/pyRecEst.git#37090d82e4ef0980d79944906136f935ae1b7697 - pypi: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/45/3c/b4640f740ffebadd5d34df35fecba0e1cfef8fde9f3e594df91c28ad9b50/pywin32-310-cp313-cp313-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/c6/6c/f289c1789d7bb6e5a3b3bef7b2a55089b8561d17132be7d960d3ff33b14e/pyzmq-26.4.0-cp313-cp313-win_amd64.whl @@ -883,8 +883,8 @@ packages: requires_python: '>=3.8' - pypi: ./FANS_Dashboard name: fans-dashboard - version: 0.4.0 - sha256: 576b1008445b30e1db831ad3f0d3013ed14792e636f7aee311697090390d3e07 + version: 0.4.1 + sha256: 6725ff5e1fb29615d68a5fdd618aadccf54cd671dd053101301e8c99f7b8d524 requires_dist: - numpy>=2.2.5,<3 - h5py>=3.13.0,<4 @@ -3079,7 +3079,7 @@ packages: - railroad-diagrams ; extra == 'diagrams' - jinja2 ; extra == 'diagrams' requires_python: '>=3.9' -- pypi: git+https://github.com/FlorianPfaff/pyRecEst.git#e3536319e7f6eeda70d763419e85db07c1f73777 +- pypi: git+https://github.com/FlorianPfaff/pyRecEst.git#37090d82e4ef0980d79944906136f935ae1b7697 name: pyrecest version: 0.0.0 - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.3.5-pyhd8ed1ab_0.conda