FEDEM Solver
R8.0
Source code of the dynamics solver
|
This module contains a data structure for assembly of FE matrices. More...
Data Types | |
type | samtype |
Data structure for management of FE matrix assembly. More... | |
interface | writeobject |
Standard routine for writing an object to file. More... | |
Functions/Subroutines | |
subroutine | nullifysam (samData) |
Nullifies all pointers to enable safe testing after allocation. More... | |
subroutine | deallocatesam (samData) |
Deallocates all dynamic arrays within the SAM structure. More... | |
subroutine | check (samData, lpu, ierr, checkEquations) |
Performs consistency checking of the SAM data structure. More... | |
integer function | nodenumfromdofnum (sam, idof, extNum) |
Returns internal node number and local dof-number for a global dof. More... | |
integer function | nodenumfromeqnum (sam, ieq, extNum) |
Returns internal node number and local dof-number for an equation. More... | |
subroutine | writesamsize (sam, lpu) |
Writes out allocated storage for the SAM data structure. More... | |
subroutine, private | writesam (sam, io, complexity, title) |
Standard routine for writing an object to file. More... | |
subroutine | lumpedsam (orgSam, newSam, ierr) |
Duplicates the SAM object to emulate a model with 1-DOF elements. More... | |
subroutine | inverteqpartition (lp1, lp2, sam, ierr) |
Forms the control arrays dofPosIn1 and/or dofPosIn2 in SAM. More... | |
Variables | |
integer, parameter | version_p = 3 |
Version tag. More... | |
This module contains a data structure for assembly of FE matrices.
The names and meanings of (most of) the data members of the sammodule::samtype structure are adopted from Kolbein Bell's pionering work on the field. See his reports on the SAM library for a thorough elaboration.
subroutine sammodule::check | ( | type(samtype), intent(in) | samData, |
integer, intent(in) | lpu, | ||
integer, intent(out) | ierr, | ||
logical, intent(in), optional | checkEquations | ||
) |
Performs consistency checking of the SAM data structure.
[in] | samData | The sammodule::samtype object to check consistency of |
[in] | lpu | File unit number for error messages |
[out] | ierr | Error flag |
[in] | checkEquations | If present and .true., also check the meqn array |
subroutine sammodule::deallocatesam | ( | type(samtype), intent(inout) | samData | ) |
Deallocates all dynamic arrays within the SAM structure.
samData | The sammodule::samtype object to deallocate |
subroutine sammodule::inverteqpartition | ( | logical, intent(in) | lp1, |
logical, intent(in) | lp2, | ||
type(samtype), intent(inout) | sam, | ||
integer, intent(out) | ierr | ||
) |
Forms the control arrays dofPosIn1 and/or dofPosIn2 in SAM.
lp1 | If .true., create the dofPosIn1 array | |
lp2 | If .true., create the dofPosIn2 array | |
sam | The sammodule::samtype object to consider | |
[out] | ierr | Error flag |
subroutine sammodule::lumpedsam | ( | type(samtype), intent(in) | orgSam, |
type(samtype), pointer | newSam, | ||
integer, intent(out) | ierr | ||
) |
Duplicates the SAM object to emulate a model with 1-DOF elements.
[in] | orgSam | The sammodule::samtype object to be duplicated |
[out] | newSam | Pointer to the new sammodule::samtype object |
[out] | ierr | Error flag (negative on allocation error) |
All the arrays of the orgSam object are shared with the newSam object (that is, the array pointers points to the same physical address), except for madof which is re-initialized with 1 DOF per node.
integer function sammodule::nodenumfromdofnum | ( | type(samtype), intent(in) | sam, |
integer, intent(inout) | idof, | ||
logical, intent(in), optional | extNum | ||
) |
Returns internal node number and local dof-number for a global dof.
[in] | sam | The sammodule::samtype object to consider |
idof | Global DOF number on input, local DOF number on output | |
extNum | If present and .true., return external node number instead |
integer function sammodule::nodenumfromeqnum | ( | type(samtype), intent(in) | sam, |
integer, intent(inout) | ieq, | ||
logical, intent(in), optional | extNum | ||
) |
Returns internal node number and local dof-number for an equation.
[in] | sam | The sammodule::samtype object to consider |
ieq | Equation number on input, local DOF number on output | |
extNum | If present and .true., return external node number instead |
subroutine sammodule::nullifysam | ( | type(samtype), intent(out) | samData | ) |
Nullifies all pointers to enable safe testing after allocation.
[out] | samData | The sammodule::samtype object to nullify |
|
private |
Standard routine for writing an object to file.
[in] | sam | The sammodule::samtype object to print |
[in] | io | File unit number to write to |
[in] | complexity | If present, the value indicates the amount of print |
[in] | title | If present, write as heading, otherwise 'SAM' is written |
subroutine sammodule::writesamsize | ( | type(samtype), intent(in) | sam, |
integer, intent(in) | lpu | ||
) |
Writes out allocated storage for the SAM data structure.
[in] | sam | The sammodule::samtype object to write for |
[in] | lpu | File unit number to print to |
integer, parameter sammodule::version_p = 3 |
Version tag.