FEDEM Solver
R8.0
Source code of the dynamics solver
|
Module with subroutines for damper calculations. More...
Functions/Subroutines | |
subroutine | updatedampers (dampers, timeStep, restart, ierr, updateLV, updateVar) |
Updates all axial- and joint dampers in the model. More... | |
subroutine, private | calcdamperforces (damper, eV) |
Calculates system force vector contributions from a damper element. More... | |
subroutine | addindamperforces (FD, RF, damper, sam, ierr) |
Assembles system force vector contributions from a damper element. More... | |
subroutine | addindampermat (includeStressStiff, scaleC, scaleK, Nmat, damper, sam, ierr, Rhs) |
Assembles system damping matrix contributions from a damper element. More... | |
Module with subroutines for damper calculations.
This module contains a set of subroutines for performing various computation tasks on the dampertypemodule::dampertype objects in the model (axial- and joint dampers) during the dynamic or quasi-static simulation.
subroutine damperroutinesmodule::addindamperforces | ( | real(dp), dimension(:), intent(inout) | FD, |
real(dp), dimension(:), intent(inout) | RF, | ||
type(dampertype), intent(in) | damper, | ||
type(samtype), intent(in) | sam, | ||
integer, intent(inout) | ierr | ||
) |
Assembles system force vector contributions from a damper element.
FD | System damping force vector | |
RF | System reaction forces associated with constrained DOFs | |
[in] | damper | The damper element to calculate damping forces for |
[in] | sam | Data for managing system matrix assembly |
[out] | ierr | Error flag |
subroutine damperroutinesmodule::addindampermat | ( | logical, intent(in) | includeStressStiff, |
real(dp), intent(in) | scaleC, | ||
real(dp), intent(in) | scaleK, | ||
type(sysmatrixtype), intent(inout) | Nmat, | ||
type(dampertype), intent(in) | damper, | ||
type(samtype), intent(in) | sam, | ||
integer, intent(out) | ierr, | ||
real(dp), dimension(:), intent(inout), optional | Rhs | ||
) |
Assembles system damping matrix contributions from a damper element.
[in] | includeStressStiff | If .true., include geometric stiffness |
[in] | scaleC | Damping matrix scaling factor |
[in] | scaleK | Stiffness matrix scaling factor |
Nmat | System newton matrix | |
[in] | damper | The damper element to calculate damping matrix for |
[in] | sam | Data for managing system matrix assembly |
[out] | ierr | Error flag |
Rhs | System right-hand-side vector associated with the Newton matrix |
This subroutine calculates the damping matrix for a damper element and adds it into the system Newton matrix, multiplied by a factor, scaleC.
|
private |
Calculates system force vector contributions from a damper element.
[in] | damper | The damper element to calculate damping forces for |
[out] | eV | Element damping force vector |
subroutine damperroutinesmodule::updatedampers | ( | type(dampertype), dimension(:), intent(inout) | dampers, |
real(dp), intent(in) | timeStep, | ||
logical, intent(in) | restart, | ||
integer, intent(inout) | ierr, | ||
logical, intent(in), optional | updateLV, | ||
logical, intent(in), optional | updateVar | ||
) |
Updates all axial- and joint dampers in the model.
dampers | All damper elements in the model | |
[in] | timeStep | Current time increment size |
[in] | restart | If .true., we are initializing after restart |
ierr | Error flag | |
[in] | updateLV | If .true., update axial damper lengths and velocities |
[in] | updateVar | If .true., update all other damper variables |
The updated length and velocity (and direction) for axial dampers are calculated first. Then all the remaining damper variables are updated. This is to ensure that sensors measuring damper length/velocity are up to date before they are used by engines. Note that for joint dampers, the damper length (and velocity unless deformational damper) coincide with the corresponding joint variables of the owner joint, and need therefore not to be updated here.