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()
38 integer :: elemact_flag
39 real(kind=
kreal) :: elemact_coeff
49 gauss%strain=0.d0; gauss%stress=0.d0
50 gauss%strain_bak=0.d0; gauss%stress_bak=0.d0
51 gauss%strain_out=0.d0; gauss%stress_out=0.d0
54 gauss%strain_energy =0.d0
55 gauss%strain_energy_bak =0.d0
57 if( gauss%pMaterial%nfstatus> 0 )
then
58 allocate( gauss%fstatus(gauss%pMaterial%nfstatus) )
59 gauss%fstatus(:) = 0.d0
62 allocate( gauss%istatus(1) )
65 if( n>0 )
allocate( gauss%fstatus(n) )
67 allocate( gauss%fstatus(7+6) )
69 allocate( gauss%fstatus(2) )
76 allocate( gauss%fstatus(12*n+6) )
79 stop
"Viscoelastic properties not defined"
81 else if( gauss%pMaterial%mtype==
norton )
then
82 allocate( gauss%fstatus(2) )
91 if(
associated( gauss%istatus ) )
deallocate( gauss%istatus )
92 if(
associated( gauss%fstatus ) )
deallocate( gauss%fstatus )
100 gauss2%strain = gauss1%strain
101 gauss2%stress = gauss1%stress
102 gauss2%strain_bak = gauss1%strain_bak
103 gauss2%stress_bak = gauss1%stress_bak
104 gauss2%plstrain = gauss1%plstrain
105 gauss2%strain_energy = gauss1%strain_energy
107 if(
associated(gauss1%istatus) .and.
associated(gauss2%istatus) )
then
108 gauss2%istatus = gauss1%istatus
110 if(
associated(gauss1%fstatus) .and.
associated(gauss2%fstatus) )
then
111 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.