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
141 character(len=DICT_KEY_LENGTH) ::
mc_yield =
'YIELD'
151 integer(kind=kint) :: ortho
152 real(kind=kreal) :: ee
153 real(kind=kreal) :: pp
154 real(kind=kreal) :: ee2
155 real(kind=kreal) :: g12
156 real(kind=kreal) :: g23
157 real(kind=kreal) :: g31
158 real(kind=kreal) :: angle
159 real(kind=kreal) :: rho
160 real(kind=kreal) :: alpha
161 real(kind=kreal) :: alpha_over_mu
162 real(kind=kreal) :: weight
167 integer(kind=kint) :: nlgeom_flag
168 integer(kind=kint) :: mtype
169 integer(kind=kint) :: nfstatus
170 character(len=30) :: name
171 real(kind=kreal) :: variables(200)
172 integer(kind=kint) :: variables_i(200)
174 integer(kind=kint) :: totallyr
175 integer(kind=kint) :: cdsys_id
176 integer(kind=kint) :: n_table
177 real(kind=kreal),
pointer :: table(:)=>null()
178 type(dict_struct),
pointer :: dict
179 logical :: is_elem_rayleigh_damping
188 type(
tmaterial ),
intent(inout) :: material
190 material%nfstatus = 0
192 material%variables = 0.d0
193 material%variables_i = 0
194 material%totallyr = 0
195 material%is_elem_Rayleigh_damping = .false.
197 call dict_create( material%dict,
'INIT',
dict_null )
202 type(
tmaterial ),
intent(inout) :: material
203 if(
associated(material%table) )
deallocate( material%table )
204 if(
associated(material%dict) )
call dict_destroy( material%dict )
209 integer,
intent(in) :: nm
231 integer,
intent(in) :: npos
232 integer,
intent(in) :: cnum
233 integer :: i, idum,cdum,dd
236 if( npos<=0 .or. npos>6)
return
237 if( cnum<100000 .or. cnum>999999 )
return
249 integer,
intent(in) :: npos
250 integer,
intent(in) :: ival
251 integer,
intent(inout) :: mtype
252 integer :: i, idum,cdum, cdum1, dd
254 if( npos<=0 .or. npos>6 )
return
255 if( ival<0 .or. ival>9 )
return
260 cdum1 = cdum1+ idum*dd
264 cdum1 = cdum1 + ival*dd
270 cdum1 = cdum1+ idum*dd
279 integer,
intent(in) :: mtype
283 if( itype/=1 )
return
285 if( itype/=1 .and. itype/=2 )
return
291 integer,
intent(in) :: mtype
295 if( itype/=1 )
return
297 if( itype/=2 )
return
303 integer,
intent(in) :: mtype
307 if( itype/=1 )
return
309 if( itype/=2 )
return
315 integer,
intent(in) :: mtype
324 integer,
intent(in) :: mtype
333 integer,
intent(in) :: mtype
342 integer,
intent(in) :: mtype
351 integer,
intent(in) :: mtype
360 integer,
intent(inout) :: mtype
367 integer,
intent(in) :: mtype
371 if( itype/=1 )
return
373 if( itype/=7 )
return
379 type(
tmaterial ),
intent(in) :: material
385 type(
tmaterial ),
intent(in) :: material
391 type(
tmaterial ),
intent(in) :: material
397 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
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.
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.
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.
Structure to manage all material related data.