Spring-block friction model with local disordered potential energy landscape.
conda install -c conda-forge python-frictionqpotspringblock
Note that xsimd and hardware optimisations are not enabled. To enable them you have to compile on your system, as is discussed next.
You need xtensor, xtensor-python and optionally xsimd as prerequisites. Additionally, Python needs to know how to find them. The easiest is to use conda to get the prerequisites:
conda install -c conda-forge xtensor-python conda install -c conda-forge xsimdIf you then compile and install with the same environment you should be good to go. Otherwise, a bit of manual labour might be needed to treat the dependencies.
# Download FrictionQPotSpringBlock
git checkout https://github.com/tdegeus/FrictionQPotSpringBlock.git
cd FrictionQPotSpringBlock
# Only if you want to use hardware optimization:
export CMAKE_ARGS="-DUSE_SIMD=1"
# Compile and install the Python module
# (-vv can be omitted as is controls just the verbosity)
python -m pip install . -vv
- Adding smooth and semi-smooth potentials
- [docs] Using default doxygen theme
- [BREAKING CHANGE]
minimise_nopassing
: unifying return - [BREAKING CHANGE]
minimise
: changing the return value - [BREAKING CHANGE]
timeStepsUntilEvent
: no throw if convergence was not reached - [BREAKING CHANGE]
timeSteps
: addingnmargin
option (note that the default of 1 implies the breaking change) - [BREAKING CHANGE] [Python] To guide the user: use functions instead of properties when a computation is involved
- [BREAKING CHANGE] Removing:
yieldDistanceRight
/yieldDistanceLeft
. Adding:y_right
/y_left
- [BREAKING CHANGE] Removing:
triggerWeakest
set_t
: ensure proper round
- Internal code-style updates
- Fixing typo in CMakeLists
- [docs] Readme: fixing minor typos
- Merging "version.h" in "config.h"
- Adding version test
- Python API: converting many functions to properties
- Pre-processor switch FRICTIONQPOTSPRINGBLOCK_USE_XTENSOR_PYTHON to using xtensor-python instead of xtensor
- Remove unused class for maintainability
- Fixing compiling warnings
- Upgrading to Catch2.v3
- Remove MSC work-around
-
[BREAKING CHANGE] The constructor overloads with default
istart = zeros
are removed to enhance maintainability. See #51. -
[BREAKING CHANGE] Allowe the use of
minimise_timeactivity
with chunked storage. See #53. -
Adding function to advance to a fixed force. See #52.
- Adding
SystemThermalRandomForcing
: thermal system under external forcing (i.e. constant force, without a 'driving frame').
- Changing
xt::xtensor
->xt::pytensor
. An aliasxt::pytensor == xt::xtensor
is created for compiling without xtensor-python.
- [BREAKING CHANGE] Integrating
boundscheck
in API ofminimise
.
- Fixing
nopassing
algorithm for overdamped dynamics. - Increasing the default maximum number of iterations.
- Adding
ymax
overload.
- Optimization: precompute
1 / m
.
- Chuncked example: avoid costly search.
- Calculating instantaneous temperature.
- Temporarily work around xtensor#2510.
- Adding SystemThermalRandomForcing.
- Resolving segmentation fault windows.
- Updating deps
- [BREAKING CHANGE] Making
advanceElastic
private - Adding
minimise_nopassing
with fully overdamped dynamics - [BREAKING CHANGE] Renaming
y
->refChunked
. Adding array interfaces - [BREAKING CHANGE] Cleaning API of separate functions to set parameters
- Fixing minor typos.
- [Python] Adding missing imports
- Simplifying example.
- Removing matplotlib from test runs.
- Simplifying example (historic data
txt
->h5
, does not lead to change, this was checked). - Updating badges in readme.
- Adding full Python example.
- [Python] Using scikit-build.
- Avoiding setuptools_scm dependency if SETUPTOOLS_SCM_PRETEND_VERSION is defined
- Python: passing
CMAKE_ARGS
environment variable.
- Adding time (#33)
- Allowing for extra iterations
- Using simple stop criterion in event driven read (#32)
- Run a series of time-steps until the next plastic event (#31)
- Switching to xtensor-python (no API change).
- Fixing bug in triggering.
- Updating Python API. Minor style updates. (#26)
- Fixing bug in event driven code. (#26)
- Adding advanceElastic.
- Adding debug assertions.
- Renaming "advanceRightElastic" -> "advanceEventRightElastic" (#24)
- Adding function to trigger weakest.
- Adding function to time avalanche.
- Recomputing forces after quench.
- Adding Python test (#21).
- Updating readme.
- Switch to QPot/Chunked and prrng. Drawing the energy landscape is now done manually externally, but it allows much easier reproducibility and customisation.
- Wrapping some QPot::RedrawList function for Python API that has a mysterious bug using the reference (#16)
- Reconstruction using new QPot features (#14)
- Adding redraw customization (#12)
- Updating to new QPot
- Various minor updates
- Using doxygen docs (publishing GH Action)
- Recover configuration to make random simulations deterministic: C++ and Python example
- Updating appropriate forces at the appropriate instances
- Added output "Load" example for future checking
- Adding Python API
- Using setuptools_scm for versioning
- Improving CI