Releases: tum-pbs/PhiFlow
Release list
1.5.1
FP Precision
New features:
- Consistent floating point precision using
math.set_precision - MacCormack advection scheme
- Advanced demo scripts:
rotating_bar.py,vortex_fit.py - Basic implementation of Broyden's method for root finding
- Lots of convenience updates:
CenteredGrid.sample(function),Domain.dx,general_grid_sample_nd,interpolate
Breaking changes:
- Finite difference in
gradientnow uses central difference by default Noisenow only has a single channel unless otherwise specified
Pull request #18
This is the last major update of the ΦFlow 1.x series.
ICLR 2020 Update
New features:
- TensorFlow: Seamless TensorFlow data pipeline integration, standard U-net architecture in
phi.tf.standard_networks, CUDA resampling operator - Improved support for point clouds and sampled fields (
SampledField), RK4 advection - Symbolic field math,
Noisefield to replacemath.randfreq() - Support for
STICKY/NO_SLIPdomain boundaries and moving/rotating obstacles - Web interface: Quad view, improved color maps and more configuration settings, configurable axis order using
physics_config.x_first()
Breaking changes:
- Change in
math.resample()for'constant'boundaries. This affects only values sampled close to the boundary. - Inflows now use antialiased geometry by default.
- (minor) Removed keyword arguments from
Field.at()andField.sample_at(). - (minor)
Scene.copy_calling_script()now has different keyword arguments. - (minor)
GeometryMaskonly holds oneGeometryand behaves in line withAnalyticField. - (minor)
math.resample(): No longer accepts boundary'zero'as an alias for'constant'.
Deprecations:
load_state(): Usebuild_graph_input()instead.buoyancy(): Usedensity * -gravity * factorin conjunction withField.at()instead.StaggeredGrid.from_scalar(): UseField.at()instead.world.add_all(): Useworld.add()instead.Dataset.add(), Dataset.remove(): Mutable datasets are not supported.Geometry.value_at(): UseGeometry.lies_inside()instead.union_mask(): Usemask(union())instead.
This is the last official version with Python 2 and Python 3 support.
Periodic domains
Version Highlights:
- Periodic pressure solve
- Improved structs:
content_type, global item context, batched structs
Breaking Changes:
- (minor) Removed
item_conditionargument fromplaceholder(). Use the context item condition instead. - (minor)
CenteredGrid.dtypenow returns aCenteredGrid. Same forStaggeredGrid. - (minor) Passing
item_condition=Noneanywhere now uses the context item condition. Useitem_condition=ALL_ITEMSto iterate over all items. - (minor)
StructBackendnow validates returned values by default. Replace it withStructBackend(target_content_type=struct.INVALID)to revert to old behavior.
Deprecations:
math.types: UseStruct.dtypeinstead.StateCollection.default_physicsstruct.unsafe(): Setcontent_typeto non-data instead.
Pull request #10
PyTorch Integration
Version Highlights:
- Experimental support for PyTorch oprations
- Add struct traits
- Add ConstantVelocity
Breaking Changes: None
Deprecations:
TFApp: UseLearningAppinsteadCollectiveState: UseStateCollectioninsteadFan: UseAcceleratorinstead
Pull request #5
GUI-2.0
Version Highlights:
- GUI-2.0: Improved web interface with multiple pages and experimental 3D WebGL renderer
- Documentation: Google Colab notebooks and better demo descriptions
Breaking Changes: None
Deprecations:
App.stride: Use framerate instead of stride in App constructorworld.add: Explicitly create a Physics object when adding a state to the world.
Pull request #2
GitHub Release
This is the first public version of Φ-Flow.
Version Highlights:
- MIT license
- Travis-CI for automated testing
Φ-Flow 1.0.0 has built-in support for the following simulations:
- Burgers' equation in 1D, 2D, 3D
- Incompressible fluids in n-d
- Heat equation in 1D, 2D, 3D
- Schrödinger equation in 2D
Pre-release versions
Major refactoring was performed before release, renaming (among others): Smoke → Fluid, anytype → unsafe.
Version 0.4 introduced the Field API, bringing with it a new data layout for staggered grids.
Version 0.3 introduced structs and used them to split state and physics into different objects. It made the channel order (ZYX) consistent with the first dimension pointing upward.