FEDEM Solver
R8.0
Source code of the dynamics solver
|
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... | |
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.
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.
Cmat | The system damping matrix | |
[in] | mech | Mechanism components of the model |
[in] | sam | Data for managing system matrix assembly |
[out] | ierr | Error flag |
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.
Mmat | The system mass matrix | |
[in] | mech | Mechanism components of the model |
[in] | sam | Data for managing system matrix assembly |
[out] | ierr | Error flag |
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.
Nmat | The system Newton matrix | |
[in] | scaleM | Scaling factor for the system mass matrix |
[in] | scaleC | Scaling factor for the system damping matrix |
[in] | scaleK | Scaling factor for the system stiffness matrix |
mech | Mechanism components of the model | |
[in] | sam | Data for managing system matrix assembly |
[in] | iter | Iteration counter |
[in] | stressStiffUpdateSkip | Number of initial iterations without stress stiffening in each time step |
[in] | globalStressStiffIsOn | Global stress stiffening flag |
[in] | alpha2 | Stiffness-proportional damping factor for axial springs |
[out] | ierr | Error flag |
Rhs | Right-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.
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.
Kmat | The system stiffness matrix | |
mech | Mechanism components of the model | |
[in] | sam | Data for managing system matrix assembly |
[in] | iter | Iteration counter (< 0 for eigenvalue analysis) |
[in] | globalStressStiffIsOn | Global stress stiffening flag |
[in] | stressStiffUpdateSkip | Number of initial iterations without stress stiffening in each time step |
[out] | ierr | Error flag |
Rhs | Right-hand-side force vector |
If Rhs is provided, contributions due to prescribed motions, if any, will be added.
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.
[out] | FSk | Internal stiffness forces |
[out] | FDk | Internal damping forces |
[out] | FIk | Internal inertia forces |
[out] | Qk | External forces |
[out] | RFk | Reaction forces |
[in] | sam | Data for managing system matrix assembly |
mech | Mechanism components of the model | |
[in] | istep | Time increment counter |
[in] | alpha2 | Stiffness-proportional damping factor for axial springs |
[out] | ierr | Error flag |
this subroutine puts forces from all mechanism components into the associated system force vectors.
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.
[out] | FSk | Internal stiffness forces |
[out] | Qk | External forces |
[out] | RFk | Reaction forces |
[in] | sam | Data for managing system matrix assembly |
mech | Mechanism components of the model | |
[out] | ierr | Error flag |
this subroutine puts static forces from all mechanism components into the associated system force vectors.