FEDEM Solver  R8.0
Source code of the dynamics solver
Functions/Subroutines
addinsysmodule Module Reference

Module with subroutines for system-level assembly. More...

Functions/Subroutines

subroutine buildnewtonmat (Nmat, scaleM, scaleC, scaleK, mech, sam, iter, stressStiffUpdateSkip, globalStressStiffIsOn, alpha2, ierr, Rhs)
 Builds the system Newton matrix. More...
 
subroutine buildmassmat (Mmat, mech, sam, ierr)
 Builds the system mass matrix. More...
 
subroutine builddampermat (Cmat, mech, sam, ierr)
 Builds the system damping matrix. More...
 
subroutine buildstiffmat (Kmat, mech, sam, iter, globalStressStiffIsOn, stressStiffUpdateSkip, ierr, Rhs)
 Builds the system stiffness matrix. More...
 
subroutine getforcevectors (FSk, FDk, FIk, Qk, RFk, sam, mech, istep, alpha2, ierr)
 Builds the system force vectors. More...
 
subroutine getstaticforcevectors (FSk, Qk, RFk, sam, mech, ierr)
 Builds the quasti-static system force vectors. More...
 

Detailed Description

Module with subroutines for system-level assembly.

This module contains subroutines for assembling the system left-hand-side matrices and associated right-hand-side force vectors of the linearized equation system.

Function/Subroutine Documentation

◆ builddampermat()

subroutine addinsysmodule::builddampermat ( type(sysmatrixtype), intent(inout)  Cmat,
type(mechanismtype), intent(in)  mech,
type(samtype), intent(in)  sam,
integer, intent(out)  ierr 
)

Builds the system damping matrix.

Parameters
CmatThe system damping matrix
[in]mechMechanism components of the model
[in]samData for managing system matrix assembly
[out]ierrError flag
Author
Knut Morten Okstad
Date
Jul 2002

◆ buildmassmat()

subroutine addinsysmodule::buildmassmat ( type(sysmatrixtype), intent(inout)  Mmat,
type(mechanismtype), intent(in)  mech,
type(samtype), intent(in)  sam,
integer, intent(out)  ierr 
)

Builds the system mass matrix.

Parameters
MmatThe system mass matrix
[in]mechMechanism components of the model
[in]samData for managing system matrix assembly
[out]ierrError flag
Author
Karl Erik Thoresen
Date
Aug 1999
Author
Knut Morten Okstad
Date
Jul 2002

◆ buildnewtonmat()

subroutine addinsysmodule::buildnewtonmat ( type(sysmatrixtype), intent(inout)  Nmat,
real(dp), intent(in)  scaleM,
real(dp), intent(in)  scaleC,
real(dp), intent(in)  scaleK,
type(mechanismtype), intent(inout)  mech,
type(samtype), intent(in)  sam,
integer, intent(in)  iter,
integer, intent(in)  stressStiffUpdateSkip,
logical, intent(in)  globalStressStiffIsOn,
real(dp), intent(in)  alpha2,
integer, intent(out)  ierr,
real(dp), dimension(:), intent(inout), optional  Rhs 
)

Builds the system Newton matrix.

Parameters
NmatThe system Newton matrix
[in]scaleMScaling factor for the system mass matrix
[in]scaleCScaling factor for the system damping matrix
[in]scaleKScaling factor for the system stiffness matrix
mechMechanism components of the model
[in]samData for managing system matrix assembly
[in]iterIteration counter
[in]stressStiffUpdateSkipNumber of initial iterations without stress stiffening in each time step
[in]globalStressStiffIsOnGlobal stress stiffening flag
[in]alpha2Stiffness-proportional damping factor for axial springs
[out]ierrError flag
RhsRight-hand-side force vector

The Newton matrix is a linear combination of the mass-, damping- and stiffness matrices, Nmat = scaleM*M + scaleC*C + scaleK*K. If Rhs is provided, contributions due to prescribed motions, if any, will be added.

Author
Karl Erik Thoresen
Date
Feb 1999
Author
Bjorn Haugen
Date
Des 2000
Author
Knut Morten Okstad
Date
Jul 2002

◆ buildstiffmat()

subroutine addinsysmodule::buildstiffmat ( type(sysmatrixtype), intent(inout)  Kmat,
type(mechanismtype), intent(inout)  mech,
type(samtype), intent(in)  sam,
integer, intent(in)  iter,
logical, intent(in)  globalStressStiffIsOn,
integer, intent(in)  stressStiffUpdateSkip,
integer, intent(out)  ierr,
real(dp), dimension(:), intent(inout), optional  Rhs 
)

Builds the system stiffness matrix.

Parameters
KmatThe system stiffness matrix
mechMechanism components of the model
[in]samData for managing system matrix assembly
[in]iterIteration counter (< 0 for eigenvalue analysis)
[in]globalStressStiffIsOnGlobal stress stiffening flag
[in]stressStiffUpdateSkipNumber of initial iterations without stress stiffening in each time step
[out]ierrError flag
RhsRight-hand-side force vector

If Rhs is provided, contributions due to prescribed motions, if any, will be added.

Author
Karl Erik Thoresen
Date
Aug 1999
Author
Knut Morten Okstad
Date
Jul 2002

◆ getforcevectors()

subroutine addinsysmodule::getforcevectors ( real(dp), dimension(:), intent(out)  FSk,
real(dp), dimension(:), intent(out)  FDk,
real(dp), dimension(:), intent(out)  FIk,
real(dp), dimension(:), intent(out)  Qk,
real(dp), dimension(:), intent(out)  RFk,
type(samtype), intent(in)  sam,
type(mechanismtype), intent(inout)  mech,
integer(i8), intent(in)  istep,
real(dp), intent(in)  alpha2,
integer, intent(out)  ierr 
)

Builds the system force vectors.

Parameters
[out]FSkInternal stiffness forces
[out]FDkInternal damping forces
[out]FIkInternal inertia forces
[out]QkExternal forces
[out]RFkReaction forces
[in]samData for managing system matrix assembly
mechMechanism components of the model
[in]istepTime increment counter
[in]alpha2Stiffness-proportional damping factor for axial springs
[out]ierrError flag

this subroutine puts forces from all mechanism components into the associated system force vectors.

Author
Ole Ivar Sivertsen
Date
19 Jan 1989
Author
Karl Erik Thoresen
Date
1999
Author
Bjorn Haugen
Date
2001
Author
Knut Morten Okstad
Date
Jun 2002

◆ getstaticforcevectors()

subroutine addinsysmodule::getstaticforcevectors ( real(dp), dimension(:), intent(out)  FSk,
real(dp), dimension(:), intent(out)  Qk,
real(dp), dimension(:), intent(out)  RFk,
type(samtype), intent(in)  sam,
type(mechanismtype), intent(inout)  mech,
integer, intent(out)  ierr 
)

Builds the quasti-static system force vectors.

Parameters
[out]FSkInternal stiffness forces
[out]QkExternal forces
[out]RFkReaction forces
[in]samData for managing system matrix assembly
mechMechanism components of the model
[out]ierrError flag

this subroutine puts static forces from all mechanism components into the associated system force vectors.

Author
Knut Morten Okstad
Date
Jun 2002