assemble_discrete_system Interface

public interface assemble_discrete_system

Contents


Module Procedures

private subroutine assemble_discrete_system_dense(gdof, masses, dampers, springs, nodes, m, c, k)

Assembles the dense global mass, damping, and stiffness matrices of a system composed of discrete elements. The mass, damping, and stiffness contributions of every element in each collection are assembled; therefore, any discrete element type may be supplied in any collection. A zero-sized array may be supplied for any collection that is not required.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: gdof

The total number of global degrees of freedom.

class(discrete_element), intent(in), dimension(:) :: masses

The mass elements to assemble.

class(discrete_element), intent(in), dimension(:) :: dampers

The damper elements to assemble.

class(discrete_element), intent(in), dimension(:) :: springs

The spring elements to assemble.

class(node), intent(in), dimension(:) :: nodes

The global node list.

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

The assembled gdof-by-gdof global mass matrix.

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

The assembled gdof-by-gdof global damping matrix.

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

The assembled gdof-by-gdof global stiffness matrix.

private subroutine assemble_discrete_system_csr(gdof, masses, dampers, springs, nodes, m, c, k)

Assembles the global mass, damping, and stiffness matrices, in CSR format, of a system composed of discrete elements. The mass, damping, and stiffness contributions of every element in each collection are assembled; therefore, any discrete element type may be supplied in any collection. A zero-sized array may be supplied for any collection that is not required.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: gdof

The total number of global degrees of freedom.

class(discrete_element), intent(in), dimension(:) :: masses

The mass elements to assemble.

class(discrete_element), intent(in), dimension(:) :: dampers

The damper elements to assemble.

class(discrete_element), intent(in), dimension(:) :: springs

The spring elements to assemble.

class(node), intent(in), dimension(:) :: nodes

The global node list.

type(csr_matrix), intent(out) :: m

The assembled gdof-by-gdof global mass matrix in CSR format.

type(csr_matrix), intent(out) :: c

The assembled gdof-by-gdof global damping matrix in CSR format.

type(csr_matrix), intent(out) :: k

The assembled gdof-by-gdof global stiffness matrix in CSR format.