FrontISTR  5.7.1
Large-scale structural analysis program with finit element method
fstr_solve_eigen.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 !-------------------------------------------------------------------------------
7 contains
8 
10  subroutine fstr_solve_eigen( hecMESH, hecMAT, fstrEIG, fstrSOLID, &
11  & fstrRESULT, fstrPARAM, hecLagMAT)
12  use hecmw_util
13  use m_fstr
15  use m_fstr_addbc
19  use m_static_lib
21  use m_fstr_spring
22 
23  implicit none
24 
25  type(hecmwst_local_mesh) :: hecMESH
26  type(hecmwst_matrix) :: hecMAT
27  type(fstr_solid) :: fstrSOLID
28  type(hecmwst_result_data) :: fstrRESULT
29  type(fstr_param) :: fstrPARAM
30  type(fstr_eigen) :: fstrEIG
31  type(hecmwst_matrix_lagrange) :: hecLagMAT
32 
33  type(hecmwst_local_mesh), pointer :: hecMESHmpc
34  type(hecmwst_matrix), pointer :: hecMATmpc
35  real(kind=kreal) :: t1, t2
36 
37  t1 = hecmw_wtime()
38 
39  call hecmw_mpc_mat_init(hecmesh, hecmat, hecmeshmpc, hecmatmpc)
40 
41  fstrsolid%dunode = 0.0d0
42  call fstr_stiffmatrix(hecmesh, hecmat, fstrsolid, 0.0d0, 0.0d0)
43  call fstr_addspring(1, hecmesh, hecmat, fstrsolid, fstrparam)
44 
45  call fstr_addbc(1, hecmesh, hecmat, fstrsolid, fstrparam, heclagmat, 2)
46  call hecmw_mpc_mat_ass(hecmesh, hecmat, hecmeshmpc, hecmatmpc)
47  call hecmw_mpc_trans_rhs(hecmesh, hecmat, hecmatmpc)
48 
49  call setmass(fstrsolid, hecmesh, hecmat, fstreig)
50  call hecmw_mpc_trans_mass(hecmesh, hecmat, fstreig%mass)
51 
52  call fstr_solve_lanczos(hecmeshmpc, hecmatmpc, fstrsolid, fstreig)
53 
54  call hecmw_mpc_tback_eigvec(hecmesh, hecmat, fstreig%iter, fstreig%eigvec)
55 
56  call fstr_eigen_output(hecmesh, hecmat, fstreig)
57 
58  call fstr_eigen_make_result(hecmesh, hecmat, fstreig, fstrresult)
59 
60  call hecmw_mpc_mat_finalize(hecmesh, hecmat, hecmeshmpc, hecmatmpc)
61 
62  t2 = hecmw_wtime()
63 
64  if(myrank == 0)then
65  write(imsg,'("### FSTR_SOLVE_EIGEN FINISHED!")')
66  write(*,'("### FSTR_SOLVE_EIGEN FINISHED!")')
67  endif
68 
69  end subroutine fstr_solve_eigen
70 end module m_fstr_solve_eigen
I/O and Utility.
Definition: hecmw_util_f.F90:7
integer(kind=4), parameter kreal
real(kind=kreal) function hecmw_wtime()
This module provides a function to deal with prescribed displacement.
Definition: fstr_AddBC.f90:7
subroutine fstr_addbc(cstep, hecMESH, hecMAT, fstrSOLID, fstrPARAM, hecLagMAT, iter, conMAT, RHSvector)
Add Essential Boundary Conditions.
Definition: fstr_AddBC.f90:14
Lanczos iteration calculation.
subroutine fstr_solve_lanczos(hecMESH, hecMAT, fstrSOLID, fstrEIG)
SOLVE EIGENVALUE PROBLEM.
subroutine fstr_eigen_make_result(hecMESH, hecMAT, fstrEIG, fstrRESULT)
subroutine fstr_eigen_output(hecMESH, hecMAT, fstrEIG)
Set up lumped mass matrix.
subroutine setmass(fstrSOLID, hecMESH, hecMAT, fstrEIG)
This module provides a function to control eigen analysis.
subroutine fstr_solve_eigen(hecMESH, hecMAT, fstrEIG, fstrSOLID, fstrRESULT, fstrPARAM, hecLagMAT)
solve eigenvalue probrem
This module provides functions to deal with spring force.
Definition: fstr_Spring.f90:7
subroutine fstr_addspring(cstep, hecMESH, hecMAT, fstrSOLID, fstrPARAM)
Definition: fstr_Spring.f90:12
This module provides function to calculate tangent stiffness matrix.
subroutine, public fstr_stiffmatrix(hecMESH, hecMAT, fstrSOLID, time, tincr)
This subroutine creates tangential stiffness matrix.
This module defines common data and basic structures for analysis.
Definition: m_fstr.f90:15
integer(kind=kint) myrank
PARALLEL EXECUTION.
Definition: m_fstr.f90:96
integer(kind=kint), parameter imsg
Definition: m_fstr.f90:110
HECMW to FSTR Mesh Data Converter. Converting Connectivity of Element Type 232, 342 and 352.
This modules just summarizes all modules used in static analysis.
Definition: static_LIB.f90:6
Structure for Lagrange multiplier-related part of stiffness matrix (Lagrange multiplier-related matri...
Package of data used by Lanczos eigenvalue solver.
Definition: m_fstr.f90:594
FSTR INNER CONTROL PARAMETERS (fstrPARAM)
Definition: m_fstr.f90:154