Eriksson2006Solver Package
Implementation of a coupled FEM Solver
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Gruppen Seiten
Datentypen | Funktionen/Unterroutinen
LokaleMatrizenClass

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)
 

Ausführliche Beschreibung

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.

Funktionen/Unterroutinen-Dokumentation

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

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

real(kind=dp) function, dimension(:), pointer lokalematrizenclass::force::gibforce ( type(lokalematrizen_t), intent(in)  this)

gibFORCE gibt den Kraftvektor zurück

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

real(kind=dp) function, dimension(:,:), pointer lokalematrizenclass::mass::gibmass ( type(lokalematrizen_t), intent(in)  this)

gibMASS gibt die Massematrix zurück

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

real(kind=dp) function, dimension(:,:), pointer lokalematrizenclass::stiff::gibstiff ( type(lokalematrizen_t), intent(in)  this)

gibSTIFF gibt die Steifigkeitsmatrix zurück

Parameter
[in]thisLokaleMatrizen_t:: this Returns REAL(KIND=dp), DIMENSION(SHAPE(STIFF)

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

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.

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

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

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

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

Parameter
thisSammlung der Matrizen
wertFORCE0.0d0, falls nicht vorhanden
wertforcealter Wert falls nicht vorhanden
wertstiffalter Wert falls nicht vorhanden
wertmassalter 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

Noch zu erledigen:
mache diese Funktion unabhängig von Eingangsmatrizen übergebe stattdessen die Anzahl der Freiheitsgrade pro Element

Hier ist ein Graph, der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird: