9 use hecmw,
only : kint, kreal
24 (etype, nn, ecoord, gausses, stiff, cdsys_id, coords, &
25 time, tincr, u, temperature)
35 integer(kind=kint),
intent(in) :: etype
36 integer(kind=kint),
intent(in) :: nn
37 real(kind=kreal),
intent(in) :: ecoord(3, nn)
39 real(kind=kreal),
intent(out) :: stiff(:,:)
40 integer(kind=kint),
intent(in) :: cdsys_id
41 real(kind=kreal),
intent(inout) :: coords(3, 3)
42 real(kind=kreal),
intent(in) :: time
43 real(kind=kreal),
intent(in) :: tincr
44 real(kind=kreal),
intent(in),
optional :: u(:, :)
45 real(kind=kreal),
intent(in) :: temperature(nn)
49 integer(kind=kint) :: flag
50 integer(kind=kint),
parameter :: ndof = 3
51 real(kind=kreal) :: d(6, 6),b(6, ndof*nn),db(6, ndof*nn)
52 real(kind=kreal) :: gderiv(nn, 3),stress(6),mat(6, 6)
53 real(kind=kreal) :: det, wg, temp, spfunc(nn)
54 integer(kind=kint) :: i, j, lx, serr
55 real(kind=kreal) :: naturalcoord(3)
56 real(kind=kreal) :: gdispderiv(3, 3)
57 real(kind=kreal) :: b1(6, ndof*nn), bbar(nn, 3)
58 real(kind=kreal) :: smat(9, 9), elem(3, nn)
59 real(kind=kreal) :: bn(9, ndof*nn), sbn(9, ndof*nn)
60 real(kind=kreal) :: b4, b6, b8, coordsys(3, 3)
66 flag = gausses(1)%pMaterial%nlgeom_flag
67 if( .not.
present(u) ) flag = infinitesimal
68 elem(:, :) = ecoord(:, :)
69 if( flag == updatelag ) elem(:, :) = ecoord(:, :)+u(:, :)
80 if( cdsys_id > 0 )
then
82 if( serr == -1 ) stop
"Fail to setup local coordinate"
84 write(*, *)
"WARNING! Cannot setup local coordinate, it is modified automatically"
89 temp = dot_product( temperature, spfunc )
90 call matlmatrix( gausses(lx), d3, d, time, tincr, coordsys, temp )
92 if( flag == updatelag )
then
98 b(1:6, 1:nn*ndof) = 0.0d0
100 b4 = ( bbar(j, 1)-gderiv(j, 1) )/3.0d0
101 b6 = ( bbar(j, 2)-gderiv(j, 2) )/3.0d0
102 b8 = ( bbar(j, 3)-gderiv(j, 3) )/3.0d0
103 b(1, 3*j-2) = gderiv(j, 1)+b4
108 b(2, 3*j-1) = gderiv(j, 2)+b6
113 b(3, 3*j ) = gderiv(j, 3)+b8
115 b(4, 3*j-2) = gderiv(j, 2)
116 b(4, 3*j-1) = gderiv(j, 1)
117 b(5, 3*j-1) = gderiv(j, 3)
118 b(5, 3*j ) = gderiv(j, 2)
119 b(6, 3*j-2) = gderiv(j, 3)
120 b(6, 3*j ) = gderiv(j, 1)
124 if( flag == totallag )
then
126 gdispderiv(1:ndof, 1:ndof) = matmul( u(1:ndof, 1:nn), gderiv(1:nn, 1:ndof) )
127 b1(1:6, 1:nn*ndof) = 0.0d0
129 b1(1, 3*j-2) = gdispderiv(1, 1)*gderiv(j, 1)
130 b1(1, 3*j-1) = gdispderiv(2, 1)*gderiv(j, 1)
131 b1(1, 3*j ) = gdispderiv(3, 1)*gderiv(j, 1)
132 b1(2, 3*j-2) = gdispderiv(1, 2)*gderiv(j, 2)
133 b1(2, 3*j-1) = gdispderiv(2, 2)*gderiv(j, 2)
134 b1(2, 3*j ) = gdispderiv(3, 2)*gderiv(j, 2)
135 b1(3, 3*j-2) = gdispderiv(1, 3)*gderiv(j, 3)
136 b1(3, 3*j-1) = gdispderiv(2, 3)*gderiv(j, 3)
137 b1(3, 3*j ) = gdispderiv(3, 3)*gderiv(j, 3)
138 b1(4, 3*j-2) = gdispderiv(1, 2)*gderiv(j, 1)+gdispderiv(1, 1)*gderiv(j, 2)
139 b1(4, 3*j-1) = gdispderiv(2, 2)*gderiv(j, 1)+gdispderiv(2, 1)*gderiv(j, 2)
140 b1(4, 3*j ) = gdispderiv(3, 2)*gderiv(j, 1)+gdispderiv(3, 1)*gderiv(j, 2)
141 b1(5, 3*j-2) = gdispderiv(1, 2)*gderiv(j, 3)+gdispderiv(1, 3)*gderiv(j, 2)
142 b1(5, 3*j-1) = gdispderiv(2, 2)*gderiv(j, 3)+gdispderiv(2, 3)*gderiv(j, 2)
143 b1(5, 3*j ) = gdispderiv(3, 2)*gderiv(j, 3)+gdispderiv(3, 3)*gderiv(j, 2)
144 b1(6, 3*j-2) = gdispderiv(1, 3)*gderiv(j, 1)+gdispderiv(1, 1)*gderiv(j, 3)
145 b1(6, 3*j-1) = gdispderiv(2, 3)*gderiv(j, 1)+gdispderiv(2, 1)*gderiv(j, 3)
146 b1(6, 3*j ) = gdispderiv(3, 3)*gderiv(j, 1)+gdispderiv(3, 1)*gderiv(j, 3)
150 b(:, j) = b(:, j)+b1(:, j)
154 db(1:6, 1:nn*ndof) = matmul( d, b(1:6, 1:nn*ndof) )
157 stiff(i, j) = stiff(i, j)+dot_product( b(:, i), db(:, j) )*wg
162 if( flag == totallag .or. flag == updatelag )
then
163 stress(1:6) = gausses(lx)%stress
164 bn(1:9, 1:nn*ndof) = 0.0d0
166 bn(1, 3*j-2) = gderiv(j, 1)
167 bn(2, 3*j-1) = gderiv(j, 1)
168 bn(3, 3*j ) = gderiv(j, 1)
169 bn(4, 3*j-2) = gderiv(j, 2)
170 bn(5, 3*j-1) = gderiv(j, 2)
171 bn(6, 3*j ) = gderiv(j, 2)
172 bn(7, 3*j-2) = gderiv(j, 3)
173 bn(8, 3*j-1) = gderiv(j, 3)
174 bn(9, 3*j ) = gderiv(j, 3)
178 smat(j , j ) = stress(1)
179 smat(j , j+3) = stress(4)
180 smat(j , j+6) = stress(6)
181 smat(j+3, j ) = stress(4)
182 smat(j+3, j+3) = stress(2)
183 smat(j+3, j+6) = stress(5)
184 smat(j+6, j ) = stress(6)
185 smat(j+6, j+3) = stress(5)
186 smat(j+6, j+6) = stress(3)
188 sbn(1:9, 1:nn*ndof) = matmul( smat(1:9, 1:9), bn(1:9, 1:nn*ndof) )
191 stiff(i, j) = stiff(i, j)+dot_product( bn(:, i), sbn(:, j) )*wg
204 (etype, nn, ecoord, u, du, cdsys_id, coords, &
205 qf ,gausses, iter, time, tincr, tt,t0, tn )
219 integer(kind=kint),
intent(in) :: etype
220 integer(kind=kint),
intent(in) :: nn
221 real(kind=kreal),
intent(in) :: ecoord(3, nn)
222 real(kind=kreal),
intent(in) :: u(3, nn)
223 real(kind=kreal),
intent(in) :: du(3, nn)
224 integer(kind=kint),
intent(in) :: cdsys_id
225 real(kind=kreal),
intent(inout) :: coords(3, 3)
226 real(kind=kreal),
intent(out) :: qf(nn*3)
228 integer,
intent(in) :: iter
229 real(kind=kreal),
intent(in) :: time
230 real(kind=kreal),
intent(in) :: tincr
231 real(kind=kreal),
intent(in) :: tt(nn)
232 real(kind=kreal),
intent(in) :: t0(nn)
233 real(kind=kreal),
intent(in) :: tn(nn)
237 integer(kind=kint) :: flag
238 integer(kind=kint),
parameter :: ndof = 3
239 real(kind=kreal) :: b(6, ndof*nn), b1(6, ndof*nn)
240 real(kind=kreal) :: gderiv(nn, 3), gderiv1(nn,3), gdispderiv(3, 3), f(3,3), det, det1, wg
241 integer(kind=kint) :: j, lx, mtype, serr
242 real(kind=kreal) :: naturalcoord(3), rot(3, 3), spfunc(nn)
243 real(kind=kreal) :: totaldisp(3, nn), elem(3, nn), elem1(3, nn), coordsys(3, 3)
244 real(kind=kreal) :: dstrain(6)
245 real(kind=kreal) :: dvol, vol0, bbar(nn, 3), derivdum(1:ndof, 1:ndof), bbar2(nn, 3)
246 real(kind=kreal) :: b4, b6, b8, ttc, tt0, ttn, alpo(3), ina(1), epsth(6)
247 logical :: ierr, matlaniso
253 flag = gausses(1)%pMaterial%nlgeom_flag
254 elem(:, :) = ecoord(:, :)
255 totaldisp(:, :) = u(:, :)+du(:, :)
257 elem(:, :) = ( 0.5d0*du(:, :)+u(:, :) )+ecoord(:, :)
258 elem1(:, :) = ( du(:, :)+u(:, :) )+ecoord(:, :)
260 totaldisp(:, :) = du(:, :)
265 call fetch_tabledata(
mc_orthoexp, gausses(1)%pMaterial%dict, alpo(:), ierr, ina )
266 if( .not. ierr ) matlaniso = .true.
271 derivdum = matmul( totaldisp(1:ndof, 1:nn), bbar(1:nn, 1:ndof) )
272 vol0 = ( derivdum(1, 1)+derivdum(2, 2)+derivdum(3, 3) )/3.0d0
277 mtype = gausses(lx)%pMaterial%mtype
282 if( cdsys_id > 0 )
then
283 call set_localcoordsys( coords, g_localcoordsys(cdsys_id), coordsys(:, :), serr )
284 if( serr == -1 ) stop
"Fail to setup local coordinate"
285 if( serr == -2 )
then
286 write(*, *)
"WARNING! Cannot setup local coordinate, it is modified automatically"
290 gdispderiv(1:ndof, 1:ndof) = matmul( totaldisp(1:ndof, 1:nn), gderiv(1:nn, 1:ndof) )
291 dvol = vol0-( gdispderiv(1, 1)+gdispderiv(2, 2)+gdispderiv(3, 3) )/3.0d0
302 ttc = dot_product(tt, spfunc)
303 tt0 = dot_product(t0, spfunc)
304 ttn = dot_product(tn, spfunc)
309 dstrain(1) = gdispderiv(1, 1)+dvol
310 dstrain(2) = gdispderiv(2, 2)+dvol
311 dstrain(3) = gdispderiv(3, 3)+dvol
312 dstrain(4) = ( gdispderiv(1, 2)+gdispderiv(2, 1) )
313 dstrain(5) = ( gdispderiv(2, 3)+gdispderiv(3, 2) )
314 dstrain(6) = ( gdispderiv(3, 1)+gdispderiv(1, 3) )
315 dstrain(:) = dstrain(:)-epsth(:)
317 f(1:3,1:3) = 0.d0; f(1,1)=1.d0; f(2,2)=1.d0; f(3,3)=1.d0;
319 gausses(lx)%strain(1:6) = dstrain(1:6)+epsth(:)
323 dstrain(1) = dstrain(1)+0.5d0*dot_product( gdispderiv(:, 1), gdispderiv(:, 1) )
324 dstrain(2) = dstrain(2)+0.5d0*dot_product( gdispderiv(:, 2), gdispderiv(:, 2) )
325 dstrain(3) = dstrain(3)+0.5d0*dot_product( gdispderiv(:, 3), gdispderiv(:, 3) )
326 dstrain(4) = dstrain(4)+( gdispderiv(1, 1)*gdispderiv(1, 2) &
327 +gdispderiv(2, 1)*gdispderiv(2, 2)+gdispderiv(3, 1)*gdispderiv(3, 2) )
328 dstrain(5) = dstrain(5)+( gdispderiv(1, 2)*gdispderiv(1, 3) &
329 +gdispderiv(2, 2)*gdispderiv(2, 3)+gdispderiv(3, 2)*gdispderiv(3, 3) )
330 dstrain(6) = dstrain(6)+( gdispderiv(1, 1)*gdispderiv(1, 3) &
331 +gdispderiv(2, 1)*gdispderiv(2, 3)+gdispderiv(3, 1)*gdispderiv(3, 3) )
333 gausses(lx)%strain(1:6) = dstrain(1:6)+epsth(:)
334 f(1:3,1:3) = f(1:3,1:3) + gdispderiv(1:3,1:3)
338 rot(1, 2)= 0.5d0*( gdispderiv(1, 2)-gdispderiv(2, 1) ); rot(2, 1) = -rot(1, 2)
339 rot(2, 3)= 0.5d0*( gdispderiv(2, 3)-gdispderiv(3, 2) ); rot(3, 2) = -rot(2, 3)
340 rot(1, 3)= 0.5d0*( gdispderiv(1, 3)-gdispderiv(3, 1) ); rot(3, 1) = -rot(1, 3)
342 gausses(lx)%strain(1:6) = gausses(lx)%strain_bak(1:6)+dstrain(1:6)+epsth(:)
343 call getglobalderiv(etype, nn, naturalcoord, ecoord, det1, gderiv1)
344 f(1:3,1:3) = f(1:3,1:3) + matmul( u(1:ndof, 1:nn)+du(1:ndof, 1:nn), gderiv1(1:nn, 1:ndof) )
349 call update_stress3d( flag, gausses(lx), rot, dstrain, f, coordsys, time, tincr, ttc, tt0, ttn )
355 b(1:6, 1:nn*ndof) = 0.0d0
357 b4 = ( bbar(j, 1)-gderiv(j, 1) )/3.0d0
358 b6 = ( bbar(j, 2)-gderiv(j, 2) )/3.0d0
359 b8 = ( bbar(j, 3)-gderiv(j, 3) )/3.0d0
360 b(1, 3*j-2) = gderiv(j, 1)+b4
365 b(2, 3*j-1) = gderiv(j, 2)+b6
370 b(3, 3*j ) = gderiv(j, 3)+b8
372 b(4, 3*j-2) = gderiv(j, 2)
373 b(4, 3*j-1) = gderiv(j, 1)
374 b(5, 3*j-1) = gderiv(j, 3)
375 b(5, 3*j ) = gderiv(j, 2)
376 b(6, 3*j-2) = gderiv(j, 3)
377 b(6, 3*j ) = gderiv(j, 1)
384 b1(1:6, 1:nn*ndof) = 0.0d0
386 b1(1, 3*j-2) = gdispderiv(1, 1)*gderiv(j, 1)
387 b1(1, 3*j-1) = gdispderiv(2, 1)*gderiv(j, 1)
388 b1(1, 3*j ) = gdispderiv(3, 1)*gderiv(j, 1)
389 b1(2, 3*j-2) = gdispderiv(1, 2)*gderiv(j, 2)
390 b1(2, 3*j-1) = gdispderiv(2, 2)*gderiv(j, 2)
391 b1(2, 3*j ) = gdispderiv(3, 2)*gderiv(j, 2)
392 b1(3, 3*j-2) = gdispderiv(1, 3)*gderiv(j, 3)
393 b1(3, 3*j-1) = gdispderiv(2, 3)*gderiv(j, 3)
394 b1(3, 3*j ) = gdispderiv(3, 3)*gderiv(j, 3)
395 b1(4, 3*j-2) = gdispderiv(1, 2)*gderiv(j, 1)+gdispderiv(1, 1)*gderiv(j, 2)
396 b1(4, 3*j-1) = gdispderiv(2, 2)*gderiv(j, 1)+gdispderiv(2, 1)*gderiv(j, 2)
397 b1(4, 3*j ) = gdispderiv(3, 2)*gderiv(j, 1)+gdispderiv(3, 1)*gderiv(j, 2)
398 b1(5, 3*j-2) = gdispderiv(1, 2)*gderiv(j, 3)+gdispderiv(1, 3)*gderiv(j, 2)
399 b1(5, 3*j-1) = gdispderiv(2, 2)*gderiv(j, 3)+gdispderiv(2, 3)*gderiv(j, 2)
400 b1(5, 3*j ) = gdispderiv(3, 2)*gderiv(j, 3)+gdispderiv(3, 3)*gderiv(j, 2)
401 b1(6, 3*j-2) = gdispderiv(1, 3)*gderiv(j, 1)+gdispderiv(1, 1)*gderiv(j, 3)
402 b1(6, 3*j-1) = gdispderiv(2, 3)*gderiv(j, 1)+gdispderiv(2, 1)*gderiv(j, 3)
403 b1(6, 3*j ) = gdispderiv(3, 3)*gderiv(j, 1)+gdispderiv(3, 1)*gderiv(j, 3)
407 b(:, j) = b(:, j)+b1(:, j)
413 b(1:6, 1:nn*ndof) = 0.0d0
415 b4 = ( bbar2(j, 1)-gderiv(j, 1) )/3.0d0
416 b6 = ( bbar2(j, 2)-gderiv(j, 2) )/3.0d0
417 b8 = ( bbar2(j, 3)-gderiv(j, 3) )/3.0d0
418 b(1, 3*j-2) = gderiv(j, 1)+b4
423 b(2, 3*j-1) = gderiv(j, 2)+b6
428 b(3, 3*j ) = gderiv(j, 3)+b8
430 b(4, 3*j-2) = gderiv(j, 2)
431 b(4, 3*j-1) = gderiv(j, 1)
432 b(5, 3*j-1) = gderiv(j, 3)
433 b(5, 3*j ) = gderiv(j, 2)
434 b(6, 3*j-2) = gderiv(j, 3)
435 b(6, 3*j ) = gderiv(j, 1)
441 qf(1:nn*ndof) = qf(1:nn*ndof) &
442 +matmul( gausses(lx)%stress(1:6), b(1:6, 1:nn*ndof) )*wg
445 gausses(lx)%strain_energy = 0.5d0*dot_product(gausses(lx)%stress(1:6)+gausses(lx)%stress_bak(1:6), &
446 & gausses(lx)%strain(1:6)-gausses(lx)%strain_bak(1:6))*wg
454 (etype, nn, xx, yy, zz, tt, t0, &
455 gausses, vect, cdsys_id, coords)
465 integer(kind=kint),
parameter :: ndof = 3
466 integer(kind=kint),
intent(in) :: etype, nn
468 real(kind=kreal),
intent(in) :: xx(nn), yy(nn), zz(nn)
469 real(kind=kreal),
intent(in) :: tt(nn), t0(nn)
470 real(kind=kreal),
intent(out) :: vect(nn*ndof)
471 integer(kind=kint),
intent(in) :: cdsys_ID
472 real(kind=kreal),
intent(inout) :: coords(3, 3)
476 real(kind=kreal) :: alp, alp0, d(6, 6), b(6, ndof*nn)
477 real(kind=kreal) :: b4, b6, b8, det, ecoord(3, nn)
478 integer(kind=kint) :: j, LX, serr
479 real(kind=kreal) :: estrain(6), sgm(6), h(nn)
480 real(kind=kreal) :: naturalcoord(3), gderiv(nn, 3)
481 real(kind=kreal) :: wg, outa(1), ina(1), bbar(nn, 3), alpo(3), alpo0(3), coordsys(3, 3)
482 real(kind=kreal) :: tempc, temp0, tempc0, temp00, thermal_eps, tm(6,6)
483 logical :: ierr, matlaniso
489 if( cdsys_id > 0 )
then
491 call fetch_tabledata( mc_orthoexp, gausses(1)%pMaterial%dict, alpo(:), ierr, ina )
492 if( .not. ierr ) matlaniso = .true.
504 tempc0 = dot_product( h(1:nn), tt(1:nn) )
505 temp00 = dot_product( h(1:nn), t0(1:nn) )
514 if( cdsys_id > 0 )
then
515 call set_localcoordsys(coords, g_localcoordsys(cdsys_id), coordsys, serr)
516 if( serr == -1 ) stop
"Fail to setup local coordinate"
517 if( serr == -2 )
then
518 write(*, *)
"WARNING! Cannot setup local coordinate, it is modified automatically"
524 b(1:6, 1:nn*ndof) = 0.0d0
526 b4 = ( bbar(j, 1)-gderiv(j, 1) )/3.0d0
527 b6 = ( bbar(j, 2)-gderiv(j, 2) )/3.0d0
528 b8 = ( bbar(j, 3)-gderiv(j, 3) )/3.0d0
529 b(1, 3*j-2) = gderiv(j, 1)+b4
534 b(2, 3*j-1) = gderiv(j, 2)+b6
539 b(3, 3*j ) = gderiv(j, 3)+b8
541 b(4, 3*j-2) = gderiv(j, 2)
542 b(4, 3*j-1) = gderiv(j, 1)
543 b(5, 3*j-1) = gderiv(j, 3)
544 b(5, 3*j ) = gderiv(j, 2)
545 b(6, 3*j-2) = gderiv(j, 3)
546 b(6, 3*j ) = gderiv(j, 1)
549 tempc = dot_product( h(1:nn),tt(1:nn) )
550 temp0 = dot_product( h(1:nn),t0(1:nn) )
552 call matlmatrix( gausses(lx), d3, d, 1.d0, 0.0d0, coordsys, tempc )
556 call fetch_tabledata( mc_orthoexp, gausses(lx)%pMaterial%dict, alpo(:), ierr, ina )
557 if( ierr ) stop
"Fails in fetching orthotropic expansion coefficient!"
559 call fetch_tabledata( mc_themoexp, gausses(lx)%pMaterial%dict, outa(:), ierr, ina )
560 if( ierr ) outa(1) = gausses(lx)%pMaterial%variables(m_exapnsion)
565 call fetch_tabledata( mc_orthoexp, gausses(lx)%pMaterial%dict, alpo0(:), ierr, ina )
566 if( ierr ) stop
"Fails in fetching orthotropic expansion coefficient!"
568 call fetch_tabledata( mc_themoexp, gausses(lx)%pMaterial%dict, outa(:), ierr, ina )
569 if( ierr ) outa(1) = gausses(lx)%pMaterial%variables(m_exapnsion)
582 estrain(:) = matmul( estrain(:), tm )
583 estrain(4:6) = estrain(4:6)*2.0d0
586 estrain(1:3) = thermal_eps
593 sgm(:) = matmul( d(:, :), estrain(:) )
598 vect(1:nn*ndof) = vect(1:nn*ndof)+matmul( sgm(:), b(:, :) )*wg
This module encapsulate the basic functions of all elements provide by this software.
subroutine getshapefunc(fetype, localcoord, func)
Calculate the shape function in natural coordinate system.
subroutine getquadpoint(fetype, np, pos)
Fetch the coordinate of gauss point.
subroutine getglobalderiv(fetype, nn, localcoord, elecoord, det, gderiv)
Calculate shape derivative in global coordinate system.
real(kind=kreal) function getweight(fetype, np)
Fetch the weight value in given gauss point.
integer function numofquadpoints(fetype)
Obtains the number of quadrature points of the element.
This modules defines common structures for fem analysis.
type(tlocalcoordsys), dimension(:), pointer, save g_localcoordsys
subroutine set_localcoordsys(coords, coordsys, outsys, ierr)
setup of coordinate system
This module provide functions for elastoplastic calculation.
This module defines common data and basic structures for analysis.
real(kind=kreal), pointer ref_temp
REFTEMP.
This module manages calculation relates with materials.
subroutine matlmatrix(gauss, sectType, matrix, time, dtime, cdsys, temperature, isEp, hdflag)
Calculate constituive matrix.
This module provides common functions of Solid elements.
subroutine geomat_c3(stress, mat)
subroutine cal_thermal_expansion_c3(tt0, ttc, material, coordsys, matlaniso, EPSTH)
subroutine update_stress3d(flag, gauss, rot, dstrain, F, coordsys, time, tincr, ttc, tt0, ttn, hdflag)
This module contains several strategy to free locking problem in Eight-node hexagonal element.
subroutine tload_c3d8bbar(etype, nn, XX, YY, ZZ, TT, T0, gausses, VECT, cdsys_ID, coords)
This subroutien calculate thermal loading.
subroutine update_c3d8bbar(etype, nn, ecoord, u, du, cdsys_ID, coords, qf, gausses, iter, time, tincr, TT, T0, TN)
Update Strain stress of this element.
subroutine stf_c3d8bbar(etype, nn, ecoord, gausses, stiff, cdsys_ID, coords, time, tincr, u, temperature)
This subroutine calculate stiff matrix using b-bar method.
This module provides aux functions.
subroutine transformation(jacob, tm)
This module provides functions for hyperelastic calculation.
This module summarizes all information of material properties.
integer(kind=kint), parameter totallag
character(len=dict_key_length) mc_orthoexp
integer(kind=kint), parameter infinitesimal
integer(kind=kint), parameter updatelag
This modules defines a structure to record history dependent parameter in static analysis.
All data should be recorded in every quadrature points.