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

Datentypen

module  elementclass
 
type  elementclass::bauteilelement_t
 sammelt Elementeigenschaften Mehr ...
 
interface  elementclass::neu
 
interface  elementclass::berechne
 
interface  elementclass::holematerial
 
module  ElementClass
 sammelt und verarbeitet elementbasierte Informationen Mehr ...
 

Funktionen/Unterroutinen

subroutine elementclass::neu::initialisierebauteilelement (this, ElemNr, Solver, Model, istGebietselement)
 
subroutine elementclass::berechne::berechneelement (this)
 Löse die definierte DGL für dieses Element.
 
subroutine elementclass::holematerial::holematerialvektor (this, materialWert, elmername)
 Gibt mithilfe von Elmers Routine den Wert elmername zurück und macht zusätzliche eine Fehlerprüfung.
 
subroutine elementclass::holematerial::holematerialtensor (this, materialWert, elmername)
 
subroutine elementclass::setzeelementzaehler (anzahlElemente)
 
subroutine elementclass::initialisieregeometrie (this)
 initialisiert die Werte für die Geometrie für die Berechnung der Eriksson2006DGL_Class
 
subroutine elementclass::initialisieredgl (this)
 Übergibt die für dieses Element spezifischen Material- und Geometrieeigenschaften an die DGL, sodass diese ihre Gleichungen für dieses Element optimieren kann.
 
subroutine elementclass::holematerialtensor (this, materialWert, elmername)
 
subroutine elementclass::setzepointeraufnaechsteselement (this, PointerAufNaechstesElement)
 Setze den Pointer auf das Nachbarelement.
 
recursive subroutine elementclass::iteriereueberalleelemente (this)
 Löse die DGL für dieses Element und folge dem POINTER auf das naechste Element.
 
recursive subroutine elementclass::iteriereueberalleelementestaggered1 (this)
 Löse die DGL für dieses Element und folge dem POINTER auf das naechste Element.
 
recursive subroutine elementclass::iteriereueberalleelementestaggered2 (this)
 Löse die DGL für dieses Element und folge dem POINTER auf das naechste Element.
 
subroutine elementclass::berechneelementstaggered1 (this)
 Löse die definierte DGL für dieses Element.
 
subroutine elementclass::berechneelementstaggered2 (this)
 Löse die definierte DGL für dieses Element.
 
subroutine elementclass::inputtensor (Tensor, IsScalar, Name, Material, n, NodeIndexes)
 This routine is taken from Elmers Stress.f90 and modified.
 

Variablen

integer elementclass::bauteilelement_t::elementnummer
 
logical elementclass::bauteilelement_t::istgebietselement
 
integer elementclass::bauteilelement_t::elementdof
 
type(lokalegekoppeltematrizen_t) elementclass::bauteilelement_t::elementmatrizen
 
type(bauteilelement_t), pointer elementclass::bauteilelement_t::naechsteselement
 
type(geometrischeeigenschaften_t) elementclass::bauteilelement_t::geometrie
 
type(materialsammlung_t) elementclass::bauteilelement_t::materialwerte
 
type(randbedingung_t) elementclass::bauteilelement_t::temperaturrandbedingung
 
type(randbedingung_t) elementclass::bauteilelement_t::feuchtigkeitrandbedingung
 
type(eriksson2006dgl_t) elementclass::bauteilelement_t::erikssondgl
 
type(element_t), pointer elementclass::bauteilelement_t::element
 Elmers Elementinfo.
 
type(valuelist_t), pointer elementclass::bauteilelement_t::material >NULL()
 Elmers Materialinfo.
 
type(solver_t) elementclass::bauteilelement_t::solver
 
type(model_t) elementclass::bauteilelement_t::model
 
real(kind=dp), dimension(:,:),
allocatable 
elementclass::bauteilelement_t::vorherigelsg
 

Ausführliche Beschreibung

Funktionen/Unterroutinen-Dokumentation

subroutine elementclass::berechne::berechneelement ( type(bauteilelement_t), intent(inout)  this)

Löse die definierte DGL für dieses Element.

subroutine elementclass::berechneelementstaggered1 ( type(bauteilelement_t), intent(inout)  this)

Löse die definierte DGL für dieses Element.

Noch zu erledigen:
allow static Simulationsablauf
Noch zu erledigen:
allow static Simulationsablauf
subroutine elementclass::berechneelementstaggered2 ( type(bauteilelement_t), intent(inout)  this)

Löse die definierte DGL für dieses Element.

Noch zu erledigen:
allow static Simulationsablauf
Noch zu erledigen:
allow static Simulationsablauf
subroutine elementclass::holematerialtensor ( type(bauteilelement_t), intent(inout)  this,
real(kind=dp), dimension(:,:,:), intent(inout), pointer  materialWert,
character(*), intent(in)  elmername 
)
subroutine elementclass::holematerial::holematerialtensor ( type(bauteilelement_t), intent(inout)  this,
real(kind=dp), dimension(:,:,:), intent(inout), pointer  materialWert,
character(*), intent(in)  elmername 
)
subroutine elementclass::holematerial::holematerialvektor ( type(bauteilelement_t), intent(inout)  this,
real(kind=dp), dimension(:), pointer  materialWert,
character(*), intent(in)  elmername 
)

Gibt mithilfe von Elmers Routine den Wert elmername zurück und macht zusätzliche eine Fehlerprüfung.

Noch zu erledigen:
Methodenaufruf überdenken
subroutine elementclass::neu::initialisierebauteilelement ( type(bauteilelement_t this,
integer  ElemNr,
type(solver_t)  Solver,
type(model_t)  Model,
logical  istGebietselement 
)

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

subroutine elementclass::initialisieredgl ( type(bauteilelement_t), intent(inout)  this)

Übergibt die für dieses Element spezifischen Material- und Geometrieeigenschaften an die DGL, sodass diese ihre Gleichungen für dieses Element optimieren kann.

Noch zu erledigen:
Werte für randbedingungen einlesen
Noch zu erledigen:
diese Abfrage optimieren

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

subroutine elementclass::initialisieregeometrie ( type( bauteilelement_t ), intent(inout)  this)

initialisiert die Werte für die Geometrie für die Berechnung der Eriksson2006DGL_Class

Dabei sind folgende Werte für die Berechnung der Matrizen notwendig:

  • detJ
  • ds
  • Number of Integrationpoints
  • Formfunktionen $N$
  • abgeleitete Formfunktionen $B$
  • anzahlKnoten

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

subroutine elementclass::inputtensor ( real(kind=dp), dimension(:,:,:)  Tensor,
logical  IsScalar,
character(len=*)  Name,
type(valuelist_t), pointer  Material,
integer  n,
integer, dimension(:)  NodeIndexes 
)

This routine is taken from Elmers Stress.f90 and modified.

Noch zu erledigen:
allow static Simulationsablauf
Noch zu erledigen:
allow static Simulationsablauf
recursive subroutine elementclass::iteriereueberalleelemente ( type(bauteilelement_t this)

Löse die DGL für dieses Element und folge dem POINTER auf das naechste Element.

Da jedes Element die Möglichkeit hat sein Nachbarelement zu kennen kann eine Linked List erzeugt werden, die es ermöglicht über alle Elemente zu iterieren. Der Pointer wird durch die SUBROUTINE setzePointerAufNaechstesElement gesetzt. Wird diese SUBROUTINE aufgerufen werden zuerst die Systemmatrizen für dieses Element berechnet und dann wird zum nächsten Element gegangen. Dort werden die Matrizen berechnet, usw., bis das Letzte Element keinen Pointer mehr auf ein weiteres Element mehr hat.

Siehe auch
setzePointerAufNaechstesElement

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

recursive subroutine elementclass::iteriereueberalleelementestaggered1 ( type(bauteilelement_t this)

Löse die DGL für dieses Element und folge dem POINTER auf das naechste Element.

Da jedes Element die Möglichkeit hat sein Nachbarelement zu kennen kann eine Linked List erzeugt werden, die es ermöglicht über alle Elemente zu iterieren. Der Pointer wird durch die SUBROUTINE setzePointerAufNaechstesElement gesetzt. Wird diese SUBROUTINE aufgerufen werden zuerst die Systemmatrizen für dieses Element berechnet und dann wird zum nächsten Element gegangen. Dort werden die Matrizen berechnet, usw., bis das Letzte Element keinen Pointer mehr auf ein weiteres Element mehr hat.

Siehe auch
setzePointerAufNaechstesElement

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

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

recursive subroutine elementclass::iteriereueberalleelementestaggered2 ( type(bauteilelement_t this)

Löse die DGL für dieses Element und folge dem POINTER auf das naechste Element.

Da jedes Element die Möglichkeit hat sein Nachbarelement zu kennen kann eine Linked List erzeugt werden, die es ermöglicht über alle Elemente zu iterieren. Der Pointer wird durch die SUBROUTINE setzePointerAufNaechstesElement gesetzt. Wird diese SUBROUTINE aufgerufen werden zuerst die Systemmatrizen für dieses Element berechnet und dann wird zum nächsten Element gegangen. Dort werden die Matrizen berechnet, usw., bis das Letzte Element keinen Pointer mehr auf ein weiteres Element mehr hat.

Siehe auch
setzePointerAufNaechstesElement

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

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

subroutine elementclass::setzeelementzaehler ( integer  anzahlElemente)

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

subroutine elementclass::setzepointeraufnaechsteselement ( type(bauteilelement_t this,
type(bauteilelement_t), pointer  PointerAufNaechstesElement 
)

Setze den Pointer auf das Nachbarelement.

Normalerweise ist der Pointer auf das nächste Element auf NULL gesetzt und muss erst gesetzt werden, um die Möglichkeit zu geben durch alle Elementen als eine Linked List zu iterieren.

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

Variablen-Dokumentation

type(element_t), pointer elementclass::bauteilelement_t::element

Elmers Elementinfo.

integer elementclass::bauteilelement_t::elementdof
type(lokalegekoppeltematrizen_t) elementclass::bauteilelement_t::elementmatrizen
integer elementclass::bauteilelement_t::elementnummer
type(eriksson2006dgl_t) elementclass::bauteilelement_t::erikssondgl
type(randbedingung_t) elementclass::bauteilelement_t::feuchtigkeitrandbedingung
type(geometrischeeigenschaften_t) elementclass::bauteilelement_t::geometrie
logical elementclass::bauteilelement_t::istgebietselement
type(valuelist_t), pointer elementclass::bauteilelement_t::material >NULL()

Elmers Materialinfo.

type(materialsammlung_t) elementclass::bauteilelement_t::materialwerte
type(model_t) elementclass::bauteilelement_t::model
type(bauteilelement_t), pointer elementclass::bauteilelement_t::naechsteselement
type(solver_t) elementclass::bauteilelement_t::solver
type(randbedingung_t) elementclass::bauteilelement_t::temperaturrandbedingung
real(kind=dp), dimension(:,:), allocatable elementclass::bauteilelement_t::vorherigelsg