musica 0.14.4__cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.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 (92) hide show
  1. musica/__init__.py +11 -0
  2. musica/_musica.cpython-310-aarch64-linux-gnu.so +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 +175 -0
  13. musica/examples/lorenz.py +295 -0
  14. musica/examples/sulfate_box_model.py +439 -0
  15. musica/examples/ts1_latin_hypercube.py +245 -0
  16. musica/main.py +128 -0
  17. musica/mechanism_configuration/__init__.py +18 -0
  18. musica/mechanism_configuration/ancillary.py +6 -0
  19. musica/mechanism_configuration/arrhenius.py +149 -0
  20. musica/mechanism_configuration/branched.py +140 -0
  21. musica/mechanism_configuration/emission.py +82 -0
  22. musica/mechanism_configuration/first_order_loss.py +90 -0
  23. musica/mechanism_configuration/mechanism.py +93 -0
  24. musica/mechanism_configuration/phase.py +58 -0
  25. musica/mechanism_configuration/phase_species.py +58 -0
  26. musica/mechanism_configuration/photolysis.py +98 -0
  27. musica/mechanism_configuration/reaction_component.py +54 -0
  28. musica/mechanism_configuration/reactions.py +32 -0
  29. musica/mechanism_configuration/species.py +65 -0
  30. musica/mechanism_configuration/surface.py +98 -0
  31. musica/mechanism_configuration/taylor_series.py +136 -0
  32. musica/mechanism_configuration/ternary_chemical_activation.py +160 -0
  33. musica/mechanism_configuration/troe.py +160 -0
  34. musica/mechanism_configuration/tunneling.py +126 -0
  35. musica/mechanism_configuration/user_defined.py +99 -0
  36. musica/mechanism_configuration/utils.py +10 -0
  37. musica/micm/__init__.py +10 -0
  38. musica/micm/conditions.py +49 -0
  39. musica/micm/micm.py +135 -0
  40. musica/micm/solver.py +8 -0
  41. musica/micm/solver_result.py +24 -0
  42. musica/micm/state.py +220 -0
  43. musica/micm/utils.py +18 -0
  44. musica/tuvx/__init__.py +11 -0
  45. musica/tuvx/grid.py +98 -0
  46. musica/tuvx/grid_map.py +167 -0
  47. musica/tuvx/profile.py +130 -0
  48. musica/tuvx/profile_map.py +167 -0
  49. musica/tuvx/radiator.py +95 -0
  50. musica/tuvx/radiator_map.py +173 -0
  51. musica/tuvx/tuvx.py +283 -0
  52. musica-0.14.4.dist-info/METADATA +427 -0
  53. musica-0.14.4.dist-info/RECORD +92 -0
  54. musica-0.14.4.dist-info/WHEEL +6 -0
  55. musica-0.14.4.dist-info/entry_points.txt +3 -0
  56. musica-0.14.4.dist-info/licenses/AUTHORS.md +59 -0
  57. musica-0.14.4.dist-info/licenses/LICENSE +201 -0
  58. musica.libs/libaec-34bb4966.so.0.0.8 +0 -0
  59. musica.libs/libblas-8ed0a6f9.so.3.8.0 +0 -0
  60. musica.libs/libbrotlicommon-b6e6c8bd.so.1.0.6 +0 -0
  61. musica.libs/libbrotlidec-5094ef0a.so.1.0.6 +0 -0
  62. musica.libs/libcom_err-6d8d18aa.so.2.1 +0 -0
  63. musica.libs/libcrypt-258f54d5.so.1.1.0 +0 -0
  64. musica.libs/libcrypto-3eda328c.so.1.1.1k +0 -0
  65. musica.libs/libcurl-7faeef02.so.4.5.0 +0 -0
  66. musica.libs/libdf-9661c601.so.0.0.0 +0 -0
  67. musica.libs/libgfortran-e1b7dfc8.so.5.0.0 +0 -0
  68. musica.libs/libgssapi_krb5-fe951f80.so.2.2 +0 -0
  69. musica.libs/libhdf5-463e48d5.so.103.1.0 +0 -0
  70. musica.libs/libhdf5_hl-74316838.so.100.1.2 +0 -0
  71. musica.libs/libidn2-1b2a13b7.so.0.3.6 +0 -0
  72. musica.libs/libjpeg-ee25248c.so.62.2.0 +0 -0
  73. musica.libs/libk5crypto-84470bb3.so.3.1 +0 -0
  74. musica.libs/libkeyutils-fe6e95a9.so.1.6 +0 -0
  75. musica.libs/libkrb5-26ef5d84.so.3.3 +0 -0
  76. musica.libs/libkrb5support-875e89dc.so.0.1 +0 -0
  77. musica.libs/liblapack-8d137073.so.3.8.0 +0 -0
  78. musica.libs/liblber-2-86b08e65.4.so.2.10.9 +0 -0
  79. musica.libs/libldap-2-5c1dd279.4.so.2.10.9 +0 -0
  80. musica.libs/libmfhdf-9c336c5f.so.0.0.0 +0 -0
  81. musica.libs/libnetcdf-71a067be.so.15.0.1 +0 -0
  82. musica.libs/libnetcdff-6a455dd4.so.7.0.0 +0 -0
  83. musica.libs/libnghttp2-3a94c239.so.14.17.0 +0 -0
  84. musica.libs/libpcre2-8-8701a61e.so.0.7.1 +0 -0
  85. musica.libs/libpsl-130094ea.so.5.3.1 +0 -0
  86. musica.libs/libsasl2-076b3c1f.so.3.0.0 +0 -0
  87. musica.libs/libselinux-5700a1fd.so.1 +0 -0
  88. musica.libs/libssh-e0d3bd94.so.4.8.7 +0 -0
  89. musica.libs/libssl-f60bf0e2.so.1.1.1k +0 -0
  90. musica.libs/libsz-81b556a2.so.2.0.1 +0 -0
  91. musica.libs/libtirpc-1fa9018c.so.3.0.0 +0 -0
  92. musica.libs/libunistring-be03fd41.so.2.1.0 +0 -0
musica/__init__.py ADDED
@@ -0,0 +1,11 @@
1
+ """
2
+ MUSICA: A Python library for atmospheric chemistry simulations.
3
+ """
4
+
5
+ from ._version import version as __version__
6
+ from .micm import MICM, SolverType, State, Conditions
7
+ from .tuvx import TUVX, GridMap, Grid, ProfileMap, Profile, RadiatorMap, Radiator
8
+ from . import mechanism_configuration
9
+ from . import carma
10
+ from . import cuda
11
+ from .examples import Examples
musica/_version.py ADDED
@@ -0,0 +1 @@
1
+ version = "0.14.4"
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