「view this page in B3 βῆτα server」

Revisions №59843

branch: master 「№59843」
Commited by: Andrew Leaver-Fay
GitHub commit link: 「dc723e2ff6a59ff0」 「№2564」
Difference from previous tested commit:  code diff
Commit date: 2017-11-03 08:50:48

Merge pull request #2564 from RosettaCommons/aleaverfay/relax_jd3 relax JD3 / fiasco! cleanup Writing the beginning of a relax_jd3 application. There are some outstanding issues that mean not all of the functionality in (JD2) relax is available in relax_jd3 -- at least, not to the Multithreaded job distributor in JD3. There is only one reason, but the reason has metastasized throughout the code: global data. Symmetry relies heavily on global data (namely whether symmetry is on or off; you can have different symmetries simultaneously), and electron-density refinement relies heavily on global data. You cannot relax protein A into density map A and protein B into density map B because of this. I think there are several other pieces of global data that need rooting out. This PR also fixes a static-initialization-order fiasco problem identified by AddressSanitizer. The big change is that BOGUS_ATOM_ID and the other BOGUS globals are no longer a globals, but instead a static methods of their respective classes (e.g. core::id::AtomID::BOGUS_ATOM_ID()). This also ensures the proper initialization of the global constants in numeric/constants.hh by putting them into the .hh file -- this was only possible with C++11, so, another win for C++11.