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 |