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