Skip to content

Implementing viscoelasticity with state variables #666

Answered by adtzlr
bhaveshshrimali asked this question in Q&A
Discussion options

You must be logged in to vote

The $\beta$-parameter seems to make the model unstable. Or I made a typo somewhere. With $\beta_r=1$ it works. If I add a small number like 1e-6 in $\eta_K$, the code is much more stable, even with the original parameters.

def G(Cv):
    # ....
    ηK = ηinf + (η0 - ηinf + K[0] * (I1v ** β[0] - 3 ** β[0])) / (
                1 + (K[1] * J2Neq + 1e-6) ** β[1]
            )
    # ...

Due to the Runge-Kutta method, small increments are necessary. Newton-iterations would definitely improve this. Shouldn't be too hard to implement.

Edit: See #741 for details on implementing Newton iterations.

Code (with matadi)
import numpy as np
import felupe as fem
from pypardiso import spsolve

import matadi 

Replies: 6 comments 13 replies

Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
0 replies
Comment options

You must be logged in to vote
5 replies
@bhaveshshrimali
Comment options

@bhaveshshrimali
Comment options

@adtzlr
Comment options

@adtzlr
Comment options

@adtzlr
Comment options

Comment options

You must be logged in to vote
4 replies
@bhaveshshrimali
Comment options

@adtzlr
Comment options

@bhaveshshrimali
Comment options

@adtzlr
Comment options

Comment options

You must be logged in to vote
3 replies
@bhaveshshrimali
Comment options

@adtzlr
Comment options

@bhaveshshrimali
Comment options

Answer selected by bhaveshshrimali
Comment options

You must be logged in to vote
1 reply
@bhaveshshrimali
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants