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)
25 real(kind=
kreal) :: strain_energy
26 real(kind=
kreal) :: strain_energy_bak
35 real(kind=
kreal),
pointer :: equiforces(:) => null()
37 real(kind=
kreal),
pointer :: aux(:,:) => null()
47 gauss%strain=0.d0; gauss%stress=0.d0
48 gauss%strain_bak=0.d0; gauss%stress_bak=0.d0
49 gauss%strain_out=0.d0; gauss%stress_out=0.d0
52 gauss%strain_energy =0.d0
53 gauss%strain_energy_bak =0.d0
55 if( gauss%pMaterial%nfstatus> 0 )
then
56 allocate( gauss%fstatus(gauss%pMaterial%nfstatus) )
57 gauss%fstatus(:) = 0.d0
60 allocate( gauss%istatus(1) )
63 if( n>0 )
allocate( gauss%fstatus(n) )
65 allocate( gauss%fstatus(7+6) )
67 allocate( gauss%fstatus(2) )
74 allocate( gauss%fstatus(12*n+6) )
77 stop
"Viscoelastic properties not defined"
79 else if( gauss%pMaterial%mtype==
norton )
then
80 allocate( gauss%fstatus(2) )
89 if(
associated( gauss%istatus ) )
deallocate( gauss%istatus )
90 if(
associated( gauss%fstatus ) )
deallocate( gauss%fstatus )
98 gauss2%strain = gauss1%strain
99 gauss2%stress = gauss1%stress
100 gauss2%strain_bak = gauss1%strain_bak
101 gauss2%stress_bak = gauss1%stress_bak
102 gauss2%plstrain = gauss1%plstrain
103 gauss2%strain_energy = gauss1%strain_energy
105 if(
associated(gauss1%istatus) .and.
associated(gauss2%istatus) )
then
106 gauss2%istatus = gauss1%istatus
108 if(
associated(gauss1%fstatus) .and.
associated(gauss2%fstatus) )
then
109 gauss2%fstatus = gauss1%fstatus
integer(kind=4), parameter kreal
This module summarizes all information of material properties.
integer function getyieldfunction(mtype)
Get type of yield function.
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.
This subroutine read in used-defined material properties tangent.
integer(kind=kint) function, public uelastoplasticnumstatus(matl)
This function returns the number of real state variables.
Structure to manage all material related data.
All data should be recorded in every elements.
All data should be recorded in every quadrature points.