musica 0.14.2__cp313-cp313-win_arm64.whl

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 (98) hide show
  1. musica/__init__.py +23 -0
  2. musica/_musica.cp313-win_arm64.pyd +0 -0
  3. musica/_version.py +1 -0
  4. musica/backend.py +58 -0
  5. musica/carma/__init__.py +20 -0
  6. musica/carma/carma.py +1727 -0
  7. musica/constants.py +3 -0
  8. musica/cuda.py +13 -0
  9. musica/examples/__init__.py +1 -0
  10. musica/examples/carma_aluminum.py +124 -0
  11. musica/examples/carma_sulfate.py +246 -0
  12. musica/examples/examples.py +165 -0
  13. musica/examples/sulfate_box_model.py +439 -0
  14. musica/examples/ts1_latin_hypercube.py +245 -0
  15. musica/main.py +128 -0
  16. musica/mechanism_configuration/__init__.py +18 -0
  17. musica/mechanism_configuration/ancillary.py +6 -0
  18. musica/mechanism_configuration/arrhenius.py +149 -0
  19. musica/mechanism_configuration/branched.py +140 -0
  20. musica/mechanism_configuration/emission.py +82 -0
  21. musica/mechanism_configuration/first_order_loss.py +90 -0
  22. musica/mechanism_configuration/mechanism.py +93 -0
  23. musica/mechanism_configuration/phase.py +58 -0
  24. musica/mechanism_configuration/phase_species.py +58 -0
  25. musica/mechanism_configuration/photolysis.py +98 -0
  26. musica/mechanism_configuration/reaction_component.py +54 -0
  27. musica/mechanism_configuration/reactions.py +32 -0
  28. musica/mechanism_configuration/species.py +65 -0
  29. musica/mechanism_configuration/surface.py +98 -0
  30. musica/mechanism_configuration/taylor_series.py +136 -0
  31. musica/mechanism_configuration/ternary_chemical_activation.py +160 -0
  32. musica/mechanism_configuration/troe.py +160 -0
  33. musica/mechanism_configuration/tunneling.py +126 -0
  34. musica/mechanism_configuration/user_defined.py +99 -0
  35. musica/mechanism_configuration/utils.py +10 -0
  36. musica/micm/__init__.py +10 -0
  37. musica/micm/conditions.py +49 -0
  38. musica/micm/micm.py +135 -0
  39. musica/micm/solver.py +8 -0
  40. musica/micm/solver_result.py +24 -0
  41. musica/micm/state.py +220 -0
  42. musica/micm/utils.py +18 -0
  43. musica/tuvx/__init__.py +11 -0
  44. musica/tuvx/grid.py +98 -0
  45. musica/tuvx/grid_map.py +167 -0
  46. musica/tuvx/profile.py +130 -0
  47. musica/tuvx/profile_map.py +167 -0
  48. musica/tuvx/radiator.py +95 -0
  49. musica/tuvx/radiator_map.py +173 -0
  50. musica/tuvx/tuvx.py +283 -0
  51. musica-0.14.2.dist-info/DELVEWHEEL +2 -0
  52. musica-0.14.2.dist-info/METADATA +418 -0
  53. musica-0.14.2.dist-info/RECORD +98 -0
  54. musica-0.14.2.dist-info/WHEEL +5 -0
  55. musica-0.14.2.dist-info/entry_points.txt +3 -0
  56. musica-0.14.2.dist-info/licenses/AUTHORS.md +59 -0
  57. musica-0.14.2.dist-info/licenses/LICENSE +201 -0
  58. musica.libs/libaws-c-auth-1cf561c386313196250572f75a3ed824.dll +0 -0
  59. musica.libs/libaws-c-cal-42bcf524de399c966bbc314bd98bba9f.dll +0 -0
  60. musica.libs/libaws-c-common-24dd9c82ebb08beb13bf9f8583c56cc1.dll +0 -0
  61. musica.libs/libaws-c-compression-02fee27d280c28d0a0674dad3f525d67.dll +0 -0
  62. musica.libs/libaws-c-event-stream-f001427a7ea22ee734ac53c7c9cd244b.dll +0 -0
  63. musica.libs/libaws-c-http-6ad0ebd261bfc5768d514000d9fdfcb0.dll +0 -0
  64. musica.libs/libaws-c-io-722b1df2148dc46d7328f4284eeaaa2d.dll +0 -0
  65. musica.libs/libaws-c-mqtt-00612db461ac60cc48064cb44aa6687c.dll +0 -0
  66. musica.libs/libaws-c-s3-5aacd45fcacb4e6406898e2a1d75e475.dll +0 -0
  67. musica.libs/libaws-c-sdkutils-a2b38a703242c1a43e7e28dc1af77b76.dll +0 -0
  68. musica.libs/libaws-checksums-2dd088badb5deecd61892bd75b76a5c6.dll +0 -0
  69. musica.libs/libaws-cpp-sdk-core-ec30536f4a1c6a339880518a6948dd47.dll +0 -0
  70. musica.libs/libaws-cpp-sdk-s3-3d4e95f8707106db4824ec83c5093d99.dll +0 -0
  71. musica.libs/libaws-crt-cpp-f1576da844b283a3a7f605c832d6929e.dll +0 -0
  72. musica.libs/libbrotlicommon-6f2ab8fa291bfa9b3c8fd335a68c1709.dll +0 -0
  73. musica.libs/libbrotlidec-712c393950a6e5647de0994846461ed9.dll +0 -0
  74. musica.libs/libbz2-1-594db4ebf1f5323d0c6fe4a8eb1fee38.dll +0 -0
  75. musica.libs/libc++-5a3ac6f6a45b30c3a324d06bba3ac988.dll +0 -0
  76. musica.libs/libcrypto-3-f15f7c59b08d86737f0898c52e166459.dll +0 -0
  77. musica.libs/libcurl-4-7e874470be3164786e39abe87acafca2.dll +0 -0
  78. musica.libs/libhdf5-320-c5de49e085ef82caa1afa15c8646d9a5.dll +0 -0
  79. musica.libs/libhdf5_hl-320-f5e464171e8d1ff551a029e5669351bf.dll +0 -0
  80. musica.libs/libiconv-2-1f9104b198c7e0082423deeaa27743b8.dll +0 -0
  81. musica.libs/libidn2-0-2ab382ba681f6b2908efbe77313a67e9.dll +0 -0
  82. musica.libs/libintl-8-ec5293eb421b0f43b022507068fec1e0.dll +0 -0
  83. musica.libs/liblzma-5-fa49defe42e70f81800cf7a8ca306109.dll +0 -0
  84. musica.libs/libnetcdf-85313d8bbda6005839d185b1b74e2f20.dll +0 -0
  85. musica.libs/libnetcdff-7-e0ad64bbec1c8c2daf5b602d0159e8bd.dll +0 -0
  86. musica.libs/libnghttp2-14-d095323de8f08a91178c5e7ef578827d.dll +0 -0
  87. musica.libs/libnghttp3-9-326479956d726912fbd79214bfb43783.dll +0 -0
  88. musica.libs/libngtcp2-16-73674958e03490bb7ade4649bcf41587.dll +0 -0
  89. musica.libs/libngtcp2_crypto_ossl-0-ba131ae3c5f332efbe2335fccfc9efba.dll +0 -0
  90. musica.libs/libpsl-5-32e8594cb9c3e596668e1553eeefe9a1.dll +0 -0
  91. musica.libs/libssh2-1-33a4e07cdab5f6f678a69b3ce4850d89.dll +0 -0
  92. musica.libs/libssl-3-efc4b140cbb5389fe7f255f04dba58ca.dll +0 -0
  93. musica.libs/libsz-2-4bb2885cee4268d9b80dfef75054ff68.dll +0 -0
  94. musica.libs/libunistring-5-0e4f9215407d1a246438b4068e774916.dll +0 -0
  95. musica.libs/libxml2-16-9594a4cc45d9103ebb0d459aa6633404.dll +0 -0
  96. musica.libs/libzip-59bff621090fdf9886db055921479b8a.dll +0 -0
  97. musica.libs/libzstd-8c1a2c1e81d37f916192f6484854cb65.dll +0 -0
  98. musica.libs/zlib1-b279b7d0fa63e81a7fb72cf2f2f9b7c6.dll +0 -0
musica/__init__.py ADDED
@@ -0,0 +1,23 @@
1
+ """
2
+ MUSICA: A Python library for atmospheric chemistry simulations.
3
+ """
4
+
5
+
6
+ # start delvewheel patch
7
+ def _delvewheel_patch_1_11_2():
8
+ import os
9
+ if os.path.isdir(libs_dir := os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'musica.libs'))):
10
+ os.add_dll_directory(libs_dir)
11
+
12
+
13
+ _delvewheel_patch_1_11_2()
14
+ del _delvewheel_patch_1_11_2
15
+ # end delvewheel patch
16
+
17
+ from ._version import version as __version__
18
+ from .micm import MICM, SolverType, State, Conditions
19
+ from .tuvx import TUVX, GridMap, Grid, ProfileMap, Profile, RadiatorMap, Radiator
20
+ from . import mechanism_configuration
21
+ from . import carma
22
+ from . import cuda
23
+ from .examples import Examples
Binary file
musica/_version.py ADDED
@@ -0,0 +1 @@
1
+ version = "0.14.2"
musica/backend.py ADDED
@@ -0,0 +1,58 @@
1
+ """
2
+ Backend selection and symbol loading for MUSICA.
3
+ """
4
+ import importlib.util
5
+
6
+
7
+ def _safe_find_spec(name):
8
+ try:
9
+ return importlib.util.find_spec(name)
10
+ except ModuleNotFoundError:
11
+ return None
12
+
13
+
14
+ def _gpu_deps_installed():
15
+ return (
16
+ _safe_find_spec("nvidia.cublas") is not None or
17
+ _safe_find_spec("nvidia_cuda_runtime") is not None or
18
+ _safe_find_spec("nvidia-cublas-cu12") is not None or
19
+ _safe_find_spec("nvidia-cuda-runtime-cu12") is not None
20
+ )
21
+
22
+
23
+ # Global backend instance to ensure it's only loaded once
24
+ _backend_instance = None
25
+
26
+
27
+ def get_backend():
28
+ """Get the appropriate backend module."""
29
+
30
+ global _backend_instance
31
+
32
+ if _backend_instance is not None:
33
+ return _backend_instance
34
+
35
+ try:
36
+ if _gpu_deps_installed():
37
+ import musica._musica_gpu as backend
38
+ else:
39
+ import musica._musica as backend
40
+
41
+ _backend_instance = backend
42
+ return _backend_instance
43
+
44
+ except ImportError as e:
45
+ raise ImportError(
46
+ f"Failed to import MUSICA backend. Make sure the package is properly built and installed. Error: {e}")
47
+
48
+
49
+ def tuvx_available():
50
+ """Check if the TUVX backend is available."""
51
+ _backend = get_backend()
52
+ return hasattr(_backend._tuvx, "_get_tuvx_version")
53
+
54
+
55
+ def carma_available():
56
+ """Check if the CARMA backend is available."""
57
+ _backend = get_backend()
58
+ return hasattr(_backend._carma, "_get_carma_version")
@@ -0,0 +1,20 @@
1
+ from .carma import (
2
+ # Main classes
3
+ CARMA, CARMAParameters, CARMAState, CARMASurfaceProperties,
4
+
5
+ # Configuration classes
6
+ CARMAGroupConfig, CARMAElementConfig, CARMASoluteConfig, CARMAGasConfig,
7
+ CARMAWavelengthBin, CARMACoagulationConfig, CARMAGrowthConfig,
8
+ CARMANucleationConfig, CARMAInitializationConfig,
9
+
10
+ # Enums
11
+ ParticleShape, ParticleType, ParticleSwellingAlgorithm,
12
+ ParticleSwellingComposition, ParticleFallVelocityAlgorithm,
13
+ MieCalculationAlgorithm, OpticsAlgorithm, VaporizationAlgorithm,
14
+ GasComposition, ParticleComposition, ParticleCollectionAlgorithm,
15
+ ParticleNucleationAlgorithm, SulfateNucleationMethod, CarmaCoordinates,
16
+ )
17
+ from .. import backend
18
+ _backend = backend.get_backend()
19
+
20
+ __version__ = _backend._carma._get_carma_version() if backend.carma_available() else None