65 integer(kind=kint),
parameter ::
elastic = 110000
69 integer(kind=kint),
parameter ::
eplastic = 120000
71 integer(kind=kint),
parameter ::
neohooke = 130000
78 integer(kind=kint),
parameter ::
norton = 150000
84 integer(kind=kint),
parameter ::
d3 = -1
88 integer(kind=kint),
parameter ::
shell = 3
95 integer(kind=kint),
parameter ::
m_thick = 4
142 character(len=DICT_KEY_LENGTH) ::
mc_yield =
'YIELD'
152 integer(kind=kint) :: ortho
153 real(kind=kreal) :: ee
154 real(kind=kreal) :: pp
155 real(kind=kreal) :: ee2
156 real(kind=kreal) :: g12
157 real(kind=kreal) :: g23
158 real(kind=kreal) :: g31
159 real(kind=kreal) :: angle
160 real(kind=kreal) :: rho
161 real(kind=kreal) :: alpha
162 real(kind=kreal) :: alpha_over_mu
163 real(kind=kreal) :: weight
168 integer(kind=kint) :: nlgeom_flag
169 integer(kind=kint) :: mtype
170 integer(kind=kint) :: nfstatus
171 character(len=30) :: name
172 real(kind=kreal) :: variables(200)
173 integer(kind=kint) :: variables_i(200)
175 integer(kind=kint) :: totallyr
176 integer(kind=kint) :: cdsys_id
177 integer(kind=kint) :: n_table
178 real(kind=kreal),
pointer :: table(:)=>null()
179 type(dict_struct),
pointer :: dict
180 logical :: is_elem_rayleigh_damping
189 type(
tmaterial ),
intent(inout) :: material
191 material%nfstatus = 0
193 material%variables = 0.d0
194 material%variables_i = 0
195 material%totallyr = 0
196 material%is_elem_Rayleigh_damping = .false.
198 call dict_create( material%dict,
'INIT',
dict_null )
203 type(
tmaterial ),
intent(inout) :: material
204 if(
associated(material%table) )
deallocate( material%table )
205 if(
associated(material%dict) )
call dict_destroy( material%dict )
210 integer,
intent(in) :: nm
232 integer,
intent(in) :: n
233 integer,
intent(in) :: m
234 real(kind=kreal),
intent(in) :: v
236 if( n>
size(
materials) .OR. m>100 )
return
242 integer,
intent(in) :: nfile
243 type(
tmaterial ),
intent(in) :: material
245 write( nfile, *)
"Material type:",material%mtype,material%nlgeom_flag
247 if( material%variables(i) /= 0.d0 )
write( nfile, *) i,material%variables(i)
249 if(
associated( material%table ) )
then
250 nt =
size(material%table)
251 write( nfile,* )
"--table--"
253 write(nfile,*) i,material%table(i)
261 integer,
intent(in) :: npos
262 integer,
intent(in) :: cnum
263 integer :: i, idum,cdum,dd
266 if( npos<=0 .or. npos>6)
return
267 if( cnum<100000 .or. cnum>999999 )
return
279 integer,
intent(in) :: npos
280 integer,
intent(in) :: ival
281 integer,
intent(inout) :: mtype
282 integer :: i, idum,cdum, cdum1, dd
284 if( npos<=0 .or. npos>6 )
return
285 if( ival<0 .or. ival>9 )
return
290 cdum1 = cdum1+ idum*dd
294 cdum1 = cdum1 + ival*dd
300 cdum1 = cdum1+ idum*dd
309 integer,
intent(in) :: mtype
313 if( itype/=1 )
return
315 if( itype/=1 .and. itype/=2 )
return
321 integer,
intent(in) :: mtype
325 if( itype/=1 )
return
327 if( itype/=2 )
return
333 integer,
intent(in) :: mtype
337 if( itype/=1 )
return
339 if( itype/=2 )
return
345 integer,
intent(in) :: mtype
354 integer,
intent(in) :: mtype
363 integer,
intent(in) :: mtype
372 integer,
intent(in) :: mtype
381 integer,
intent(in) :: mtype
390 integer,
intent(inout) :: mtype
397 integer,
intent(in) :: mtype
401 if( itype/=1 )
return
403 if( itype/=7 )
return
409 type(
tmaterial ),
intent(in) :: material
415 type(
tmaterial ),
intent(in) :: material
421 type(
tmaterial ),
intent(in) :: material
427 type(
tmaterial ),
intent(in) :: material
This module provides data structure table which would be dictionaried afterwards.
type(ttable), parameter dict_null
This module summarizes all information of material properties.
integer(kind=kint), parameter m_dashpot_axial
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 connector
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
integer(kind=kint), parameter m_spring_axial
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 getnumofdashpot_dparam(material)
Get number of dashpot_d parameters.
integer function gethardentype(mtype)
Get type of hardening.
character(len=dict_key_length) mc_themoexp
character(len=dict_key_length) mc_spring
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_dashpot_a_ndoffset
integer(kind=kint), parameter m_beam_angle6
integer function getnumofdashpot_aparam(material)
Get number of dashpot_a parameters.
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
integer function getnumofspring_aparam(material)
Get number of spring_a parameters.
subroutine setdigit(npos, ival, mtype)
Modify material type.
integer(kind=kint), parameter norton
integer(kind=kint), parameter m_plconst9
integer(kind=kint), parameter m_damping_rk
character(len=dict_key_length) mc_dashpot
integer(kind=kint), parameter m_poisson
subroutine finalizematerial(material)
Finalizer.
integer(kind=kint), parameter m_plconst8
integer(kind=kint), parameter m_damping_rm
integer(kind=kint), parameter axissymetric
integer(kind=kint), parameter m_beam_angle1
integer(kind=kint), parameter m_dashpot_dof
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
integer(kind=kint), parameter m_spring_dof
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 function getnumofspring_dparam(material)
Get number of spring_d parameters.
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
integer(kind=kint), parameter m_spring_d_ndoffset
integer(kind=kint), parameter m_dashpot_d_ndoffset
logical function isviscoelastic(mtype)
If it is an viscoelastic material?
subroutine initmaterial(material)
Initializer.
integer(kind=kint), parameter m_spring_a_ndoffset
logical function iselastoplastic(mtype)
If it is an elastoplastic material?
integer(kind=kint), parameter eplastic
integer function getconnectortype(mtype)
Get type of connector.
This module provides data structure of dictionaried table list.
subroutine print_tabledata(dict, fname)
Print our the contents of a dictionary.
Structure to manage all material related data.