@@ -343,66 +343,65 @@ struct NonlinearMooneyRivlin3D <: IsoElastic
343343 λ:: Float64
344344 μ1:: Float64
345345 μ2:: Float64
346- α :: Float64
347- β :: Float64
346+ α1 :: Float64
347+ α2 :: Float64
348348 ρ:: Float64
349- function NonlinearMooneyRivlin3D (; λ:: Float64 , μ1:: Float64 , μ2:: Float64 , α :: Float64 , β :: Float64 , ρ:: Float64 = 0.0 )
350- new (λ, μ1, μ2, α, β , ρ)
349+ function NonlinearMooneyRivlin3D (; λ:: Float64 , μ1:: Float64 , μ2:: Float64 , α1 :: Float64 , α2 :: Float64 , ρ:: Float64 = 0.0 )
350+ new (λ, μ1, μ2, α1, α2 , ρ)
351351 end
352352
353353 function (obj:: NonlinearMooneyRivlin3D )(Λ:: Float64 = 1.0 ; Threshold= 0.01 )
354- λ, μ1, μ2, α, β = obj. λ, obj. μ1, obj. μ2, obj. α , obj. β
354+ λ, μ1, μ2, α1, α2 = obj. λ, obj. μ1, obj. μ2, obj. α1 , obj. α2
355355 J (F) = det (F)
356356 H (F) = det (F) * inv (F)'
357357
358- Ψ (F) = μ1 / (2.0 * α * 3.0 ^ (α - 1 )) * (tr ((F)' * F))^ α + μ2 / (2.0 * β * 3.0 ^ (β - 1 )) * (tr ((H (F))' * H (F)))^ β - (μ1 + 2 * μ2) * logreg (J (F)) +
358+ Ψ (F) = μ1 / (2.0 * α1 * 3.0 ^ (α1 - 1 )) * (tr ((F)' * F))^ α1 + μ2 / (2.0 * α2 * 3.0 ^ (α2 - 1 )) * (tr ((H (F))' * H (F)))^ α2 - (μ1 + 2 * μ2) * logreg (J (F)) +
359359 (λ / 2.0 ) * (J (F) - 1 )^ 2
360360
361- ∂Ψ_∂F (F) = (μ1 / (3.0 ^ (α - 1 )) * (tr ((F)' * F))^ (α - 1 )) * F
362- ∂Ψ_∂H (F) = (μ2 / (3.0 ^ (β - 1 )) * (tr ((H (F))' * H (F)))^ (β - 1 )) * H (F)
361+ ∂Ψ_∂F (F) = (μ1 / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F))^ (α1 - 1 )) * F
362+ ∂Ψ_∂H (F) = (μ2 / (3.0 ^ (α2 - 1 )) * (tr ((H (F))' * H (F)))^ (α2 - 1 )) * H (F)
363363 ∂log∂J (J) = J >= Threshold ? 1 / J : (2 / Threshold - J / (Threshold^ 2 ))
364364 ∂log2∂J2 (J) = J >= Threshold ? - 1 / (J^ 2 ) : (- 1 / (Threshold^ 2 ))
365365 ∂Ψ_∂J (F) = - (μ1 + 2.0 * μ2) * ∂log∂J (J (F)) + λ * (J (F) - 1 )
366366 ∂Ψ2_∂J2 (F) = - (μ1 + 2.0 * μ2) * ∂log2∂J2 (J (F)) + λ
367367
368368 ∂Ψu (F) = ∂Ψ_∂F (F) + ∂Ψ_∂H (F) × F + ∂Ψ_∂J (F) * H (F)
369- ∂ΨFF (F) = (2 * μ1 * (α - 1 ) / (3.0 ^ (α - 1 )) * (tr ((F)' * F))^ (α - 2 )) * (F ⊗ F) + (μ1 / (3.0 ^ (α - 1 )) * (tr ((F)' * F))^ (α - 1 )) * I9
370- ∂ΨHH (F) = (2 * μ2 * (β - 1 ) / (3.0 ^ (β - 1 )) * (tr ((H (F))' * H (F)))^ (β - 2 )) * (H (F) ⊗ H (F)) + (μ2 / (3.0 ^ (β - 1 )) * (tr ((H (F))' * H (F)))^ (β - 1 )) * I9
369+ ∂ΨFF (F) = (2 * μ1 * (α1 - 1 ) / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F))^ (α1 - 2 )) * (F ⊗ F) + (μ1 / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F))^ (α1 - 1 )) * I9
370+ ∂ΨHH (F) = (2 * μ2 * (α2 - 1 ) / (3.0 ^ (α2 - 1 )) * (tr ((H (F))' * H (F)))^ (α2 - 2 )) * (H (F) ⊗ H (F)) + (μ2 / (3.0 ^ (α2 - 1 )) * (tr ((H (F))' * H (F)))^ (α2 - 1 )) * I9
371371 ∂Ψuu (F) = ∂ΨFF (F) + (F × (∂ΨHH (F) × F)) + ∂Ψ2_∂J2 (F) * (H (F) ⊗ H (F)) + × ᵢ⁴ (∂Ψ_∂H (F) + ∂Ψ_∂J (F) * F)
372372 return (Ψ, ∂Ψu, ∂Ψuu)
373373 end
374374end
375375
376-
377376struct NonlinearMooneyRivlin2D <: IsoElastic
378377 λ:: Float64
379378 μ1:: Float64
380379 μ2:: Float64
381- α :: Float64
382- β :: Float64
380+ α1 :: Float64
381+ α2 :: Float64
383382 ρ:: Float64
384- function NonlinearMooneyRivlin2D (; λ:: Float64 , μ1:: Float64 , μ2:: Float64 , α :: Float64 , β :: Float64 , ρ:: Float64 = 0.0 )
385- new (λ, μ1, μ2, α, β , ρ)
383+ function NonlinearMooneyRivlin2D (; λ:: Float64 , μ1:: Float64 , μ2:: Float64 , α1 :: Float64 , α2 :: Float64 , ρ:: Float64 = 0.0 )
384+ new (λ, μ1, μ2, α1, α2 , ρ)
386385 end
387386
388387 function (obj:: NonlinearMooneyRivlin2D )(Λ:: Float64 = 1.0 ; Threshold= 0.01 )
389- λ, μ1, μ2, α, β = obj. λ, obj. μ1, obj. μ2, obj. α , obj. β
388+ λ, μ1, μ2, α1, α2 = obj. λ, obj. μ1, obj. μ2, obj. α1 , obj. α2
390389 J (F) = det (F)
391390 H (F) = det (F) * inv (F)'
392- Ψ (F) = μ1 / (2.0 * α * 3.0 ^ (α - 1 )) * (tr ((F)' * F) + 1.0 )^ α + μ2 / (2.0 * β * 3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ β - (μ1 + 2.0 * μ2) * logreg (J (F)) +
391+ Ψ (F) = μ1 / (2.0 * α1 * 3.0 ^ (α1 - 1 )) * (tr ((F)' * F) + 1.0 )^ α1 + μ2 / (2.0 * α2 * 3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ α2 - (μ1 + 2.0 * μ2) * logreg (J (F)) +
393392 (λ / 2.0 ) * (J (F) - 1 )^ 2
394393
395- ∂Ψ_∂F (F) = ((μ1 / (3.0 ^ (α - 1 )) * (tr ((F)' * F) + 1.0 )^ (α - 1 )) + μ2 / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 1 )) * F
394+ ∂Ψ_∂F (F) = ((μ1 / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F) + 1.0 )^ (α1 - 1 )) + μ2 / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 1 )) * F
396395 ∂log∂J (J) = J >= Threshold ? 1 / J : (2 / Threshold - J / (Threshold^ 2 ))
397396 ∂log2∂J2 (J) = J >= Threshold ? - 1 / (J^ 2 ) : (- 1 / (Threshold^ 2 ))
398- ∂Ψ_∂J (F) = μ2 / (3.0 ^ (β - 1 )) * J (F) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 1 ) - (μ1 + 2.0 * μ2) * ∂log∂J (J (F)) + λ * (J (F) - 1 )
397+ ∂Ψ_∂J (F) = μ2 / (3.0 ^ (α2 - 1 )) * J (F) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 1 ) - (μ1 + 2.0 * μ2) * ∂log∂J (J (F)) + λ * (J (F) - 1 )
399398
400399 ∂Ψu (F) = ∂Ψ_∂F (F) + ∂Ψ_∂J (F) * H (F)
401400
402- ∂Ψ2_∂FF (F) = ((μ1 / (3.0 ^ (α - 1 )) * (tr ((F)' * F) + 1.0 )^ (α - 1 )) + μ2 / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 1 )) * I4 +
403- 2 * ((μ1 * (α - 1 ) / (3.0 ^ (α - 1 )) * (tr ((F)' * F) + 1.0 )^ (α - 2 )) + μ2 * (β - 1 ) / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 2 )) * (F ⊗ F)
404- ∂Ψ2_∂FJ (F) = (2 * μ2 * (β - 1 ) / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 2 )) * J (F) * F
405- ∂Ψ2_∂JJ (F) = μ2 / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 1 ) + (2 * μ2 * (β - 1 ) / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 2 )) * J (F)^ 2 - (μ1 + 2.0 * μ2) * ∂log2∂J2 (J (F)) + λ
401+ ∂Ψ2_∂FF (F) = ((μ1 / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F) + 1.0 )^ (α1 - 1 )) + μ2 / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 1 )) * I4 +
402+ 2 * ((μ1 * (α1 - 1 ) / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F) + 1.0 )^ (α1 - 2 )) + μ2 * (α2 - 1 ) / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 2 )) * (F ⊗ F)
403+ ∂Ψ2_∂FJ (F) = (2 * μ2 * (α2 - 1 ) / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 2 )) * J (F) * F
404+ ∂Ψ2_∂JJ (F) = μ2 / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 1 ) + (2 * μ2 * (α2 - 1 ) / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 2 )) * J (F)^ 2 - (μ1 + 2.0 * μ2) * ∂log2∂J2 (J (F)) + λ
406405
407406 ∂Ψuu (F) = ∂Ψ2_∂FF (F) + (∂Ψ2_∂FJ (F) ⊗ H (F) + H (F) ⊗ ∂Ψ2_∂FJ (F)) + ∂Ψ2_∂JJ (F) * (H (F) ⊗ H (F)) + ∂Ψ_∂J (F) * _∂H∂F_2D ()
408407 return (Ψ, ∂Ψu, ∂Ψuu)
@@ -414,66 +413,65 @@ struct NonlinearMooneyRivlin2D_CV <: IsoElastic
414413 λ:: Float64
415414 μ1:: Float64
416415 μ2:: Float64
417- α :: Float64
418- β :: Float64
416+ α1 :: Float64
417+ α2 :: Float64
419418 γ:: Float64
420419 ρ:: Float64
421- function NonlinearMooneyRivlin2D_CV (; λ:: Float64 , μ1:: Float64 , μ2:: Float64 , α :: Float64 , β :: Float64 , γ:: Float64 , ρ:: Float64 = 0.0 )
422- new (λ, μ1, μ2, α, β , γ, ρ)
420+ function NonlinearMooneyRivlin2D_CV (; λ:: Float64 , μ1:: Float64 , μ2:: Float64 , α1 :: Float64 , α2 :: Float64 , γ:: Float64 , ρ:: Float64 = 0.0 )
421+ new (λ, μ1, μ2, α1, α2 , γ, ρ)
423422 end
424423
425424 function (obj:: NonlinearMooneyRivlin2D_CV )(Λ:: Float64 = 1.0 )
426- λ, μ1, μ2, α, β , γ = obj. λ, obj. μ1, obj. μ2, obj. α , obj. β , obj. γ
425+ λ, μ1, μ2, α1, α2 , γ = obj. λ, obj. μ1, obj. μ2, obj. α1 , obj. α2 , obj. γ
427426 J (F) = det (F)
428427 H (F) = det (F) * inv (F)'
429- Ψ (F) = μ1 / (2.0 * α * 3.0 ^ (α - 1 )) * (tr ((F)' * F) + 1.0 )^ α + μ2 / (2.0 * β * 3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ β - (μ1 + 2.0 * μ2) * log (J (F)) +
428+ Ψ (F) = μ1 / (2.0 * α1 * 3.0 ^ (α1 - 1 )) * (tr ((F)' * F) + 1.0 )^ α1 + μ2 / (2.0 * α2 * 3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ α2 - (μ1 + 2.0 * μ2) * log (J (F)) +
430429 (λ) * (J (F)^ (γ) + J (F)^ (- γ))
431430
432- ∂Ψ_∂F (F) = ((μ1 / (3.0 ^ (α - 1 )) * (tr ((F)' * F) + 1.0 )^ (α - 1 )) + μ2 / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 1 )) * F
433- ∂Ψ_∂J (F) = μ2 / (3.0 ^ (β - 1 )) * J (F) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 1 ) - (μ1 + 2.0 * μ2) * (1.0 / J (F)) + λ * γ * (J (F)^ (γ - 1 ) - J (F)^ (- γ - 1 ))
431+ ∂Ψ_∂F (F) = ((μ1 / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F) + 1.0 )^ (α1 - 1 )) + μ2 / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 1 )) * F
432+ ∂Ψ_∂J (F) = μ2 / (3.0 ^ (α2 - 1 )) * J (F) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 1 ) - (μ1 + 2.0 * μ2) * (1.0 / J (F)) + λ * γ * (J (F)^ (γ - 1 ) - J (F)^ (- γ - 1 ))
434433
435434 ∂Ψu (F) = ∂Ψ_∂F (F) + ∂Ψ_∂J (F) * H (F)
436435
437- ∂Ψ2_∂FF (F) = ((μ1 / (3.0 ^ (α - 1 )) * (tr ((F)' * F) + 1.0 )^ (α - 1 )) + μ2 / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 1 )) * I4 +
438- 2 * ((μ1 * (α - 1 ) / (3.0 ^ (α - 1 )) * (tr ((F)' * F) + 1.0 )^ (α - 2 )) + μ2 * (β - 1 ) / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 2 )) * (F ⊗ F)
439- ∂Ψ2_∂FJ (F) = (2 * μ2 * (β - 1 ) / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 2 )) * J (F) * F
440- ∂Ψ2_∂JJ (F) = μ2 / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 1 ) + (2 * μ2 * (β - 1 ) / (3.0 ^ (β - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (β - 2 )) * J (F)^ 2 + (μ1 + 2.0 * μ2) * (1.0 / (J (F))^ 2 ) + λ * γ * ((γ - 1 ) * J (F)^ (γ - 2 ) + (γ + 1 ) * J (F)^ (- γ - 2 ))
436+ ∂Ψ2_∂FF (F) = ((μ1 / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F) + 1.0 )^ (α1 - 1 )) + μ2 / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 1 )) * I4 +
437+ 2 * ((μ1 * (α1 - 1 ) / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F) + 1.0 )^ (α1 - 2 )) + μ2 * (α2 - 1 ) / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 2 )) * (F ⊗ F)
438+ ∂Ψ2_∂FJ (F) = (2 * μ2 * (α2 - 1 ) / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 2 )) * J (F) * F
439+ ∂Ψ2_∂JJ (F) = μ2 / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 1 ) + (2 * μ2 * (α2 - 1 ) / (3.0 ^ (α2 - 1 )) * (tr ((F)' * F) + J (F)^ 2 )^ (α2 - 2 )) * J (F)^ 2 + (μ1 + 2.0 * μ2) * (1.0 / (J (F))^ 2 ) + λ * γ * ((γ - 1 ) * J (F)^ (γ - 2 ) + (γ + 1 ) * J (F)^ (- γ - 2 ))
441440
442441 ∂Ψuu (F) = ∂Ψ2_∂FF (F) + (∂Ψ2_∂FJ (F) ⊗ H (F) + H (F) ⊗ ∂Ψ2_∂FJ (F)) + ∂Ψ2_∂JJ (F) * (H (F) ⊗ H (F)) + ∂Ψ_∂J (F) * _∂H∂F_2D ()
443442 return (Ψ, ∂Ψu, ∂Ψuu)
444443 end
445444end
446445
447-
448446struct NonlinearMooneyRivlin_CV <: IsoElastic
449447 λ:: Float64
450448 μ1:: Float64
451449 μ2:: Float64
452- α :: Float64
453- β :: Float64
450+ α1 :: Float64
451+ α2 :: Float64
454452 γ:: Float64
455453 ρ:: Float64
456- function NonlinearMooneyRivlin_CV (; λ:: Float64 , μ1:: Float64 , μ2:: Float64 , α :: Float64 , β :: Float64 , γ:: Float64 , ρ:: Float64 = 0.0 )
457- new (λ, μ1, μ2, α, β , γ, ρ)
454+ function NonlinearMooneyRivlin_CV (; λ:: Float64 , μ1:: Float64 , μ2:: Float64 , α1 :: Float64 , α2 :: Float64 , γ:: Float64 , ρ:: Float64 = 0.0 )
455+ new (λ, μ1, μ2, α1, α2 , γ, ρ)
458456 end
459457
460458 function (obj:: NonlinearMooneyRivlin_CV )(Λ:: Float64 = 1.0 )
461- λ, μ1, μ2, α, β , γ = obj. λ, obj. μ1, obj. μ2, obj. α , obj. β , obj. γ
459+ λ, μ1, μ2, α1, α2 , γ = obj. λ, obj. μ1, obj. μ2, obj. α1 , obj. α2 , obj. γ
462460 J (F) = det (F)
463461 H (F) = det (F) * inv (F)'
464- Ψ (F) = μ1 / (2.0 * α * 3.0 ^ (α - 1 )) * (tr ((F)' * F))^ α +
465- μ2 / (2.0 * β * 3.0 ^ (β - 1 )) * (tr ((H (F))' * H (F)))^ β -
462+ Ψ (F) = μ1 / (2.0 * α1 * 3.0 ^ (α1 - 1 )) * (tr ((F)' * F))^ α1 +
463+ μ2 / (2.0 * α2 * 3.0 ^ (α2 - 1 )) * (tr ((H (F))' * H (F)))^ α2 -
466464 (μ1 + 2 * μ2) * log (J (F)) + λ * (J (F)^ (γ) + J (F)^ (- γ))
467465
468- ∂Ψ_∂F (F) = ((μ1 / (3.0 ^ (α - 1 )) * (trAA (F))^ (α - 1 ))) * F
469- ∂Ψ_∂H (F) = ((μ2 / (3.0 ^ (β - 1 )) * (tr ((H (F))' * H (F)))^ (β - 1 ))) * H (F)
466+ ∂Ψ_∂F (F) = ((μ1 / (3.0 ^ (α1 - 1 )) * (trAA (F))^ (α1 - 1 ))) * F
467+ ∂Ψ_∂H (F) = ((μ2 / (3.0 ^ (α2 - 1 )) * (tr ((H (F))' * H (F)))^ (α2 - 1 ))) * H (F)
470468 ∂Ψ_∂J (F) = - (μ1 + 2 * μ2) * (1.0 / J (F)) + λ * γ * (J (F)^ (γ - 1 ) - J (F)^ (- γ - 1 ))
471469 ∂Ψu (F) = ∂Ψ_∂F (F) + ∂Ψ_∂H (F) × F + ∂Ψ_∂J (F) * H (F)
472470
473- ∂Ψ2_∂FF (F) = ((μ1 / (3.0 ^ (α - 1 )) * (tr ((F)' * F))^ (α - 1 ))) * I9 +
474- 2 * ((μ1 * (α - 1 ) / (3.0 ^ (α - 1 )) * (tr ((F)' * F))^ (α - 2 ))) * (F ⊗ F)
475- ∂Ψ2_∂HH (F) = ((μ2 / (3.0 ^ (β - 1 )) * (tr ((H (F))' * H (F)))^ (β - 1 ))) * I9 +
476- 2 * ((μ2 * (β - 1 ) / (3.0 ^ (β - 1 )) * (tr ((H (F))' * H (F)))^ (β - 2 ))) * (H (F) ⊗ H (F))
471+ ∂Ψ2_∂FF (F) = ((μ1 / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F))^ (α1 - 1 ))) * I9 +
472+ 2 * ((μ1 * (α1 - 1 ) / (3.0 ^ (α1 - 1 )) * (tr ((F)' * F))^ (α1 - 2 ))) * (F ⊗ F)
473+ ∂Ψ2_∂HH (F) = ((μ2 / (3.0 ^ (α2 - 1 )) * (tr ((H (F))' * H (F)))^ (α2 - 1 ))) * I9 +
474+ 2 * ((μ2 * (α2 - 1 ) / (3.0 ^ (α2 - 1 )) * (tr ((H (F))' * H (F)))^ (α2 - 2 ))) * (H (F) ⊗ H (F))
477475 ∂Ψ2_∂JJ (F) = (μ1 + 2 * μ2) * (1.0 / (J (F))^ 2 ) + λ * γ * ((γ - 1 ) * J (F)^ (γ - 2 ) + (γ + 1 ) * J (F)^ (- γ - 2 ))
478476
479477 ∂Ψuu (F) = ∂Ψ2_∂FF (F) + (F × (∂Ψ2_∂HH (F) × F)) + ∂Ψ2_∂JJ (F) * (H (F) ⊗ H (F)) + × ᵢ⁴ (∂Ψ_∂H (F) + ∂Ψ_∂J (F) * F)
@@ -622,13 +620,14 @@ struct EightChain <: IsoElastic
622620end
623621
624622
623+
625624struct TransverseIsotropy3D <: AnisoElastic
626625 μ:: Float64
627- α :: Float64
628- β :: Float64
626+ α1 :: Float64
627+ α2 :: Float64
629628 ρ:: Float64
630- function TransverseIsotropy3D (; μ:: Float64 , α :: Float64 , β :: Float64 , ρ:: Float64 = 0.0 )
631- new (μ, α, β , ρ)
629+ function TransverseIsotropy3D (; μ:: Float64 , α1 :: Float64 , α2 :: Float64 , ρ:: Float64 = 0.0 )
630+ new (μ, α1, α2 , ρ)
632631 end
633632
634633
@@ -637,20 +636,20 @@ struct TransverseIsotropy3D <: AnisoElastic
637636 H (F) = det (F) * inv (F)'
638637 I4 (F, N) = (F * N) ⋅ (F * N)
639638 I5 (F, N) = (H (F) * N) ⋅ (H (F) * N)
640- μ, α, β = obj. μ, obj. α , obj. β
641- Ψ (F, N) = μ / (2.0 * α ) * (I4 (F, N)^ α - 1 ) + μ / (2.0 * β ) * (I5 (F, N)^ β - 1 ) - μ * logreg (J (F))
639+ μ, α1, α2 = obj. μ, obj. α1 , obj. α2
640+ Ψ (F, N) = μ / (2.0 * α1 ) * (I4 (F, N)^ α1 - 1 ) + μ / (2.0 * α2 ) * (I5 (F, N)^ α2 - 1 ) - μ * logreg (J (F))
642641
643- ∂Ψ_∂F (F, N) = (μ * (I4 (F, N)^ (α - 1 ))) * ((F * N) ⊗ N)
644- ∂Ψ_∂H (F, N) = (μ * (I5 (F, N)^ (β - 1 ))) * ((H (F) * N) ⊗ N)
642+ ∂Ψ_∂F (F, N) = (μ * (I4 (F, N)^ (α1 - 1 ))) * ((F * N) ⊗ N)
643+ ∂Ψ_∂H (F, N) = (μ * (I5 (F, N)^ (α2 - 1 ))) * ((H (F) * N) ⊗ N)
645644 ∂log∂J (J) = J >= Threshold ? 1 / J : (2 / Threshold - J / (Threshold^ 2 ))
646645 ∂log2∂J2 (J) = J >= Threshold ? - 1 / (J^ 2 ) : (- 1 / (Threshold^ 2 ))
647646 ∂Ψ_∂J (F, N) = - μ * ∂log∂J (J (F))
648647 ∂Ψ2_∂J2 (F, N) = - μ * ∂log2∂J2 (J (F))
649648
650649 ∂Ψu (F, N) = ∂Ψ_∂F (F, N) + ∂Ψ_∂H (F, N) × F + ∂Ψ_∂J (F, N) * H (F)
651650
652- ∂ΨFF (F, N) = μ * (I4 (F, N)^ (α - 1 )) * (I3 ⊗ ₁₃²⁴ (N ⊗ N)) + 2 μ * (α - 1 ) * I4 (F, N)^ (α - 2 ) * (((F * N) ⊗ N) ⊗ ((F * N) ⊗ N))
653- ∂ΨHH (F, N) = μ * (I5 (F, N)^ (β - 1 )) * (I3 ⊗ ₁₃²⁴ (N ⊗ N)) + 2 μ * (β - 1 ) * I5 (F, N)^ (β - 2 ) * (((H (F) * N) ⊗ N) ⊗ ((H (F) * N) ⊗ N))
651+ ∂ΨFF (F, N) = μ * (I4 (F, N)^ (α1 - 1 )) * (I3 ⊗ ₁₃²⁴ (N ⊗ N)) + 2 μ * (α1 - 1 ) * I4 (F, N)^ (α1 - 2 ) * (((F * N) ⊗ N) ⊗ ((F * N) ⊗ N))
652+ ∂ΨHH (F, N) = μ * (I5 (F, N)^ (α2 - 1 )) * (I3 ⊗ ₁₃²⁴ (N ⊗ N)) + 2 μ * (α2 - 1 ) * I5 (F, N)^ (α2 - 2 ) * (((H (F) * N) ⊗ N) ⊗ ((H (F) * N) ⊗ N))
654653 ∂Ψuu (F, N) = ∂ΨFF (F, N) + (F × (∂ΨHH (F, N) × F)) + ∂Ψ2_∂J2 (F, N) * (H (F) ⊗ H (F)) + × ᵢ⁴ (∂Ψ_∂H (F, N) + ∂Ψ_∂J (F, N) * F)
655654 return (Ψ, ∂Ψu, ∂Ψuu)
656655 end
@@ -659,20 +658,20 @@ end
659658
660659struct TransverseIsotropy2D <: AnisoElastic
661660 μ:: Float64
662- α :: Float64
663- β :: Float64
661+ α1 :: Float64
662+ α2 :: Float64
664663 ρ:: Float64
665- function TransverseIsotropy2D (; μ:: Float64 , α :: Float64 , β :: Float64 , ρ:: Float64 = 0.0 )
666- new (μ, α, β , ρ)
664+ function TransverseIsotropy2D (; μ:: Float64 , α1 :: Float64 , α2 :: Float64 , ρ:: Float64 = 0.0 )
665+ new (μ, α1, α2 , ρ)
667666 end
668667
669668 function (obj:: TransverseIsotropy2D )(Λ:: Float64 = 1.0 ; Threshold= 0.01 )
670669 J (F) = det (F)
671670 H (F) = det (F) * inv (F)'
672671 I4 (F, N) = (F * N) ⋅ (F * N)
673672 I5 (F, N) = (H (F) * N) ⋅ (H (F) * N)
674- μ, α, β = obj. μ, obj. α , obj. β
675- Ψ (F, N) = μ / (2.0 * α ) * (I4 (F, N)^ α - 1 ) + μ / (2.0 * β ) * (I5 (F, N)^ β - 1 ) - μ * logreg (J (F))
673+ μ, α1, α2 = obj. μ, obj. α1 , obj. α2
674+ Ψ (F, N) = μ / (2.0 * α1 ) * (I4 (F, N)^ α1 - 1 ) + μ / (2.0 * α2 ) * (I5 (F, N)^ α2 - 1 ) - μ * logreg (J (F))
676675
677676 ∂I4∂F (F, N) = 2 * ((F * N) ⊗ N)
678677 ∂I4∂F∂F (F, N) = 2 * (I2 ⊗ ₁₃²⁴ (N ⊗ N))
@@ -684,14 +683,14 @@ struct TransverseIsotropy2D <: AnisoElastic
684683 ∂Ψ_∂J (F, N) = - μ * ∂log∂J (J (F))
685684 ∂Ψ2_∂J2 (F, N) = - μ * ∂log2∂J2 (J (F))
686685
687- ∂Ψu (F, N) = (μ / 2 * (I4 (F, N)^ (α - 1 ))) * ∂I4∂F (F, N) +
688- (μ / 2 * (I5 (F, N)^ (β - 1 ))) * ∂I5∂F (F, N) +
686+ ∂Ψu (F, N) = (μ / 2 * (I4 (F, N)^ (α1 - 1 ))) * ∂I4∂F (F, N) +
687+ (μ / 2 * (I5 (F, N)^ (α2 - 1 ))) * ∂I5∂F (F, N) +
689688 ∂Ψ_∂J (F, N) * H (F)
690689
691- ∂Ψuu (F, N) = μ / 2 * (α - 1 ) * (I4 (F, N)^ (α - 2 )) * (∂I4∂F (F, N)) ⊗ (∂I4∂F (F, N)) +
692- μ / 2 * (I4 (F, N)^ (α - 1 )) * ∂I4∂F∂F (F, N) +
693- μ / 2 * (β - 1 ) * (I5 (F, N)^ (β - 2 )) * (∂I5∂F (F, N)) ⊗ (∂I5∂F (F, N)) +
694- μ / 2 * (I5 (F, N)^ (β - 1 )) * ∂I5∂F∂F (F, N) +
690+ ∂Ψuu (F, N) = μ / 2 * (α1 - 1 ) * (I4 (F, N)^ (α1 - 2 )) * (∂I4∂F (F, N)) ⊗ (∂I4∂F (F, N)) +
691+ μ / 2 * (I4 (F, N)^ (α1 - 1 )) * ∂I4∂F∂F (F, N) +
692+ μ / 2 * (α2 - 1 ) * (I5 (F, N)^ (α2 - 2 )) * (∂I5∂F (F, N)) ⊗ (∂I5∂F (F, N)) +
693+ μ / 2 * (I5 (F, N)^ (α2 - 1 )) * ∂I5∂F∂F (F, N) +
695694 ∂Ψ2_∂J2 (F, N) * (H (F) ⊗ H (F)) +
696695 ∂Ψ_∂J (F, N) * _∂H∂F_2D ()
697696 return (Ψ, ∂Ψu, ∂Ψuu)
@@ -822,22 +821,22 @@ struct IncompressibleNeoHookean3D <: IsoElastic
822821
823822end
824823
825- function SecondPiola (obj:: IncompressibleNeoHookean3D ,Λ:: Float64 = 1.0 )
826- Ψ (C) = obj. μ / 2 * tr (C) * det (C)^ (- 1 / 3 )
827- S (C) = begin
828- detC = det (C)
829- invC = inv (C)
830- obj. μ * detC^ (- 1 / 3 ) * I3 - obj. μ / 3 * tr (C) * detC^ (- 1 / 3 ) * invC
831- end
832- ∂S∂C (C) = begin
833- detC = det (C)
834- trC = tr (C)
835- invC = inv (C)
836- IinvC = I3 ⊗ invC
837- 1 / 3 * obj. μ * detC^ (- 1 / 3 ) * (4 / 3 * trC * invC ⊗ invC - (IinvC + IinvC' ) - trC / detC * × ᵢ⁴ (C))
838- end
839- return (Ψ, S, ∂S∂C)
824+ function SecondPiola (obj:: IncompressibleNeoHookean3D , Λ:: Float64 = 1.0 )
825+ Ψ (C) = obj. μ / 2 * tr (C) * det (C)^ (- 1 / 3 )
826+ S (C) = begin
827+ detC = det (C)
828+ invC = inv (C)
829+ obj. μ * detC^ (- 1 / 3 ) * I3 - obj. μ / 3 * tr (C) * detC^ (- 1 / 3 ) * invC
830+ end
831+ ∂S∂C (C) = begin
832+ detC = det (C)
833+ trC = tr (C)
834+ invC = inv (C)
835+ IinvC = I3 ⊗ invC
836+ 1 / 3 * obj. μ * detC^ (- 1 / 3 ) * (4 / 3 * trC * invC ⊗ invC - (IinvC + IinvC' ) - trC / detC * × ᵢ⁴ (C))
840837 end
838+ return (Ψ, S, ∂S∂C)
839+ end
841840
842841struct IncompressibleNeoHookean2D <: IsoElastic
843842 λ:: Float64
0 commit comments