Package phi
Open-source simulation toolkit built for optimization and machine learning applications.
Use one of the following imports:
from phi.flow import *
for NumPy modefrom phi.tf.flow import *
for TensorFlow modefrom phi.torch.flow import *
for PyTorch modefrom phi.jax.flow import *
for Jax mode
Project homepage: https://github.com/tum-pbs/PhiFlow
Documentation overview: https://tum-pbs.github.io/PhiFlow
PyPI: https://pypi.org/project/phiflow/
Expand source code
"""
Open-source simulation toolkit built for optimization and machine learning applications.
Use one of the following imports:
* `from phi.flow import *` for NumPy mode
* `from phi.tf.flow import *` for TensorFlow mode
* `from phi.torch.flow import *` for PyTorch mode
* `from phi.jax.flow import *` for Jax mode
Project homepage: https://github.com/tum-pbs/PhiFlow
Documentation overview: https://tum-pbs.github.io/PhiFlow
PyPI: https://pypi.org/project/phiflow/
"""
import os as _os
with open(_os.path.join(_os.path.dirname(__file__), 'VERSION'), 'r') as version_file:
__version__ = version_file.read()
def verify():
"""
Checks your configuration for potential problems and prints a summary.
To run verify without importing `phi`, run the script `tests/verify.py` included in the source distribution.
"""
import sys
from ._troubleshoot import assert_minimal_config, troubleshoot
try:
assert_minimal_config()
except AssertionError as fail_err:
print("\n".join(fail_err.args), file=sys.stderr)
return
print(troubleshoot())
def detect_backends() -> tuple:
"""
Registers all available backends and returns them.
This includes only backends for which the minimal requirements are fulfilled.
Returns:
`tuple` of `phiml.backend.Backend`
"""
from phiml.backend._backend import init_backend
try:
init_backend('jax')
except ImportError:
pass
try:
init_backend('torch')
except ImportError:
pass
try:
init_backend('tensorflow')
except ImportError:
pass
from phiml.backend import BACKENDS
return tuple([b for b in BACKENDS if b.name != 'Python'])
def set_logging_level(level='debug'):
"""
Sets the logging level for PhiFlow functions.
Args:
level: Logging level, one of `'critical', 'fatal', 'error', 'warning', 'info', 'debug'`
"""
from phiml.backend import ML_LOGGER
ML_LOGGER.setLevel(level.upper())
Sub-modules
phi.field
-
The fields module provides a number of data structures and functions to represent continuous, spatially varying data …
phi.flow
-
Main PhiFlow import:
from phi.flow import *
… phi.geom
-
Differentiable geometry package …
phi.jax
-
Jax integration …
phi.math
-
Alias for
phiml.math
… phi.physics
-
Contains built-in physics functions, mainly for partial differential equations, such as incompressible fluids. The actual physics functions are …
phi.tf
-
TensorFlow integration …
phi.torch
-
PyTorch integration …
phi.vis
-
Visualization: plotting, interactive user interfaces …
Functions
def detect_backends() ‑> tuple
-
Registers all available backends and returns them. This includes only backends for which the minimal requirements are fulfilled.
Returns
tuple
ofphiml.backend.Backend
Expand source code
def detect_backends() -> tuple: """ Registers all available backends and returns them. This includes only backends for which the minimal requirements are fulfilled. Returns: `tuple` of `phiml.backend.Backend` """ from phiml.backend._backend import init_backend try: init_backend('jax') except ImportError: pass try: init_backend('torch') except ImportError: pass try: init_backend('tensorflow') except ImportError: pass from phiml.backend import BACKENDS return tuple([b for b in BACKENDS if b.name != 'Python'])
def set_logging_level(level='debug')
-
Sets the logging level for PhiFlow functions.
Args
level
- Logging level, one of
'critical', 'fatal', 'error', 'warning', 'info', 'debug'
Expand source code
def set_logging_level(level='debug'): """ Sets the logging level for PhiFlow functions. Args: level: Logging level, one of `'critical', 'fatal', 'error', 'warning', 'info', 'debug'` """ from phiml.backend import ML_LOGGER ML_LOGGER.setLevel(level.upper())
def verify()
-
Checks your configuration for potential problems and prints a summary.
To run verify without importing
phi
, run the scripttests/verify.py
included in the source distribution.Expand source code
def verify(): """ Checks your configuration for potential problems and prints a summary. To run verify without importing `phi`, run the script `tests/verify.py` included in the source distribution. """ import sys from ._troubleshoot import assert_minimal_config, troubleshoot try: assert_minimal_config() except AssertionError as fail_err: print("\n".join(fail_err.args), file=sys.stderr) return print(troubleshoot())