17 integer,
pointer :: istatus(:) =>null()
18 real(kind=
kreal),
pointer :: fstatus(:) => null()
20 real(kind=
kreal) :: strain_bak(6)
21 real(kind=
kreal) :: stress_bak(6)
23 real(kind=
kreal) :: strain_out(6)
24 real(kind=
kreal) :: stress_out(6)
32 real(kind=
kreal),
pointer :: equiforces(:) => null()
34 real(kind=
kreal),
pointer :: aux(:,:) => null()
43 gauss%strain=0.d0; gauss%stress=0.d0
44 gauss%strain_bak=0.d0; gauss%stress_bak=0.d0
45 gauss%strain_out=0.d0; gauss%stress_out=0.d0
49 if( gauss%pMaterial%nfstatus> 0 )
then
50 allocate( gauss%fstatus(gauss%pMaterial%nfstatus) )
51 gauss%fstatus(:) = 0.d0
54 allocate( gauss%istatus(1) )
56 allocate( gauss%fstatus(7+6) )
58 allocate( gauss%fstatus(2) )
65 allocate( gauss%fstatus(12*n+6) )
68 stop
"Viscoelastic properties not defined"
70 else if( gauss%pMaterial%mtype==
norton )
then
71 allocate( gauss%fstatus(2) )
80 if(
associated( gauss%istatus ) )
deallocate( gauss%istatus )
81 if(
associated( gauss%fstatus ) )
deallocate( gauss%fstatus )
89 gauss2%strain = gauss1%strain
90 gauss2%stress = gauss1%stress
91 gauss2%strain_bak = gauss1%strain_bak
92 gauss2%stress_bak = gauss1%stress_bak
93 gauss2%plstrain = gauss1%plstrain
95 if(
associated(gauss1%istatus) .and.
associated(gauss2%istatus) )
then
96 gauss2%istatus = gauss1%istatus
98 if(
associated(gauss1%fstatus) .and.
associated(gauss2%fstatus) )
then
99 gauss2%fstatus = gauss1%fstatus
integer(kind=4), parameter kreal
This module summarizes all infomation of material properties.
character(len=dict_key_length) mc_viscoelastic
integer(kind=kint), parameter norton
logical function iskinematicharden(mtype)
If it is a kinematic hardening material?
integer(kind=kint), parameter usermaterial
logical function isviscoelastic(mtype)
If it is an viscoelastic material?
logical function iselastoplastic(mtype)
If it is an elastoplastic material?
This modules defines a structure to record history dependent parameter in static analysis.
subroutine fstr_init_gauss(gauss)
Initializer.
subroutine fstr_finalize_gauss(gauss)
Finializer.
subroutine fstr_copy_gauss(gauss1, gauss2)
Copy.
Stucture to management all material relates data.
All data should be recorded in every elements.
All data should be recorded in every quadrature points.