Skip to content

Commit ba8d065

Browse files
Migration to the public github repository
0 parents  commit ba8d065

40 files changed

+2452
-0
lines changed

.DS_Store

6 KB
Binary file not shown.

LICENSE

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Copyright (c) 2022 Felix Fritzen ([email protected])
2+
3+
Redistribution and use in source and binary forms, with or without
4+
modification, are permitted provided that the following conditions
5+
are met:
6+
1. Redistributions of source code must retain the above copyright
7+
notice, this list of conditions and the following disclaimer.
8+
2. Redistributions in binary form must reproduce the above copyright
9+
notice, this list of conditions and the following disclaimer in the
10+
documentation and/or other materials provided with the distribution.
11+
12+
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
13+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15+
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18+
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19+
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20+
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21+
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22+
SUCH DAMAGE.

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# ComBoNormal: Composite Boxel Normal Identification
2+
3+
Felix Fritzen <[email protected]>
4+
5+
### Related publication
6+
S. Keshav, F. Fritzen, M. Kabel: FFT-based Homogenization at Finite Strains using Composite Boxels (ComBo), submitted to Computational Mechanics on April 28, 2022 *(arXiv preprint: http://arxiv.org/abs/2204.13624)*
7+
8+
9+
## Scope
10+
Composite Voxels (cf. Kabel (2015)) have shown to be a meaningful addition to the successful range of FFT-based solvers going back to the seminal work Moulinec (1998). In essence, a high resolution regular grid can benefit from coarse-graining and processing voxels on the interface of adjacent materials via classical laminate theory building on the established Hadamard compatibility and jump conditions.
11+
12+
This software offers a simple yet accurate method for the computation of the coarse-grained structure alongside the normal vectors. HDF5 files are accepted as inputs. A comprehensive API is provided and examples are given within `jupyter` notebooks. The results can easily post-processed in `paraview` and a direct HDF5 export is part of the offered utility. Instructions for the postprocessing are contained in the `jupyter` notebook including a short tutorial video.
13+
14+
![image](https://media.github.tik.uni-stuttgart.de/user/397/files/894cb180-9b4b-11ec-91e5-e718b43d0bf9)
15+
16+
### References
17+
18+
(Moulinec (1998)) H. Moulinec, P. Suquet: A numerical method for computing the overall response of nonlinear composites with complex microstructure, Computer Methods in Applied Mechanics and Engineering 157, p. 69-94, DOI: https://doi.org/10.1016/S0045-7825(97)00218-1.
19+
20+
(Kabel (2015)) M. Kabel, D. Merkert, M. Schneider: Use of composite voxels in FFT-based homogenization, Computer Methods in Applied Mechanics and Engineering 294, p. 168/188, DOI: https://doi.org/10.1016/j.cma.2015.06.003
21+
22+
## License information
23+
24+
The software is released under a 2 clause FreeBSD license, see LICENSE file.

example/.DS_Store

6 KB
Binary file not shown.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"cells": [],
3+
"metadata": {},
4+
"nbformat": 4,
5+
"nbformat_minor": 5
6+
}

example/.ipynb_checkpoints/tutorial-checkpoint.ipynb

Lines changed: 755 additions & 0 deletions
Large diffs are not rendered by default.
29.6 MB
Binary file not shown.

example/ComBo_paraview_tutorial.mp4

56.6 MB
Binary file not shown.

example/example_percolation.h5

213 KB
Binary file not shown.

example/gfx/step_apply_file_open.png

20 KB
Loading

example/gfx/step_file_open.png

16.5 KB
Loading

example/gfx/step_glyph.png

12.6 KB
Loading

example/gfx/step_glyph_param1.png

16.5 KB
Loading

example/gfx/step_glyph_param2.png

23.9 KB
Loading

example/gfx/step_glyph_param3.png

14.5 KB
Loading

example/gfx/step_glyph_param4.png

24.5 KB
Loading

example/gfx/step_pipeline_browser.png

39.8 KB
Loading

example/gfx/step_sphere_threshold.png

194 KB
Loading

example/gfx/step_threshold.png

30.4 KB
Loading

example/gfx/step_threshold_param1.png

22.7 KB
Loading

example/gfx/step_threshold_param2.png

22.1 KB
Loading

example/gfx/teaser_hdf5.jpg

854 KB
Loading

example/gfx/teaser_prism.jpg

70.7 KB
Loading

example/gfx/teaser_sphere.jpg

33.3 KB
Loading

example/gfx/teaser_sphere.png

26.5 KB
Loading

example/percolation.h5

966 KB
Binary file not shown.

example/percolation_combi.h5.xdmf

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<Xdmf Version="2.2">
2+
<Domain>
3+
<Grid Collection="0" GridType="Uniform">
4+
<Topology Dimensions="33 33 33" TopologyType="3DCORECTMesh" />
5+
<Geometry GeometryType="ORIGIN_DXDYDZ">
6+
<DataItem Dimensions="3" Format="XML" Name="Origin" NumberType="Float" Precision="4">-0.500000 -0.500000 -0.500000</DataItem>
7+
<DataItem Dimensions="3" Format="XML" Name="Spacing" NumberType="Float" Precision="4">0.031250 0.031250 0.031250</DataItem>
8+
</Geometry>
9+
<Attribute AttributeType="Scalar" Center="Cell" Name="VOL_FRAC">
10+
<DataItem
11+
Dimensions="32 32 32"
12+
Format="HDF"
13+
NumberType="Float"
14+
Precision="8">
15+
percolation.h5:/test/combi/vol_frac
16+
</DataItem>
17+
</Attribute>
18+
<Attribute AttributeType="Vector" Center="Cell" Name="NORMAL">
19+
<DataItem
20+
Dimensions="32 32 32 3"
21+
Format="HDF"
22+
NumberType="Float"
23+
Precision="8">
24+
percolation.h5:/test/combi/normal
25+
</DataItem>
26+
</Attribute>
27+
<Attribute AttributeType="Vector" Center="Cell" Name="NORMAL_CLASSIC">
28+
<DataItem
29+
Dimensions="32 32 32 3"
30+
Format="HDF"
31+
NumberType="Float"
32+
Precision="8">
33+
percolation.h5:/test/combi/normal_classic
34+
</DataItem>
35+
</Attribute>
36+
<Attribute AttributeType="Scalar" Center="Cell" Name="COMBIMAT">
37+
<DataItem
38+
Dimensions="32 32 32"
39+
Format="HDF"
40+
NumberType="UChar">
41+
percolation.h5:/test/combi/combimat
42+
</DataItem>
43+
</Attribute>
44+
</Grid>
45+
</Domain>
46+
</Xdmf>

example/percolation_raw.h5.xdmf

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<Xdmf Version="2.2">
2+
<Domain>
3+
<Grid Collection="0" GridType="Uniform">
4+
<Topology Dimensions="257 257 257" TopologyType="3DCORECTMesh" />
5+
<Geometry GeometryType="ORIGIN_DXDYDZ">
6+
<DataItem Dimensions="3" Format="XML" Name="Origin" NumberType="Float" Precision="4">-0.500000 -0.500000 -0.500000</DataItem>
7+
<DataItem Dimensions="3" Format="XML" Name="Spacing" NumberType="Float" Precision="4">0.003906 0.003906 0.003906</DataItem>
8+
</Geometry>
9+
<Attribute AttributeType="Scalar" Center="Cell" Name="MATERIAL">
10+
<DataItem
11+
Dimensions="256 256 256"
12+
Format="HDF"
13+
NumberType="UChar">
14+
percolation.h5:/test/raw/img
15+
</DataItem>
16+
</Attribute>
17+
<Attribute AttributeType="Scalar" Center="Cell" Name="IFACE">
18+
<DataItem
19+
Dimensions="256 256 256"
20+
Format="HDF"
21+
NumberType="Float"
22+
Precision="8">
23+
percolation.h5:/test/raw/iface
24+
</DataItem>
25+
</Attribute>
26+
</Grid>
27+
</Domain>
28+
</Xdmf>

example/prism.h5

74 KB
Binary file not shown.

example/prism_combi.h5.xdmf

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<Xdmf Version="2.2">
2+
<Domain>
3+
<Grid Collection="0" GridType="Uniform">
4+
<Topology Dimensions="21 21 21" TopologyType="3DCORECTMesh" />
5+
<Geometry GeometryType="ORIGIN_DXDYDZ">
6+
<DataItem Dimensions="3" Format="XML" Name="Origin" NumberType="Float" Precision="4">-0.500000 -0.500000 -0.500000</DataItem>
7+
<DataItem Dimensions="3" Format="XML" Name="Spacing" NumberType="Float" Precision="4">0.050000 0.050000 0.050000</DataItem>
8+
</Geometry>
9+
<Attribute AttributeType="Scalar" Center="Cell" Name="VOL_FRAC">
10+
<DataItem
11+
Dimensions="20 20 20"
12+
Format="HDF"
13+
NumberType="Float"
14+
Precision="8">
15+
prism.h5:/test/combi/vol_frac
16+
</DataItem>
17+
</Attribute>
18+
<Attribute AttributeType="Vector" Center="Cell" Name="NORMAL">
19+
<DataItem
20+
Dimensions="20 20 20 3"
21+
Format="HDF"
22+
NumberType="Float"
23+
Precision="8">
24+
prism.h5:/test/combi/normal
25+
</DataItem>
26+
</Attribute>
27+
<Attribute AttributeType="Vector" Center="Cell" Name="NORMAL_CLASSIC">
28+
<DataItem
29+
Dimensions="20 20 20 3"
30+
Format="HDF"
31+
NumberType="Float"
32+
Precision="8">
33+
prism.h5:/test/combi/normal_classic
34+
</DataItem>
35+
</Attribute>
36+
<Attribute AttributeType="Scalar" Center="Cell" Name="COMBIMAT">
37+
<DataItem
38+
Dimensions="20 20 20"
39+
Format="HDF"
40+
NumberType="UChar">
41+
prism.h5:/test/combi/combimat
42+
</DataItem>
43+
</Attribute>
44+
</Grid>
45+
</Domain>
46+
</Xdmf>

example/prism_raw.h5.xdmf

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<Xdmf Version="2.2">
2+
<Domain>
3+
<Grid Collection="0" GridType="Uniform">
4+
<Topology Dimensions="161 161 161" TopologyType="3DCORECTMesh" />
5+
<Geometry GeometryType="ORIGIN_DXDYDZ">
6+
<DataItem Dimensions="3" Format="XML" Name="Origin" NumberType="Float" Precision="4">-0.500000 -0.500000 -0.500000</DataItem>
7+
<DataItem Dimensions="3" Format="XML" Name="Spacing" NumberType="Float" Precision="4">0.006250 0.006250 0.006250</DataItem>
8+
</Geometry>
9+
<Attribute AttributeType="Scalar" Center="Cell" Name="MATERIAL">
10+
<DataItem
11+
Dimensions="160 160 160"
12+
Format="HDF"
13+
NumberType="UChar">
14+
prism.h5:/test/raw/img
15+
</DataItem>
16+
</Attribute>
17+
<Attribute AttributeType="Scalar" Center="Cell" Name="IFACE">
18+
<DataItem
19+
Dimensions="160 160 160"
20+
Format="HDF"
21+
NumberType="Float"
22+
Precision="8">
23+
prism.h5:/test/raw/iface
24+
</DataItem>
25+
</Attribute>
26+
</Grid>
27+
</Domain>
28+
</Xdmf>

example/sphere.h5

114 KB
Binary file not shown.

example/sphere_combi.h5.xdmf

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<Xdmf Version="2.2">
2+
<Domain>
3+
<Grid Collection="0" GridType="Uniform">
4+
<Topology Dimensions="21 21 21" TopologyType="3DCORECTMesh" />
5+
<Geometry GeometryType="ORIGIN_DXDYDZ">
6+
<DataItem Dimensions="3" Format="XML" Name="Origin" NumberType="Float" Precision="4">-0.500000 -0.500000 -0.500000</DataItem>
7+
<DataItem Dimensions="3" Format="XML" Name="Spacing" NumberType="Float" Precision="4">0.050000 0.050000 0.050000</DataItem>
8+
</Geometry>
9+
<Attribute AttributeType="Scalar" Center="Cell" Name="VOL_FRAC">
10+
<DataItem
11+
Dimensions="20 20 20"
12+
Format="HDF"
13+
NumberType="Float"
14+
Precision="8">
15+
sphere.h5://combi/vol_frac
16+
</DataItem>
17+
</Attribute>
18+
<Attribute AttributeType="Vector" Center="Cell" Name="NORMAL">
19+
<DataItem
20+
Dimensions="20 20 20 3"
21+
Format="HDF"
22+
NumberType="Float"
23+
Precision="8">
24+
sphere.h5://combi/normal
25+
</DataItem>
26+
</Attribute>
27+
<Attribute AttributeType="Vector" Center="Cell" Name="NORMAL_CLASSIC">
28+
<DataItem
29+
Dimensions="20 20 20 3"
30+
Format="HDF"
31+
NumberType="Float"
32+
Precision="8">
33+
sphere.h5://combi/normal_classic
34+
</DataItem>
35+
</Attribute>
36+
<Attribute AttributeType="Scalar" Center="Cell" Name="COMBIMAT">
37+
<DataItem
38+
Dimensions="20 20 20"
39+
Format="HDF"
40+
NumberType="UChar">
41+
sphere.h5://combi/combimat
42+
</DataItem>
43+
</Attribute>
44+
</Grid>
45+
</Domain>
46+
</Xdmf>

example/sphere_raw.h5.xdmf

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<Xdmf Version="2.2">
2+
<Domain>
3+
<Grid Collection="0" GridType="Uniform">
4+
<Topology Dimensions="161 161 161" TopologyType="3DCORECTMesh" />
5+
<Geometry GeometryType="ORIGIN_DXDYDZ">
6+
<DataItem Dimensions="3" Format="XML" Name="Origin" NumberType="Float" Precision="4">-0.500000 -0.500000 -0.500000</DataItem>
7+
<DataItem Dimensions="3" Format="XML" Name="Spacing" NumberType="Float" Precision="4">0.006250 0.006250 0.006250</DataItem>
8+
</Geometry>
9+
<Attribute AttributeType="Scalar" Center="Cell" Name="MATERIAL">
10+
<DataItem
11+
Dimensions="160 160 160"
12+
Format="HDF"
13+
NumberType="UChar">
14+
sphere.h5://raw/img
15+
</DataItem>
16+
</Attribute>
17+
<Attribute AttributeType="Scalar" Center="Cell" Name="IFACE">
18+
<DataItem
19+
Dimensions="160 160 160"
20+
Format="HDF"
21+
NumberType="Float"
22+
Precision="8">
23+
sphere.h5://raw/iface
24+
</DataItem>
25+
</Attribute>
26+
</Grid>
27+
</Domain>
28+
</Xdmf>

example/test.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

0 commit comments

Comments
 (0)