You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.