-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathCAVEATS
More file actions
executable file
·15 lines (11 loc) · 1.2 KB
/
CAVEATS
File metadata and controls
executable file
·15 lines (11 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Here be some caveats to guide future development and debugging:
1) Material handling:
1.1) DO NOT let different MPI nodes have different indices for the same material. Let every node have the SAME material information, regardless of whether a material exists at a node or not. The most immediate reason against this is that every node has to know the *layering structure*!!
2) MPI:
2.1) If an exception is thrown, ALL processes should throw it.
3) blitz++ arrays and complex<T> types:
3.1) Due to an optimization bug in gcc (latest 4.5.2), NEVER assign a complex array as
B(i) = C(i)*d
where B and C are complex arrays and d is a real or complex variable. This assignment can result in the wrong sign for B(i) when the optimization flags (-O2,-O3) are set. (At least for a C(i) in the form of -0-0.2*I, for example.) It seems to work when no optimization is done. (a bug report to gcc?)
4) Static linking:
4.1) Make sure to configure the local libconfig and blitz++ libraries with the "--enable-shared=no" flag before creating the binary distributions. For some reason, HDF5 wrapper fails with the shared libconfig library. Furthermore, it's better to have them statically linked in the final executable.