45 nn,rho_el,lambda_el,mu_el,gamma_el,&
47 func_type,func_indx,func_data,nfdata,&
48 nf,t_stress,tag_func,yon,tcase,&
58 integer*4 :: is,in,ielem
60 integer*4 :: nf,fn,nfdata,tcase,nnod_loc
62 integer*4,
dimension(nf) :: tag_func
63integer*4,
dimension(nf) :: func_type
64integer*4,
dimension(nf +1) :: func_indx
65 integer*4,
dimension(0:cs_nnz) :: cs
67 integer*4,
dimension(nn,nn,nn) :: yon
73 real*8 :: reduction_factor
75 real*8,
dimension(nfdata) :: func_data
76 real*8,
dimension(nnod_loc) :: vs_tria
78 real*8,
dimension(nn,nn,nn) :: rho_el,lambda_el,mu_el,gamma_el
79 real*8,
dimension(nn,nn,nn) :: r_el
88 is = nn*nn*(r -1) +nn*(q -1) +p
89 in = cs(cs(ielem -1) +is)
91 if (yon(p,q,r).eq.1)
then
93 vs = dsqrt( mu_el(p,q,r) / rho_el(p,q,r) )
94 vp = dsqrt( (lambda_el(p,q,r) + 2*mu_el(p,q,r) ) / rho_el
99 if(tcase .ne. 16)
then
101 if (vcase .eq. tag_func(fn))
then
102 if (func_type(fn) .eq. 60 )
then
107 mu_el(p,q,r) = mu_el(p,q,r) * reduction_factor
108 vs = dsqrt(mu_el(p,q,r)/rho_el(p,q,r))
110 lambda_el(p,q,r)= rho_el(p,q,r)*(vp**2)-
116 elseif (tcase .eq. 16)
then
119 if (vcase .eq. tag_func(fn))
then
120 if (func_type(fn) .eq. 60 .and. vs_tria(in)
then
125 mu_el(p,q,r) = mu_el(p,q,r) * reduction_factor
126 vs = dsqrt(mu_el(p,q,r)/rho_el(p,q,r))
128 lambda_el(p,q,r)= rho_el(p,q,r)*(vp**2)-2
130 elseif (func_type(fn) .eq. 62 .and. vs_tria
then
135 mu_el(p,q,r) = mu_el(p,q,r) * reduction_factor
136 vs = dsqrt(mu_el(p,q,r)/rho_el(p,q,r))
138 lambda_el(p,q,r)= rho_el(p,q,r)*(vp**2)-2
real *8 function get_func_value(nb_fnc, type_fnc, ind_fnc, data_fnc, nb_data_fnc, id_fnc, time
Computes time evolution function.
subroutine make_eltensor_for_cases_nle(vcase, r_el, nn, rho_el, lambda_el, mu_el, gamma_el, cs_nnz, cs, ielem, func_type, func_indx, func_data, nfdata, nf, t_stress, tag_func, yon, tcase, nnod_loc, vs_tria)
Assignes material properties node by node for non linear elasticity.