libcasm-clexmonte 2.0a1__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 (334) hide show
  1. libcasm_clexmonte-2.0a1/CHANGELOG.md +20 -0
  2. libcasm_clexmonte-2.0a1/CMakeLists.txt +448 -0
  3. libcasm_clexmonte-2.0a1/CMakeLists.txt.in +329 -0
  4. libcasm_clexmonte-2.0a1/LICENSE +484 -0
  5. libcasm_clexmonte-2.0a1/MANIFEST.in +19 -0
  6. libcasm_clexmonte-2.0a1/PKG-INFO +60 -0
  7. libcasm_clexmonte-2.0a1/README.md +36 -0
  8. libcasm_clexmonte-2.0a1/build_requirements.txt +12 -0
  9. libcasm_clexmonte-2.0a1/cmake/CASMcode_clexmonteConfig.cmake.in +3 -0
  10. libcasm_clexmonte-2.0a1/dev_requirements.txt +4 -0
  11. libcasm_clexmonte-2.0a1/doc/customdoxygen.css +1441 -0
  12. libcasm_clexmonte-2.0a1/doc/doxygen_config +2306 -0
  13. libcasm_clexmonte-2.0a1/doc_requirements.txt +7 -0
  14. libcasm_clexmonte-2.0a1/include/casm/clexmonte/canonical/canonical.hh +145 -0
  15. libcasm_clexmonte-2.0a1/include/casm/clexmonte/canonical/canonical_impl.hh +179 -0
  16. libcasm_clexmonte-2.0a1/include/casm/clexmonte/canonical/canonical_json_io.hh +25 -0
  17. libcasm_clexmonte-2.0a1/include/casm/clexmonte/definitions.hh +70 -0
  18. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/CompleteEventList.hh +46 -0
  19. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/ImpactTable.hh +91 -0
  20. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/event_data.hh +134 -0
  21. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/event_methods.hh +131 -0
  22. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/io/json/EventFilterGroup_json_io.hh +25 -0
  23. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/io/json/EventState_json_io.hh +19 -0
  24. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/io/json/PrimEventData_json_io.hh +21 -0
  25. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/lotto/event_rate_tree.hpp +106 -0
  26. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/lotto/event_rate_tree_impl.hpp +169 -0
  27. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/lotto/event_selector.hpp +76 -0
  28. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/lotto/random.hpp +95 -0
  29. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/lotto/rejection.hpp +77 -0
  30. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/lotto/rejection_free.hpp +115 -0
  31. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/lotto/sum_tree.hpp +139 -0
  32. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/lotto/sum_tree_impl.hpp +247 -0
  33. libcasm_clexmonte-2.0a1/include/casm/clexmonte/events/lotto.hh +7 -0
  34. libcasm_clexmonte-2.0a1/include/casm/clexmonte/kinetic/io/json/EventState_json_io.hh +27 -0
  35. libcasm_clexmonte-2.0a1/include/casm/clexmonte/kinetic/io/stream/EventState_stream_io.hh +26 -0
  36. libcasm_clexmonte-2.0a1/include/casm/clexmonte/kinetic/kinetic.hh +125 -0
  37. libcasm_clexmonte-2.0a1/include/casm/clexmonte/kinetic/kinetic_events.hh +157 -0
  38. libcasm_clexmonte-2.0a1/include/casm/clexmonte/kinetic/kinetic_impl.hh +210 -0
  39. libcasm_clexmonte-2.0a1/include/casm/clexmonte/kinetic/kinetic_json_io.hh +70 -0
  40. libcasm_clexmonte-2.0a1/include/casm/clexmonte/methods/occupation_metropolis.hh +128 -0
  41. libcasm_clexmonte-2.0a1/include/casm/clexmonte/misc/Matrix3lCompare.hh +22 -0
  42. libcasm_clexmonte-2.0a1/include/casm/clexmonte/misc/diffusion_calculations.hh +372 -0
  43. libcasm_clexmonte-2.0a1/include/casm/clexmonte/misc/eigen.hh +28 -0
  44. libcasm_clexmonte-2.0a1/include/casm/clexmonte/misc/parse_array.hh +35 -0
  45. libcasm_clexmonte-2.0a1/include/casm/clexmonte/misc/subparse_from_file.hh +57 -0
  46. libcasm_clexmonte-2.0a1/include/casm/clexmonte/misc/to_json.hh +17 -0
  47. libcasm_clexmonte-2.0a1/include/casm/clexmonte/monte_calculator/BaseMonteCalculator.hh +301 -0
  48. libcasm_clexmonte-2.0a1/include/casm/clexmonte/monte_calculator/MonteCalculator.hh +286 -0
  49. libcasm_clexmonte-2.0a1/include/casm/clexmonte/monte_calculator/StateData.hh +66 -0
  50. libcasm_clexmonte-2.0a1/include/casm/clexmonte/monte_calculator/analysis_functions.hh +41 -0
  51. libcasm_clexmonte-2.0a1/include/casm/clexmonte/monte_calculator/io/json/MonteCalculator_json_io.hh +26 -0
  52. libcasm_clexmonte-2.0a1/include/casm/clexmonte/monte_calculator/modifying_functions.hh +104 -0
  53. libcasm_clexmonte-2.0a1/include/casm/clexmonte/monte_calculator/sampling_functions.hh +95 -0
  54. libcasm_clexmonte-2.0a1/include/casm/clexmonte/nfold/nfold.hh +49 -0
  55. libcasm_clexmonte-2.0a1/include/casm/clexmonte/nfold/nfold_events.hh +79 -0
  56. libcasm_clexmonte-2.0a1/include/casm/clexmonte/nfold/nfold_impl.hh +102 -0
  57. libcasm_clexmonte-2.0a1/include/casm/clexmonte/nfold/nfold_json_io.hh +25 -0
  58. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/ConfigGenerator.hh +36 -0
  59. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/FixedConfigGenerator.hh +36 -0
  60. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/IncrementalConditionsStateGenerator.hh +214 -0
  61. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/RunData.hh +45 -0
  62. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/StateGenerator.hh +54 -0
  63. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/StateModifyingFunction.hh +33 -0
  64. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/analysis_functions.hh +230 -0
  65. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/covariance_functions.hh +26 -0
  66. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/functions.hh +209 -0
  67. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/io/RunParams.hh +79 -0
  68. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/io/json/ConfigGenerator_json_io.hh +26 -0
  69. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/io/json/RunData_json_io.hh +97 -0
  70. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/io/json/RunParams_json_io.hh +45 -0
  71. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/io/json/RunParams_json_io_impl.hh +143 -0
  72. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/io/json/StateGenerator_json_io.hh +30 -0
  73. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/io/json/StateGenerator_json_io_impl.hh +243 -0
  74. libcasm_clexmonte-2.0a1/include/casm/clexmonte/run/io/json/parse_and_run_series.hh +116 -0
  75. libcasm_clexmonte-2.0a1/include/casm/clexmonte/semigrand_canonical/calculator.hh +112 -0
  76. libcasm_clexmonte-2.0a1/include/casm/clexmonte/semigrand_canonical/calculator_impl.hh +176 -0
  77. libcasm_clexmonte-2.0a1/include/casm/clexmonte/semigrand_canonical/conditions.hh +50 -0
  78. libcasm_clexmonte-2.0a1/include/casm/clexmonte/semigrand_canonical/event_generator.hh +126 -0
  79. libcasm_clexmonte-2.0a1/include/casm/clexmonte/semigrand_canonical/json_io.hh +38 -0
  80. libcasm_clexmonte-2.0a1/include/casm/clexmonte/semigrand_canonical/potential.hh +73 -0
  81. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/Conditions.hh +945 -0
  82. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/Configuration.hh +83 -0
  83. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/CorrMatchingPotential.hh +136 -0
  84. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/enforce_composition.hh +300 -0
  85. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/io/json/CorrMatchingPotential_json_io.hh +29 -0
  86. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/io/json/State_json_io.hh +40 -0
  87. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/io/json/parse_conditions.hh +89 -0
  88. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/io/json/parse_conditions_impl.hh +234 -0
  89. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/kinetic_sampling_functions.hh +630 -0
  90. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/make_conditions.hh +58 -0
  91. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/modifying_functions.hh +65 -0
  92. libcasm_clexmonte-2.0a1/include/casm/clexmonte/state/sampling_functions.hh +401 -0
  93. libcasm_clexmonte-2.0a1/include/casm/clexmonte/system/System.hh +466 -0
  94. libcasm_clexmonte-2.0a1/include/casm/clexmonte/system/io/json/System_json_io.hh +41 -0
  95. libcasm_clexmonte-2.0a1/include/casm/clexmonte/system/io/json/system_data_json_io.hh +36 -0
  96. libcasm_clexmonte-2.0a1/include/casm/clexmonte/system/system_data.hh +151 -0
  97. libcasm_clexmonte-2.0a1/make_CMakeLists.py +175 -0
  98. libcasm_clexmonte-2.0a1/pre-commit +22 -0
  99. libcasm_clexmonte-2.0a1/pyproject.toml +90 -0
  100. libcasm_clexmonte-2.0a1/python/doc/.gitignore +2 -0
  101. libcasm_clexmonte-2.0a1/python/doc/README.md +3 -0
  102. libcasm_clexmonte-2.0a1/python/doc/_static/css/custom.css +116 -0
  103. libcasm_clexmonte-2.0a1/python/doc/_static/logo.pdf +1477 -4
  104. libcasm_clexmonte-2.0a1/python/doc/_static/logo.svg +1 -0
  105. libcasm_clexmonte-2.0a1/python/doc/_static/logo_dark.svg +91 -0
  106. libcasm_clexmonte-2.0a1/python/doc/_static/logo_dark_outline.svg +283 -0
  107. libcasm_clexmonte-2.0a1/python/doc/_static/logo_outline.svg +275 -0
  108. libcasm_clexmonte-2.0a1/python/doc/_static/small_logo.pdf +1351 -4
  109. libcasm_clexmonte-2.0a1/python/doc/_static/small_logo.svg +48 -0
  110. libcasm_clexmonte-2.0a1/python/doc/_static/small_logo_dark.svg +49 -0
  111. libcasm_clexmonte-2.0a1/python/doc/_templates/base.rst +5 -0
  112. libcasm_clexmonte-2.0a1/python/doc/_templates/custom-attr-template.rst +5 -0
  113. libcasm_clexmonte-2.0a1/python/doc/_templates/custom-class-template.rst +36 -0
  114. libcasm_clexmonte-2.0a1/python/doc/_templates/custom-function-template.rst +5 -0
  115. libcasm_clexmonte-2.0a1/python/doc/_templates/custom-module-template.rst +71 -0
  116. libcasm_clexmonte-2.0a1/python/doc/about.rst +10 -0
  117. libcasm_clexmonte-2.0a1/python/doc/bibliography.rst +4 -0
  118. libcasm_clexmonte-2.0a1/python/doc/conf.py +254 -0
  119. libcasm_clexmonte-2.0a1/python/doc/index.rst +55 -0
  120. libcasm_clexmonte-2.0a1/python/doc/installation.rst +4 -0
  121. libcasm_clexmonte-2.0a1/python/doc/reference/libcasm/index.rst +12 -0
  122. libcasm_clexmonte-2.0a1/python/doc/refs.bib +8 -0
  123. libcasm_clexmonte-2.0a1/python/doc/usage/overview.rst +102 -0
  124. libcasm_clexmonte-2.0a1/python/doc/usage.rst +6 -0
  125. libcasm_clexmonte-2.0a1/python/libcasm/clexmonte/_FixedConfigGenerator.py +180 -0
  126. libcasm_clexmonte-2.0a1/python/libcasm/clexmonte/_IncrementalConditionsStateGenerator.py +333 -0
  127. libcasm_clexmonte-2.0a1/python/libcasm/clexmonte/_MonteCalculator.py +192 -0
  128. libcasm_clexmonte-2.0a1/python/libcasm/clexmonte/_RunData.py +253 -0
  129. libcasm_clexmonte-2.0a1/python/libcasm/clexmonte/__init__.py +42 -0
  130. libcasm_clexmonte-2.0a1/python/libcasm/clexmonte/_auto_configuration.py +615 -0
  131. libcasm_clexmonte-2.0a1/python/libcasm/clexmonte/_run_series.py +169 -0
  132. libcasm_clexmonte-2.0a1/python/libcasm/clexmonte/parsing.py +87 -0
  133. libcasm_clexmonte-2.0a1/python/libcasm_clexmonte.egg-info/PKG-INFO +60 -0
  134. libcasm_clexmonte-2.0a1/python/libcasm_clexmonte.egg-info/SOURCES.txt +332 -0
  135. libcasm_clexmonte-2.0a1/python/libcasm_clexmonte.egg-info/dependency_links.txt +1 -0
  136. libcasm_clexmonte-2.0a1/python/libcasm_clexmonte.egg-info/requires.txt +7 -0
  137. libcasm_clexmonte-2.0a1/python/libcasm_clexmonte.egg-info/top_level.txt +1 -0
  138. libcasm_clexmonte-2.0a1/python/pyproject.toml +19 -0
  139. libcasm_clexmonte-2.0a1/python/setup.py +115 -0
  140. libcasm_clexmonte-2.0a1/python/src/clexmonte_functions.cpp +178 -0
  141. libcasm_clexmonte-2.0a1/python/src/clexmonte_monte_calculator.cpp +824 -0
  142. libcasm_clexmonte-2.0a1/python/src/clexmonte_run_management.cpp +674 -0
  143. libcasm_clexmonte-2.0a1/python/src/clexmonte_state.cpp +332 -0
  144. libcasm_clexmonte-2.0a1/python/src/clexmonte_system.cpp +680 -0
  145. libcasm_clexmonte-2.0a1/python/tests/canonical/__init__.py +0 -0
  146. libcasm_clexmonte-2.0a1/python/tests/canonical/test_CanonicalCalculator.py +128 -0
  147. libcasm_clexmonte-2.0a1/python/tests/canonical/test_make_canonical_initial_state.py +114 -0
  148. libcasm_clexmonte-2.0a1/python/tests/conftest.py +221 -0
  149. libcasm_clexmonte-2.0a1/python/tests/data/Clex_ZrO_Occ/basis_sets/bset.formation_energy/ZrO_Clexulator_formation_energy.cc +16261 -0
  150. libcasm_clexmonte-2.0a1/python/tests/data/Clex_ZrO_Occ/formation_energy_eci.json +2653 -0
  151. libcasm_clexmonte-2.0a1/python/tests/data/Clex_ZrO_Occ/input_1.json +133 -0
  152. libcasm_clexmonte-2.0a1/python/tests/data/Clex_ZrO_Occ/prim.json +27 -0
  153. libcasm_clexmonte-2.0a1/python/tests/data/Clex_ZrO_Occ/run_params_by_file.json +40 -0
  154. libcasm_clexmonte-2.0a1/python/tests/data/Clex_ZrO_Occ/run_params_complete.json +78 -0
  155. libcasm_clexmonte-2.0a1/python/tests/data/Clex_ZrO_Occ/system.json +56 -0
  156. libcasm_clexmonte-2.0a1/python/tests/data/Clex_ZrO_Occ/thermo_sampling.period1.json +45 -0
  157. libcasm_clexmonte-2.0a1/python/tests/data/Clex_ZrO_Occ/thermo_sampling.period10.json +45 -0
  158. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/0/FCC_binary_vacancy_Clexulator_A_Va_1NN_0.cc +3366 -0
  159. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/1/FCC_binary_vacancy_Clexulator_A_Va_1NN_1.cc +3442 -0
  160. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/2/FCC_binary_vacancy_Clexulator_A_Va_1NN_2.cc +3404 -0
  161. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/3/FCC_binary_vacancy_Clexulator_A_Va_1NN_3.cc +3518 -0
  162. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/4/FCC_binary_vacancy_Clexulator_A_Va_1NN_4.cc +3556 -0
  163. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/5/FCC_binary_vacancy_Clexulator_A_Va_1NN_5.cc +3480 -0
  164. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/FCC_binary_vacancy_Clexulator_A_Va_1NN.cc +3346 -0
  165. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/basis.json +206 -0
  166. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/bspecs.json +25 -0
  167. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/clust.json +140 -0
  168. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/equivalents_info.json +3510 -0
  169. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/0/FCC_binary_vacancy_Clexulator_B_Va_1NN_0.cc +3366 -0
  170. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/1/FCC_binary_vacancy_Clexulator_B_Va_1NN_1.cc +3442 -0
  171. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/2/FCC_binary_vacancy_Clexulator_B_Va_1NN_2.cc +3404 -0
  172. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/3/FCC_binary_vacancy_Clexulator_B_Va_1NN_3.cc +3518 -0
  173. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/4/FCC_binary_vacancy_Clexulator_B_Va_1NN_4.cc +3556 -0
  174. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/5/FCC_binary_vacancy_Clexulator_B_Va_1NN_5.cc +3480 -0
  175. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/FCC_binary_vacancy_Clexulator_B_Va_1NN.cc +3346 -0
  176. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/basis.json +206 -0
  177. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/bspecs.json +25 -0
  178. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/clust.json +140 -0
  179. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/equivalents_info.json +3510 -0
  180. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.default/FCC_binary_vacancy_Clexulator_default.cc +1071 -0
  181. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.default/basis.json +288 -0
  182. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.default/bspecs.json +17 -0
  183. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/basis_sets/bset.default/clust.json +224 -0
  184. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/formation_energy_eci.json +293 -0
  185. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/kmc_events/event.A_Va_1NN/event.json +76 -0
  186. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/kmc_events/event.A_Va_1NN/freq_eci.json +207 -0
  187. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/kmc_events/event.A_Va_1NN/kra_eci.json +211 -0
  188. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/kmc_events/event.B_Va_1NN/event.json +76 -0
  189. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/kmc_events/event.B_Va_1NN/freq_eci.json +207 -0
  190. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/kmc_events/event.B_Va_1NN/kra_eci.json +211 -0
  191. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/kmc_events/event_system.json +24 -0
  192. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/kmc_system.json +66 -0
  193. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/prim.json +15 -0
  194. libcasm_clexmonte-2.0a1/python/tests/data/FCC_binary_vacancy/system.json +66 -0
  195. libcasm_clexmonte-2.0a1/python/tests/functions/test_enforce_composition.py +59 -0
  196. libcasm_clexmonte-2.0a1/python/tests/run_management/conftest.py +85 -0
  197. libcasm_clexmonte-2.0a1/python/tests/run_management/test_RunManager.py +14 -0
  198. libcasm_clexmonte-2.0a1/python/tests/run_management/test_SamplingFixtureParams.py +6 -0
  199. libcasm_clexmonte-2.0a1/python/tests/run_management/test_run_series.py +114 -0
  200. libcasm_clexmonte-2.0a1/python/tests/semigrand_canonical/__init__.py +0 -0
  201. libcasm_clexmonte-2.0a1/python/tests/semigrand_canonical/test_SemiGrandCanonicalCalculator.py +186 -0
  202. libcasm_clexmonte-2.0a1/python/tests/semigrand_canonical/test_make_initial_state.py +321 -0
  203. libcasm_clexmonte-2.0a1/python/tests/state/conftest.py +17 -0
  204. libcasm_clexmonte-2.0a1/python/tests/state/test_MonteCarloState.py +118 -0
  205. libcasm_clexmonte-2.0a1/python/tests/system/test_System.py +111 -0
  206. libcasm_clexmonte-2.0a1/setup.cfg +4 -0
  207. libcasm_clexmonte-2.0a1/setup.py +13 -0
  208. libcasm_clexmonte-2.0a1/src/casm/clexmonte/canonical/canonical.cc +159 -0
  209. libcasm_clexmonte-2.0a1/src/casm/clexmonte/events/CompleteEventList.cc +94 -0
  210. libcasm_clexmonte-2.0a1/src/casm/clexmonte/events/ImpactTable.cc +107 -0
  211. libcasm_clexmonte-2.0a1/src/casm/clexmonte/events/event_methods.cc +146 -0
  212. libcasm_clexmonte-2.0a1/src/casm/clexmonte/events/io/json/EventFilterGroup_json_io.cc +37 -0
  213. libcasm_clexmonte-2.0a1/src/casm/clexmonte/events/io/json/EventState_json_io.cc +29 -0
  214. libcasm_clexmonte-2.0a1/src/casm/clexmonte/events/io/json/PrimEventData_json_io.cc +26 -0
  215. libcasm_clexmonte-2.0a1/src/casm/clexmonte/kinetic/io/json/EventState_json_io.cc +44 -0
  216. libcasm_clexmonte-2.0a1/src/casm/clexmonte/kinetic/io/stream/EventState_stream_io.cc +58 -0
  217. libcasm_clexmonte-2.0a1/src/casm/clexmonte/kinetic/kinetic.cc +134 -0
  218. libcasm_clexmonte-2.0a1/src/casm/clexmonte/kinetic/kinetic_events.cc +198 -0
  219. libcasm_clexmonte-2.0a1/src/casm/clexmonte/monte_calculator/BaseMonteCalculator.cc +135 -0
  220. libcasm_clexmonte-2.0a1/src/casm/clexmonte/monte_calculator/CanonicalCalculator.cc +562 -0
  221. libcasm_clexmonte-2.0a1/src/casm/clexmonte/monte_calculator/MonteCalculator.cc +216 -0
  222. libcasm_clexmonte-2.0a1/src/casm/clexmonte/monte_calculator/SemiGrandCanonicalCalculator.cc +478 -0
  223. libcasm_clexmonte-2.0a1/src/casm/clexmonte/monte_calculator/StateData.cc +154 -0
  224. libcasm_clexmonte-2.0a1/src/casm/clexmonte/monte_calculator/analysis_functions.cc +177 -0
  225. libcasm_clexmonte-2.0a1/src/casm/clexmonte/monte_calculator/io/json/MonteCalculator_json_io.cc +129 -0
  226. libcasm_clexmonte-2.0a1/src/casm/clexmonte/monte_calculator/sampling_functions.cc +435 -0
  227. libcasm_clexmonte-2.0a1/src/casm/clexmonte/nfold/nfold.cc +11 -0
  228. libcasm_clexmonte-2.0a1/src/casm/clexmonte/nfold/nfold_events.cc +186 -0
  229. libcasm_clexmonte-2.0a1/src/casm/clexmonte/run/io/convariance_functions.cc +146 -0
  230. libcasm_clexmonte-2.0a1/src/casm/clexmonte/run/io/json/ConfigGenerator_json_io.cc +160 -0
  231. libcasm_clexmonte-2.0a1/src/casm/clexmonte/run/io/json/RunParams_json_io.cc +48 -0
  232. libcasm_clexmonte-2.0a1/src/casm/clexmonte/run/io/json/StateGenerator_json_io.cc +37 -0
  233. libcasm_clexmonte-2.0a1/src/casm/clexmonte/semigrand_canonical/calculator.cc +78 -0
  234. libcasm_clexmonte-2.0a1/src/casm/clexmonte/semigrand_canonical/potential.cc +112 -0
  235. libcasm_clexmonte-2.0a1/src/casm/clexmonte/state/Conditions.cc +394 -0
  236. libcasm_clexmonte-2.0a1/src/casm/clexmonte/state/CorrMatchingPotential.cc +384 -0
  237. libcasm_clexmonte-2.0a1/src/casm/clexmonte/state/io/json/CorrMatchingPotential_json_io.cc +63 -0
  238. libcasm_clexmonte-2.0a1/src/casm/clexmonte/state/io/json/State_json_io.cc +55 -0
  239. libcasm_clexmonte-2.0a1/src/casm/clexmonte/state/io/json/parse_conditions.cc +562 -0
  240. libcasm_clexmonte-2.0a1/src/casm/clexmonte/state/make_conditions.cc +348 -0
  241. libcasm_clexmonte-2.0a1/src/casm/clexmonte/system/System.cc +701 -0
  242. libcasm_clexmonte-2.0a1/src/casm/clexmonte/system/io/json/System_json_io.cc +668 -0
  243. libcasm_clexmonte-2.0a1/src/casm/clexmonte/system/io/json/system_data_json_io.cc +122 -0
  244. libcasm_clexmonte-2.0a1/src/casm/clexmonte/system/system_data.cc +116 -0
  245. libcasm_clexmonte-2.0a1/stylize.sh +18 -0
  246. libcasm_clexmonte-2.0a1/test_requirements.txt +3 -0
  247. libcasm_clexmonte-2.0a1/tests/CMakeLists.txt +200 -0
  248. libcasm_clexmonte-2.0a1/tests/CMakeLists.txt.in +178 -0
  249. libcasm_clexmonte-2.0a1/tests/unit/KMCCompleteEventCalculatorTestSystem.cc +47 -0
  250. libcasm_clexmonte-2.0a1/tests/unit/KMCCompleteEventCalculatorTestSystem.hh +35 -0
  251. libcasm_clexmonte-2.0a1/tests/unit/KMCCompleteEventListTestSystem.cc +43 -0
  252. libcasm_clexmonte-2.0a1/tests/unit/KMCCompleteEventListTestSystem.hh +42 -0
  253. libcasm_clexmonte-2.0a1/tests/unit/KMCTestSystem.cc +221 -0
  254. libcasm_clexmonte-2.0a1/tests/unit/KMCTestSystem.hh +65 -0
  255. libcasm_clexmonte-2.0a1/tests/unit/ZrOTestSystem.cc +72 -0
  256. libcasm_clexmonte-2.0a1/tests/unit/ZrOTestSystem.hh +49 -0
  257. libcasm_clexmonte-2.0a1/tests/unit/autotools.cc +28 -0
  258. libcasm_clexmonte-2.0a1/tests/unit/autotools.hh +25 -0
  259. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/canonical_RunParams_json_io_test.cpp +190 -0
  260. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/canonical_conditions_test.cpp +80 -0
  261. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/canonical_fullrun_test.cpp +378 -0
  262. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/canonical_metropolis_test.cpp +93 -0
  263. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/canonical_run_test.cpp +241 -0
  264. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/basis_sets/bset.formation_energy/ZrO_Clexulator_formation_energy.cc +16261 -0
  265. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/formation_energy_eci.json +2653 -0
  266. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/input_1.json +133 -0
  267. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/prim.json +27 -0
  268. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/run_params_by_file.json +40 -0
  269. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/run_params_complete.json +78 -0
  270. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/run_params_sgc_by_file.json +37 -0
  271. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/run_params_sgc_complete.json +76 -0
  272. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/system.json +56 -0
  273. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/thermo_sampling.period1.json +45 -0
  274. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/Clex_ZrO_Occ/thermo_sampling.period10.json +45 -0
  275. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/0/FCC_binary_vacancy_Clexulator_A_Va_1NN_0.cc +3366 -0
  276. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/1/FCC_binary_vacancy_Clexulator_A_Va_1NN_1.cc +3442 -0
  277. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/2/FCC_binary_vacancy_Clexulator_A_Va_1NN_2.cc +3404 -0
  278. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/3/FCC_binary_vacancy_Clexulator_A_Va_1NN_3.cc +3518 -0
  279. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/4/FCC_binary_vacancy_Clexulator_A_Va_1NN_4.cc +3556 -0
  280. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/5/FCC_binary_vacancy_Clexulator_A_Va_1NN_5.cc +3480 -0
  281. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/FCC_binary_vacancy_Clexulator_A_Va_1NN.cc +3346 -0
  282. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/basis.json +206 -0
  283. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/bspecs.json +25 -0
  284. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/clust.json +140 -0
  285. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.A_Va_1NN/equivalents_info.json +3510 -0
  286. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/0/FCC_binary_vacancy_Clexulator_B_Va_1NN_0.cc +3366 -0
  287. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/1/FCC_binary_vacancy_Clexulator_B_Va_1NN_1.cc +3442 -0
  288. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/2/FCC_binary_vacancy_Clexulator_B_Va_1NN_2.cc +3404 -0
  289. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/3/FCC_binary_vacancy_Clexulator_B_Va_1NN_3.cc +3518 -0
  290. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/4/FCC_binary_vacancy_Clexulator_B_Va_1NN_4.cc +3556 -0
  291. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/5/FCC_binary_vacancy_Clexulator_B_Va_1NN_5.cc +3480 -0
  292. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/FCC_binary_vacancy_Clexulator_B_Va_1NN.cc +3346 -0
  293. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/basis.json +206 -0
  294. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/bspecs.json +25 -0
  295. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/clust.json +140 -0
  296. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.B_Va_1NN/equivalents_info.json +3510 -0
  297. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.default/FCC_binary_vacancy_Clexulator_default.cc +1071 -0
  298. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.default/basis.json +288 -0
  299. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.default/bspecs.json +17 -0
  300. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/basis_sets/bset.default/clust.json +224 -0
  301. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/formation_energy_eci.json +293 -0
  302. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/formation_energy_sparse_eci.json +7 -0
  303. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event.A_Va_1NN/event.json +76 -0
  304. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event.A_Va_1NN/freq_eci.json +207 -0
  305. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event.A_Va_1NN/freq_sparse_eci.json +3 -0
  306. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event.A_Va_1NN/kra_eci.json +211 -0
  307. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event.A_Va_1NN/kra_sparse_eci.json +7 -0
  308. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event.B_Va_1NN/event.json +76 -0
  309. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event.B_Va_1NN/freq_eci.json +207 -0
  310. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event.B_Va_1NN/freq_sparse_eci.json +3 -0
  311. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event.B_Va_1NN/kra_eci.json +211 -0
  312. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event.B_Va_1NN/kra_sparse_eci.json +7 -0
  313. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/kmc_events/event_system.json +24 -0
  314. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/FCC_binary_vacancy/prim.json +15 -0
  315. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/ZrOTestSystem/basis_sets/bset.formation_energy/ZrO_Clexulator_formation_energy.cc +16276 -0
  316. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/ZrOTestSystem/formation_energy_eci.json +2653 -0
  317. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/ZrOTestSystem/system.json +56 -0
  318. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/canonical/input_1.json +158 -0
  319. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/data/kmc/system_template.json +83 -0
  320. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/events_CompleteEventCalculator_test.cpp +103 -0
  321. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/events_EventStateCalculator_test.cpp +112 -0
  322. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/events_RejectionFree_test.cpp +111 -0
  323. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/events_System_impact_table_test.cpp +183 -0
  324. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/run_FixedConfigGenerator_test.cpp +40 -0
  325. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/run_IncrementalConditionsStateGenerator_test.cpp +144 -0
  326. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/run_SamplingFixture_test.cpp +306 -0
  327. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/semigrand_canonical_fullrun_test.cpp +380 -0
  328. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/semigrand_canonical_run_test.cpp +251 -0
  329. libcasm_clexmonte-2.0a1/tests/unit/clexmonte/system_System_json_io_test.cpp +44 -0
  330. libcasm_clexmonte-2.0a1/tests/unit/gtest_main_run_all.cpp +6 -0
  331. libcasm_clexmonte-2.0a1/tests/unit/misc.hh +25 -0
  332. libcasm_clexmonte-2.0a1/tests/unit/testdir.cc +48 -0
  333. libcasm_clexmonte-2.0a1/tests/unit/testdir.hh +46 -0
  334. libcasm_clexmonte-2.0a1/tests/unit/teststructures.hh +198 -0
@@ -0,0 +1,20 @@
1
+ # Changelog
2
+
3
+ All notable changes to `libcasm-clexmonte` will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+
9
+ ## [2.0a1] - 2024-07-17
10
+
11
+ This release creates the libcasm-clexmonte cluster expansion based Monte Carlo module. It includes:
12
+
13
+ - Canonical, semi-grand canonical, and kinetic Monte Carlo calculators
14
+ - Support for customizing potentials, including linear, quadratic, and correlation-matching terms
15
+ - Metropolis and N-fold way implementations
16
+ - Support for customizing sampling and analysis functions
17
+
18
+ The distribution package libcasm-clexmonte contains a Python package (libcasm.clexmonte) that provides an interface to Monte Carlo simulation methods implemented in C++. The libcasm.clexmonte.MonteCalculator class currently provides access to simulations in the canonical and semi-grand canonical ensemble and will be expanded in the next releases to include additional methods.
19
+
20
+ This package may be installed via pip install, using scikit-build, CMake, and pybind11. This release also includes usage examples and API documentation, built using Sphinx.
@@ -0,0 +1,448 @@
1
+ cmake_minimum_required(VERSION 3.20)
2
+ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
3
+
4
+ project(CASMcode_configuration VERSION 2.0.0 LANGUAGES CXX)
5
+
6
+ # set CMAKE_INSTALL_X variables
7
+ include(GNUInstallDirs)
8
+
9
+ # specify the C++ standard
10
+ set(CMAKE_CXX_STANDARD 17)
11
+ set(CMAKE_CXX_STANDARD_REQUIRED True)
12
+
13
+ # try to use ccache
14
+ find_program(CCACHE_PROGRAM ccache)
15
+ if(CCACHE_PROGRAM)
16
+ set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")
17
+ endif()
18
+
19
+ ##############################################
20
+ ## Find dependencies
21
+
22
+ # Should find ZLIB::ZLIB
23
+ find_package(ZLIB)
24
+
25
+ # Find CASM
26
+ if(NOT DEFINED CASM_PREFIX)
27
+ message(STATUS "CASM_PREFIX not defined")
28
+ # try to find Python
29
+ find_package (Python COMPONENTS Interpreter Development)
30
+ if(DEFINED Python_EXECUTABLE)
31
+ # if Python found, obtain CASM_PREFIX from the libcasm.casmglobal
32
+ message(STATUS "found Python_EXECUTABLE: ${Python_EXECUTABLE}")
33
+ message(STATUS "checking for libcasm-global")
34
+ execute_process(
35
+ COMMAND pip show libcasm-global
36
+ RESULT_VARIABLE EXIT_CODE
37
+ OUTPUT_QUIET
38
+ )
39
+ if (${EXIT_CODE} EQUAL 0)
40
+ message(STATUS "found libcasm-global")
41
+ execute_process(COMMAND ${Python_EXECUTABLE} -m libcasm.casmglobal --prefix
42
+ OUTPUT_VARIABLE CASM_PREFIX_RAW)
43
+ string(STRIP ${CASM_PREFIX_RAW} CASM_PREFIX)
44
+ message(STATUS "CASM_PREFIX: ${CASM_PREFIX}")
45
+ else()
46
+ message(STATUS "did not find libcasm-global")
47
+ endif()
48
+ endif()
49
+ endif()
50
+ if(DEFINED CASM_PREFIX)
51
+ set(CASMcode_global_ROOT ${CASM_PREFIX}/share/CASMcode_global/cmake)
52
+ set(CASMcode_crystallography_ROOT ${CASM_PREFIX}/share/CASMcode_crystallography/cmake)
53
+ set(CASMcode_composition_ROOT ${CASM_PREFIX}/share/CASMcode_composition/cmake)
54
+ set(CASMcode_clexulator_ROOT ${CASM_PREFIX}/share/CASMcode_clexulator/cmake)
55
+ set(CASMcode_configuration_ROOT ${CASM_PREFIX}/share/CASMcode_configuration/cmake)
56
+ set(CASMcode_monte_ROOT ${CASM_PREFIX}/share/CASMcode_monte/cmake)
57
+ endif()
58
+
59
+ find_package(CASMcode_global)
60
+ if(NOT CASMcode_global_FOUND)
61
+ message(FATAL_ERROR "CMake failed to find CASMcode_global")
62
+ endif()
63
+ # if successful, we have CASM::casm_global
64
+
65
+ find_package(CASMcode_crystallography)
66
+ if(NOT CASMcode_crystallography_FOUND)
67
+ message(FATAL_ERROR "CMake failed to find CASMcode_crystallography")
68
+ endif()
69
+ # if successful, we have CASM::casm_crystallography
70
+
71
+ find_package(CASMcode_composition)
72
+ if(NOT CASMcode_composition_FOUND)
73
+ message(FATAL_ERROR "CMake failed to find CASMcode_composition")
74
+ endif()
75
+ # if successful, we have CASM::casm_composition
76
+
77
+ find_package(CASMcode_clexulator)
78
+ if(NOT CASMcode_clexulator_FOUND)
79
+ message(FATAL_ERROR "CMake failed to find CASMcode_clexulator")
80
+ endif()
81
+ # if successful, we have CASM::casm_clexulator
82
+
83
+ find_package(CASMcode_configuration)
84
+ if(NOT CASMcode_configuration_FOUND)
85
+ message(FATAL_ERROR "CMake failed to find CASMcode_configuration")
86
+ endif()
87
+ # if successful, we have CASM::casm_configuration
88
+
89
+ find_package(CASMcode_monte)
90
+ if(NOT CASMcode_monte_FOUND)
91
+ message(FATAL_ERROR "CMake failed to find CASMcode_monte")
92
+ endif()
93
+ # if successful, we have CASM::casm_monte
94
+
95
+
96
+ # if no user CMAKE_INSTALL_PREFIX, use CASM_PREFIX if it exists
97
+ IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
98
+ if(DEFINED CASM_PREFIX)
99
+ message(STATUS "CMAKE_INSTALL_PREFIX initialized to default, so updating CMAKE_INSTALL_PREFIX to CASM_PREFIX")
100
+ set(CMAKE_INSTALL_PREFIX ${CASM_PREFIX} CACHE PATH "set CMAKE_INSTALL_PREFIX to CASM_PREFIX" FORCE)
101
+ message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
102
+ endif()
103
+ ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
104
+
105
+
106
+ ##############################################
107
+ ## Build libcasm_clexmonte
108
+
109
+ # create libcasm_clexmonte
110
+ set(
111
+ libcasm_clexmonte_HEADERS
112
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/canonical/canonical.hh
113
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/canonical/canonical_impl.hh
114
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/canonical/canonical_json_io.hh
115
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/definitions.hh
116
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/CompleteEventList.hh
117
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/ImpactTable.hh
118
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/event_data.hh
119
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/event_methods.hh
120
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/io/json/EventFilterGroup_json_io.hh
121
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/io/json/EventState_json_io.hh
122
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/io/json/PrimEventData_json_io.hh
123
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/lotto.hh
124
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/lotto/event_rate_tree.hpp
125
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/lotto/event_rate_tree_impl.hpp
126
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/lotto/event_selector.hpp
127
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/lotto/random.hpp
128
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/lotto/rejection.hpp
129
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/lotto/rejection_free.hpp
130
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/lotto/sum_tree.hpp
131
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/events/lotto/sum_tree_impl.hpp
132
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/kinetic/io/json/EventState_json_io.hh
133
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/kinetic/io/stream/EventState_stream_io.hh
134
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/kinetic/kinetic.hh
135
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/kinetic/kinetic_events.hh
136
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/kinetic/kinetic_impl.hh
137
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/kinetic/kinetic_json_io.hh
138
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/methods/occupation_metropolis.hh
139
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/misc/Matrix3lCompare.hh
140
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/misc/diffusion_calculations.hh
141
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/misc/eigen.hh
142
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/misc/parse_array.hh
143
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/misc/subparse_from_file.hh
144
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/misc/to_json.hh
145
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/monte_calculator/BaseMonteCalculator.hh
146
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/monte_calculator/MonteCalculator.hh
147
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/monte_calculator/StateData.hh
148
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/monte_calculator/analysis_functions.hh
149
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/monte_calculator/io/json/MonteCalculator_json_io.hh
150
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/monte_calculator/sampling_functions.hh
151
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/nfold/nfold.hh
152
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/nfold/nfold_events.hh
153
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/nfold/nfold_impl.hh
154
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/nfold/nfold_json_io.hh
155
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/ConfigGenerator.hh
156
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/FixedConfigGenerator.hh
157
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/IncrementalConditionsStateGenerator.hh
158
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/RunData.hh
159
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/StateGenerator.hh
160
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/StateModifyingFunction.hh
161
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/analysis_functions.hh
162
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/covariance_functions.hh
163
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/functions.hh
164
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/io/RunParams.hh
165
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/io/json/ConfigGenerator_json_io.hh
166
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/io/json/RunData_json_io.hh
167
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/io/json/RunParams_json_io.hh
168
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/io/json/RunParams_json_io_impl.hh
169
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/io/json/StateGenerator_json_io.hh
170
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/io/json/StateGenerator_json_io_impl.hh
171
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/run/io/json/parse_and_run_series.hh
172
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/semigrand_canonical/calculator.hh
173
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/semigrand_canonical/calculator_impl.hh
174
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/semigrand_canonical/conditions.hh
175
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/semigrand_canonical/event_generator.hh
176
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/semigrand_canonical/json_io.hh
177
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/semigrand_canonical/potential.hh
178
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/Conditions.hh
179
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/Configuration.hh
180
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/CorrMatchingPotential.hh
181
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/enforce_composition.hh
182
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/io/json/CorrMatchingPotential_json_io.hh
183
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/io/json/State_json_io.hh
184
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/io/json/parse_conditions.hh
185
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/io/json/parse_conditions_impl.hh
186
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/kinetic_sampling_functions.hh
187
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/make_conditions.hh
188
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/modifying_functions.hh
189
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/state/sampling_functions.hh
190
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/system/System.hh
191
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/system/io/json/System_json_io.hh
192
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/system/io/json/system_data_json_io.hh
193
+ ${PROJECT_SOURCE_DIR}/include/casm/clexmonte/system/system_data.hh
194
+ )
195
+ set(
196
+ libcasm_clexmonte_SOURCES
197
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/canonical/canonical.cc
198
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/events/CompleteEventList.cc
199
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/events/ImpactTable.cc
200
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/events/event_methods.cc
201
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/events/io/json/EventFilterGroup_json_io.cc
202
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/events/io/json/EventState_json_io.cc
203
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/events/io/json/PrimEventData_json_io.cc
204
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/kinetic/io/json/EventState_json_io.cc
205
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/kinetic/io/stream/EventState_stream_io.cc
206
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/kinetic/kinetic.cc
207
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/kinetic/kinetic_events.cc
208
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/monte_calculator/BaseMonteCalculator.cc
209
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/monte_calculator/CanonicalCalculator.cc
210
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/monte_calculator/MonteCalculator.cc
211
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/monte_calculator/SemiGrandCanonicalCalculator.cc
212
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/monte_calculator/StateData.cc
213
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/monte_calculator/analysis_functions.cc
214
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/monte_calculator/io/json/MonteCalculator_json_io.cc
215
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/monte_calculator/sampling_functions.cc
216
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/nfold/nfold.cc
217
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/nfold/nfold_events.cc
218
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/run/io/convariance_functions.cc
219
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/run/io/json/ConfigGenerator_json_io.cc
220
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/run/io/json/RunParams_json_io.cc
221
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/run/io/json/StateGenerator_json_io.cc
222
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/semigrand_canonical/calculator.cc
223
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/semigrand_canonical/potential.cc
224
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/state/Conditions.cc
225
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/state/CorrMatchingPotential.cc
226
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/state/io/json/CorrMatchingPotential_json_io.cc
227
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/state/io/json/State_json_io.cc
228
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/state/io/json/parse_conditions.cc
229
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/state/make_conditions.cc
230
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/system/System.cc
231
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/system/io/json/System_json_io.cc
232
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/system/io/json/system_data_json_io.cc
233
+ ${PROJECT_SOURCE_DIR}/src/casm/clexmonte/system/system_data.cc
234
+ )
235
+ add_library(casm_clexmonte SHARED ${libcasm_clexmonte_SOURCES})
236
+ target_include_directories(casm_clexmonte
237
+ PUBLIC
238
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
239
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/casm/external>
240
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/casm/external/gzstream>
241
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
242
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/casm/external>
243
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/casm/external/gzstream>
244
+ )
245
+ target_compile_options(casm_clexmonte
246
+ PUBLIC
247
+ "-DCASM_CLEXMONTE_TXT_VERSION=\"${CMAKE_PROJECT_VERSION}\""
248
+ -DEIGEN_DEFAULT_DENSE_INDEX_TYPE=long
249
+ -DGZSTREAM_NAMESPACE=gz
250
+ )
251
+ target_link_libraries(casm_clexmonte
252
+ ZLIB::ZLIB
253
+ ${CMAKE_DL_LIBS}
254
+ CASM::casm_global
255
+ CASM::casm_crystallography
256
+ CASM::casm_composition
257
+ CASM::casm_clexulator
258
+ CASM::casm_configuration
259
+ CASM::casm_monte
260
+ )
261
+ if(APPLE)
262
+ set_target_properties(
263
+ casm_clexmonte PROPERTIES INSTALL_RPATH "@loader_path")
264
+ else()
265
+ set_target_properties(
266
+ casm_clexmonte PROPERTIES INSTALL_RPATH "$ORIGIN")
267
+ endif()
268
+
269
+
270
+ ##############################################
271
+ ## Install libcasm_clexmonte
272
+
273
+ # install header files in <prefix>/libcasm/include/,
274
+ # while preserving directory structure
275
+ foreach ( filevar ${libcasm_clexmonte_HEADERS} )
276
+ file(RELATIVE_PATH relfile ${PROJECT_SOURCE_DIR}/include/ ${filevar})
277
+ get_filename_component( reldir ${relfile} DIRECTORY )
278
+ install( FILES ${filevar} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${reldir} )
279
+ endforeach()
280
+
281
+ # install libcasm_clexmonte in <prefix>/libcasm/lib/
282
+ install(
283
+ TARGETS casm_clexmonte
284
+ EXPORT CASMcode_clexmonteTargets
285
+ DESTINATION lib)
286
+
287
+ ##############################################
288
+ ## Python extensions
289
+
290
+ # The CMake package config and target files are installed under the Python
291
+ # package root. This is necessary to ensure that all the relative paths in the
292
+ # helloTargets.cmake resolve correctly. It also provides encapsulation.
293
+ #
294
+ # The actual path used must be selected so that consuming projects can locate it
295
+ # via `find_package`. To support finding CMake packages in the Python package
296
+ # prefix, using `find_package`s default search path of
297
+ # `<prefix>/<name>/share/<name>*/cmake/` is reasonable. Adding the Python
298
+ # package installation prefix to CMAKE_PREFIX_PATH in combination with this path
299
+ # will allow `find_package` to find this package and any other package installed
300
+ # via a Python package if the CMake and Python packages are named the same.
301
+ set(CASM_CMAKE_PACKAGE_INSTALL_SUBDIR "share/CASMcode_clexmonte/cmake")
302
+
303
+ install(
304
+ EXPORT CASMcode_clexmonteTargets
305
+ NAMESPACE CASM::
306
+ DESTINATION ${CASM_CMAKE_PACKAGE_INSTALL_SUBDIR})
307
+
308
+ include(CMakePackageConfigHelpers)
309
+
310
+ write_basic_package_version_file(
311
+ CASMcode_clexmonteConfigVersion.cmake
312
+ VERSION ${PROJECT_VERSION}
313
+ COMPATIBILITY SameMinorVersion)
314
+
315
+ configure_package_config_file(
316
+ "${PROJECT_SOURCE_DIR}/cmake/CASMcode_clexmonteConfig.cmake.in" CASMcode_clexmonteConfig.cmake
317
+ INSTALL_DESTINATION ${CASM_CMAKE_PACKAGE_INSTALL_SUBDIR})
318
+
319
+ install(FILES "${PROJECT_BINARY_DIR}/CASMcode_clexmonteConfig.cmake"
320
+ "${PROJECT_BINARY_DIR}/CASMcode_clexmonteConfigVersion.cmake"
321
+ DESTINATION ${CASM_CMAKE_PACKAGE_INSTALL_SUBDIR})
322
+
323
+ # We are using the SKBUILD variable, which is defined when scikit-build is
324
+ # running the CMake build, to control building the Python wrapper. This allows
325
+ # the C++ project to be installed, standalone, when using the standard CMake
326
+ # build flow.
327
+ if(DEFINED SKBUILD)
328
+
329
+ # call pybind11-config to obtain the root of the cmake package
330
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} -m pybind11 --cmakedir
331
+ OUTPUT_VARIABLE pybind11_ROOT_RAW)
332
+ string(STRIP ${pybind11_ROOT_RAW} pybind11_ROOT)
333
+ find_package(pybind11)
334
+
335
+ # The extension modules must load:
336
+ # - the casm_global library
337
+ # - the casm_crystallography library
338
+ # - the casm_composition library
339
+ # - the casm_clexulator library
340
+ # - the casm_configuration library
341
+ # - the casm_monte library
342
+ # They can be found by setting a relative rpath
343
+
344
+ ### libcasm.clexmonte._clexmonte_system ###
345
+ pybind11_add_module(_clexmonte_system MODULE
346
+ "${PROJECT_SOURCE_DIR}/python/src/clexmonte_system.cpp")
347
+ target_link_libraries(_clexmonte_system PRIVATE
348
+ CASM::casm_global
349
+ CASM::casm_crystallography
350
+ CASM::casm_composition
351
+ CASM::casm_clexulator
352
+ CASM::casm_configuration
353
+ CASM::casm_monte
354
+ casm_clexmonte
355
+ )
356
+ install(TARGETS _clexmonte_system DESTINATION clexmonte)
357
+ if(APPLE)
358
+ set_target_properties(
359
+ _clexmonte_system PROPERTIES INSTALL_RPATH "@loader_path/../lib")
360
+ else()
361
+ set_target_properties(
362
+ _clexmonte_system PROPERTIES INSTALL_RPATH "$ORIGIN/../lib")
363
+ endif()
364
+
365
+ ### libcasm.clexmonte._clexmonte_state ###
366
+ pybind11_add_module(_clexmonte_state MODULE
367
+ "${PROJECT_SOURCE_DIR}/python/src/clexmonte_state.cpp")
368
+ target_link_libraries(_clexmonte_state PRIVATE
369
+ CASM::casm_global
370
+ CASM::casm_crystallography
371
+ CASM::casm_composition
372
+ CASM::casm_clexulator
373
+ CASM::casm_configuration
374
+ CASM::casm_monte
375
+ casm_clexmonte
376
+ )
377
+ install(TARGETS _clexmonte_state DESTINATION clexmonte)
378
+ if(APPLE)
379
+ set_target_properties(
380
+ _clexmonte_state PROPERTIES INSTALL_RPATH "@loader_path/../lib")
381
+ else()
382
+ set_target_properties(
383
+ _clexmonte_state PROPERTIES INSTALL_RPATH "$ORIGIN/../lib")
384
+ endif()
385
+
386
+ ### libcasm.clexmonte._clexmonte_run_management ###
387
+ pybind11_add_module(_clexmonte_run_management MODULE
388
+ "${PROJECT_SOURCE_DIR}/python/src/clexmonte_run_management.cpp")
389
+ target_link_libraries(_clexmonte_run_management PRIVATE
390
+ CASM::casm_global
391
+ CASM::casm_crystallography
392
+ CASM::casm_composition
393
+ CASM::casm_clexulator
394
+ CASM::casm_configuration
395
+ CASM::casm_monte
396
+ casm_clexmonte
397
+ )
398
+ install(TARGETS _clexmonte_run_management DESTINATION clexmonte)
399
+ if(APPLE)
400
+ set_target_properties(
401
+ _clexmonte_run_management PROPERTIES INSTALL_RPATH "@loader_path/../lib")
402
+ else()
403
+ set_target_properties(
404
+ _clexmonte_run_management PROPERTIES INSTALL_RPATH "$ORIGIN/../lib")
405
+ endif()
406
+
407
+ ### libcasm.clexmonte._clexmonte_functions ###
408
+ pybind11_add_module(_clexmonte_functions MODULE
409
+ "${PROJECT_SOURCE_DIR}/python/src/clexmonte_functions.cpp")
410
+ target_link_libraries(_clexmonte_functions PRIVATE
411
+ CASM::casm_global
412
+ CASM::casm_crystallography
413
+ CASM::casm_composition
414
+ CASM::casm_clexulator
415
+ CASM::casm_configuration
416
+ CASM::casm_monte
417
+ casm_clexmonte
418
+ )
419
+ install(TARGETS _clexmonte_functions DESTINATION clexmonte)
420
+ if(APPLE)
421
+ set_target_properties(
422
+ _clexmonte_functions PROPERTIES INSTALL_RPATH "@loader_path/../lib")
423
+ else()
424
+ set_target_properties(
425
+ _clexmonte_functions PROPERTIES INSTALL_RPATH "$ORIGIN/../lib")
426
+ endif()
427
+
428
+ ### libcasm.clexmonte._clexmonte_monte_calculator ###
429
+ pybind11_add_module(_clexmonte_monte_calculator MODULE
430
+ "${PROJECT_SOURCE_DIR}/python/src/clexmonte_monte_calculator.cpp")
431
+ target_link_libraries(_clexmonte_monte_calculator PRIVATE
432
+ CASM::casm_global
433
+ CASM::casm_crystallography
434
+ CASM::casm_composition
435
+ CASM::casm_clexulator
436
+ CASM::casm_configuration
437
+ CASM::casm_monte
438
+ casm_clexmonte
439
+ )
440
+ install(TARGETS _clexmonte_monte_calculator DESTINATION clexmonte)
441
+ if(APPLE)
442
+ set_target_properties(
443
+ _clexmonte_monte_calculator PROPERTIES INSTALL_RPATH "@loader_path/../lib")
444
+ else()
445
+ set_target_properties(
446
+ _clexmonte_monte_calculator PROPERTIES INSTALL_RPATH "$ORIGIN/../lib")
447
+ endif()
448
+ endif()