Pseudocode-Only IMPLEX

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

REFERENCES

• Current variables/computations
• Variables to be included
• Computations to be included
• Computations we can leave out
Input Data
• 𝑡𝑛
• 𝑡𝑛−1
• 𝑡𝑛+1
• 𝑟𝑛 (r ≡ mStrainVariable)
• 𝑟𝑛−1 (r_old ≡ mStrainVariableOld)
• 𝑟𝑛−2
Constants/Mat properties
• 𝜎𝑢
•𝐸
•𝜈
• ξ (Admissible extrapolation error)

1 – Explicit Stage
(𝑡𝑛+1 − 𝑡𝑛 )
• 𝑟̃𝑛+1 = 𝑟𝑛 + ∗ (𝑟𝑛 − 𝑟𝑛−1 )
(𝑡𝑛 −𝑡𝑛−1 )

• 𝑞̃𝑛+1 = 𝑞(𝑟̃𝑛+1)
𝑞̃𝑛+1
• 𝑑̃𝑛+1 = 1 −
𝑟̃𝑛+1
𝑎𝑙𝑔
• ℂ̃𝑛+1 = (1 − 𝑑̃𝑛+1 ) ∗ ℂ𝑒

• 𝜎̃𝑛+1 = (1 − 𝑑̃𝑛+1 ) ∗ 𝜎̅𝑛+1


0

2 – Standard Implicit Scheme --> Only to get implicit value of r


• 𝜎̅𝑛+1 = ℂ𝑒 : 𝛆n+1
• 𝜏𝑛+1 = ‖𝜎̅𝑛+1 ‖ℂ𝑒−1
𝑡𝑟𝑖𝑎𝑙
• 𝑟𝑛+1 = 𝑟𝑛
𝑡𝑟𝑖𝑎𝑙
If 𝜏𝑛+1 ≤ 𝑟𝑛+1 (Elastic):
• 𝑟𝑛+1 = 𝑟𝑛

𝑡𝑟𝑖𝑎𝑙
If 𝑟𝑛+1 < 𝜏𝑛+1 (Inelastic):
• 𝑟𝑛+1 = 𝜏𝑛+1

3 – Store/Update variables:
𝑎𝑙𝑔 𝑎𝑙𝑔
• ℂ𝑛+1 = ℂ̃𝑛+1 = (1 − 𝑑̃𝑛+1 ) ∗ ℂ𝑒
• 𝜎𝑛+1 = 𝜎̃𝑛+1 = (1 − 𝑑̃𝑛+1 ) ∗ 𝜎̅𝑛+1
• 𝑟𝑛 = 𝑟𝑛+1 (update mStrainVariable)
• 𝑟𝑛−1 = 𝑟𝑛 (update mStrainVariableOld)

4 – Compute time multiplier for next increment:


• 𝑞𝑛 = 𝑞(𝑟𝑛 )
• 𝐻𝑛 = 𝐻(𝑟𝑛 )
𝑞𝑛 − 𝐻𝑛 𝑟𝑛
• 𝑑𝑛′ = (𝑟𝑛 )2

• 𝜁 = ξ ∗ [𝑑𝑛′ ∗ (𝑟𝑛 − 𝑟𝑛−1 )]−1

If 𝜁 == 𝐼𝑛𝑓 (Usually in linear branches):


• Set 𝜁 = 100 (𝑜𝑟 𝑎𝑛𝑦 𝑙𝑎𝑟𝑔𝑒 − 𝑓𝑖𝑛𝑖𝑡𝑒 − 𝑛𝑢𝑚𝑏𝑒𝑟)
Note1: In linear branches extrapolation error=0 and 𝜁 tends to Inf.

Note2: I think we can get rid of this stage(4) computing η in stage(2) but employing,
to that end, rn+1 instead of rn and rn instead of rn−1 . (Before step (3), ‘n+1’ becomes ‘n’
and ‘n -1’ = ‘n’ ).

5 – Store 𝜻 (must be available at each ip as well as, for instance, the


DAMAGE_VARIABLE)

You might also like