|
FEDEM Solver
R8.0
Source code of the dynamics solver
|
Module with data types representing triad objects. More...
Data Types | |
| type | triadtype |
| Data type representing a triad object. More... | |
| type | triadptrtype |
| Data type representing a triad pointer. More... | |
| interface | getptrtoid |
| Returns pointer to object with specified ID. More... | |
| interface | writeobject |
| Standard routine for writing an object to file. More... | |
| interface | transglobtosys |
| Transforms a triad quantity from global to system directions. More... | |
| interface | transsystoglob |
| Transforms a triad quantity from system to global directions. More... | |
| interface | transtriadtosys |
| Transforms a triad quantity from triad to system directions. More... | |
| interface | transsystotriad |
| Transforms a triad quantity from system to triad directions. More... | |
| interface | transtriadtoglob |
| Transforms a triad quantity from triad to global directions. More... | |
| interface | transglobtotriad |
| Transforms a triad quantity from global to triad directions. More... | |
Functions/Subroutines | |
| type(triadtype) function, pointer, private | getptrtoidtriad (array, id, index, userId) |
| Returns pointer to (first) triad with specified ID. More... | |
| subroutine, private | writetriadtype (triad, io, complexity) |
| Standard routine for writing an object to io. More... | |
| subroutine | nullifytriad (triad) |
| Initializes a triad object. More... | |
| subroutine | deallocatetriad (triad) |
| Deallocates a triad object. More... | |
| subroutine | deallocatetriads (triads) |
| Deallocates an array of triad objects. More... | |
| subroutine | cleartriadforces (triads) |
| Initializes all triad forces to zero. More... | |
| subroutine | allocatetriadforces (triad, ierr) |
| Allocates force vectors for frs-output of superelement forces. More... | |
| subroutine | allocatenodeforce (triad, ierr) |
| Allocates the total nodal force vector associated with a triad. More... | |
| subroutine | updatenodeforce (triad, force) |
| Updates the total nodal force vector associated with a triad. More... | |
| subroutine | transsysvectoglobal (triads, inc) |
| Transforms a system vector to global directions. More... | |
| subroutine | inctriadspos (triads, inc, useTotalInc) |
| Updates the position matrices for all triads. More... | |
| real(dp) function, dimension(triad%ndofs) | gettriadincrement (triad) |
| Returns the current incremental displacement in a triad. More... | |
| subroutine | settriadsvelacc (triads, velGlobal, accGlobal) |
| Sets global velocity and acceleration for all triads. More... | |
| subroutine | gettriadsvelacc (triads, velGlobal, accGlobal) |
| Gets current velocity and acceleration from all triads. More... | |
| logical function | haslocaldirections (triad) |
| Checks if a triad has a local coordinate system attached. More... | |
| subroutine, private | transvecglobtosys (triad, v) |
| Transforms a nodal vector from global to system directions. More... | |
| real(dp) function | getsysvalue (triad, ldof, v) |
| Returns a component of a vector transformed to system directions. More... | |
| subroutine, private | transvecsystoglob (triad, v) |
| Transforms a triad vector from system to global directions. More... | |
| real(dp) function, dimension(size(v)) | transvsystoglob (triad, v) |
| Transforms a triad vector from system to global directions. More... | |
| real(dp) function, dimension(size(v)) | transvtriadtosys (triad, v) |
| Transforms a triad vector from triad to system directions. More... | |
| subroutine, private | transvectriadtosys (triad, v) |
| Transforms a triad vector from triad to system directions. More... | |
| real(dp) function, dimension(size(v)) | transvsystotriad (triad, v) |
| Transforms a triad vector from system to triad directions. More... | |
| subroutine, private | transvecsystotriad (triad, v) |
| Transforms a triad vector from system to triad directions. More... | |
| real(dp) function, dimension(size(v)) | transvtriadtoglob (triad, v) |
| Transforms a triad vector from triad to global directions. More... | |
| subroutine, private | transvectriadtoglob (triad, v) |
| Transforms a triad vector from triad to global directions. More... | |
| real(dp) function, dimension(size(v)) | transvglobtotriad (triad, v) |
| Transforms a triad vector from global to triad directions. More... | |
| subroutine, private | transvecglobtotriad (triad, v) |
| Transforms a triad vector from global to triad directions. More... | |
| subroutine, private | transmatglobtosys (triad, A, pos, n) |
| Transforms a matrix from global to system directions for a triad. More... | |
| subroutine, private | transmattriadtosys (triad, A, pos, n) |
| Transforms a matrix from triad to system directions for a triad. More... | |
| subroutine, private | transmattriadtoglob (triad, A, pos, n) |
| Transforms a matrix from triad to global directions for a triad. More... | |
Module with data types representing triad objects.
The module also contains subroutines for accessing or manipulating the triad data.
| subroutine triadtypemodule::allocatenodeforce | ( | type(triadtype), intent(inout) | triad, |
| integer, intent(inout) | ierr | ||
| ) |
Allocates the total nodal force vector associated with a triad.
| triad | The triadtypemodule::triadtype object to allocate for |
| ierr | Error flag, decremented on allocation error(s) |
Total nodal force vectors are allocated only if the triad is connected to other force-giving objects in addition to (or instead of) a superelement. If it is only connected to a superelement, the nodeForce is identical to the supForce vector.

| subroutine triadtypemodule::allocatetriadforces | ( | type(triadtype), intent(inout) | triad, |
| integer, intent(inout) | ierr | ||
| ) |
Allocates force vectors for frs-output of superelement forces.
| triad | The triadtypemodule::triadtype object to allocate for |
| ierr | Error flag, decremented on allocation error(s) |

| subroutine triadtypemodule::cleartriadforces | ( | type(triadtype), dimension(:), intent(out) | triads | ) |
Initializes all triad forces to zero.
| [out] | triads | The triadtypemodule::triadtype objects to initialize |

| subroutine triadtypemodule::deallocatetriad | ( | type(triadtype), intent(inout), target | triad | ) |
Deallocates a triad object.
| triad | The triadtypemodule::triadtype object to deallocate |
date 23 Jan 2017

| subroutine triadtypemodule::deallocatetriads | ( | type(triadtype), dimension(:), pointer | triads | ) |
Deallocates an array of triad objects.
| triads | The triadtypemodule::triadtype objects to deallocate |
date 23 Jan 2017

|
private |
Returns pointer to (first) triad with specified ID.
| [in] | array | Array of triadtypemodule::triadtype objects to search within |
| [in] | id | Base ID of the object to search for |
| [out] | index | The array index of the found object |
| [in] | userId | If .true., search for a user ID instead |
If the triad is not found, NULL is returned.
| real(dp) function triadtypemodule::getsysvalue | ( | type(triadtype), intent(in) | triad, |
| integer, intent(in) | ldof, | ||
| real(dp), dimension(:), intent(in) | v | ||
| ) |
Returns a component of a vector transformed to system directions.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| [in] | ldof | Local index of the component to return |
| [in] | v | The nodal vector to transform |
The ldof'th component of the vector v is transformed form global to system directions on given triad.

| real(dp) function, dimension(triad%ndofs) triadtypemodule::gettriadincrement | ( | type(triadtype), intent(in) | triad | ) |
Returns the current incremental displacement in a triad.
| triad | The triadtypemodule::triadtype object to get displacement for |

| subroutine triadtypemodule::gettriadsvelacc | ( | type(triadtype), dimension(:), intent(in) | triads, |
| real(dp), dimension(:), intent(out) | velGlobal, | ||
| real(dp), dimension(:), intent(out) | accGlobal | ||
| ) |
Gets current velocity and acceleration from all triads.
| [in] | triads | All triadtypemodule:triadtype objects in the model |
| [out] | velGlobal | System velocity vector |
| [out] | accGlobal | System acceleration vector |

| logical function triadtypemodule::haslocaldirections | ( | type(triadtype), intent(in) | triad | ) |
Checks if a triad has a local coordinate system attached.
| [in] | triad | The triadtypemodule::triadtype object to check |

| subroutine triadtypemodule::inctriadspos | ( | type(triadtype), dimension(:), intent(inout) | triads, |
| real(dp), dimension(:), intent(in) | inc, | ||
| logical, intent(in), optional | useTotalInc | ||
| ) |
Updates the position matrices for all triads.
| triads | All triad objects in the model | |
| [in] | inc | Incremental global displacement vector |
| [in] | useTotalInc | If .true., update w.r.t. previous configuration |

| subroutine triadtypemodule::nullifytriad | ( | type(triadtype), intent(out) | triad | ) |
Initializes a triad object.
| triad | The triadtypemodule::triadtype object to initialize |
date 13 Oct 2000

| subroutine triadtypemodule::settriadsvelacc | ( | type(triadtype), dimension(:), intent(inout) | triads, |
| real(dp), dimension(:), intent(in) | velGlobal, | ||
| real(dp), dimension(:), intent(in) | accGlobal | ||
| ) |
Sets global velocity and acceleration for all triads.
| triads | All triadtypemodule:triadtype objects in the model | |
| [in] | velGlobal | System velocity vector |
| [in] | accGlobal | System acceleration vector |

|
private |
Transforms a matrix from global to system directions for a triad.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| A | The matrix to transform | |
| [in] | pos | The position in the matrix A for the given triad |
| [in] | n | Number of components (3 or 6) to transform |
|
private |
Transforms a matrix from triad to global directions for a triad.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| A | The matrix to transform | |
| [in] | pos | The position in the matrix A for the given triad |
| [in] | n | Number of components (3 or 6) to transform |
|
private |
Transforms a matrix from triad to system directions for a triad.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| A | The matrix to transform | |
| [in] | pos | The position in the matrix A for the given triad |
| [in] | n | Number of components (3 or 6) to transform |
| subroutine triadtypemodule::transsysvectoglobal | ( | type(triadtype), dimension(:), intent(in) | triads, |
| real(dp), dimension(:), intent(inout) | inc | ||
| ) |
Transforms a system vector to global directions.
| [in] | triads | All triad objects in the model |
| inc | System displacement vector |
|
private |
Transforms a nodal vector from global to system directions.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| v | The nodal vector to transform |
|
private |
Transforms a triad vector from global to triad directions.
|
private |
Transforms a triad vector from system to global directions.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| v | The nodal vector to transform |
|
private |
Transforms a triad vector from system to triad directions.
|
private |
Transforms a triad vector from triad to global directions.
|
private |
Transforms a triad vector from triad to system directions.
| real(dp) function, dimension(size(v)) triadtypemodule::transvglobtotriad | ( | type(triadtype), intent(in) | triad, |
| real(dp), dimension(:), intent(in) | v | ||
| ) |
Transforms a triad vector from global to triad directions.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| [in] | v | The nodal vector to transform |

| real(dp) function, dimension(size(v)) triadtypemodule::transvsystoglob | ( | type(triadtype), intent(in) | triad, |
| real(dp), dimension(:), intent(in) | v | ||
| ) |
Transforms a triad vector from system to global directions.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| [in] | v | The nodal vector to transform |

| real(dp) function, dimension(size(v)) triadtypemodule::transvsystotriad | ( | type(triadtype), intent(in) | triad, |
| real(dp), dimension(:), intent(in) | v | ||
| ) |
Transforms a triad vector from system to triad directions.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| [in] | v | The nodal vector to transform |

| real(dp) function, dimension(size(v)) triadtypemodule::transvtriadtoglob | ( | type(triadtype), intent(in) | triad, |
| real(dp), dimension(:), intent(in) | v | ||
| ) |
Transforms a triad vector from triad to global directions.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| [in] | v | The nodal vector to transform |

| real(dp) function, dimension(size(v)) triadtypemodule::transvtriadtosys | ( | type(triadtype), intent(in) | triad, |
| real(dp), dimension(:), intent(in) | v | ||
| ) |
Transforms a triad vector from triad to system directions.
| [in] | triad | The triadtypemodule::triadtype object to transform for |
| [in] | v | The nodal vector to transform |

| subroutine triadtypemodule::updatenodeforce | ( | type(triadtype), intent(inout) | triad, |
| real(dp), dimension(:), intent(in), target | force | ||
| ) |
Updates the total nodal force vector associated with a triad.
| triad | The triadtypemodule::triadtype object to update | |
| [in] | force | Nodal force to add to the triad |

|
private |
Standard routine for writing an object to io.
| [in] | triad | The triadtypemodule::triadtype object to write |
| [in] | io | File unit number to write to |
| [in] | complexity | If present, the value indicates the amount of print |