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.