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

Module with data types representing finite element objects. More...

Data Types

type  beampropertytype
 Data type for beam cross section properties. More...
 
type  beamtype
 Data type representing a node in a linked list of beam strings. More...
 
type  beamjointtype
 Data type representing a beam joint. More...
 
interface  getptrtoid
 Returns pointer to object with specified ID. More...
 

Functions/Subroutines

type(beampropertytype) function, pointer getptrtoidbeamprop (array, id)
 Returns pointer to (first) beam property with specified ID. More...
 
subroutine, public readelementprops (infp, bProp, ierr)
 Read finite element properties from the solver input file. More...
 
subroutine, public calcelementmatrices (elem, bProp, env, ierr)
 Calculates the element matrices for a basic finite element. More...
 
subroutine calcbeamelementmatrices (beam, bProp, env, lpu, ipsw, ierr)
 Calculates the element matrices for a beam finite element. More...
 
subroutine, public findbeams (sups, ierr)
 Detects all beams in the model, that is, chains of beam elements. More...
 
subroutine, public findbeamjoints (triads, sups, ierr)
 Detects all beam joints in the model. More...
 
subroutine, public deallocatebeams ()
 Deallocates the linked lists of beam elements. More...
 
real(dp) function, dimension(6), public getsectionalforces (sup, iend)
 Returns the sectional forces at one end of a beam element. More...
 
subroutine, public reportbeamendforces (t, sups, g, lpu)
 Reports all beam sectional forces at current configuration. More...
 
subroutine, public envbeamendforces (sups, ierr)
 Calculates the max/min beam sectional forces and positions. More...
 
subroutine, public updatebeamsectionforces (sups, ierr)
 Calculates the current beam sectional forces. More...
 
subroutine, public writebeamjointforces (t, ierr)
 Writes beam joint forces at current configuration to ASCII files. More...
 

Variables

integer, save, public nbeamel
 Total number of beam elements in the model. More...
 
real(dp), save, public massgrowth
 Mass density of the marine growth layer. More...
 
real(dp), save, public massintfluid
 Mass density of the internal fluid. More...
 
real(dp), dimension(:,:,:), allocatable, save beamenvelope
 Maximum and minimum beam sectional forces over the time history. More...
 
type(beamtype), pointer, save, public beams
 Head of the linked list of beam strings. More...
 
type(beamjointtype), dimension(:), allocatable, save joints
 All beam joints in the model. More...
 

Detailed Description

Module with data types representing finite element objects.

This module contains data and subroutines for handling basic finite elements on the system level in a mechanism model. The finite elements are represented by the same supeltypemodule::supeltype data type as the superelements, but with some additional functionalities for treatment of two-noded beams.

Function/Subroutine Documentation

◆ calcbeamelementmatrices()

subroutine finiteelementmodule::calcbeamelementmatrices ( type(supeltype), intent(inout)  beam,
type(beampropertytype), intent(in)  bProp,
type(environmenttype), intent(in)  env,
integer, intent(in)  lpu,
integer, intent(in)  ipsw,
integer, intent(out)  ierr 
)

Calculates the element matrices for a beam finite element.

Parameters
beamThe beam element to calculate element matrices for
[in]bPropBeam properties associated with the element
[in]envEnvironmental data
[in]lpuFile unit number for res-file output
[in]ipswPrint switch for debug output
[out]ierrError flag
Author
Knut Morten Okstad
Date
26 Sep 2008
Here is the call graph for this function:
Here is the caller graph for this function:

◆ calcelementmatrices()

subroutine, public finiteelementmodule::calcelementmatrices ( type(supeltype), intent(inout)  elem,
type(beampropertytype), intent(in)  bProp,
type(environmenttype), intent(in)  env,
integer, intent(out)  ierr 
)

Calculates the element matrices for a basic finite element.

Parameters
elemThe finite element to calculate element matrices for
[in]bPropBeam properties associated with the element
[in]envEnvironmental data
[out]ierrError flag
Author
Knut Morten Okstad
Date
26 Sep 2008
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deallocatebeams()

subroutine, public finiteelementmodule::deallocatebeams

Deallocates the linked lists of beam elements.

Author
Knut Morten Okstad
Date
23 Jan 2017
Here is the caller graph for this function:

◆ envbeamendforces()

subroutine, public finiteelementmodule::envbeamendforces ( type(supeltype), dimension(:), intent(in)  sups,
integer, intent(out)  ierr 
)

Calculates the max/min beam sectional forces and positions.

Parameters
[in]supsAll superelements in the model
[out]ierrError flag

The calculation is performed over the entire time history of the dynamics simulation and is stored in the beamEnvelope array.

Author
Knut Morten Okstad
Date
27 Apr 2009
Here is the caller graph for this function:

◆ findbeamjoints()

subroutine, public finiteelementmodule::findbeamjoints ( type(triadtype), dimension(:), intent(in)  triads,
type(supeltype), dimension(:), intent(inout)  sups,
integer, intent(out)  ierr 
)

Detects all beam joints in the model.

Parameters
[in]triadsAll triads in the model
supsAll superelements in the model
[out]ierrError flag

Beam joints are triads connected to three (or more) beam elements.

Author
Knut Morten Okstad
Date
3 Nov 2010
Here is the caller graph for this function:

◆ findbeams()

subroutine, public finiteelementmodule::findbeams ( type(supeltype), dimension(:), intent(in), target  sups,
integer, intent(out)  ierr 
)

Detects all beams in the model, that is, chains of beam elements.

Parameters
[in]supsAll superelements in the model
[out]ierrError flag
Author
Knut Morten Okstad
Date
12 Oct 2011
Here is the caller graph for this function:

◆ getptrtoidbeamprop()

type(beampropertytype) function, pointer finiteelementmodule::getptrtoidbeamprop ( type(beampropertytype), dimension(:), intent(in), target  array,
integer, intent(in)  id 
)
private

Returns pointer to (first) beam property with specified ID.

Parameters
[in]arrayArray of finiteelementmodule::beampropertytype objects to search within
[in]idBase ID of the object to search for

If the beam property is not found, NULL is returned.

Author
Knut Morten Okstad
Date
26 Sep 2008

◆ getsectionalforces()

real(dp) function, dimension(6), public finiteelementmodule::getsectionalforces ( type(supeltype), intent(in)  sup,
integer, intent(in)  iend 
)

Returns the sectional forces at one end of a beam element.

Parameters
[in]supThe beam element to calculated sectional forces for
[in]iendWhich end to calculate sectional forces at (1 or 2)

The forces are calculated in the local coordinate system of the two-noded beam element.

Author
Knut Morten Okstad
Date
16 Sep 2009
Here is the caller graph for this function:

◆ readelementprops()

subroutine, public finiteelementmodule::readelementprops ( integer, intent(in)  infp,
type(beampropertytype), dimension(:), pointer  bProp,
integer, intent(out)  ierr 
)

Read finite element properties from the solver input file.

Parameters
[in]infpFile unit number for the solver input file
bPropArray of all beam properties in the model
[out]ierrError flag
Author
Knut Morten Okstad
Date
26 Sep 2008
Here is the call graph for this function:
Here is the caller graph for this function:

◆ reportbeamendforces()

subroutine, public finiteelementmodule::reportbeamendforces ( real(dp), intent(in)  t,
type(supeltype), dimension(:), intent(in)  sups,
real(dp), dimension(3), intent(in), optional  g,
integer, intent(in)  lpu 
)

Reports all beam sectional forces at current configuration.

Parameters
[in]tCurrent simulation time, ≥0: Report forces at current time step, <0: Report current minimum and maximum forces (envelope).
[in]supsAll superelements in the model
[in]gGravitation vector
[in]lpuFile unit number for res-file output
Author
Knut Morten Okstad
Date
13 Nov 2008
Here is the caller graph for this function:

◆ updatebeamsectionforces()

subroutine, public finiteelementmodule::updatebeamsectionforces ( type(supeltype), dimension(:), intent(inout)  sups,
integer, intent(out)  ierr 
)

Calculates the current beam sectional forces.

Parameters
supsAll superelements in the model
[out]ierrError flag

The running curve coordinate along the beams is alos updated. This coordinate runs as long as the beam elements are in consequtive order with no other superelements in between.

Author
Knut Morten Okstad
Date
14 Dec 2012
Here is the caller graph for this function:

◆ writebeamjointforces()

subroutine, public finiteelementmodule::writebeamjointforces ( real(dp), intent(in)  t,
integer, intent(out)  ierr 
)

Writes beam joint forces at current configuration to ASCII files.

Parameters
[in]tCurrent simulation time
[out]ierrError flag

One file is written for each Triad with name Triad_<userId>.asc.

Author
Knut Morten Okstad
Date
3 Nov 2010
Here is the caller graph for this function:

Variable Documentation

◆ beamenvelope

real(dp), dimension(:,:,:), allocatable, save finiteelementmodule::beamenvelope
private

Maximum and minimum beam sectional forces over the time history.

◆ beams

type(beamtype), pointer, save, public finiteelementmodule::beams

Head of the linked list of beam strings.

◆ joints

type(beamjointtype), dimension(:), allocatable, save finiteelementmodule::joints
private

All beam joints in the model.

◆ massgrowth

real(dp), save, public finiteelementmodule::massgrowth

Mass density of the marine growth layer.

◆ massintfluid

real(dp), save, public finiteelementmodule::massintfluid

Mass density of the internal fluid.

◆ nbeamel

integer, save, public finiteelementmodule::nbeamel

Total number of beam elements in the model.