muGrid 0.90.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. mugrid-0.90.1/.clang-format +7 -0
  2. mugrid-0.90.1/.gitattributes +3 -0
  3. mugrid-0.90.1/.github/install_netcdf4.sh +19 -0
  4. mugrid-0.90.1/.github/workflows/publish.yml +49 -0
  5. mugrid-0.90.1/.github/workflows/ubuntu.yml +93 -0
  6. mugrid-0.90.1/.github/workflows/wheels.yml +73 -0
  7. mugrid-0.90.1/.gitignore +12 -0
  8. mugrid-0.90.1/.gitmodules +11 -0
  9. mugrid-0.90.1/CHANGELOG.md +249 -0
  10. mugrid-0.90.1/CPPLINT.cfg +5 -0
  11. mugrid-0.90.1/LICENSE +674 -0
  12. mugrid-0.90.1/PKG-INFO +774 -0
  13. mugrid-0.90.1/README.md +83 -0
  14. mugrid-0.90.1/discover_version.py +148 -0
  15. mugrid-0.90.1/doc/dev-docs/MainSchema.png +0 -0
  16. mugrid-0.90.1/doc/dev-docs/Makefile +20 -0
  17. mugrid-0.90.1/doc/dev-docs/logo_flat.png +0 -0
  18. mugrid-0.90.1/doc/dev-docs/logo_square.png +0 -0
  19. mugrid-0.90.1/doc/dev-docs/requirements.txt +4 -0
  20. mugrid-0.90.1/doc/dev-docs/source/CellSplit.rst +54 -0
  21. mugrid-0.90.1/doc/dev-docs/source/CodingConvention.rst +3082 -0
  22. mugrid-0.90.1/doc/dev-docs/source/ConstitutiveLaws.rst +129 -0
  23. mugrid-0.90.1/doc/dev-docs/source/Doxyfile +29 -0
  24. mugrid-0.90.1/doc/dev-docs/source/GettingStarted.rst +181 -0
  25. mugrid-0.90.1/doc/dev-docs/source/License.rst +400 -0
  26. mugrid-0.90.1/doc/dev-docs/source/MaterialLaminate.rst +56 -0
  27. mugrid-0.90.1/doc/dev-docs/source/MaterialLinearElasticGeneric.rst +53 -0
  28. mugrid-0.90.1/doc/dev-docs/source/NewMaterial.rst +250 -0
  29. mugrid-0.90.1/doc/dev-docs/source/OrganisationOfCode.rst +24 -0
  30. mugrid-0.90.1/doc/dev-docs/source/Reference.rst +7 -0
  31. mugrid-0.90.1/doc/dev-docs/source/Summary.rst +33 -0
  32. mugrid-0.90.1/doc/dev-docs/source/Tutorials.rst +15 -0
  33. mugrid-0.90.1/doc/dev-docs/source/conf.py +225 -0
  34. mugrid-0.90.1/doc/dev-docs/source/index.rst +43 -0
  35. mugrid-0.90.1/doc/dev-docs/source/input_def +1 -0
  36. mugrid-0.90.1/doc/dev-docs/source/input_def.in +1 -0
  37. mugrid-0.90.1/doc/dev-docs/source/macosx14_bash_profile +58 -0
  38. mugrid-0.90.1/doc/dev-docs/source/muGrid.rst +431 -0
  39. mugrid-0.90.1/doc/dev-docs/source/xml_output_def +1 -0
  40. mugrid-0.90.1/doc/dev-docs/source/xml_output_def.in +1 -0
  41. mugrid-0.90.1/doc/summary.rmk +19 -0
  42. mugrid-0.90.1/language_bindings/meson.build +1 -0
  43. mugrid-0.90.1/language_bindings/python/__init__.py +1 -0
  44. mugrid-0.90.1/language_bindings/python/bind_py_common_mugrid.cc +213 -0
  45. mugrid-0.90.1/language_bindings/python/bind_py_communicator.cc +161 -0
  46. mugrid-0.90.1/language_bindings/python/bind_py_declarations.hh +51 -0
  47. mugrid-0.90.1/language_bindings/python/bind_py_field.cc +182 -0
  48. mugrid-0.90.1/language_bindings/python/bind_py_field_collection.cc +371 -0
  49. mugrid-0.90.1/language_bindings/python/bind_py_file_io.cc +342 -0
  50. mugrid-0.90.1/language_bindings/python/bind_py_module.cc +52 -0
  51. mugrid-0.90.1/language_bindings/python/bind_py_options_dictionary.cc +167 -0
  52. mugrid-0.90.1/language_bindings/python/bind_py_state_field.cc +101 -0
  53. mugrid-0.90.1/language_bindings/python/meson.build +21 -0
  54. mugrid-0.90.1/language_bindings/python/muGrid/Parallel.py +85 -0
  55. mugrid-0.90.1/language_bindings/python/muGrid/__init__.py +53 -0
  56. mugrid-0.90.1/language_bindings/python/muGrid/meson.build +11 -0
  57. mugrid-0.90.1/meson.build +62 -0
  58. mugrid-0.90.1/pyproject.toml +55 -0
  59. mugrid-0.90.1/renovate.json +6 -0
  60. mugrid-0.90.1/src/libmugrid/T4_map_proxy.hh +119 -0
  61. mugrid-0.90.1/src/libmugrid/ccoord_operations.cc +274 -0
  62. mugrid-0.90.1/src/libmugrid/ccoord_operations.hh +1013 -0
  63. mugrid-0.90.1/src/libmugrid/communicator.cc +56 -0
  64. mugrid-0.90.1/src/libmugrid/communicator.hh +439 -0
  65. mugrid-0.90.1/src/libmugrid/cpp_compliance.hh +201 -0
  66. mugrid-0.90.1/src/libmugrid/eigen_tools.hh +537 -0
  67. mugrid-0.90.1/src/libmugrid/exception.cc +107 -0
  68. mugrid-0.90.1/src/libmugrid/exception.hh +144 -0
  69. mugrid-0.90.1/src/libmugrid/field.cc +361 -0
  70. mugrid-0.90.1/src/libmugrid/field.hh +383 -0
  71. mugrid-0.90.1/src/libmugrid/field_collection.cc +552 -0
  72. mugrid-0.90.1/src/libmugrid/field_collection.hh +963 -0
  73. mugrid-0.90.1/src/libmugrid/field_collection_global.cc +192 -0
  74. mugrid-0.90.1/src/libmugrid/field_collection_global.hh +269 -0
  75. mugrid-0.90.1/src/libmugrid/field_collection_local.cc +107 -0
  76. mugrid-0.90.1/src/libmugrid/field_collection_local.hh +143 -0
  77. mugrid-0.90.1/src/libmugrid/field_map.cc +264 -0
  78. mugrid-0.90.1/src/libmugrid/field_map.hh +426 -0
  79. mugrid-0.90.1/src/libmugrid/field_map_static.hh +781 -0
  80. mugrid-0.90.1/src/libmugrid/field_typed.cc +749 -0
  81. mugrid-0.90.1/src/libmugrid/field_typed.hh +564 -0
  82. mugrid-0.90.1/src/libmugrid/file_io_base.cc +112 -0
  83. mugrid-0.90.1/src/libmugrid/file_io_base.hh +294 -0
  84. mugrid-0.90.1/src/libmugrid/file_io_netcdf.cc +3315 -0
  85. mugrid-0.90.1/src/libmugrid/file_io_netcdf.hh +1523 -0
  86. mugrid-0.90.1/src/libmugrid/gradient_operator_base.hh +148 -0
  87. mugrid-0.90.1/src/libmugrid/gradient_operator_default.cc +370 -0
  88. mugrid-0.90.1/src/libmugrid/gradient_operator_default.hh +212 -0
  89. mugrid-0.90.1/src/libmugrid/grid_common.cc +105 -0
  90. mugrid-0.90.1/src/libmugrid/grid_common.hh +590 -0
  91. mugrid-0.90.1/src/libmugrid/iterators.hh +383 -0
  92. mugrid-0.90.1/src/libmugrid/mapped_field.hh +341 -0
  93. mugrid-0.90.1/src/libmugrid/mapped_state_field.hh +253 -0
  94. mugrid-0.90.1/src/libmugrid/meson.build +49 -0
  95. mugrid-0.90.1/src/libmugrid/numpy_tools.hh +463 -0
  96. mugrid-0.90.1/src/libmugrid/optional_mapped_field.hh +106 -0
  97. mugrid-0.90.1/src/libmugrid/options_dictionary.cc +293 -0
  98. mugrid-0.90.1/src/libmugrid/options_dictionary.hh +186 -0
  99. mugrid-0.90.1/src/libmugrid/physics_domain.cc +109 -0
  100. mugrid-0.90.1/src/libmugrid/physics_domain.hh +108 -0
  101. mugrid-0.90.1/src/libmugrid/raw_memory_operations.cc +53 -0
  102. mugrid-0.90.1/src/libmugrid/raw_memory_operations.hh +163 -0
  103. mugrid-0.90.1/src/libmugrid/ref_array.hh +117 -0
  104. mugrid-0.90.1/src/libmugrid/ref_vector.hh +119 -0
  105. mugrid-0.90.1/src/libmugrid/state_field.cc +179 -0
  106. mugrid-0.90.1/src/libmugrid/state_field.hh +271 -0
  107. mugrid-0.90.1/src/libmugrid/state_field_map.cc +177 -0
  108. mugrid-0.90.1/src/libmugrid/state_field_map.hh +284 -0
  109. mugrid-0.90.1/src/libmugrid/state_field_map_static.hh +518 -0
  110. mugrid-0.90.1/src/libmugrid/tensor_algebra.hh +599 -0
  111. mugrid-0.90.1/src/libmugrid/units.cc +486 -0
  112. mugrid-0.90.1/src/libmugrid/units.hh +299 -0
  113. mugrid-0.90.1/src/libmugrid/version.cc.skeleton +71 -0
  114. mugrid-0.90.1/src/meson.build +7 -0
  115. mugrid-0.90.1/subprojects/eigen.wrap +13 -0
  116. mugrid-0.90.1/subprojects/pybind11.wrap +13 -0
  117. mugrid-0.90.1/tests/field_test_fixtures.cc +47 -0
  118. mugrid-0.90.1/tests/field_test_fixtures.hh +136 -0
  119. mugrid-0.90.1/tests/header_test_ccoord_operations.cc +279 -0
  120. mugrid-0.90.1/tests/header_test_eigen_tools.cc +134 -0
  121. mugrid-0.90.1/tests/header_test_ref_array.cc +54 -0
  122. mugrid-0.90.1/tests/header_test_t4_map.cc +201 -0
  123. mugrid-0.90.1/tests/header_test_tensor_algebra.cc +341 -0
  124. mugrid-0.90.1/tests/io_mpi_test_file_io.hh +128 -0
  125. mugrid-0.90.1/tests/io_mpi_test_file_io_netcdf.cc +560 -0
  126. mugrid-0.90.1/tests/io_test_file_io.hh +162 -0
  127. mugrid-0.90.1/tests/io_test_file_io_base.cc +64 -0
  128. mugrid-0.90.1/tests/io_test_file_io_netcdf.cc +681 -0
  129. mugrid-0.90.1/tests/main_test_suite.cc +44 -0
  130. mugrid-0.90.1/tests/meson.build +113 -0
  131. mugrid-0.90.1/tests/mpi_context.hh +95 -0
  132. mugrid-0.90.1/tests/mpi_field_test_fixtures.hh +143 -0
  133. mugrid-0.90.1/tests/mpi_test_communicator.cc +259 -0
  134. mugrid-0.90.1/tests/mpi_test_field_map.cc +264 -0
  135. mugrid-0.90.1/tests/python_binding_tests.py +50 -0
  136. mugrid-0.90.1/tests/python_common_tests.py +135 -0
  137. mugrid-0.90.1/tests/python_communicator_tests.py +131 -0
  138. mugrid-0.90.1/tests/python_field_tests.py +154 -0
  139. mugrid-0.90.1/tests/python_file_io_test.py +401 -0
  140. mugrid-0.90.1/tests/python_mpi_binding_test.py +47 -0
  141. mugrid-0.90.1/tests/python_muGrid_license_test.py +136 -0
  142. mugrid-0.90.1/tests/test_ccoord_operations.cc +152 -0
  143. mugrid-0.90.1/tests/test_discrete_gradient_operator.cc +215 -0
  144. mugrid-0.90.1/tests/test_discrete_gradient_operator.hh +303 -0
  145. mugrid-0.90.1/tests/test_field.cc +404 -0
  146. mugrid-0.90.1/tests/test_field_collection.cc +360 -0
  147. mugrid-0.90.1/tests/test_field_map.cc +333 -0
  148. mugrid-0.90.1/tests/test_goodies.cc +73 -0
  149. mugrid-0.90.1/tests/test_goodies.hh +277 -0
  150. mugrid-0.90.1/tests/test_mapped_fields.cc +307 -0
  151. mugrid-0.90.1/tests/test_mapped_state_fields.cc +107 -0
  152. mugrid-0.90.1/tests/test_options_dictionary.cc +141 -0
  153. mugrid-0.90.1/tests/test_raw_memory_operations.cc +135 -0
  154. mugrid-0.90.1/tests/test_state_field_maps.cc +256 -0
  155. mugrid-0.90.1/tests/test_state_fields.cc +98 -0
  156. mugrid-0.90.1/tests/test_units.cc +209 -0
  157. mugrid-0.90.1/tests/tests.hh +52 -0
@@ -0,0 +1,7 @@
1
+ AccessModifierOffset: -1
2
+ SpacesBeforeTrailingComments: 2
3
+ NamespaceIndentation: All
4
+ SortIncludes: false
5
+ SortUsingDeclarations: false
6
+ PointerAlignment: Middle
7
+ AlwaysBreakTemplateDeclarations: true
@@ -0,0 +1,3 @@
1
+ # Tags in this file will be replaced during git archive. git archive is used
2
+ # by meson to create source packages.
3
+ discover_version.py export-subst
@@ -0,0 +1,19 @@
1
+ if [ -z "$HOMEBREW_REPOSITORY" ]; then
2
+ INSTALL_PREFIX=/usr/local
3
+ else
4
+ brew install pkg-config
5
+ INSTALL_PREFIX=$HOMEBREW_REPOSITORY
6
+ export PKG_CONFIG_PATH
7
+ fi
8
+ printenv
9
+ curl -L https://download.gnome.org/sources/libxml2/2.12/libxml2-2.12.7.tar.xz | tar -Jx
10
+ cd libxml2-2.12.7
11
+ ./configure --without-lzma --without-python --enable-static --disable-shared --with-pic --prefix=$INSTALL_PREFIX
12
+ make
13
+ make install
14
+ cd ..
15
+ curl -L https://downloads.unidata.ucar.edu/netcdf-c/4.9.2/netcdf-c-4.9.2.tar.gz | tar -zx
16
+ cd netcdf-c-4.9.2
17
+ ./configure --disable-hdf5 --disable-byterange --enable-static --disable-shared --with-pic --prefix=$INSTALL_PREFIX
18
+ make
19
+ make install
@@ -0,0 +1,49 @@
1
+ name: Publish
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - '*'
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-22.04
13
+
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+ with:
17
+ fetch-depth: 0
18
+ submodules: recursive
19
+
20
+ - name: Installing Python
21
+ run: |
22
+ sudo apt-get update -qy
23
+ sudo apt-get install -y \
24
+ python3-dev \
25
+ python3-pip \
26
+ python3-venv \
27
+ meson \
28
+ ninja-build
29
+ python3 -m venv ../venv
30
+ source ../venv/bin/activate
31
+ pip install build
32
+
33
+ - name: Build source package
34
+ run: |
35
+ source ../venv/bin/activate
36
+ python3 -m build . -s
37
+
38
+ - name: Test installation of source package
39
+ run: |
40
+ source ../venv/bin/activate
41
+ pip install dist/*.tar.gz
42
+
43
+ - name: Publish package on PyPI
44
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
45
+ uses: pypa/gh-action-pypi-publish@master
46
+ with:
47
+ user: __token__
48
+ password: ${{ secrets.PYPI_TOKEN }}
49
+
@@ -0,0 +1,93 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '**'
7
+ tags:
8
+ - '**'
9
+ pull_request:
10
+ branches:
11
+ - '**'
12
+ schedule:
13
+ - cron: "0 2 * * 5"
14
+ jobs:
15
+ tests:
16
+ runs-on: ubuntu-22.04
17
+ timeout-minutes: 45
18
+
19
+ strategy:
20
+ matrix:
21
+ mpi: ['no', 'yes']
22
+ compiler: ['gcc', 'clang']
23
+ python-version: ['3.8', '3.9', '3.10', '3.11' , '3.12']
24
+ numpy-version: ['<2.0.0']
25
+ mpi4py-version: ['==3.1.6']
26
+ exclude:
27
+ - mpi: 'yes'
28
+ compiler: 'clang'
29
+
30
+ steps:
31
+ - uses: actions/checkout@v4
32
+ with:
33
+ fetch-depth: 0
34
+ submodules: recursive
35
+
36
+ - name: Set up Python ${{ matrix.python-version }}
37
+ uses: actions/setup-python@v5
38
+ with:
39
+ python-version: ${{ matrix.python-version }}
40
+
41
+ - name: Install dependencies
42
+ run: |
43
+ sudo apt-get update -qy
44
+ if [ "${{ matrix.compiler }}" == "clang" ]; then
45
+ sudo apt-get install -y clang
46
+ fi
47
+ python3 -m venv venv
48
+ source venv/bin/activate
49
+ python3 -m pip install --upgrade pip
50
+ # Install numpy
51
+ pip install -v "numpy${{ matrix.numpy-version }}"
52
+ if [ "${{ matrix.mpi }}" == "yes" ]; then
53
+ sudo apt-get install -y \
54
+ ninja-build \
55
+ libboost-test-dev \
56
+ openmpi-bin \
57
+ libopenmpi-dev \
58
+ libpnetcdf-dev
59
+ # Install mpi4py
60
+ echo "Installing mpi4py${{ matrix.mpi4py-version }}"
61
+ CC=mpicc python3 -m pip install -v \
62
+ --no-binary mpi4py \
63
+ "mpi4py${{ matrix.mpi4py-version }}"
64
+ else
65
+ sudo apt-get install -y \
66
+ ninja-build \
67
+ libboost-test-dev \
68
+ libnetcdf-dev
69
+ fi
70
+ python3 -m pip install build meson
71
+ python3 -m pip list
72
+
73
+ - name: Compile with Meson
74
+ run: |
75
+ if [ "${{ matrix.compiler }}" == "clang" ]; then
76
+ export CC=clang
77
+ export CXX=clang++
78
+ fi
79
+ source venv/bin/activate
80
+ meson setup builddir
81
+ cd builddir
82
+ meson compile
83
+
84
+ - name: Run tests
85
+ run: |
86
+ source venv/bin/activate
87
+ cd builddir
88
+ meson test -v
89
+
90
+ - name: Test installation of Python extension module
91
+ run: |
92
+ source venv/bin/activate
93
+ python3 -m pip install .
@@ -0,0 +1,73 @@
1
+ name: Wheels
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '**'
7
+ tags:
8
+ - '**'
9
+ pull_request:
10
+ branches:
11
+ - '**'
12
+
13
+ jobs:
14
+ build_wheels:
15
+ name: Build wheel for ${{ matrix.python }}-${{ matrix.buildplat[1] }} ${{ matrix.buildplat[2] }}
16
+ runs-on: ${{ matrix.buildplat[0] }}
17
+ strategy:
18
+ matrix:
19
+ buildplat:
20
+ - [ubuntu-22.04, manylinux, x86_64]
21
+ # - [ubuntu-22.04, manylinux, aarch64]
22
+ - [macos-14, macosx, arm64]
23
+ # - [macos-14, macosx, x86_64]
24
+ # - [windows-2019, win, AMD64]
25
+ python: ["cp38", "cp39", "cp310", "cp311", "cp312"]
26
+ fail-fast: false
27
+
28
+ env:
29
+ IS_32_BIT: ${{ matrix.buildplat[2] == 'x86' }}
30
+
31
+ steps:
32
+ - uses: actions/checkout@v4
33
+ with:
34
+ fetch-depth: 0
35
+ submodules: recursive
36
+
37
+ - uses: actions/setup-python@v5
38
+ with:
39
+ python-version: '3.8'
40
+
41
+ - name: Build wheels
42
+ uses: pypa/cibuildwheel@v2.18.1
43
+ env:
44
+ CIBW_BUILD_VERBOSITY: 3
45
+ CIBW_BEFORE_ALL: bash .github/install_netcdf4.sh
46
+ CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}*
47
+ CIBW_ARCHS: ${{ matrix.buildplat[2] }}
48
+ CIBW_ENVIRONMENT_MACOS: PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/homebrew/lib/pkgconfig
49
+ CIBW_ENVIRONMENT_PASS_LINUX: RUNNER_OS
50
+ CIBW_TEST_COMMAND: python3 -c "import muGrid; print(muGrid.__version__); from _muGrid import FileIONetCDF"
51
+
52
+ - uses: actions/upload-artifact@v4
53
+ with:
54
+ path: ./wheelhouse/*.whl
55
+ name: ${{ matrix.python }}-${{ matrix.buildplat[1] }}-${{ matrix.buildplat[2] }}
56
+
57
+ - name: Check tag
58
+ id: check-tag
59
+ run: |
60
+ if [[ ${{ github.ref }} =~ ^refs/tags/[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
61
+ echo ::set-output name=match::true
62
+ fi
63
+ shell: bash
64
+
65
+ - name: Deploy to PyPI
66
+ if: steps.check-tag.outputs.match == 'true'
67
+ run: |
68
+ pip install twine
69
+ twine upload wheelhouse/*.whl
70
+ env:
71
+ TWINE_USERNAME: __token__
72
+ TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
73
+ shell: bash
@@ -0,0 +1,12 @@
1
+ /build/CMake*
2
+ *~
3
+ /build/*
4
+ /build-o3/
5
+ /build*
6
+ /cmake-build-*
7
+
8
+ *.pyc
9
+
10
+ .vscode
11
+ .idea
12
+ .ccls-cache
@@ -0,0 +1,11 @@
1
+ [submodule "external/pybind11"]
2
+ path = external/pybind11
3
+ url = https://github.com/pybind/pybind11.git
4
+ branch = stable
5
+ [submodule "external/eigen3"]
6
+ path = external/eigen3
7
+ url = https://gitlab.com/libeigen/eigen.git
8
+ branch = 3.4
9
+ [submodule "external/cork"]
10
+ path = external/cork
11
+ url = https://github.com/pastewka/cork
@@ -0,0 +1,249 @@
1
+ Change log for µSpectre
2
+ =======================
3
+
4
+ 0.90.0 (not yet released)
5
+ -------------------------
6
+
7
+ - Split code into three repositories: muGrid, muFFT and
8
+
9
+ 0.27.0 (30Jan2024)
10
+ ------------------
11
+
12
+ - muSpectre: Sensitivity analysis for 3D problems
13
+ - Fixing meson-python to >= 0.15.0
14
+ - Updated Eigen3 to v3.4 and pybind11 to v2.11
15
+
16
+ 0.26.4 (04Oct2023)
17
+ ------------------
18
+
19
+ - Fixing meson-python to 0.13.2 because of a bug in 0.14.0
20
+
21
+ 0.26.3 (16Jul2023)
22
+ ------------------
23
+
24
+ - Same as 0.26.2 (debugging CI)
25
+
26
+ 0.26.2 (10Jul2023)
27
+ ------------------
28
+
29
+ - Same as 0.26.1, fixed deployment procedure
30
+
31
+ 0.26.1 (08Jul2023)
32
+ ------------------
33
+
34
+ - macOS wheels
35
+
36
+ 0.26.0 (31Mar2023)
37
+ ------------------
38
+
39
+ - MPI parallelization of sensitivity analysis
40
+ - Wheels for Python 3.11
41
+
42
+ 0.25.2 (14Jan2023)
43
+ ------------------
44
+
45
+ - Fixed macOS build
46
+
47
+ 0.25.1 (28Dec2022)
48
+ ------------------
49
+
50
+ - Same as 0.25.0, changed CI configuration for automatic deployment to PyPI
51
+
52
+ 0.25.0 (28Dec2022)
53
+ ------------------
54
+
55
+ - muSpectre is now distributed with Linux wheels (basic configuration only)
56
+ - muFFT: Added PocketFFT engine (that does not require external dependencies)
57
+ - Added Meson build files (Python package now exclusively build using Meson)
58
+ - Defaulted again to autodetecting MPI
59
+
60
+ 0.24.0 (22Nov2022)
61
+ ------------------
62
+
63
+ - muFFT: Changed Python install procedure; default to no MPI and MPI now needs
64
+ to be explicitly enabled
65
+
66
+ 0.23.1 (24Mar2022)
67
+ ------------------
68
+ - muSpectre: A bug fixed in the call of the constructor of FieldCollection
69
+ - muFFT: Fixed `pip install muFFT` on macOS
70
+
71
+
72
+ 0.23.0 (15Oct2021)
73
+ ------------------
74
+ - muSpectre: making vector operation methods in solver classed with communicating inside them
75
+ - muSpectre: added logical reduction on was_last_step_nonlinear evaluation in CellData
76
+
77
+
78
+ 0.22.0 (24Sep2021)
79
+ ------------------
80
+ - muSpectre: mean stress control bugs resolved
81
+ - muSpectre: mean stress control is now usable in MPI
82
+ - muSpectre: examples using mean stress control added
83
+
84
+
85
+ 0.21.0 (26Aug2021)
86
+ ------------------
87
+ - CI: Refactoring of the CI with addition of coverage and ccache
88
+
89
+
90
+ 0.20.2 (04Aug2021)
91
+ ------------------
92
+ - muSpectre: deleted an unnecssary parameter from write_2d_class function in iinear_finite_elements.py
93
+
94
+
95
+ 0.20.1 (03Aug2021)
96
+ ------------------
97
+ - muSpectre: improve write_2d and write_3d functions, 2D stencil for hexagonal grid
98
+
99
+
100
+ 0.20.0 (15Jul2021)
101
+ ------------------
102
+ - muSpectre: capability to apply mean stress (instead of mean strain added)
103
+
104
+
105
+ 0.19.2 (28Jun2021)
106
+ ------------------
107
+ - muGrid: correct bugs in the FileIONetCDF
108
+
109
+
110
+ 0.19.1 (23Jun2021)
111
+ ------------------
112
+ - muSpectre: Fixed a minor array reshape bug in the tutorial_example_new.py that was jeopardizing the output stress plot
113
+
114
+
115
+ 0.19.0 (16Jun2021)
116
+ ------------------
117
+ - muSpectre: added material_dunnat_tc (bilinear elastic- linear strain softening with tensile-compressive wiegthed norm as strain measure)
118
+ - muSpectre: added material_dunnat_t (bilinear elastic- linear strain softening with maiximum tensile principal strain as strain measure)
119
+
120
+
121
+ 0.18.2 (10Jun2021)
122
+ ------------------
123
+ - muSpectre: Small bugfix and addition of regularization for slightly non-pd Hessians in phase field fracture material
124
+ - muGrid: Added functions for reporting version
125
+ - muGrid: Added global attributes to FileIONetCDF
126
+
127
+ 0.18.1 (02Jun2021)
128
+ ------------------
129
+ - muSpectre: Fix, changed the reset criterion for gradient orthogonality in
130
+ FEM trust region precondtioned Krylov solvers
131
+ - muSpectre: Fix, added calling clear_was_last_step_nonlinear in
132
+ fem_newton_trust_region_pc solver
133
+ - muSpectre: Fixed get_complemented_positions
134
+ - muFFT: Fixed large transforms
135
+ - muFFT: Fixed segfault when input buffer had wrong shape
136
+
137
+
138
+ 0.18.0 (10May2021)
139
+ ------------------
140
+ - muSpectre: Added trust fem region solver + ability to handle precondtioner
141
+ - muSpectre: re-organized the krylov solver hierarchy to circumvent diamond
142
+ inheritance by introducing KrylovSolverXXXTraits classes
143
+
144
+
145
+ 0.17.0 (24Apr2021)
146
+ ------------------
147
+ - muSpectre: Added trust region solver class and a simplistic damage material
148
+ - muSpectre: physics have their specific name that might be used later for outputs
149
+ - muSpectre: trsut region krylov solver has different resetart strategies available
150
+ - muSpectre: gradient integration for solver class + cell data is now available
151
+
152
+
153
+ 0.16.0 (31Mar2021)
154
+ ------------------
155
+
156
+ - µSpectre: The ProjectionGradient works for vectorial and rank-two-tensor
157
+ gradient fields and replaces ProjectionFiniteStrainFast
158
+ - µSpectre: The SolverNewtonCG can now handle scalar problems (e.g., diffusion
159
+ equation, heat equation, etc.)
160
+ - clang: No more warnings are emitted during compilation
161
+
162
+
163
+ 0.15.1 (30Mar2021)
164
+ ------------------
165
+
166
+ - muSpectre: Added material for phase field fracture simulations
167
+ - muGrid: Fix support for fields with >= 2^32 elements
168
+
169
+
170
+ 0.15.0 (12Mar2021)
171
+ ------------------
172
+
173
+ - muSpectre: All projection operators now have a gradient argument and can
174
+ work with discrete derivatives
175
+ - muSpectre: Projection classes now have an `integrate` method that
176
+ reconstructs the node positions
177
+ - muSpectre: Added `linear_finite_elements` to stencil database
178
+ - muSpectre: Enabled even number of grid points for discrete stencils
179
+ - muFFT: PFFT engine works with pencil decomposition
180
+ - all: Fixed installation via CMake and `make install`
181
+ - all: Fixed cross platform install of NetCDF I/O
182
+
183
+
184
+ 0.14.0 (04Feb2021)
185
+ ------------------
186
+
187
+ - muFFT: implement serial wrapper to FFTW hcfft
188
+
189
+
190
+ 0.13.0 (28Jan2021)
191
+ ------------------
192
+
193
+ - muSpectre: CellData and Solver classes for multiphysics calculations
194
+ - muSpectre: Sensitivity analysis
195
+ - Bug fix (muFFT): Handle cases where MPI processes have no grid points
196
+
197
+
198
+ 0.12.0 (19Nov2020)
199
+ ------------------
200
+
201
+ - muGrid: Parallel I/O via NetCDF
202
+ - muFFT: Derivatives in 1D
203
+ - muFFT: Second derivatives
204
+
205
+
206
+ 0.11.0 (07Sep20)
207
+ ----------------
208
+
209
+ - Trust-Region Newton-CG solver for nonlinear problems with instabilities
210
+ - Updated Eigen archive URL which broke installation via pip
211
+
212
+
213
+ 0.10.0 (22Jul2020)
214
+ ------------------
215
+ - Support for more flexible strideste in fields: full column-major, row-major and
216
+ strided pixels portion (#103)
217
+ - User control over buffer copies in muFFT with option to avoid them completely
218
+ - Gradient integration for multiple quadrature points
219
+
220
+
221
+ 0.9.3 (28Jun2020)
222
+ -----------------
223
+ - Bug fix: Packaging with sdist did not remove dirty flag which lead to a
224
+ broken PyPI package
225
+
226
+
227
+ 0.9.2 (28Jun2020)
228
+ -----------------
229
+ - Bug fix: operator= of TypedFieldBase passed wrong strides during strided
230
+ copy; this broke the MPI-parallel FFTW forward transform (#130)
231
+
232
+
233
+ 0.9.1 (17Jun2020)
234
+ -----------------
235
+ - Bug fix: Packaging with sdist only included FFT engines present during
236
+ the packaging process
237
+
238
+
239
+ 0.9.0 (17Jun2020)
240
+ -----------------
241
+ - Initial release of µSpectre
242
+ * FFT based micromechanical homogeneization
243
+ * Arbitrary constitutive laws in small and finite strain
244
+ * Krylov and Newton solver suite
245
+ * MPI parallelization
246
+ - Initial release of µFFT
247
+ * Generic wrapper for MPI-parallel FFT libraries
248
+ - Initial release of µGrid
249
+ * Generic library for managing regular grids
@@ -0,0 +1,5 @@
1
+ set noparent
2
+ headers=hh
3
+ filter=-build/include,-readability/alt_tokens,-runtime/references
4
+ filter=-legal/copyright,-runtime/indentation_namespace,-build/c++11
5
+ #filter=-readability/namespace,-whitespace/comments