Major Changes
- Removed `ExperimentData.sample`, `ExperimentData.evaluate`, and `ExperimentData.run` methods to standardize the data-driven workflow, replacing them with the `.call` and `.arm` methods (Fixes 294).
- Refined string argument handling and introduced `create_sampler`, `create_optimizer`, and `create_datagenerator` factory methods (Fixes 293).
- Added `mpi` mode to support high-performance computing clusters.
- Introduced custom exceptions for handling faulty read/write operations.
- Added `datagenerator` decorator to convert methods into `DataGenerator` objects.
- Removed `ExperimentData` Protocol classes and improved internal dependencies for better readability.
- Added support for `numpy==2.0.0` (Fixes 290).
- Introduced `ExperimentData.move_project_dir`.
- Changed most `ExperimentData` methods to return copies rather than modifying in place. Added `in_place=True` argument for some functions.
- Updated documentation.
- Changed the signature of the `DataGenerator.execute` method to match the `Block.call` signature (Fixes 295, Fixes 291).
- Added `pass_id` argument to `DataGenerator.call` to pass the ID of the `ExperimentSample` to the `DataGenerator.execute` method.
- Introduced `nodes` argument in `DataGenerator.call` to control the number of CPUs (Fixes 271).
What's Changed
* Pr/2.0.1 by mpvanderschelling in https://github.com/bessagroup/f3dasm/pull/298
**Full Changelog**: https://github.com/bessagroup/f3dasm/compare/2.0.0...2.0.1