FEDEM Solver
R8.0
Source code of the dynamics solver
|
Module with data types representing superelement objects. More...
Data Types | |
type | generalizeddofs |
Data type for the generalized DOFs associated with component modes. More... | |
type | nonlinforcestifftype |
Data type for the nonlinear force-displacement representation. More... | |
type | hydrodyntype |
Data type for the hydrodynamic force calculation. More... | |
type | recoverytype |
Data type for the integrated stress recovery. More... | |
type | supeltype |
Data type representing a superelement object. More... | |
type | supelptrtype |
Data type representing a superelement pointer. More... | |
interface | getptrtoid |
Returns pointer to object with specified ID. More... | |
interface | writeobject |
Standard routine for writing an object to file. 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(supeltype) function, pointer, private | getptrtoidsupel (array, id, userId) |
Returns pointer to (first) superelement with specified ID. More... | |
subroutine, private | writesupeltype (sup, io, complexity) |
Standard routine for writing an object to file. More... | |
subroutine | nullifysupel (sup) |
Initializes a superelement object. More... | |
subroutine | initiatehydyn (hydyn, MorPar) |
Initiates the hydrodynamics quantities for a superelement. More... | |
subroutine | transformoffset (sup, offset, index) |
Transforms a reference triad offset vector. More... | |
subroutine | deallocatesupel (sup) |
Deallocates a superelement object. More... | |
subroutine | deallocatesupels (sups) |
Deallocates an array of superelement objects. More... | |
subroutine | updatesupelcorot (sup, dbgUnit, stat) |
Updates the co-rotated system for a superelement. More... | |
subroutine, private | updatepreviousvalues (sup) |
Updates the state variables pertaining to the previous time step. More... | |
subroutine, private | restorepreviousvalues (sup) |
Restores the state variables from the last converged time step. More... | |
subroutine | buildfinit (sup) |
Establishes the deformation vector (finit) for a superelement. More... | |
real(dp) function, dimension(3, 3) | getrsuptosys (sup, n) |
Returns the transformation matrix to system directions for a triad. More... | |
subroutine | getsupelsvelacc (sups, velGlobal, accGlobal) |
Gets current velocity and acceleration from all superelements. More... | |
logical function | isbeam (sup) |
Returns whether a superelement is a beam element or not. More... | |
character(len=5+lid_p) function | getsupelid (sup) |
Returns the full ID of a superelement. More... | |
Module with data types representing superelement objects.
The module also contains subroutines for accessing or manipulating the superelement data.
subroutine supeltypemodule::buildfinit | ( | type(supeltype), intent(inout) | sup | ) |
Establishes the deformation vector (finit) for a superelement.
sup | The supeltypemodule::supeltype object to obtain deformation for |
subroutine supeltypemodule::deallocatesupel | ( | type(supeltype), intent(inout) | sup | ) |
Deallocates a superelement object.
sup | The supeltypemodule::supeltype object to deallocate |
subroutine supeltypemodule::deallocatesupels | ( | type(supeltype), dimension(:), pointer | sups | ) |
Deallocates an array of superelement objects.
sups | The supeltypemodule::supeltype objects to deallocate |
date 23 Jan 2017
|
private |
Returns pointer to (first) superelement with specified ID.
[in] | array | Array of supeltypemodule::supeltype objects to search within |
[in] | id | Base ID of the object to search for |
[in] | userId | If .true., search for a user ID instead |
If the superelement is not found, NULL is returned.
real(dp) function, dimension(3,3) supeltypemodule::getrsuptosys | ( | type(supeltype), intent(in) | sup, |
integer, intent(in) | n | ||
) |
Returns the transformation matrix to system directions for a triad.
[in] | sup | The supeltypemodule::supeltype object to transform for |
[in] | n | 1-based index of the superelement triad to transform for |
The returned 3x3 matrix is to be used to transform vectors from the superelement directions to system directions for the n'th connected triad of the superelement.
character(len=5+lid_p) function supeltypemodule::getsupelid | ( | type(supeltype), intent(in) | sup | ) |
Returns the full ID of a superelement.
[in] | sup | The supeltypemodule::supeltype object to get the ID for |
The full ID of an object consists for of the type name of the object, the user ID and the user description.
subroutine supeltypemodule::getsupelsvelacc | ( | type(supeltype), dimension(:), intent(in) | sups, |
real(dp), dimension(:), intent(out) | velGlobal, | ||
real(dp), dimension(:), intent(out) | accGlobal | ||
) |
Gets current velocity and acceleration from all superelements.
[in] | sups | All supeltypemodule::supeltype objects in the model |
[out] | velGlobal | System velocity vector |
[out] | accGlobal | System acceleration vector |
subroutine supeltypemodule::initiatehydyn | ( | type(hydrodyntype), intent(out) | hydyn, |
real(dp), dimension(:), intent(in), optional | MorPar | ||
) |
Initiates the hydrodynamics quantities for a superelement.
hydyn | Hydrodynamics data container | |
[in] | MorPar | Morison input parameters |
logical function supeltypemodule::isbeam | ( | type(supeltype), intent(in) | sup | ) |
Returns whether a superelement is a beam element or not.
[in] | sup | The supeltypemodule::supeltype object to check |
subroutine supeltypemodule::nullifysupel | ( | type(supeltype), intent(out) | sup | ) |
Initializes a superelement object.
sup | The supeltypemodule::supeltype object to initialize |
|
private |
Restores the state variables from the last converged time step.
sup | The supeltypemodule::supeltype object to restore state for |
This subroutine is invoked when doing iteration cut-back.
subroutine supeltypemodule::transformoffset | ( | type(supeltype), intent(inout) | sup, |
real(dp), dimension(3), intent(in) | offset, | ||
integer, intent(in) | index | ||
) |
Transforms a reference triad offset vector.
sup | The supeltypemodule::supeltype object to transform for | |
[in] | offset | The reference point offset vector to transform |
[in] | index | Which reference point (1, 2 or 3) to transform for |
The offset vector is transformed from the superelement coordinate system to the coordinate system of the reference triad itself.
|
private |
Updates the state variables pertaining to the previous time step.
sup | The supeltypemodule::supeltype object to update state for |
This subroutine is invoked once after convergence as been reached.
subroutine supeltypemodule::updatesupelcorot | ( | type(supeltype), intent(inout) | sup, |
integer, intent(in) | dbgUnit, | ||
integer, intent(inout) | stat | ||
) |
Updates the co-rotated system for a superelement.
sup | The supeltypemodule::supeltype object to update for |
dbgUnit | File unit number for debug print out |
stat | Status flag, negative value on output indicates an error |
If stat equals 1 on input, the relative position matrix for the triangle is initiated (used only for shadowPosAlg == 1).
|
private |
Standard routine for writing an object to file.
[in] | sup | The supeltypemodule::supeltype object to write |
[in] | io | File unit number to write to |
[in] | complexity | If present, the value indicates the amount of print |