FrontISTR 5.2.0
Large-scale structural analysis program with finit element method
Loading...
Searching...
No Matches
uelastic.f90
Go to the documentation of this file.
1!-------------------------------------------------------------------------------
2! Copyright (c) 2019 FrontISTR Commons
3! This software is released under the MIT License, see LICENSE.txt
4!-------------------------------------------------------------------------------
8 implicit none
9contains
10
12 subroutine uelasticmatrix( matl, strain, D )
13 use hecmw
14 real(kind=kreal), intent(in) :: matl(:)
15 real(kind=kreal), intent(in) :: strain(6)
16 real(kind=kreal), intent(out) :: d(6,6)
17
18 ! following examples of linear elasticicty
19 real(kind=kreal) :: ee, pp
20
21 d(:,:)=0.d0
22
23 ee = matl(1)
24 pp = matl(2)
25 d(1,1)=ee*(1.d0-pp)/(1.d0-2.d0*pp)/(1.d0+pp)
26 d(1,2)=ee*pp/(1.d0-2.d0*pp)/(1.d0+pp)
27 d(1,3)=d(1,2)
28 d(2,1)=d(1,2)
29 d(2,2)=d(1,1)
30 d(2,3)=d(1,2)
31 d(3,1)=d(1,3)
32 d(3,2)=d(2,3)
33 d(3,3)=d(1,1)
34 d(4,4)=ee/(1.d0+pp)*0.5d0
35 d(5,5)=ee/(1.d0+pp)*0.5d0
36 d(6,6)=ee/(1.d0+pp)*0.5d0
37 end subroutine
38
40 subroutine uelasticupdate( matl, strain, stress )
41 use hecmw
42 real(kind=kreal), intent(in) :: matl(:)
43 real(kind=kreal), intent(in) :: strain(6)
44 real(kind=kreal), intent(out) :: stress(6)
45
46 ! following examples of linear elasticicty
47 real(kind=kreal) :: d(6,6)
48 call uelasticmatrix( matl(:), strain, d )
49 stress = matmul( d, strain )
50 end subroutine
51
52end module
53
Definition: hecmw.f90:6
This module provides interface for elastic or hyperelastic calculation.
Definition: uelastic.f90:7
subroutine uelasticmatrix(matl, strain, d)
This subroutine calculates constitutive relation.
Definition: uelastic.f90:13
subroutine uelasticupdate(matl, strain, stress)
This subroutine calculate updated strain and stress.
Definition: uelastic.f90:41