FEDEM Solver  R8.0
Source code of the dynamics solver
Data Types | Functions/Subroutines
triadtypemodule Module Reference

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...
 

Detailed Description

Module with data types representing triad objects.

The module also contains subroutines for accessing or manipulating the triad data.

Function/Subroutine Documentation

◆ allocatenodeforce()

subroutine triadtypemodule::allocatenodeforce ( type(triadtype), intent(inout)  triad,
integer, intent(inout)  ierr 
)

Allocates the total nodal force vector associated with a triad.

Parameters
triadThe triadtypemodule::triadtype object to allocate for
ierrError 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.

Author
Knut Morten Okstad
Date
25 Oct 2009
Here is the caller graph for this function:

◆ allocatetriadforces()

subroutine triadtypemodule::allocatetriadforces ( type(triadtype), intent(inout)  triad,
integer, intent(inout)  ierr 
)

Allocates force vectors for frs-output of superelement forces.

Parameters
triadThe triadtypemodule::triadtype object to allocate for
ierrError flag, decremented on allocation error(s)
Author
Knut Morten Okstad
Date
25 Oct 2009
Here is the caller graph for this function:

◆ cleartriadforces()

subroutine triadtypemodule::cleartriadforces ( type(triadtype), dimension(:), intent(out)  triads)

Initializes all triad forces to zero.

Parameters
[out]triadsThe triadtypemodule::triadtype objects to initialize
Author
Knut Morten Okstad
Date
13 Nov 2008
Here is the caller graph for this function:

◆ deallocatetriad()

subroutine triadtypemodule::deallocatetriad ( type(triadtype), intent(inout), target  triad)

Deallocates a triad object.

Parameters
triadThe triadtypemodule::triadtype object to deallocate
Author
Knut Morten Okstad

date 23 Jan 2017

Here is the caller graph for this function:

◆ deallocatetriads()

subroutine triadtypemodule::deallocatetriads ( type(triadtype), dimension(:), pointer  triads)

Deallocates an array of triad objects.

Parameters
triadsThe triadtypemodule::triadtype objects to deallocate
Author
Knut Morten Okstad

date 23 Jan 2017

Here is the caller graph for this function:

◆ getptrtoidtriad()

type(triadtype) function, pointer, private triadtypemodule::getptrtoidtriad ( type(triadtype), dimension(:), intent(in), target  array,
integer, intent(in)  id,
integer, intent(out), optional  index,
logical, intent(in), optional  userId 
)
private

Returns pointer to (first) triad with specified ID.

Parameters
[in]arrayArray of triadtypemodule::triadtype objects to search within
[in]idBase ID of the object to search for
[out]indexThe array index of the found object
[in]userIdIf .true., search for a user ID instead

If the triad is not found, NULL is returned.

Author
Bjorn Haugen / Knut Morten Okstad
Date
1 Dec 2009

◆ getsysvalue()

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.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
[in]ldofLocal index of the component to return
[in]vThe nodal vector to transform

The ldof'th component of the vector v is transformed form global to system directions on given triad.

Author
Knut Morten Okstad
Date
2 Jun 2015
Here is the caller graph for this function:

◆ gettriadincrement()

real(dp) function, dimension(triad%ndofs) triadtypemodule::gettriadincrement ( type(triadtype), intent(in)  triad)

Returns the current incremental displacement in a triad.

Parameters
triadThe triadtypemodule::triadtype object to get displacement for
Author
Knut Morten Okstad
Date
17 Apr 2008
Here is the caller graph for this function:

◆ gettriadsvelacc()

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.

Parameters
[in]triadsAll triadtypemodule:triadtype objects in the model
[out]velGlobalSystem velocity vector
[out]accGlobalSystem acceleration vector
Author
Knut Morten Okstad
Date
18 Oct 2002
Here is the caller graph for this function:

◆ haslocaldirections()

logical function triadtypemodule::haslocaldirections ( type(triadtype), intent(in)  triad)

Checks if a triad has a local coordinate system attached.

Parameters
[in]triadThe triadtypemodule::triadtype object to check
Author
Knut Morten Okstad
Date
13 Oct 2000
Here is the caller graph for this function:

◆ inctriadspos()

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.

Parameters
triadsAll triad objects in the model
[in]incIncremental global displacement vector
[in]useTotalIncIf .true., update w.r.t. previous configuration
Author
Bjorn Haugen
Date
16 Nov 2001
Here is the caller graph for this function:

◆ nullifytriad()

subroutine triadtypemodule::nullifytriad ( type(triadtype), intent(out)  triad)

Initializes a triad object.

Parameters
triadThe triadtypemodule::triadtype object to initialize
Author
Knut Morten Okstad

date 13 Oct 2000

Here is the caller graph for this function:

◆ settriadsvelacc()

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.

Parameters
triadsAll triadtypemodule:triadtype objects in the model
[in]velGlobalSystem velocity vector
[in]accGlobalSystem acceleration vector
Author
Knut Morten Okstad
Date
20 Jun 2002
Here is the caller graph for this function:

◆ transmatglobtosys()

subroutine, private triadtypemodule::transmatglobtosys ( type(triadtype), intent(in)  triad,
real(dp), dimension(:,:), intent(inout)  A,
integer, intent(in)  pos,
integer, intent(in)  n 
)
private

Transforms a matrix from global to system directions for a triad.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
AThe matrix to transform
[in]posThe position in the matrix A for the given triad
[in]nNumber of components (3 or 6) to transform
Author
Knut Morten Okstad
Date
11 Nov 2005
Author
Knut Morten Okstad
Date
3 Nov 2014

◆ transmattriadtoglob()

subroutine, private triadtypemodule::transmattriadtoglob ( type(triadtype), intent(in)  triad,
real(dp), dimension(:,:), intent(inout)  A,
integer, intent(in)  pos,
integer, intent(in)  n 
)
private

Transforms a matrix from triad to global directions for a triad.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
AThe matrix to transform
[in]posThe position in the matrix A for the given triad
[in]nNumber of components (3 or 6) to transform
Author
Knut Morten Okstad
Date
11 Nov 2005
Author
Knut Morten Okstad
Date
3 Nov 2014

◆ transmattriadtosys()

subroutine, private triadtypemodule::transmattriadtosys ( type(triadtype), intent(in)  triad,
real(dp), dimension(:,:), intent(inout)  A,
integer, intent(in)  pos,
integer, intent(in)  n 
)
private

Transforms a matrix from triad to system directions for a triad.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
AThe matrix to transform
[in]posThe position in the matrix A for the given triad
[in]nNumber of components (3 or 6) to transform
Author
Knut Morten Okstad
Date
11 Nov 2005
Author
Knut Morten Okstad
Date
3 Nov 2014

◆ transsysvectoglobal()

subroutine triadtypemodule::transsysvectoglobal ( type(triadtype), dimension(:), intent(in)  triads,
real(dp), dimension(:), intent(inout)  inc 
)

Transforms a system vector to global directions.

Parameters
[in]triadsAll triad objects in the model
incSystem displacement vector
Author
Bjorn Haugen
Date
16 Nov 2001

◆ transvecglobtosys()

subroutine, private triadtypemodule::transvecglobtosys ( type(triadtype), intent(in)  triad,
real(dp), dimension(:), intent(inout)  v 
)
private

Transforms a nodal vector from global to system directions.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
vThe nodal vector to transform
Author
Knut Morten Okstad
Date
15 Jul 2002

◆ transvecglobtotriad()

subroutine, private triadtypemodule::transvecglobtotriad ( type(triadtype), intent(in)  triad,
real(dp), dimension(:), intent(inout)  v 
)
private

Transforms a triad vector from global to triad directions.

◆ transvecsystoglob()

subroutine, private triadtypemodule::transvecsystoglob ( type(triadtype), intent(in)  triad,
real(dp), dimension(:), intent(inout)  v 
)
private

Transforms a triad vector from system to global directions.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
vThe nodal vector to transform
Author
Knut Morten Okstad / Bjorn Haugen
Date
15 Jul 2002

◆ transvecsystotriad()

subroutine, private triadtypemodule::transvecsystotriad ( type(triadtype), intent(in)  triad,
real(dp), dimension(:), intent(inout)  v 
)
private

Transforms a triad vector from system to triad directions.

◆ transvectriadtoglob()

subroutine, private triadtypemodule::transvectriadtoglob ( type(triadtype), intent(in)  triad,
real(dp), dimension(:), intent(inout)  v 
)
private

Transforms a triad vector from triad to global directions.

◆ transvectriadtosys()

subroutine, private triadtypemodule::transvectriadtosys ( type(triadtype), intent(in)  triad,
real(dp), dimension(:), intent(inout)  v 
)
private

Transforms a triad vector from triad to system directions.

◆ transvglobtotriad()

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.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
[in]vThe nodal vector to transform
Returns
The transformed nodal vector
Author
Knut Morten Okstad
Date
7 Dec 2000
Here is the caller graph for this function:

◆ transvsystoglob()

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.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
[in]vThe nodal vector to transform
Returns
The transformed nodal vector
Author
Knut Morten Okstad / Bjorn Haugen
Date
15 Jul 2002
Here is the caller graph for this function:

◆ transvsystotriad()

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.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
[in]vThe nodal vector to transform
Returns
The transformed nodal vector
Author
Knut Morten Okstad
Date
29 Aug 2007
Here is the caller graph for this function:

◆ transvtriadtoglob()

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.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
[in]vThe nodal vector to transform
Returns
The transformed nodal vector
Author
Knut Morten Okstad
Date
15 Jul 2002
Here is the caller graph for this function:

◆ transvtriadtosys()

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.

Parameters
[in]triadThe triadtypemodule::triadtype object to transform for
[in]vThe nodal vector to transform
Returns
The transformed nodal vector
Author
Knut Morten Okstad
Date
15 Jul 2002
Here is the caller graph for this function:

◆ updatenodeforce()

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.

Parameters
triadThe triadtypemodule::triadtype object to update
[in]forceNodal force to add to the triad
Author
Knut Morten Okstad
Date
25 Oct 2009
Here is the caller graph for this function:

◆ writetriadtype()

subroutine, private triadtypemodule::writetriadtype ( type(triadtype), intent(in)  triad,
integer, intent(in)  io,
integer, intent(in), optional  complexity 
)
private

Standard routine for writing an object to io.

Parameters
[in]triadThe triadtypemodule::triadtype object to write
[in]ioFile unit number to write to
[in]complexityIf present, the value indicates the amount of print
Author
Karl Erik Thoresen
Date
27 Sep 1998