- Refactored
DomainDecomposerclass and added a new variant of non-uniform decomposition #243 - Fixed load balancing configuration
partitioningparameter setting #245 - Fixed comparison of zero values of type float32 and float64 in simulation deactivation #244
- Optimized norm calculations and further fixed lazy initialization #241
- Fixed lazy initialization for ranks without (active) micro simulations #238
- Added coverage testing and simulation interface tests #225
- Added
--test-dependenciesCLI flag to check if all required dependencies are correctly installed, with clear error messages listing missing packages and how to fix them #221 - Added load balancing based on micro simulation solve timings #228
- Fixed invalid value in division warning in L1rel/L2rel adaptivity when data contains zeros #234
- Fixed duplicate micro simulations for macro-points on rank boundaries by filtering coordinates already claimed by lower-ranked ranks #230
- Exposed
MicroSimulationInterfaceas a public abstract base class for user subclassing #224 - Added option to use compute instances to reduce memory consumption #226
- Added support to run micro simulations in separate processes with workers #219
- Added abstraction layers to micro simulations to support more features #218
- Conformed to naming standard in precice/tutorials #215
- Changed default values of adaptivity metrics output and similarity distance calculation norm #213
- Fixed ordering of global IDs of micro simulation for load balancing to ensure consistency #210
- Initiated triggering of load balancing at the start of the simulation when adaptivity is triggered #207
- Added functionality to adaptively switch micro-scale models #198
- Changed locations of profiling sections in the code base to reflect operations being profiled correctly #205
- Added global metrics logging to local adaptivity commit
- A rank-based round-robin scheme for deactivating simulations in global adaptivity #202
- Added more metrics to adaptivity logging, and some general refactoring #201
- Fix bug in load balancing when a rank has exactly as many active simulation as the global average #200
- Use global maximum similarity distance in local adaptivity #197
- Log adaptivity metrics at t=0 #194
- Use
|delimiter in CSV files of adaptivity metrics data #193 - Add profiling sections for solving the micro simulations commit
- Fix bug in load balancing when more than one rank has as many simulations as the balancing bound #192
- Remove two-step balancing from load balancing #191
- Remove option of simulation solve time from diagnostics #188
- Add dynamic load balancing capability to global adaptivity #144
- Revert to using (default) mpich as error is fixed in setup-mpi action #187
- Refactor adaptivity: simplify logic and shorten iterator variable names #186
- Use boolean parameter values in JSON config files of unit cube integration test #185
- Use OpenMPI in mpi4py setup action in parallel tests action #184
- Software improvements to the snapshot computation functionality #178
- Share similarity distance matrix between ranks on a compute node #176
- Use booleans instead of strings
"True"and"False"in the configuration #175 - Renaming and using a newer workflow for publishing according to the trusted publishing in PyPI #173
- Add config options for adaptivity metrics and memory usage output to allow for different levels #172
- Fix bug in adaptivity computation when an active simulation with associations is deactivated #171
- Properly handle micro simulation initialization for lazy initialization #169
- Delete the simulation object when the simulation is deactivated #167
- Remove float32 data type restriction for adaptivity data commit
- Trigger adaptivity when all the adaptivity data is the same #170
- Add configuration option to control frequency of adaptivity computation #168
- Remove checkpointing of adaptivity and fix output of memory usage #166
- Performance improvements: restricting data types, in-place modifications #162
- Handle adaptivity case when deactivation and activation happens in the same time window #165
- Add command line input argument to set log file #163
- Fix adaptivity metrics logging and add logging documentation #160
- Checkpoint lazily created simulation only if a checkpoint is necessary #161
- Add functionality for lazy creation and initialization of micro simulations #117
- Improve logging wrapper function names to be more clear #153
- Remove adaptivity computation CPU time export functionality #152
- Replace
Allgathervwithallgatherto avoid running into the error of size buffer #151 - Update Actions workflows due to updates in
precice/precice:nightly#150 - Move adaptivity CPU time output from preCICE export to metrics logging #149
- Fix bug in the domain decomposition which was returning incorrect bounding box limits for the decomposition of
[2, 2, 1]and similar #146 - Fix bug in calling of the adaptivity computation for explicit coupling scenarios #145
- Fix bug in handling of vector data returned by the MicroSimulation
solve()method, for scenarios with adaptivity #143 - Remove the
scalarandvectorkeyword values from data names in configuration #142 - Set default logger to stdout and add output directory setting option for file loggers #139
- Remove the
adaptivity_datadata structure and handle all adaptivity data internally #137 - Improve logging by wrapping Python logger in a class #133
- Refactor large parts of solve and adaptivity to group datasets and simplify handling #135
- Add information about adaptivity tuning parameters #131
- Put computation of counting active steps inside the adaptivity variant
ifcondition #130
- Use absolute values to calculate normalizing factor for relative norms in adaptivity #125
- Add option to use only one micro simulation object in the snapshot computation #123
- Explicitly check if time window has converged using the API function
is_time_window_complete()#118 - Add
MicroManagerSnapshotenabling snapshot computation and storage of microdata in HDF5 format #101 - Make
sklearnan optional dependency - Move the config variable
micro_dtfrom the coupling parameters section to the simulation parameters section #114 - Set time step of micro simulation in the configuration, and use it in the coupling #112
- Add a base class called
MicroManagerwith minimal API and member function definitions, rename the existingMicroManagerclass toMicroManagerCoupling#111 - Handle calling
initialize()function of micro simulations written in languages other than Python #110 - Check if initial data returned from the micro simulation is the data that the adaptivity computation requires #109
- Use executable
micro-manager-preciceby default, and stop using the scriptrun_micro_manager.py#105 - Make
initialize()method of the MicroManager class public #105 - Optionally use initial macro data to initialize micro simulations #104
- Use
pyproject.tomlinstead ofsetup.pyto configure the build. Package name is nowmicro_manager_precice#84 - Add handling of crashing micro simulations #85
- Add switch to turn adaptivity on and off in configuration #93
- Add note in the cpp-dummy that pickling support does not work due to no good way to pass the sim id to the new micro simulation instance commit
- Reintroduce initialize function in the micro simulation API #79
- Use Allgatherv instead of allgather when collecting number of micro simulations on each rank in initialization #81
- Remove the callable function
initialize()from the micro simulation API commit - Pass an ID to the micro simulation object so that it is aware of its own uniqueness #66
- Resolve bug which led to an error when global adaptivity was used with unequal number of simulations on each rank #78
- Make the
initialize()method of the MicroManager class private #77 - Add reference paper via a CITATION.cff file commit
- Add JOSS DOI badge commit
- Update pyprecice API calls to their newer variants #51
- Add global variant to adaptivity (still experimental) #42
- Add norm-based (L1 and L2) support for functions in similarity distance calculation with absolute and relative variants #40
- New domain decomposition strategy based on user input of number of processors along each axis #41
- Add pickling support for C++ solver dummy #30
- Add C++ solver dummy to show how a C++ micro simulation can be controlled by the Micro Manager #22
- Add local adaptivity #21
- Fixing the broken action workflow
run-macro-micro-dummy
- Change package from
micro-managertomicro-manager-preciceand upload to PyPI.
- Change package from
micro-managertomicro-manager-precice.
- First release of Micro Manager prototype. Important features: Micro Manager can run in parallel, capability to handle bi-directional implicit coupling