|
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.