58 integer(kind=kint),
parameter ::
elastic = 110000
62 integer(kind=kint),
parameter ::
eplastic = 120000
64 integer(kind=kint),
parameter ::
neohooke = 130000
71 integer(kind=kint),
parameter ::
norton = 150000
76 integer(kind=kint),
parameter ::
d3 = -1
80 integer(kind=kint),
parameter ::
shell = 3
87 integer(kind=kint),
parameter ::
m_thick = 4
121 character(len=DICT_KEY_LENGTH) ::
mc_yield =
'YIELD'
129 integer(kind=kint) :: ortho
130 real(kind=kreal) :: ee
131 real(kind=kreal) :: pp
132 real(kind=kreal) :: ee2
133 real(kind=kreal) :: g12
134 real(kind=kreal) :: g23
135 real(kind=kreal) :: g31
136 real(kind=kreal) :: angle
137 real(kind=kreal) :: rho
138 real(kind=kreal) :: aplha
139 real(kind=kreal) :: alpha_over_mu
140 real(kind=kreal) :: weight
145 integer(kind=kint) :: nlgeom_flag
146 integer(kind=kint) :: mtype
147 integer(kind=kint) :: nfstatus
148 character(len=30) :: name
149 real(kind=kreal) :: variables(200)
151 integer(kind=kint) :: totallyr
152 integer(kind=kint) :: cdsys_id
153 integer(kind=kint) :: n_table
154 real(kind=kreal),
pointer :: table(:)=>null()
155 type(dict_struct),
pointer :: dict
164 type(
tmaterial ),
intent(inout) :: material
166 material%nfstatus = 0
168 material%variables = 0.d0
169 material%totallyr = 0
171 call dict_create( material%dict,
'INIT',
dict_null )
176 type(
tmaterial ),
intent(inout) :: material
177 if(
associated(material%table) )
deallocate( material%table )
178 if(
associated(material%dict) )
call dict_destroy( material%dict )
183 integer,
intent(in) :: nm
205 integer,
intent(in) :: n
206 integer,
intent(in) :: m
207 real(kind=kreal),
intent(in) :: v
209 if( n>
size(
materials) .OR. m>100 )
return
215 integer,
intent(in) :: nfile
216 type(
tmaterial ),
intent(in) :: material
218 write( nfile, *)
"Material type:",material%mtype,material%nlgeom_flag
220 if( material%variables(i) /= 0.d0 )
write( nfile, *) i,material%variables(i)
222 if(
associated( material%table ) )
then
223 nt =
size(material%table)
224 write( nfile,* )
"--table--"
226 write(nfile,*) i,material%table(i)
234 integer,
intent(in) :: npos
235 integer,
intent(in) :: cnum
236 integer :: i, idum,cdum,dd
239 if( npos<=0 .or. npos>6)
return
240 if( cnum<100000 .or. cnum>999999 )
return
252 integer,
intent(in) :: npos
253 integer,
intent(in) :: ival
254 integer,
intent(inout) :: mtype
255 integer :: i, idum,cdum, cdum1, dd
257 if( npos<=0 .or. npos>6 )
return
258 if( ival<0 .or. ival>9 )
return
263 cdum1 = cdum1+ idum*dd
267 cdum1 = cdum1 + ival*dd
273 cdum1 = cdum1+ idum*dd
282 integer,
intent(in) :: mtype
286 if( itype/=1 )
return
288 if( itype/=1 .and. itype/=2 )
return
294 integer,
intent(in) :: mtype
298 if( itype/=1 )
return
300 if( itype/=2 )
return
306 integer,
intent(in) :: mtype
310 if( itype/=1 )
return
312 if( itype/=2 )
return
318 integer,
intent(in) :: mtype
327 integer,
intent(in) :: mtype
336 integer,
intent(in) :: mtype
345 integer,
intent(in) :: mtype
354 integer,
intent(in) :: mtype
363 integer,
intent(inout) :: mtype
This module provides data structure table which would be dictionaried afterwards.
type(ttable), parameter dict_null
This module summarizes all infomation of material properties.
integer(kind=kint), parameter m_youngs
integer function getyieldfunction(mtype)
Get type of yield function.
integer(kind=kint), parameter m_plconst5
character(len=dict_key_length) mc_incomp_newtonian
integer(kind=kint), parameter m_plconst6
integer(kind=kint), parameter mooneyrivlin
integer(kind=kint), parameter m_beam_radius
integer(kind=kint), parameter mooneyrivlin_aniso
subroutine printmaterial(nfile, material)
Print out the material properties.
integer(kind=kint), parameter planestress
character(len=dict_key_length) mc_viscoelastic
integer(kind=kint), parameter m_plconst4
integer(kind=kint), parameter viscoelastic
integer(kind=kint), parameter m_exapnsion
integer function getelastictype(mtype)
Get elastic type.
subroutine modifymatl(n, m, v)
Set value of variable(m) of material n to v.
integer(kind=kint), parameter m_plconst1
logical function ishyperelastic(mtype)
If it is a hyperelastic material?
integer function gethardentype(mtype)
Get type of hardening.
character(len=dict_key_length) mc_themoexp
character(len=dict_key_length) mc_norton
integer(kind=kint), parameter d3
integer(kind=kint), parameter planestrain
type(tmaterial), dimension(:), allocatable materials
integer(kind=kint), parameter m_beam_angle6
integer(kind=kint), parameter m_plconst10
integer(kind=kint), parameter elastic
integer(kind=kint), parameter m_plconst2
integer(kind=kint), parameter arrudaboyce
integer(kind=kint), parameter shell
integer(kind=kint), parameter mn_orthoelastic
integer(kind=kint), parameter incomp_newtonian
integer(kind=kint), parameter m_beam_angle3
integer(kind=kint), parameter totallag
integer(kind=kint), parameter m_density
subroutine initializematls(nm)
Initializer.
integer(kind=kint), parameter m_beam_angle4
integer(kind=kint), parameter m_kinehard
subroutine setdigit(npos, ival, mtype)
Modify material type.
integer(kind=kint), parameter norton
integer(kind=kint), parameter m_plconst9
integer(kind=kint), parameter m_poisson
subroutine finalizematerial(material)
Finalizer.
integer(kind=kint), parameter m_plconst8
integer(kind=kint), parameter axissymetric
integer(kind=kint), parameter m_beam_angle1
character(len=dict_key_length) mc_orthoexp
integer(kind=kint), parameter infinitesimal
character(len=dict_key_length) mc_yield
integer(kind=kint), parameter userelastic
integer(kind=kint), parameter m_viscocity
integer(kind=kint), parameter neohooke
integer(kind=kint), parameter m_plconst7
subroutine finalizematls()
Finalizer.
integer(kind=kint), parameter m_thick
logical function iskinematicharden(mtype)
If it is a kinematic hardening material?
integer(kind=kint), parameter usermaterial
integer function fetchdigit(npos, cnum)
Fetch material type.
integer(kind=kint), parameter m_beam_angle5
character(len=dict_key_length) mc_isoelastic
integer(kind=kint), parameter m_beam_angle2
logical function iselastic(mtype)
If it is an elastic material?
integer(kind=kint), parameter userhyperelastic
integer(kind=kint), parameter m_plconst3
character(len=dict_key_length) mc_orthoelastic
integer(kind=kint), parameter updatelag
subroutine ep2e(mtype)
Set material type of elastoplastic to elastic.
integer(kind=kint), parameter m_alpha_over_mu
logical function isviscoelastic(mtype)
If it is an viscoelastic material?
subroutine initmaterial(material)
Initializer.
logical function iselastoplastic(mtype)
If it is an elastoplastic material?
integer(kind=kint), parameter eplastic
This module provides data structure of dictionaried table list.
subroutine print_tabledata(dict, fname)
Print our the contents of a dictionary.
Stucture to management all material relates data.