|
FEDEM Solver
R8.0
Source code of the dynamics solver
|
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... | |
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.
| 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.
| beam | The beam element to calculate element matrices for | |
| [in] | bProp | Beam properties associated with the element |
| [in] | env | Environmental data |
| [in] | lpu | File unit number for res-file output |
| [in] | ipsw | Print switch for debug output |
| [out] | ierr | Error flag |


| 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.
| elem | The finite element to calculate element matrices for | |
| [in] | bProp | Beam properties associated with the element |
| [in] | env | Environmental data |
| [out] | ierr | Error flag |


| subroutine, public finiteelementmodule::deallocatebeams |
Deallocates the linked lists of beam elements.

| subroutine, public finiteelementmodule::envbeamendforces | ( | type(supeltype), dimension(:), intent(in) | sups, |
| integer, intent(out) | ierr | ||
| ) |
Calculates the max/min beam sectional forces and positions.
| [in] | sups | All superelements in the model |
| [out] | ierr | Error flag |
The calculation is performed over the entire time history of the dynamics simulation and is stored in the beamEnvelope array.

| 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.
| [in] | triads | All triads in the model |
| sups | All superelements in the model | |
| [out] | ierr | Error flag |
Beam joints are triads connected to three (or more) beam elements.

| 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.
| [in] | sups | All superelements in the model |
| [out] | ierr | Error flag |

|
private |
Returns pointer to (first) beam property with specified ID.
| [in] | array | Array of finiteelementmodule::beampropertytype objects to search within |
| [in] | id | Base ID of the object to search for |
If the beam property is not found, NULL is returned.
| 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.
| [in] | sup | The beam element to calculated sectional forces for |
| [in] | iend | Which end to calculate sectional forces at (1 or 2) |
The forces are calculated in the local coordinate system of the two-noded beam element.

| 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.
| [in] | infp | File unit number for the solver input file |
| bProp | Array of all beam properties in the model | |
| [out] | ierr | Error flag |


| 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.
| [in] | t | Current simulation time, ≥0: Report forces at current time step, <0: Report current minimum and maximum forces (envelope). |
| [in] | sups | All superelements in the model |
| [in] | g | Gravitation vector |
| [in] | lpu | File unit number for res-file output |

| subroutine, public finiteelementmodule::updatebeamsectionforces | ( | type(supeltype), dimension(:), intent(inout) | sups, |
| integer, intent(out) | ierr | ||
| ) |
Calculates the current beam sectional forces.
| sups | All superelements in the model | |
| [out] | ierr | Error 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.

| subroutine, public finiteelementmodule::writebeamjointforces | ( | real(dp), intent(in) | t, |
| integer, intent(out) | ierr | ||
| ) |
Writes beam joint forces at current configuration to ASCII files.
| [in] | t | Current simulation time |
| [out] | ierr | Error flag |
One file is written for each Triad with name Triad_<userId>.asc.

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