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

Verwaltung gekoppelte Elementmatrizen der FEM. Mehr ...

Datentypen

module  lokalegekoppeltematrizenclass
 
type  lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t
 
interface  lokalegekoppeltematrizenclass::operator(+)
 alles privat, Kommunikation zwischen Modulen erfolgt über Interfaces Mehr ...
 
interface  lokalegekoppeltematrizenclass::neu
 
interface  lokalegekoppeltematrizenclass::setze
 
interface  lokalegekoppeltematrizenclass::nullifiziere
 
interface  lokalegekoppeltematrizenclass::mass
 
interface  lokalegekoppeltematrizenclass::force
 
interface  lokalegekoppeltematrizenclass::stiff
 
interface  lokalegekoppeltematrizenclass::schuettlematrizen
 

Funktionen/Unterroutinen

subroutine lokalegekoppeltematrizenclass::initialisierematrizen (this, dof)
 
subroutine lokalegekoppeltematrizenclass::schuettleallematrizen (this)
 

Variablen

real(kind=dp), dimension(:,:),
pointer 
lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::kaa
 
real(kind=dp), dimension(:,:),
pointer 
lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::kab
 
real(kind=dp), dimension(:,:),
pointer 
lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::kba
 
real(kind=dp), dimension(:,:),
pointer 
lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::kbb
 
real(kind=dp), dimension(:,:),
pointer 
lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::caa
 
real(kind=dp), dimension(:,:),
pointer 
lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::cab
 
real(kind=dp), dimension(:,:),
pointer 
lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::cba
 
real(kind=dp), dimension(:,:),
pointer 
lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::cbb
 
real(kind=dp), dimension(:),
pointer 
lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::fa
 
real(kind=dp), dimension(:),
pointer 
lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::fb
 
TYPE(LokaleGekoppelteMatrizen_t)
function 
lokalegekoppeltematrizenclass::operator(+)::addiere (this, LM2)
 addiert zwei LokaleMatrizen indem die einzelenen Arrays (FORCE, STIFF, MASS) einzeln und elementweise addiert werden
 
subroutine lokalegekoppeltematrizenclass::neu::setzematrizen (this, aFORCE, aSTIFF, aMASS)
 setzeMatrizen setzt die Systemmatrizen
 
subroutine lokalegekoppeltematrizenclass::neu::initialisierematrizen (this, dof)
 
subroutine lokalegekoppeltematrizenclass::setze::setzeaufwert (this, wertFORCE, wertSTIFF, wertMASS)
 setzeAufWert setzt die gesammten Matrizen auf Werte
 
subroutine lokalegekoppeltematrizenclass::nullifiziere::nullifizierematrizen (this)
 
real(kind=dp) function,
dimension(:,:), pointer 
lokalegekoppeltematrizenclass::mass::gibmass (this)
 gibMASS gibt die Massematrix zurück
 
real(kind=dp) function,
dimension(:), pointer 
lokalegekoppeltematrizenclass::force::gibforce (this)
 gibFORCE gibt den Kraftvektor zurück
 
real(kind=dp) function,
dimension(:,:), pointer 
lokalegekoppeltematrizenclass::stiff::gibstiff (this)
 gibSTIFF gibt die Steifigkeitsmatrix zurück
 
subroutine lokalegekoppeltematrizenclass::schuettlematrizen::schuettleallematrizen (this)
 

Ausführliche Beschreibung

Verwaltung gekoppelte Elementmatrizen der FEM.

Diese Elementmatrizen werden in einem Type gesammelt und geschlossen behandelt. Diese Klasse erlaubt die Modifikation der Submatrizen.

Noch zu erledigen:
  • überlege, welche Anordnung der Elementen nach außen und innen sinnvoll ist, denn laut!! Elmer Forum ist für direkte Solver eine Blockanordnung der Submatrizen ungeeignet, Iterative Solver kommen damit wohl klar

Funktionen/Unterroutinen-Dokumentation

TYPE(LokaleGekoppelteMatrizen_t) function lokalegekoppeltematrizenclass::operator(+)::addiere ( type(lokalegekoppeltematrizen_t), intent(in)  this,
type(lokalegekoppeltematrizen_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:

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

gibFORCE gibt den Kraftvektor zurück

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

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

gibMASS gibt die Massematrix zurück

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

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

gibSTIFF gibt die Steifigkeitsmatrix zurück

Parameter
this

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

subroutine lokalegekoppeltematrizenclass::initialisierematrizen ( type(lokalegekoppeltematrizen_t), intent(inout)  this,
integer, intent(in)  dof 
)
subroutine lokalegekoppeltematrizenclass::neu::initialisierematrizen ( type(lokalegekoppeltematrizen_t), intent(inout)  this,
integer, intent(in)  dof 
)
subroutine lokalegekoppeltematrizenclass::nullifiziere::nullifizierematrizen ( type(lokalegekoppeltematrizen_t), intent(inout)  this)
subroutine lokalegekoppeltematrizenclass::schuettleallematrizen ( type(lokalegekoppeltematrizen_t), intent(inout)  this)
subroutine lokalegekoppeltematrizenclass::schuettlematrizen::schuettleallematrizen ( type(lokalegekoppeltematrizen_t), intent(inout)  this)
subroutine lokalegekoppeltematrizenclass::setze::setzeaufwert ( type(lokalegekoppeltematrizen_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
wertstiffalter Wert falls nicht vorhanden
wertmassalter Wert falls nicht vorhanden
subroutine lokalegekoppeltematrizenclass::neu::setzematrizen ( type(lokalegekoppeltematrizen_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:
füge weitere Routine für skalaren Input ein

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

Variablen-Dokumentation

real( kind=dp ), dimension(:,:), pointer lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::caa
real( kind=dp ), dimension(:,:), pointer lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::cab
real( kind=dp ), dimension(:,:), pointer lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::cba
real( kind=dp ), dimension(:,:), pointer lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::cbb
real( kind=dp ), dimension(:), pointer lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::fa
real( kind=dp ), dimension(:), pointer lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::fb
real( kind=dp ), dimension(:,:), pointer lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::kaa
real( kind=dp ), dimension(:,:), pointer lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::kab
real( kind=dp ), dimension(:,:), pointer lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::kba
real( kind=dp ), dimension(:,:), pointer lokalegekoppeltematrizenclass::lokalegekoppeltematrizen_t::kbb