FrontISTR  6.0.0
Large-scale structural analysis program with finit element method
fstr_setup.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 !-------------------------------------------------------------------------------
8  use m_fstr
9  use hecmw_setup_util, only &
13  , hecmw_streqr
14  use fstr_setup_util
24  use fstr_ctrl_heat
25  use fstr_ctrl_eigen
28  use mcontactparam
30  use m_out
31  use m_step
32  use m_utilities
34  implicit none
35 
36 contains
37 
38  !=============================================================================!
40  !=============================================================================!
41  subroutine fstr_setup( cntl_filename, hecMESH, hecMAT, fstrPARAM, &
42  fstrSOLID, fstrEIG, fstrHEAT, fstrDYNAMIC, fstrCPL, fstrFREQ )
43  character(len=HECMW_FILENAME_LEN) :: cntl_filename
44  type(hecmwst_local_mesh),target :: hecMESH
45  type(hecmwst_matrix),target :: hecMAT
46  type(fstr_param),target :: fstrPARAM
47  type(fstr_solid),target :: fstrSOLID
48  type(fstr_eigen),target :: fstrEIG
49  type(fstr_heat),target :: fstrHEAT
50  type(fstr_dynamic),target :: fstrDYNAMIC
51  type(fstr_couple),target :: fstrCPL
52  type(fstr_freqanalysis), target :: fstrFREQ
53 
54  integer(kind=kint) :: ctrl, rcode
55  type(fstr_param_pack) :: P
56  type(fstr_card_table) :: T
57  integer(kind=kint) :: total(FSTR_CARD_MAX)
58  type(fstr_setup_counts) :: counts
59 
60  ! packaging
61  p%MESH => hecmesh
62  p%MAT => hecmat
63  p%PARAM => fstrparam
64  p%SOLID => fstrsolid
65  p%EIGEN => fstreig
66  p%HEAT => fstrheat
67  p%DYN => fstrdynamic
68  p%CPL => fstrcpl
69  p%FREQ => fstrfreq
70 
71  fstrparam%contact_algo = kcaalagrange
72 
73  call fstr_setup_cards( t )
74 
75  ctrl = fstr_ctrl_open( cntl_filename )
76  if( ctrl < 0 ) then
77  write(*,*) '### Error: Cannot open FSTR control file : ', cntl_filename
78  write(ilog,*) '### Error: Cannot open FSTR control file : ', cntl_filename
79  stop hecmw_exit_input
80  end if
81 
82  call fstr_setup_read_cards( ctrl, t, 1, total, p )
83 
84  ! -----
85  counts = fstr_setup_card_counts( t, total )
86  call fstr_setup_prepare( p, counts )
87 
88  ! -----
89  rcode = fstr_ctrl_rewind( ctrl )
90  call fstr_setup_read_cards( ctrl, t, 2, total, p )
91 
92  call fstr_setup_finish( p, counts )
93  if( p%PARAM%fg_visual == kon ) call fstr_setup_visualize( ctrl, p%MESH )
94  rcode = fstr_ctrl_close( ctrl )
95 
96  end subroutine fstr_setup
97 
102  subroutine fstr_setup_cards( T )
103  implicit none
104  type(fstr_card_table) :: T
105 
106  ! Settings, read in the first reading. fstr_setup_prepare and the second reading use them wherever they are
107  ! in the file, and the cards of the first reading use those read before them.
108  ! fstr_setup_prepare uses !SOLUTION, !STATIC and !DYNAMIC, !CONTACT uses !CONTACT_ALGO,
109  ! and in the first reading, !STEP uses !VERSION and !DLOAD uses NLGEOM of !SOLUTION, !STATIC and !DYNAMIC.
110  call fstr_card_add( t, 'VERSION', first=fstr_setup_version )
111  call fstr_card_add( t, 'SOLUTION', first=fstr_setup_solution )
112  call fstr_card_add( t, 'STATIC', first=fstr_setup_static )
113  call fstr_card_add( t, 'DYNAMIC', first=fstr_setup_dynamic )
114  call fstr_card_add( t, 'CONTACT_ALGO', first=fstr_setup_contactalgo )
115  call fstr_card_add( t, 'NONLINEAR_SOLVER', first=fstr_setup_nonlinear_solver )
116  call fstr_card_add( t, 'SOLVER', first=fstr_setup_solver )
117  call fstr_card_add( t, 'EIGEN', first=fstr_setup_eigen )
118  call fstr_card_add( t, 'ECHO', first=fstr_setup_echo )
119  call fstr_card_add( t, 'RESTART', first=fstr_setup_restart )
120  call fstr_card_add( t, 'OUTPUT_SSTYPE', first=fstr_setup_output_sstype )
121 
122  ! Cards added to arrays as they are read. fstr_setup_prepare converts or checks the rotational dofs of
123  ! !BOUNDARY, !CLOAD, !SPRING, !VELOCITY, !ACCELERATION, !FLOAD and !FACCELERATION,
124  ! and the cards of the first reading refer to !AMPLITUDE by name.
125  call fstr_card_add( t, 'AMPLITUDE', first=fstr_setup_amplitude )
126  call fstr_card_add( t, 'BOUNDARY', first=fstr_setup_boundary )
127  call fstr_card_add( t, 'CLOAD', first=fstr_setup_cload )
128  call fstr_card_add( t, 'SPRING', first=fstr_setup_spring )
129  call fstr_card_add( t, 'VELOCITY', first=fstr_setup_velocity )
130  call fstr_card_add( t, 'ACCELERATION', first=fstr_setup_acceleration )
131  call fstr_card_add( t, 'FLOAD', first=fstr_setup_fload )
132  call fstr_card_add( t, 'FACCELERATION', first=fstr_setup_facceleration )
133  call fstr_card_add( t, 'DLOAD', first=fstr_setup_dload )
134  call fstr_card_add( t, 'TEMPERATURE', first=fstr_setup_temperature )
135  call fstr_card_add( t, 'REFTEMP', first=fstr_setup_reftemp )
136  call fstr_card_add( t, 'ELEMENT_ACTIVATION', first=fstr_setup_element_activation )
137  call fstr_card_add( t, 'FIXTEMP', first=fstr_setup_fixtemp )
138  call fstr_card_add( t, 'CFLUX', first=fstr_setup_cflux )
139  call fstr_card_add( t, 'DFLUX', first=fstr_setup_dflux )
140  call fstr_card_add( t, 'SFLUX', first=fstr_setup_sflux )
141  call fstr_card_add( t, 'FILM', first=fstr_setup_film )
142  call fstr_card_add( t, 'SFILM', first=fstr_setup_sfilm )
143  call fstr_card_add( t, 'RADIATE', first=fstr_setup_radiate )
144  call fstr_card_add( t, 'SRADIATE', first=fstr_setup_sradiate )
145  call fstr_card_add( t, 'EIGENREAD', first=fstr_setup_eigenread )
146  call fstr_card_add( t, 'COUPLE', first=fstr_setup_couple )
147  call fstr_card_add( t, 'MPC', first=fstr_setup_mpc )
148 
149  ! Counted in the first reading to allocate the arrays they are stored in, and stored in the second reading.
150  ! !CONTACT also uses !CONTACT_ALGO, and !CONTACT_INTERFERENCE refers to the pairs of !CONTACT.
151  call fstr_card_add( t, 'ORIENTATION', second=fstr_setup_orientation )
152  call fstr_card_add( t, 'CONTACT', second=fstr_setup_contact, by_line=.true. )
153  call fstr_card_add( t, 'EMBED', second=fstr_setup_embed, by_line=.true. )
154  call fstr_card_add( t, 'CONTACT_INTERFERENCE', second=fstr_setup_contact_interference, by_line=.true. )
155  call fstr_card_add( t, 'CONTACT_PARAM', second=fstr_setup_contact_param )
156  call fstr_card_add( t, 'AUTOINC_PARAM', second=fstr_setup_autoinc_param )
157  call fstr_card_add( t, 'CONVERG_PARAM', second=fstr_setup_converg_param )
158  call fstr_card_add( t, 'TIME_POINTS', second=fstr_setup_time_points )
159  call fstr_card_add( t, 'INITIAL_CONDITION', second=fstr_setup_initial_condition )
160  call fstr_card_add( t, 'WELD_LINE', second=fstr_setup_weld_line )
161  call fstr_card_add( t, 'MATERIAL', second=fstr_setup_material )
162  ! !ISTEP also refers by name to !AUTOINC_PARAM, !CONVERG_PARAM and !TIME_POINTS read before it.
163  ! !STEP of !VERSION 0 is read in the first reading. !STEP of !VERSION 1 or later is a step like !ISTEP,
164  ! stored in the same array. !STEP of a negative !VERSION is not read, but is counted as a step in the first reading.
165  call fstr_card_add( t, 'ISTEP', second=fstr_setup_istep, seq='steps' )
166  call fstr_card_add( t, 'STEP', first=fstr_setup_step, version_min=0, version_max=0 )
167  call fstr_card_add( t, 'STEP', second=fstr_setup_step_store, seq='steps', version_min=1 )
168  call fstr_card_add( t, 'STEP', seq='steps', version_max=-1 )
169 
170  ! Read in the second reading to refer by name to the cards of the second reading read before them:
171  ! !SECTION to !ORIENTATION, and !HEAT to !TIME_POINTS
172  call fstr_card_add( t, 'SECTION', second=fstr_setup_section )
173  call fstr_card_add( t, 'HEAT', second=fstr_setup_heat )
174 
175  ! Stored in the output controls that fstr_setup_prepare allocates.
176  ! !WRITE also sets the output flags in the first reading.
177  call fstr_card_add( t, 'WRITE', first=fstr_setup_write_flags, second=fstr_setup_write_store )
178  call fstr_card_add( t, 'OUTPUT_RES', second=fstr_setup_output_res )
179  call fstr_card_add( t, 'OUTPUT_VIS', second=fstr_setup_output_vis )
180 
181  ! Stored in the material of the last !MATERIAL
182  call fstr_card_add( t, 'ELASTIC', second=fstr_setup_elastic )
183  call fstr_card_add( t, 'PLASTIC', second=fstr_setup_plastic )
184  call fstr_card_add( t, 'HYPERELASTIC', second=fstr_setup_hyperelastic )
185  call fstr_card_add( t, 'VISCOELASTIC', second=fstr_setup_viscoelastic )
186  call fstr_card_add( t, 'TRS', second=fstr_setup_trs )
187  call fstr_card_add( t, 'CREEP', second=fstr_setup_creep )
188  call fstr_card_add( t, 'DENSITY', second=fstr_setup_density )
189  call fstr_card_add( t, 'EXPANSION_COEF', second=fstr_setup_expansion_coeff )
190  call fstr_card_alias( t, 'EXPANSION_COEFF', 'EXPANSION_COEF' )
191  call fstr_card_alias( t, 'EXPANSION', 'EXPANSION_COEF' )
192  call fstr_card_add( t, 'DAMPING', second=fstr_setup_damping )
193  call fstr_card_add( t, 'FLUID', second=fstr_setup_fluid )
194  call fstr_card_add( t, 'SPRING_D', second=fstr_setup_spring_d )
195  call fstr_card_add( t, 'SPRING_A', second=fstr_setup_spring_a )
196  call fstr_card_add( t, 'DASHPOT_D', second=fstr_setup_dashpot_d )
197  call fstr_card_add( t, 'DASHPOT_A', second=fstr_setup_dashpot_a )
198  call fstr_card_add( t, 'USER_MATERIAL', second=fstr_setup_user_material )
199 
200  ! Read in the second reading
201  call fstr_card_add( t, 'ELEMOPT', second=fstr_setup_elemopt )
202  call fstr_card_add( t, 'ULOAD', second=fstr_setup_uload )
203  end subroutine fstr_setup_cards
204 
206  function fstr_setup_card_counts( T, total ) result( counts )
207  implicit none
208  type(fstr_card_table), intent(in) :: t
209  integer(kind=kint), intent(in) :: total(:)
210  type(fstr_setup_counts) :: counts
211 
212  counts%contact_pairs = fstr_card_total( t, total, 'CONTACT' )
213  counts%embed_pairs = fstr_card_total( t, total, 'EMBED' )
214  counts%contact_interferences = fstr_card_total( t, total, 'CONTACT_INTERFERENCE' )
215  counts%contact_params = fstr_card_total( t, total, 'CONTACT_PARAM' )
216  counts%weld_lines = fstr_card_total( t, total, 'WELD_LINE' )
217  counts%initial_conditions = fstr_card_total( t, total, 'INITIAL_CONDITION' )
218  counts%steps = fstr_card_total( t, total, 'steps' )
219  counts%local_coords = fstr_card_total( t, total, 'ORIENTATION' )
220  counts%autoinc_params = fstr_card_total( t, total, 'AUTOINC_PARAM' )
221  counts%converg_params = fstr_card_total( t, total, 'CONVERG_PARAM' )
222  counts%time_points = fstr_card_total( t, total, 'TIME_POINTS' )
223  counts%materials = fstr_card_total( t, total, 'MATERIAL' )
224  end function fstr_setup_card_counts
225 
233  subroutine fstr_setup_read_cards( ctrl, T, ipass, total, P )
234  implicit none
235  integer(kind=kint) :: ctrl
236  type(fstr_card_table), intent(in) :: T
237  integer(kind=kint), intent(in) :: ipass
238  integer(kind=kint), intent(inout) :: total(:)
239  type(fstr_param_pack) :: P
240 
241  integer(kind=kint) :: ctrl_list(20), ictrl, rcode, ierror, k, s
242  integer(kind=kint) :: pos(size(total))
243  character(len=HECMW_NAME_LEN) :: header_name
244  character(len=HECMW_FILENAME_LEN) :: input_filename
245 
246  pos(:) = 0
247  ctrl_list = 0
248  ictrl = 1
249  do
250  rcode = fstr_ctrl_get_c_h_name( ctrl, header_name, hecmw_name_len )
251  if( header_name == '!INCLUDE' ) then
252  ctrl_list(ictrl) = ctrl
253  input_filename = ""
254  ierror = fstr_ctrl_get_param_ex( ctrl, 'INPUT ', '# ', 0, 'F', input_filename )
255  ctrl = fstr_ctrl_open( input_filename )
256  if( ctrl < 0 ) then
257  write(*,*) '### Error: Cannot open FSTR control file : ', input_filename
258  write(ilog,*) '### Error: Cannot open FSTR control file : ', input_filename
259  stop hecmw_exit_input
260  end if
261  ictrl = ictrl + 1
262  cycle
263  else if( header_name == '!END' ) then
264  exit
265  end if
266 
267  k = fstr_card_find( t, header_name(2:), p%STATE%version )
268  if( k > 0 ) then
269  if( ipass == 1 .or. associated(t%card(k)%second) ) then
270  s = t%card(k)%seq
271  p%STATE%slot%first = pos(s) + 1
272  if( t%card(k)%by_line ) then
273  pos(s) = pos(s) + fstr_ctrl_get_data_line_n( ctrl )
274  else
275  pos(s) = pos(s) + 1
276  endif
277  p%STATE%slot%last = pos(s)
278  if( ipass == 2 .and. pos(s) > total(s) ) call fstr_setup_util_err_stop( '### Error: '// &
279  trim(header_name)//' : more than counted in the first reading of the control file' )
280  if( ipass == 1 .and. associated(t%card(k)%first) ) call t%card(k)%first( ctrl, p )
281  if( ipass == 2 ) call t%card(k)%second( ctrl, p )
282  endif
283  endif
284 
285  ! next
286  if( fstr_ctrl_seek_next_header(ctrl) == 0 )then
287  if( ictrl == 1 )then
288  exit
289  else
290  ierror= fstr_ctrl_close( ctrl )
291  ictrl = ictrl - 1
292  ctrl = ctrl_list(ictrl)
293  if( fstr_ctrl_seek_next_header(ctrl) == 0 ) exit
294  endif
295  endif
296  end do
297  if( ipass == 1 ) total(:) = pos(:)
298  end subroutine fstr_setup_read_cards
299 
300  subroutine fstr_couple_finalize( C )
301  implicit none
302  type( fstr_couple ) :: C
303  if(associated(c%coupled_node)) deallocate(c%coupled_node)
304  if(associated(c%trac)) deallocate(c%trac)
305  if(associated(c%disp)) deallocate(c%disp)
306  if(associated(c%velo)) deallocate(c%velo)
307  if(associated(c%accel)) deallocate(c%accel)
308  if(associated(c%index)) deallocate(c%index)
309  end subroutine fstr_couple_finalize
310 
311 end module m_fstr_setup
int fstr_ctrl_get_param_ex(int *ctrl, const char *param_name, const char *value_list, int *necessity, char *type, void *val)
int fstr_ctrl_open(char *filename)
int fstr_ctrl_get_c_h_name(int *ctrl, char *header_name, int *buff_size)
This module contains fstr control file data obtaining functions.
This module contains control file data obtaining functions for dynamic analysis.
This module contains control file data obtaining functions for dynamic analysis.
This module contains control file data obtaining functions for heat conductive analysis.
This module manages read in of various material properties.
This module contains control file data obtaining functions for static analysis.
This module contains auxiliary functions in calculation setup.
subroutine fstr_setup_visualize(ctrl, hecMESH)
subroutine fstr_card_add(T, name, first, second, by_line, seq, version_min, version_max)
Adds a card to the table T, read by first in the first reading and by second in the second reading....
subroutine fstr_setup_util_err_stop(msg)
integer(kind=kint) function fstr_card_find(T, name, version)
Index of the row of the card name for !VERSION version in the table T, or 0 if there is none.
subroutine fstr_card_alias(T, alias, name)
Adds alias to the table T as another name of the card name.
integer(kind=kint) function fstr_card_total(T, total, seq)
Total of the sequence named seq, from the totals of the sequences of the table T. Stops if the sequen...
This module contains auxiliary functions in calculation setup.
subroutine node_grp_name_to_id_ex(hecMESH, header_name, n, grp_id_name, grp_ID)
subroutine surf_grp_name_to_id_ex(hecMESH, header_name, n, grp_id_name, grp_ID)
logical function hecmw_streqr(s1, s2)
subroutine elem_grp_name_to_id_ex(hecMESH, header_name, n, grp_id_name, grp_ID)
This module provides subroutines to initialize, allocate and finalize fstr_dynamic,...
subroutine fstr_setup_dynamic(ctrl, P)
Read in !DYNAMIC !
This module provides subroutines to initialize fstr_eigen and to read !EIGEN into it.
subroutine fstr_setup_eigen(ctrl, P)
Read in !EIGEN !
This module provides subroutines to read the cards of frequency response analysis into fstr_freqanaly...
subroutine fstr_setup_facceleration(ctrl, P)
Read in !FACCELERATION !
subroutine fstr_setup_fload(ctrl, P)
Read in !FLOAD !
subroutine fstr_setup_eigenread(ctrl, P)
Read in !EIGENREAD !
This module provides subroutines to initialize fstr_heat and to read the cards of heat analysis into ...
subroutine fstr_setup_sfilm(ctrl, P)
Read in !SFILM !
subroutine fstr_setup_sradiate(ctrl, P)
Read in !SRADIATE !
subroutine fstr_setup_dflux(ctrl, P)
Read in !DFLUX !
subroutine fstr_setup_cflux(ctrl, P)
Read in !CFLUX !
subroutine fstr_setup_heat(ctrl, P)
Read in !HEAT !
subroutine fstr_setup_sflux(ctrl, P)
Read in !SFLUX !
subroutine fstr_setup_film(ctrl, P)
Read in !FILM !
subroutine fstr_setup_radiate(ctrl, P)
Read in !RADIATE !
subroutine fstr_setup_fixtemp(ctrl, P)
Read in !FIXTEMP !
subroutine fstr_setup_weld_line(ctrl, P)
Read in !WELD_LINE !
This module provides subroutines to read the cards that go into fstr_param, and the cards that go int...
subroutine fstr_setup_converg_param(ctrl, P)
Read in !CONVERG_PARAM !
subroutine fstr_setup_echo(ctrl, P)
Read in !ECHO !
subroutine fstr_setup_contactalgo(ctrl, P)
Read in !CONTACT !
subroutine fstr_setup_restart(ctrl, P)
Read in !RESTART !
subroutine fstr_setup_mpc(ctrl, P)
Read in !MPC !
subroutine fstr_setup_output_sstype(ctrl, P)
Read in !OUTPUT_SSTYPE !
subroutine fstr_setup_contact_interference(ctrl, P)
Read in !CONTACT_INTERFERENCE !
subroutine fstr_setup_amplitude(ctrl, P)
Read in !AMPLITUDE !
subroutine fstr_setup_solution(ctrl, P)
Read in !SOLUTION !
subroutine fstr_setup_time_points(ctrl, P)
Read in !TIME_POINTS !
subroutine fstr_setup_version(ctrl, P)
Read in !VERSION !
subroutine fstr_setup_contact_param(ctrl, P)
Read in !CONTACT_PARAM !
subroutine fstr_setup_autoinc_param(ctrl, P)
Read in !AUTOINC_PARAM !
subroutine fstr_setup_initial_condition(ctrl, P)
Read in !INITIAL_CONDITION.
subroutine fstr_setup_nonlinear_solver(ctrl, P)
Read in !NONLINEAR_SOLVER !
subroutine fstr_setup_reftemp(ctrl, P)
Read in !REFTEMP !
subroutine fstr_setup_solver(ctrl, P)
Read in !SOLVER !
subroutine fstr_setup_orientation(ctrl, P)
Read in !ORIENTATION.
This module provides subroutines to process the data read from the cards, independently of the input ...
subroutine fstr_setup_prepare(P, counts)
Allocation and preparation after the cards are counted: the arrays sized by counts,...
subroutine fstr_setup_finish(P, counts)
Processing after all the cards are read: the temperature arrays, the default step,...
This module provides functions to read in data from control file and do necessary preparation for fol...
Definition: fstr_setup.f90:7
subroutine fstr_setup(cntl_filename, hecMESH, hecMAT, fstrPARAM, fstrSOLID, fstrEIG, fstrHEAT, fstrDYNAMIC, fstrCPL, fstrFREQ)
Read in and initialize control data !
Definition: fstr_setup.f90:43
subroutine fstr_couple_finalize(C)
Definition: fstr_setup.f90:301
subroutine fstr_setup_cards(T)
Adds the cards of the control file to the table T, by the names without the '!' of the header....
Definition: fstr_setup.f90:103
subroutine fstr_setup_read_cards(ctrl, T, ipass, total, P)
Reads the cards of the control file in order, opening the files of !INCLUDE and stopping at !...
Definition: fstr_setup.f90:234
type(fstr_setup_counts) function fstr_setup_card_counts(T, total)
Counts for fstr_setup_prepare, from the totals of the sequences of the table T in the first reading.
Definition: fstr_setup.f90:207
This module provides subroutines to initialize, allocate and finalize fstr_solid, and to read the car...
subroutine fstr_setup_dashpot_a(ctrl, P)
Read in !DASHPOT_A !
subroutine fstr_setup_plastic(ctrl, P)
Read in !PLASTIC !
subroutine fstr_setup_material(ctrl, P)
Read in !MATERIAL !
subroutine fstr_setup_trs(ctrl, P)
Read in !TRS !
subroutine fstr_setup_spring_d(ctrl, P)
Read in !SPRING_D !
subroutine fstr_setup_acceleration(ctrl, P)
Read in !ACCELERATION !
subroutine fstr_setup_elemopt(ctrl, P)
Read in !ELEMOPT !
subroutine fstr_setup_output_vis(ctrl, P)
Read in !OUTPUT_VIS !
subroutine fstr_setup_output_res(ctrl, P)
Read in !OUTPUT_RES !
subroutine fstr_setup_step_store(ctrl, P)
Read in !STEP !
subroutine fstr_setup_creep(ctrl, P)
Read in !CREEP !
subroutine fstr_setup_boundary(ctrl, P)
Read in !BOUNDARY !
subroutine fstr_setup_damping(ctrl, P)
Read in !DAMPING !
subroutine fstr_setup_expansion_coeff(ctrl, P)
Read in !EXPANSION_COEF !
subroutine fstr_setup_viscoelastic(ctrl, P)
Read in !VISCOELASTIC !
subroutine fstr_setup_density(ctrl, P)
Read in !DENSITY !
subroutine fstr_setup_fluid(ctrl, P)
Read in !FLUID !
subroutine fstr_setup_step(ctrl, P)
Read in !STEP !
subroutine fstr_setup_section(ctrl, P)
Read in !SECTION !
subroutine fstr_setup_istep(ctrl, P)
Read in !ISTEP !
subroutine fstr_setup_user_material(ctrl, P)
Read in !USER_MATERIAL !
subroutine fstr_setup_dload(ctrl, P)
Read in !DLOAD.
subroutine fstr_setup_cload(ctrl, P)
Read in !CLOAD !
subroutine fstr_setup_spring_a(ctrl, P)
Read in !SPRING_A !
subroutine fstr_setup_write_store(ctrl, P)
Read in !WRITE after fstr_setup_prepare and store the output controls. fg_result and fg_visual are se...
subroutine fstr_setup_spring(ctrl, P)
Read in !SPRING !
subroutine fstr_setup_contact(ctrl, P)
Read in !CONTACT !
subroutine fstr_setup_dashpot_d(ctrl, P)
Read in !DASHPOT_D !
subroutine fstr_setup_embed(ctrl, P)
Read in !EMBED !
subroutine fstr_setup_static(ctrl, P)
Read in !STATIC(old) !
subroutine fstr_setup_write_flags(ctrl, P)
Read in !WRITE before fstr_setup_prepare and set fg_result and fg_visual.
subroutine fstr_setup_element_activation(ctrl, P)
Read in !ELEMENT_ACTIVATION.
subroutine fstr_setup_temperature(ctrl, P)
Read in !TEMPERATURE !
subroutine fstr_setup_velocity(ctrl, P)
Read in !VELOCITY !
subroutine fstr_setup_uload(ctrl, P)
Read in !ULOAD !
subroutine fstr_setup_couple(ctrl, P)
Read in !COUPLE !
subroutine fstr_setup_elastic(ctrl, P)
Read in !ELASTIC !
subroutine fstr_setup_hyperelastic(ctrl, P)
Read in !HYPERELASTIC !
This module defines common data and basic structures for analysis.
Definition: m_fstr.F90:15
integer(kind=kint), parameter kon
Definition: m_fstr.F90:33
integer(kind=kint), parameter ilog
FILE HANDLER.
Definition: m_fstr.F90:118
integer(kind=kint), parameter kcaalagrange
Definition: m_fstr.F90:63
This module manages step information.
Definition: m_out.f90:6
This module provides a function to fetch material properties from hecmw.
This module manages step information.
Definition: m_step.f90:6
This module provides aux functions.
Definition: utilities.f90:6
This module manage the parameters for contact calculation.
Table of the cards of the control file, not changed after the cards are added. Each card is counted i...
Package of all data needs to initialize.
Data for coupling analysis.
Definition: m_fstr.F90:642
Data for DYNAMIC ANSLYSIS (fstrDYNAMIC)
Definition: m_fstr.F90:525
Package of data used by Lanczos eigenvalue solver.
Definition: m_fstr.F90:623
Data for HEAT ANSLYSIS (fstrHEAT)
Definition: m_fstr.F90:440
FSTR INNER CONTROL PARAMETERS (fstrPARAM)
Definition: m_fstr.F90:142
Counts of the input for fstr_setup_prepare and fstr_setup_finish, independent of the input file forma...