Problem solving
SECTION UNDER CONSTRUCTION.
Possible issues
- Modify
sbound
if isostaticity gap is negative for several steps due toabs(s_i)=sbound*R
- If isostaticity gap is too big (and positive), possibly there is small precision in the value of dual variables (e.g. when using Tulip). This could be solved by looking for dual variable larger than a given threshold value, but still needs to be implemented.
- This might be the case even when such gap is not too big. For instance, using GLPK in the LS tests, the initial iterations throw a gap of about +6 (due to very small forces)
- A negative isostaticity can be caused by the maximal displacement (of stable particles) being equal to the bound on $|s_{i,\mu}^\star|$. If this happens, try using a larger value of
sbound
.- In reality, what happens is that there is an active dual variable related to such bound on the displacements and not to a contacts. Thus, the system is nonetheless isostatic, but a contact has not being properly counted, since it is not included in the lists of
constraints
in the main loop.
- In reality, what happens is that there is an active dual variable related to such bound on the displacements and not to a contacts. Thus, the system is nonetheless isostatic, but a contact has not being properly counted, since it is not included in the lists of
- The right convergence tolerance values, i.e. the right choice of
tol_Γ_convergence
andtol_S_convergence
possibly depend on the solver Tulip.jl
give an isostatic config only when the status of the optimization isITERATION_LIMIT
, which also entails that forces are determined with very, very low accuracy. Notably, even though this happens, the force mismatch is very small.
Setting the required precision
Overlaps occur
Due to numerical error
REAL overlaps
When this occurs, it is likely that the value of sbound
is too large with respect of the value of $\ell$ used. So try using a larger value of ℓ0
(if this occurred when $\Gamma^\star$ was still relatively large).
- Try using a smaller value of
sbound
. - Or try redefining the bounds with which $\ell$ is adjusted as CALiPPSO makes progress.
- These three options can be set as keywords arguments of
produce_jammed_configuration!
as explained in this section. - See the docstring of
bounds_and_cutoff
for more info.