15 integer,
intent(in) :: cstep
16 type (hecmwST_matrix),
intent(inout) :: hecMAT
17 type (hecmwST_local_mesh),
intent(in) :: hecMESH
18 type (fstr_solid),
intent(inout) :: fstrSOLID
19 type (fstr_param),
intent(inout) :: fstrPARAM
21 integer(kind=kint) :: grpid, ndof, ig0, ig, ityp, iS0, iE0, ik, in, idx, num, jj_n_amp
22 real(kind=kreal) :: fval, factor, ctime
25 do ig0= 1, fstrsolid%SPRING_ngrp_tot
26 grpid = fstrsolid%SPRING_ngrp_GRPID(ig0)
28 ig= fstrsolid%SPRING_ngrp_ID(ig0)
29 ityp= fstrsolid%SPRING_ngrp_DOF(ig0)
30 fval= fstrsolid%SPRING_ngrp_val(ig0)
31 jj_n_amp = fstrsolid%SPRING_ngrp_amp(ig0)
32 if (jj_n_amp <= 0)
then
33 factor = fstrsolid%FACTOR(2)
34 if( fval < 0.d0 ) fval = -fval*(1.d0-factor)
40 fval = -fval*(1.d0-factor)
46 is0= hecmesh%node_group%grp_index(ig-1) + 1
47 ie0= hecmesh%node_group%grp_index(ig )
49 in = hecmesh%node_group%grp_item(ik)
50 idx = ndof**2 * (in - 1) + ndof * (ityp - 1) + ityp
51 hecmat%D(idx) = hecmat%D(idx) + fval
59 integer(kind=kint),
intent(in) :: cstep
60 type (hecmwST_local_mesh),
intent(in) :: hecMESH
61 type (fstr_solid),
intent(in) :: fstrSOLID
62 real(kind=kreal),
intent(inout) :: b(:)
64 integer(kind=kint) ndof,ig0,ig,ityp,iS0,iE0,ik,in,idx,num,jj_n_amp
65 integer(kind=kint) :: grpid, incremental
66 real(kind=kreal) :: fval, factor, ctime
69 do ig0= 1, fstrsolid%SPRING_ngrp_tot
70 grpid = fstrsolid%SPRING_ngrp_GRPID(ig0)
72 incremental = fstrsolid%SPRING_incremental(ig0)
73 ig= fstrsolid%SPRING_ngrp_ID(ig0)
74 ityp= fstrsolid%SPRING_ngrp_DOF(ig0)
75 fval= fstrsolid%SPRING_ngrp_val(ig0)
76 jj_n_amp = fstrsolid%SPRING_ngrp_amp(ig0)
77 if (jj_n_amp <= 0)
then
78 factor = fstrsolid%FACTOR(2)
79 if( fval < 0.d0 ) fval = -fval*(1.d0-factor)
85 fval = -fval*(1.d0-factor)
91 is0= hecmesh%node_group%grp_index(ig-1) + 1
92 ie0= hecmesh%node_group%grp_index(ig )
94 in = hecmesh%node_group%grp_item(ik)
95 idx = ndof * (in - 1) + ityp
97 b(idx) = b(idx) - fval * ( fstrsolid%dunode( idx ) + fstrsolid%unode( idx ) * (1-incremental) )
This module provides functions to deal with spring force.
subroutine fstr_update_ndforce_spring(cstep, hecMESH, fstrSOLID, B)
subroutine fstr_addspring(cstep, hecMESH, hecMAT, fstrSOLID, fstrPARAM)
This module provides functions to deal with time and increment of stress analysis.
real(kind=kreal) function fstr_get_timeinc()
real(kind=kreal) function fstr_get_time()
This module defines common data and basic structures for analysis.
logical function fstr_isloadactive(fstrSOLID, nbc, cstep)
subroutine fstr_get_amplitude(hecMESH, fstrSOLID, cstep, jj_n_amp, time, value)
Evaluate the amplitude-scaled target value a(t) for static analysis.
This modules just summarizes all modules used in static analysis.