modal_response Interface

public interface modal_response

Contents


Module Procedures

private pure subroutine modal_response_dense(mass, stiff, freqs, modeshapes)

Computes the modal frequencies and modes shapes for multi-degree-of-freedom system. The generalized eigenproblem is

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in), dimension(:,:) :: mass

The N-by-N mass matrix for the system. This matrix must be symmetric.

real(kind=real64), intent(in), dimension(:,:) :: stiff

The N-by-N stiffness matrix for the system. This matrix must be symmetric.

real(kind=real64), intent(out), allocatable, dimension(:) :: freqs

An allocatable N-element array where the modal frequencies will be returned in ascending order with units of rad/s.

real(kind=real64), intent(out), optional, allocatable, dimension(:,:) :: modeshapes

An optional, allocatable N-by-N matrix where the N mode shapes for the system will be returned. The mode shapes are stored in columns.

private subroutine modal_response_sparse(mass, stiff, nmodes, freqs, modeshapes)

Computes selected modal frequencies and mode shapes for a multi-degree-of-freedom system using CSR sparse matrices. The generalized eigenproblem is

Arguments

Type IntentOptional Attributes Name
type(csr_matrix), intent(in) :: mass

The N-by-N symmetric positive-definite mass matrix.

type(csr_matrix), intent(in) :: stiff

The N-by-N symmetric stiffness matrix.

integer(kind=int32), intent(in) :: nmodes

The number of lowest-frequency modes to compute. This value must be greater than zero and less than N.

real(kind=real64), intent(out), allocatable, dimension(:) :: freqs

An allocatable NMODES-element array containing the modal frequencies in ascending order with units of rad/s.

real(kind=real64), intent(out), optional, allocatable, dimension(:,:) :: modeshapes

An optional, allocatable N-by-NMODES matrix containing one mode shape per column.