FEDEM Solver
R8.0
Source code of the dynamics solver
|
Module with subroutines for contact element calculations. More...
Functions/Subroutines | |
integer function | getactivepointindex (cElem, cpIndex) |
subroutine, public | addincontactelementstiffmat (includeStressStiff, scaleK, Nmat, cElem, sam, ierr, Rhs) |
Calculates the stiffness matrix for each contact spring. More... | |
subroutine, public | addincontactelementdampermat (includeStressStiff, scaleC, scaleK, Nmat, cElem, sam, ierr, Rhs) |
Calculates the damping matrix for each contact damper. More... | |
subroutine, public | addincontactelementforces (F, RF, cElem, sam, ierr, addSprings, addDampers, addFriction) |
Calculates system force vector terms from a contact element. More... | |
subroutine, public | updatecontactelements (cElems, timeStep, ierr) |
Updates all contact elements. More... | |
subroutine | updatecontactposition (cElem, cSurf, lpu) |
Updates the local coordinates of the contact element follower. More... | |
subroutine | updatecontactvelecc (cElem, CP1, CP2) |
Updates the contact point velocities and eccentricty vectors. More... | |
subroutine | updatecontactsprdmp (cElem, timeStep, ierr) |
Updates the contact springs and dampers. More... | |
Variables | |
real(dp), parameter | epszero_p = 1.0e-15_dp |
Zero tolerance. More... | |
Module with subroutines for contact element calculations.
subroutine, public contactelementroutinesmodule::addincontactelementdampermat | ( | logical, intent(in) | includeStressStiff, |
real(dp), intent(in) | scaleC, | ||
real(dp), intent(in) | scaleK, | ||
type(sysmatrixtype), intent(inout) | Nmat, | ||
type(contactelementtype), intent(in) | cElem, | ||
type(samtype), intent(in) | sam, | ||
integer, intent(out) | ierr, | ||
real(dp), dimension(:), intent(inout), optional | Rhs | ||
) |
Calculates the damping matrix for each contact damper.
[in] | includeStressStiff | If .true., geometric stiffness is included |
[in] | scaleC | Damping scaling factor |
[in] | scaleK | Stiffness scaling factor |
Nmat | System matrix to add damping contributions into | |
[in] | cElem | The contact 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 Nmat |
The element damping matrix are added into the system Newton matrix, multiplied by the factor scaleC.
subroutine, public contactelementroutinesmodule::addincontactelementforces | ( | real(dp), dimension(:), intent(inout) | F, |
real(dp), dimension(:), intent(inout) | RF, | ||
type(contactelementtype), intent(in) | cElem, | ||
type(samtype), intent(in) | sam, | ||
integer, intent(inout) | ierr, | ||
logical, intent(in), optional | addSprings, | ||
logical, intent(in), optional | addDampers, | ||
logical, intent(in), optional | addFriction | ||
) |
Calculates system force vector terms from a contact element.
F | System right-hand-side vector | |
RF | Reaction for vector | |
[in] | cElem | The contact element to calculate forces for |
[in] | sam | Data for managing system matrix assembly |
[out] | ierr | Error flag |
[in] | addSprings | If .true., add forces from contact springs |
[in] | addDampers | If .true., add forces from contact dampers |
[in] | addFriction | If .true., add forces from contact friction |
The force terms are added into the system vector F and the reaction force vectos RF.
subroutine, public contactelementroutinesmodule::addincontactelementstiffmat | ( | logical, intent(in) | includeStressStiff, |
real(dp), intent(in) | scaleK, | ||
type(sysmatrixtype), intent(inout) | Nmat, | ||
type(contactelementtype), intent(in) | cElem, | ||
type(samtype), intent(in) | sam, | ||
integer, intent(out) | ierr, | ||
real(dp), dimension(:), intent(inout), optional | Rhs | ||
) |
Calculates the stiffness matrix for each contact spring.
[in] | includeStressStiff | If .true., geometric stiffness is included |
[in] | scaleK | Stiffness scaling factor |
Nmat | System matrix to add stiffness contributions into | |
[in] | cElem | The contact element to calculate stiffness matrix for |
[in] | sam | Data for managing system matrix assembly |
[out] | ierr | Error flag |
Rhs | System right-hand-side vector associated with Nmat |
The element stiffness matrix is added into the system Newton matrix, multiplied by the factor scaleK.
|
private |
subroutine, public contactelementroutinesmodule::updatecontactelements | ( | type(contactelementtype), dimension(:), intent(inout) | cElems, |
real(dp), intent(in) | timeStep, | ||
integer, intent(inout) | ierr | ||
) |
Updates all contact elements.
[in] | cElems | All contact elements of the model |
[in] | timeStep | Time increment size |
[out] | ierr | Error flag |
subroutine contactelementroutinesmodule::updatecontactposition | ( | type(contactelementtype), intent(inout) | cElem, |
type(glidercurvetype), intent(inout) | cSurf, | ||
integer, intent(in) | lpu | ||
) |
Updates the local coordinates of the contact element follower.
cElem | The contact element to update contact position for | |
cSurf | Contact surface associated with cElem | |
[in] | lpu | File unit number for res-file output |
The local coordinates are updates with respect to the contact surface. Then the associated velocities are computed.
subroutine contactelementroutinesmodule::updatecontactsprdmp | ( | type(contactelementtype), intent(inout) | cElem, |
real(dp), intent(in) | timeStep, | ||
integer, intent(inout) | ierr | ||
) |
Updates the contact springs and dampers.
cElem | The contact element to update | |
[in] | timeStep | Time increment size |
ierr | Error flag |
|
private |
Updates the contact point velocities and eccentricty vectors.
cElem | The contact element to update velocity and eccentricity for | |
[in] | CP1 | First point of the glider curve segment |
[in] | CP2 | Second point of the glider curve segment |
The contact point velocity is computed from the follower triad. The eccentricity vectors are computed from the glider triad positions.
|
private |
Zero tolerance.