|
Eriksson2006Solver Package
Implementation of a coupled FEM Solver
|
Verwaltung Elementmatrizen der FEM. Mehr ...
Datentypen | |
| module | lokalematrizenclass |
| type | lokalematrizenclass::lokalematrizen_t |
| interface | lokalematrizenclass::operator(+) |
| interface | lokalematrizenclass::neu |
| interface | lokalematrizenclass::setze |
| interface | lokalematrizenclass::nullifiziere |
| interface | lokalematrizenclass::mass |
| interface | lokalematrizenclass::force |
| interface | lokalematrizenclass::stiff |
| interface | lokalematrizenclass::schuettlematrizen |
Funktionen/Unterroutinen | |
| TYPE(LokaleMatrizen_t) function | lokalematrizenclass::operator(+)::addiere (this, LM2) |
| addiert zwei LokaleMatrizen indem die einzelenen Arrays (FORCE, STIFF, MASS) einzeln und elementweise addiert werden | |
| subroutine | lokalematrizenclass::neu::setzematrizen (this, aFORCE, aSTIFF, aMASS) |
| setzeMatrizen setzt die Systemmatrizen | |
| subroutine | lokalematrizenclass::neu::initmatrizen (this, maxElementMatrixSize) |
| initMatrizen allokiert Speicherplatz für Systemmatrizen | |
| subroutine | lokalematrizenclass::neu::initmatrizenkurz (this, dof) |
| subroutine | lokalematrizenclass::setze::setzeaufwert (this, wertFORCE, wertSTIFF, wertMASS) |
| setzeAufWert setzt die gesammten Matrizen auf Werte | |
| subroutine | lokalematrizenclass::nullifiziere::nullifizierematrizen (this) |
| real(kind=dp) function, dimension(:,:), pointer | lokalematrizenclass::mass::gibmass (this) |
| gibMASS gibt die Massematrix zurück | |
| real(kind=dp) function, dimension(:), pointer | lokalematrizenclass::force::gibforce (this) |
| gibFORCE gibt den Kraftvektor zurück | |
| real(kind=dp) function, dimension(:,:), pointer | lokalematrizenclass::stiff::gibstiff (this) |
| gibSTIFF gibt die Steifigkeitsmatrix zurück | |
| subroutine | lokalematrizenclass::schuettlematrizen::schuettleallematrizen (this) |
| subroutine | lokalematrizenclass::initmatrizenkurz (this, dof) |
Verwaltung Elementmatrizen der FEM.
Diese Elementmatrizen werden in einem Type gesammelt und geschlossen behandelt. Dazu stellt diese KLasse diverse Funktionen bereit um Matrizen zu manipulieren.
| TYPE(LokaleMatrizen_t) function lokalematrizenclass::operator(+)::addiere | ( | type(lokalematrizen_t), intent(in) | this, |
| type(lokalematrizen_t), intent(in) | LM2 | ||
| ) |
addiert zwei LokaleMatrizen indem die einzelenen Arrays (FORCE, STIFF, MASS) einzeln und elementweise addiert werden


| real(kind=dp) function, dimension(:), pointer lokalematrizenclass::force::gibforce | ( | type(lokalematrizen_t), intent(in) | this | ) |
gibFORCE gibt den Kraftvektor zurück

| real(kind=dp) function, dimension(:,:), pointer lokalematrizenclass::mass::gibmass | ( | type(lokalematrizen_t), intent(in) | this | ) |
gibMASS gibt die Massematrix zurück

| real(kind=dp) function, dimension(:,:), pointer lokalematrizenclass::stiff::gibstiff | ( | type(lokalematrizen_t), intent(in) | this | ) |
gibSTIFF gibt die Steifigkeitsmatrix zurück
| [in] | this | LokaleMatrizen_t:: this Returns REAL(KIND=dp), DIMENSION(SHAPE(STIFF) |

| subroutine lokalematrizenclass::neu::initmatrizen | ( | type( lokalematrizen_t ), intent(inout) | this, |
| integer, dimension(2), intent(in) | maxElementMatrixSize | ||
| ) |
initMatrizen allokiert Speicherplatz für Systemmatrizen
Um Types mit dynamische gro0en Elementen+ zu erzeugen ist es nötig POINTER zu verwenden, allokierbare Arrays innerhalb von Type Definitionen nicht erlaubt sind. Die POINTER bekommenim folgenden ähnlich allokierbarer Arrays einen Speicherbereich ihrer Größe entsprechend zugewiesen.

| subroutine lokalematrizenclass::initmatrizenkurz | ( | type( lokalematrizen_t ), intent(inout) | this, |
| integer, intent(in) | dof | ||
| ) |

| subroutine lokalematrizenclass::neu::initmatrizenkurz | ( | type( lokalematrizen_t ), intent(inout) | this, |
| integer, intent(in) | dof | ||
| ) |
| subroutine lokalematrizenclass::nullifiziere::nullifizierematrizen | ( | type(lokalematrizen_t), intent(inout) | this | ) |
| subroutine lokalematrizenclass::schuettlematrizen::schuettleallematrizen | ( | type(lokalematrizen_t), intent(inout) | this | ) |
| subroutine lokalematrizenclass::setze::setzeaufwert | ( | type(lokalematrizen_t), intent(inout) | this, |
| real(kind=dp), dimension(:), optional | wertFORCE, | ||
| real(kind=dp), dimension(:,:), optional | wertSTIFF, | ||
| real(kind=dp), dimension(:,:), optional | wertMASS | ||
| ) |
setzeAufWert setzt die gesammten Matrizen auf Werte
FORCE, STIFF und MASS werden geschlossen auf Werte gesetzt. Das ist z.B. nützlich, um die Matrizen schnell auf 0 zu setzen
| this | Sammlung der Matrizen |
| wertFORCE | 0.0d0, falls nicht vorhanden |
| wertforce | alter Wert falls nicht vorhanden |
| wertstiff | alter Wert falls nicht vorhanden |
| wertmass | alter Wert falls nicht vorhanden |
| subroutine lokalematrizenclass::neu::setzematrizen | ( | type(lokalematrizen_t), intent(inout) | this, |
| real(kind=dp), dimension(:), intent(in) | aFORCE, | ||
| real(kind=dp), dimension(:,:), intent(in) | aSTIFF, | ||
| real(kind=dp), dimension(:,:), intent(in) | aMASS | ||
| ) |
setzeMatrizen setzt die Systemmatrizen
und prüft die Matrizengrößen der Eingangsmatrizen , ruft initMatrizen auf und ordnet die Matrizen in den LokaleMatrizen_t ein


1.8.2