@@ -614,69 +614,36 @@ struct NonlinearIncompressibleMooneyRivlin2D_CV <: IsoElastic
614614end
615615
616616
617- struct EightChain <: IsoElastic
618- μ :: Float64
619- N :: Float64
620- function EightChain (; μ :: Float64 , N :: Float64 )
621- new (μ, N)
622- end
617+ I1iso (F) = det (F) ^ ( - 2 / 3 ) * F ⊙ F
618+ ∂I1iso_∂F (F) = 2 * det (F) ^ ( - 2 / 3 ) * F
619+ ∂I1iso_∂J (F) = - ( 2 / 3 ) * det (F) ^ ( - 5 / 3 ) * F ⊙ F
620+ ∂I1iso_∂F∂F (F) = 2 * det (F) ^ ( - 2 / 3 ) * I9
621+ ∂I1iso_∂J∂J (F) = ( 10 / 9 ) * det (F) ^ ( - 8 / 3 ) * F ⊙ F
622+ ∂I1iso_∂F∂J (F) = - ( 4 / 3 ) * det (F) ^ ( - 5 / 3 ) * F
623623
624- function (obj:: EightChain )(Λ:: Float64 = 1.0 )
625- μ, N = obj. μ, obj. N
626- J (F) = det (F)
627- H (F) = det (F) * inv (F)'
628- Ψ (F) = begin
629- C = F' * F
630- C_iso = J (F)^ (- 2 / 3 ) * C
631- β = sqrt (tr (C_iso) / 3 / N)
632- L = β * (3.0 - β^ 2 ) / (1.0 - β^ 2 )
633- β0 = 1 / sqrt (N)
634- L0 = β0 * (3.0 - β0^ 2 ) / (1.0 - β0^ 2 )
635- μ * N * (β * L + log (L / sinh (L)) - β0* L0 - log (L0 / sinh (L0)))
636- end
624+ ∂I1iso_∂Ftotal (F) = ∂I1iso_∂F (F) + ∂I1iso_∂J (F)* cof (F)
625+ ∂I1iso_∂F∂Ftotal (F) = ∂I1iso_∂F∂F (F) + ∂I1iso_∂F∂J (F) ⊗ cof (F) + cof (F) ⊗ ∂I1iso_∂F∂J (F) + ∂I1iso_∂J∂J (F)* cof (F) ⊗ cof (F) + ∂I1iso_∂J (F)*× ᵢ⁴ (F)
637626
638- ∂Ψ∂F (F) = begin
639- C = F' * F
640- C_iso = J (F)^ (- 2 / 3 ) * C
641- β = sqrt (tr (C_iso) / 3 / N)
642- L = β * (3.0 - β^ 2 ) / (1.0 - β^ 2 )
643- ∂β∂I1_ = 0.5 / sqrt (tr (C_iso) * 3 * N)
644- ∂L∂I1_ = ((3 * (1 - β^ 2 )^ 2 + 2 * β * (3 * β - β^ 3 )) / (1 - β^ 2 )^ 2 ) * ∂β∂I1_
645- n = (∂L∂I1_ * sinh (L) - L * cosh (L) * ∂L∂I1_)
646- d = (L * sinh (L))
647- ∂Ψ∂I1_ = μ * N * (∂β∂I1_ * L + β * ∂L∂I1_ + n / d)
648- ∂I1_∂F = 2 * J (F)^ (- 2 / 3 ) * F
649- ∂I1_∂J = - (2 / 3 ) * J (F)^ (- 5 / 3 ) * tr (C)
650- ∂Ψ∂I1_ * (∂I1_∂F + ∂I1_∂J * H (F))
651- end
652627
653- ∂Ψ∂FF (F) = begin
654- H_ = H (F)
655- C = F' * F
656- C_iso = det (F)^ (- 2 / 3 ) * C
657- β = sqrt (tr (C_iso) / 3 / N)
658- L = β * (3.0 - β^ 2 ) / (1.0 - β^ 2 )
659- ∂β∂I1_ = 0.5 / sqrt (tr (C_iso) * 3 * N)
660- ∂L∂I1_ = ((3 * (1 - β^ 2 )^ 2 + 2 * β * (3 * β - β^ 3 )) / (1 - β^ 2 )^ 2 ) * ∂β∂I1_
661- ∂β∂I1I1_ = - (3 * N) / (4 * (3 * N * tr (C_iso))^ (3 / 2 ))
662- ∂L∂I1I1_ = ((4 * β * (β^ 2 + 3 )) / (1 - β^ 2 )^ 3 ) * ∂β∂I1_^ 2 + ((3 * (1 - β^ 2 )^ 2 + 2 * β * (3 * β - β^ 3 )) / (1 - β^ 2 )^ 2 ) * ∂β∂I1I1_
663- ∂I1_∂F = 2 * det (F)^ (- 2 / 3 ) * F
664- ∂I1_∂J = - (2 / 3 ) * det (F)^ (- 5 / 3 ) * tr (C)
665- ∂I1_∂F∂F = 2 * det (F)^ (- 2 / 3 ) * I9
666- ∂I1_∂J∂J = (10 / 9 ) * det (F)^ (- 8 / 3 ) * tr (C)
667- ∂I1_∂F∂J = - (4 / 3 ) * det (F)^ (- 5 / 3 ) * F
668- n = (∂L∂I1_ * sinh (L) - L * cosh (L) * ∂L∂I1_)
669- d = (L * sinh (L))
670- ∂n∂I1_ = ∂L∂I1I1_ * sinh (L) + ∂L∂I1_ * ∂L∂I1_ * cosh (L) - ∂L∂I1_^ 2 * cosh (L) - L * sinh (L) * ∂L∂I1_^ 2 - L * cosh (L) * ∂L∂I1I1_
671- ∂d∂I1_ = ∂L∂I1_ * sinh (L) + L * ∂L∂I1_ * cosh (L)
672- ∂Ψ∂I1_ = μ * N * (∂β∂I1_ * L + β * ∂L∂I1_ + n / d)
673- ∂Ψ∂I1I1_ = μ * N * (∂β∂I1I1_ * L + 2 * ∂β∂I1_ * ∂L∂I1_ + β * ∂L∂I1I1_ + (∂n∂I1_ * d - n * ∂d∂I1_) / d^ 2 )
674- ∂Ψ∂I1I1_ * ((∂I1_∂F + ∂I1_∂J * H_) ⊗ (∂I1_∂F + ∂I1_∂J * H_)) + ∂Ψ∂I1_ * (∂I1_∂F∂F + ∂I1_∂F∂J ⊗ H_ + H_ ⊗ ∂I1_∂F∂J + ∂I1_∂J∂J * (H_ ⊗ H_) + I9 × (∂I1_∂J * F))
675- end
676- return (Ψ, ∂Ψ∂F, ∂Ψ∂FF)
677- end
628+ struct EightChain <: IsoElastic
629+ μ:: Float64
630+ N:: Float64
631+ EightChain (; μ:: Float64 , N:: Float64 ) = new (μ, N)
678632end
679633
634+ function (obj:: EightChain )(:: Float64 = 0.0 )
635+ (; μ, N) = obj
636+ α = (1 / 2 , 1 / 20 , 11 / 1050 , 19 / 7000 , 519 / 673750 )
637+ β = 1 / N
638+ C1 = μ / 2 / sum (i* αi* (3 * β)^ (i- 1 ) for (i, αi) in enumerate (α))
639+ W (I) = C1 * sum (αi* β^ (i- 1 )* (I^ i - 3 ^ i) for (i, αi) in enumerate (α))
640+ ∂W∂I (I) = C1 * sum (i* αi* β^ (i- 1 )* I^ (i- 1 ) for (i, αi) in enumerate (α))
641+ ∂∂W∂II (I) = C1 * sum (i* (i- 1 )* α[i]* β^ (i- 1 )* I^ (i- 2 ) for i in 2 : length (α))
642+ Ψ (F) = W (I1iso (F))
643+ ∂Ψ∂F (F) = ∂W∂I (I1iso (F)) * ∂I1iso_∂Ftotal (F)
644+ ∂∂Ψ∂FF (F) = ∂∂W∂II (I1iso (F)) * ∂I1iso_∂Ftotal (F) ⊗ ∂I1iso_∂Ftotal (F) + ∂W∂I (I1iso (F)) * ∂I1iso_∂F∂Ftotal (F)
645+ return (Ψ, ∂Ψ∂F, ∂∂Ψ∂FF)
646+ end
680647
681648
682649struct TransverseIsotropy3D <: AnisoElastic
0 commit comments