FrontISTR  6.0.0
Large-scale structural analysis program with finit element method
fstr_eigen_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 fstr_setup_util, only &
10  : fstr_param_pack &
12  use fstr_ctrl_eigen
13  implicit none
14 
15 contains
16 
18  subroutine fstr_eigen_init( fstrEIG )
19  implicit none
20  type(fstr_eigen) :: fstrEIG
21 
22  fstreig%nget = 5
23  fstreig%maxiter = 60
24  fstreig%iter = 0
25  !fstrEIG%sigma = 0.0d0
26  fstreig%sigma = 0.01d0
27  fstreig%tolerance = 1.0d-6
28  fstreig%totalmass = 0.0d0
29  end subroutine fstr_eigen_init
30 
31  subroutine fstr_eigen_finalize( fstrEIG )
32  implicit none
33  type(fstr_eigen) :: fstrEIG
34  if(associated(fstreig%eigval)) deallocate(fstreig%eigval)
35  if(associated(fstreig%eigvec)) deallocate(fstreig%eigvec)
36  if(associated(fstreig%resid)) deallocate(fstreig%resid)
37  if(associated(fstreig%filter)) deallocate(fstreig%filter)
38  if(associated(fstreig%mass)) deallocate(fstreig%mass)
39  if(associated(fstreig%effmass)) deallocate(fstreig%effmass)
40  if(associated(fstreig%partfactor)) deallocate(fstreig%partfactor)
41  end subroutine fstr_eigen_finalize
42 
43  !-----------------------------------------------------------------------------!
45  !-----------------------------------------------------------------------------!
46 
47  subroutine fstr_setup_eigen( ctrl, P )
48  implicit none
49  integer(kind=kint) :: ctrl
50  type(fstr_param_pack) :: P
51 
52  integer(kind=kint) :: rcode
53 
54  rcode = fstr_ctrl_get_eigen( ctrl, p%EIGEN%nget, p%EIGEN%tolerance, p%EIGEN%maxiter, p%EIGEN%sigma)
55  if( rcode /= 0) call fstr_ctrl_err_stop
56 
57  end subroutine fstr_setup_eigen
58 
59 end module m_fstr_eigen_setup
This module contains control file data obtaining functions for dynamic analysis.
integer(kind=kint) function fstr_ctrl_get_eigen(ctrl, nget, tolerance, maxiter, sigma)
Read in !EIGEN (struct)
This module contains auxiliary functions in calculation setup.
subroutine fstr_ctrl_err_stop
This module provides subroutines to initialize fstr_eigen and to read !EIGEN into it.
subroutine fstr_setup_eigen(ctrl, P)
Read in !EIGEN !
subroutine fstr_eigen_finalize(fstrEIG)
subroutine fstr_eigen_init(fstrEIG)
Initial setting of eigen ca;culation.
This module defines common data and basic structures for analysis.
Definition: m_fstr.F90:15
Package of all data needs to initialize.
Package of data used by Lanczos eigenvalue solver.
Definition: m_fstr.F90:623