FrontISTR  5.9.0
Large-scale structural analysis program with finit element method
table_dyn.f90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
2 ! Copyright (c) 2019 FrontISTR Commons
3 ! This software is released under the MIT License, see LICENSE.txt
4 !-------------------------------------------------------------------------------
6 module m_table_dyn
7 
8  use m_fstr
9  use hecmw
10 
11  implicit none
12 
13 contains
14 
15  !C================================================================C
16  !C-- subroutine fstr_get_amplitude_dyn
17  !C================================================================C
27  subroutine fstr_get_amplitude_dyn(hecMESH, fstrSOLID, fstrDYNAMIC, ig0, t_curr, value, flag_u)
28  type(hecmwst_local_mesh) :: hecMESH
29  type(fstr_solid) :: fstrSOLID
30  type(fstr_dynamic) :: fstrDYNAMIC
31  integer(kind=kint) :: ig0
32  real(kind=kreal) :: t_curr
33  real(kind=kreal) :: value
34  integer(kind=kint) :: flag_u
35 
36  integer(kind=kint) :: jj_n_amp
37  real(kind=kreal) :: t_eval
38 
39  jj_n_amp = 0
40  if( flag_u == 1 ) then
41  jj_n_amp = fstrsolid%BOUNDARY_ngrp_amp(ig0)
42  else if( flag_u == 2 ) then
43  jj_n_amp = fstrsolid%VELOCITY_ngrp_amp(ig0)
44  else if( flag_u == 3 ) then
45  jj_n_amp = fstrsolid%ACCELERATION_ngrp_amp(ig0)
46  else if( flag_u == 0 ) then
47  jj_n_amp = fstrsolid%CLOAD_ngrp_amp(ig0)
48  else if( flag_u == 10 ) then
49  jj_n_amp = fstrsolid%DLOAD_ngrp_amp(ig0)
50  end if
51 
52  if( jj_n_amp <= 0 ) return ! no amplitude: value unchanged (factor 1.0)
53 
54  t_eval = t_curr
55  if( fstrdynamic%idx_eqa == 11 ) t_eval = t_curr - fstrdynamic%t_delta
56 
57  call hecmw_get_amplitude_value(hecmesh%amp, jj_n_amp, t_eval, value)
58 
59  end subroutine fstr_get_amplitude_dyn
60 
61 end module m_table_dyn
Definition: hecmw.f90:6
This module defines common data and basic structures for analysis.
Definition: m_fstr.F90:15
Amplitude evaluation for loading conditions in dynamic analysis.
Definition: table_dyn.f90:6
subroutine fstr_get_amplitude_dyn(hecMESH, fstrSOLID, fstrDYNAMIC, ig0, t_curr, value, flag_u)
Evaluate the amplitude-scaled target value a(t) for dynamic analysis.
Definition: table_dyn.f90:28
Data for DYNAMIC ANSLYSIS (fstrDYNAMIC)
Definition: m_fstr.F90:535