GooseEPM v0.11.0
|
System for which the average stress is fixed. More...
#include <GooseEPM/System.h>
Public Member Functions | |
SystemDepinningStressControl (const array_type::tensor< double, Dim > &propagator, const std::vector< array_type::tensor< ptrdiff_t, 1 > > &distances, const array_type::tensor< double, Dim > &sigmay_std, uint64_t seed, double failure_rate=1, double alpha=1.5, bool random_stress=true) | |
Important | |
System for which the average stress is fixed.
If a block \( f \) fails:
Which block fails is determined based on the 'temperature', as follows:
"Thermal": The blocks with the smallest time to failure fails. For unstable blocks the time to failure is \( \tau \), for stable blocks it is \( \tau \exp( x^\alpha / T ) \).
(Only available for thermal systems.)
The dimensionality of the system is the template parameter Dim
. In the Python API the system is pre-compiled in all available dimensions. For example:
// C++ GooseEPM::SystemStressControl<2> system(...); # Python system = GooseEPM.SystemStressControl2(...)
By default the stress is chosen randomly (from normal distribution with mean 0 and standard deviation 0.1) according to compatibility, and the system is relaxed to being stable. For customisation you can (in Python code):
system = System(..., random_stress=False) system.sigma = ... ...
Since initialisation can be a expensive, you can also use the above to re-use the same initial stress distribution in multiple simulations.
To set the average stress, use set_sigmabar().
|
inline |
Important
Difference compared to the regular elasto-plastic model:
sigmay_std
.propagator | The propagator [shape] . |
distances | The distance of each row, column, ... of the propagator [shape(0), ...] . |
sigmay_std | Standard deviation of the yield stress for every block [shape] . |
seed | Seed of the random number generator. |
failure_rate | Failure rate \( f_0 \). |
alpha | Exponent characterising the shape of the potential. |
random_stress | Initialise the stress: random, zero mean, no unstable blocks. |