|
FEDEM Solver
R8.0
Source code of the dynamics solver
|
Module with data types representing joint objects. More...
Data Types | |
| type | jmtriadtype |
| Data type representing a master triad in a joint. More... | |
| type | slavedoftype |
| Data type representing a slave DOF in a joint. More... | |
| type | jointdoftype |
| Data type representing a joint DOF. More... | |
| type | slidertype |
| Data type representing slide DOF in a multi-master joint. More... | |
| type | masterslavejointtype |
| Data type representing a master-slave-based joint. More... | |
| type | higherpairtype |
| Data type representing a higher pairs object. More... | |
| interface | getptrtoid |
| Returns pointer to object with specified ID. More... | |
| interface | getptrtoowner |
| Returns pointer to owner of specified object. More... | |
| interface | writeobject |
| Standard routine for writing an object to file. More... | |
| interface | deallocatejoints |
| Deallocates an array of objects. More... | |
| interface | updateatconvergence |
| Updates the state variables pertaining to previous time step. More... | |
| interface | restorefromlaststep |
| Restores the state variables from the last converged time step. More... | |
Functions/Subroutines | |
| type(masterslavejointtype) function, pointer, private | getptrtoidjoint (array, id, index, jointType) |
| Return pointer to (first) joint with specified id. More... | |
| type(masterslavejointtype) function, pointer, private | getptrtojointwithspring (array, spring) |
| Returns pointer to joint connected to given spring. More... | |
| type(masterslavejointtype) function, pointer, private | getptrtojointwithdamper (array, damper) |
| Return pointer to joint connected to given damper. More... | |
| subroutine, private | writejoint (joint, io, complexity) |
| Standard routine for writing an object to file. More... | |
| subroutine | nullifyjoint (joint) |
| Initializes a joint object. More... | |
| subroutine | nullifyjointdof (jointDof) |
| Initializes a joint DOF object. More... | |
| subroutine | deallocatejoint (joint) |
| Deallocates a joint object. More... | |
| subroutine | deallocatemasterslavejoints (joints) |
| Deallocates an array of joint objects. More... | |
| subroutine | deallocatehigherpairs (higherPairs) |
| Deallocates an array of higher pairs objects. More... | |
| subroutine | setjointsvelacc (joints, velGlobal, accGlobal) |
| Sets velocity/acceleration for all joint DOFs from system vectors. More... | |
| subroutine | getjointsvelacc (joints, velGlobal, accGlobal) |
| Fills system velocity/acceleration vectors with joint DOF values. More... | |
| real(dp) function | getjointvar (joint, dofInd, type) |
| Returns the current value of a joint variable. More... | |
| character(len=15+lid_p) function | getjointid (joint) |
| Returns the full id (type name, user id and description) of a joint. More... | |
| recursive integer function | getnumberofmasterdofs (joint) |
| Returns the total number of independent DOFs of a joint. More... | |
| recursive logical function | haszerovelacc (joint) |
| Checks if all joint DOFs have zero velocities and accelerations. More... | |
| real(dp) function, dimension(6) | transvslavetojoint (joint, u) |
| Transforms a vector to the joint DOF directions. More... | |
| subroutine, private | updatepreviousjointvalues (joint) |
| Updates the state variables pertaining to the previous time step. More... | |
| subroutine, private | restorepreviousjointvalues (joint) |
| Restores the state variables from the last converged time step. More... | |
Variables | |
| character(len=15), dimension(3), parameter | rotparamtypes_p = (/ 'FOLLOWER_AXIS ', 'ORTHOGONAL_AXIS', 'ROT_AXIS ' /) |
| Rotation formulation names. More... | |
| character(len=15), dimension(8), parameter | jointtypename_p = (/ 'Revolute joint ', 'Ball joint ', 'Rigid joint ', 'Free joint ', 'Prismatic joint', 'Cylindric joint', 'Cam joint ', 'Axial joint ' /) |
| Joint type names. More... | |
Module with data types representing joint objects.
The module also contains subroutines for accessing the joint data.
| subroutine masterslavejointtypemodule::deallocatehigherpairs | ( | type(higherpairtype), dimension(:), pointer | higherPairs | ) |
Deallocates an array of higher pairs objects.
| higherPairs | The masterslavejointtypemodule::higherpairttype objects to deallocate |
| subroutine masterslavejointtypemodule::deallocatejoint | ( | type(masterslavejointtype), intent(inout) | joint | ) |
Deallocates a joint object.
| joint | The masterslavejointtypemodule::masterslavejointtype object to deallocate |
| subroutine masterslavejointtypemodule::deallocatemasterslavejoints | ( | type(masterslavejointtype), dimension(:), pointer | joints | ) |
Deallocates an array of joint objects.
| joints | The masterslavejointtypemodule::masterslavejointtype objects to deallocate |
| character(len=15+lid_p) function masterslavejointtypemodule::getjointid | ( | type(masterslavejointtype), intent(in) | joint | ) |
Returns the full id (type name, user id and description) of a joint.
| [in] | joint | The joint to get the id for |

| subroutine masterslavejointtypemodule::getjointsvelacc | ( | type(masterslavejointtype), dimension(:), intent(in) | joints, |
| real(dp), dimension(:), intent(out) | velGlobal, | ||
| real(dp), dimension(:), intent(out) | accGlobal | ||
| ) |
Fills system velocity/acceleration vectors with joint DOF values.
| [in] | joints | All joints in the model |
| [out] | velGlobal | Global velocity vector |
| [out] | accGlobal | Global acceleration vector |

| real(dp) function masterslavejointtypemodule::getjointvar | ( | type(masterslavejointtype), intent(in) | joint, |
| integer, intent(in) | dofInd, | ||
| integer, intent(in) | type | ||
| ) |
Returns the current value of a joint variable.
| [in] | joint | The joint to get the id for |
| [in] | dofInd | Joint dof index |
| [in] | type | Type of the variable to return value for (1: displacement, 2: velocity, 3: acceleratuion) |

| recursive integer function masterslavejointtypemodule::getnumberofmasterdofs | ( | type(masterslavejointtype), intent(in) | joint | ) |
Returns the total number of independent DOFs of a joint.
| [in] | joint | The joint to get number of independent DOFs for |
This is a recursive function that works only after the joint chaining has been resolved.

|
private |
Return pointer to (first) joint with specified id.
| [in] | array | Array of masterslavejointtypemodule::masterslavejointtype objects to search within |
| [in] | id | Base ID of the object to search for |
| [out] | index | The array index of the found object |
| [in] | jointType | Specified joint type to search for |
If the joint is not found, NULL is returned. Optionally, the userID for a specified jointType is searched for (default is to search for baseID and any joint type).
|
private |
Return pointer to joint connected to given damper.
| [in] | array | Array of masterslavejointtypemodule::masterslavejointtype objects to search within |
| [in] | damper | The damper base object to search for within the joints |
If no joint has the given damper, NULL is returned.
|
private |
Returns pointer to joint connected to given spring.
| [in] | array | Array of masterslavejointtypemodule::masterslavejointtype objects to search within |
| [in] | spring | The spring base object to search for within the joints |
If no joint has the given spring, NULL is returned.
| recursive logical function masterslavejointtypemodule::haszerovelacc | ( | type(masterslavejointtype), intent(in) | joint | ) |
Checks if all joint DOFs have zero velocities and accelerations.
| [in] | joint | The joint to check for velocity/accelerations |
The function recursively checks all master- and slave DOFs in the joint and returns as soon a non-zero velocity or acceleration is found. The function works only after the joint chaining has been resolved.

| subroutine masterslavejointtypemodule::nullifyjoint | ( | type(masterslavejointtype), intent(out) | joint | ) |
Initializes a joint object.
| [out] | joint | The masterslavejointtypemodule::masterslavejointtype object to initialize |
| subroutine masterslavejointtypemodule::nullifyjointdof | ( | type(jointdoftype), intent(out) | jointDof | ) |
Initializes a joint DOF object.
| [out] | jointDof | The masterslavejointtypemodule::jointdoftype object to initialize |
|
private |
Restores the state variables from the last converged time step.
| joint | The joint to restore the state variables for |
This subroutine is invoked when doing iteration cut-back.
| subroutine masterslavejointtypemodule::setjointsvelacc | ( | type(masterslavejointtype), dimension(:), intent(inout) | joints, |
| real(dp), dimension(:), intent(in) | velGlobal, | ||
| real(dp), dimension(:), intent(in) | accGlobal | ||
| ) |
Sets velocity/acceleration for all joint DOFs from system vectors.
| joints | All joints in the model | |
| [in] | velGlobal | Global velocity vector |
| [in] | accGlobal | Global acceleration vector |

| real(dp) function, dimension(6) masterslavejointtypemodule::transvslavetojoint | ( | type(masterslavejointtype), intent(in) | joint, |
| real(dp), dimension(:), intent(in) | u | ||
| ) |
Transforms a vector to the joint DOF directions.
| [in] | joint | The joint to perform the transformation for |
| [in] | u | The vector to be transformed |
The vector u is transformed from the global directions in slave triad to the joint directions, accounting for possible eccentricity between the joint position and the slave triad position.

|
private |
Updates the state variables pertaining to the previous time step.
| joint | The joint to update the state variables for |
This subroutine is invoked once for each joint after convergence has been achieved.
|
private |
Standard routine for writing an object to file.
| [in] | joint | The masterslavejointtypemodule::masterslavejointtype object to write |
| [in] | io | File unit number to write to |
| [in] | complexity | If present, the value indicates the amount of print |
| character(len=15), dimension(8), parameter masterslavejointtypemodule::jointtypename_p = (/ 'Revolute joint ', 'Ball joint ', 'Rigid joint ', 'Free joint ', 'Prismatic joint', 'Cylindric joint', 'Cam joint ', 'Axial joint ' /) |
Joint type names.
| character(len=15), dimension(3), parameter masterslavejointtypemodule::rotparamtypes_p = (/ 'FOLLOWER_AXIS ', 'ORTHOGONAL_AXIS', 'ROT_AXIS ' /) |
Rotation formulation names.