| |

Fortgeschrittene ProgrammierungRe: Simulationsprogramm | |  | Autor: schwpzd | Datum: 11.12.08 17:45 |
| hallo Zardoz,
danke für den Tip über die beschleunigung der grafischen Ausgabe. Da komme ich eine ganze Ecke weiter.
nachstehend der code innerhalb der Schleifen, hier noch in vereinfachter Form (vereinfacht insofern, daß die diversen berechnungen nur rudimentär sind um überhaupt einmal ein sichtbares Ergebnis zu zeigen). Wenn denn Erfolgsaussichten für die Beschleunigung des Ablaufs erkennbar werden, kommen eher noch einige Berechnungen und Rückgriffe auf Konstanten oder gar Funktionen (z.B. bei nicht linearem Verlauf der spez.Wärme ) hinzu.
Dim x As Integer
Dim y As Integer
Dim n As Integer
Dim z As Integer
Dim tges As Integer = 5000 'anzahl durchläufe (zeit)
Dim interval As Double = 1.4
Dim tg As Double = 0 'gebertemperatur
Dim cg As Double = 0 'spez. Wärme geber
Dim lag As Double = 0 'lambda geber
Dim eg As Double = 0 'energie geber
Dim dg As Double = 0 'dichte geber
Const kel As Double = 273.16
Dim tn1 As Double = 0 'temperatur nehmer
Dim en1 As Double = 0 'energie nehmer
Dim qf1 As Double = 0 'wärmefluss nehmer
Dim lg As Integer = 200 'größe Berechnungsfenster
Dim rg As Integer = 600
Dim og As Integer = 200
Dim ug As Integer = 400
''durchläufe starten
ProgressBar1.Maximum = tges
For n = 1 To tges ' Anzahl Durchläufe
ProgressBar1.Value = n
For x = lg To rg
For y = og To ug
'temperatur geberzelle
tg = t(x, y)
'energie geberzelle
eg = d(x, y) * c(x, y) * (tg + kel)
Dim m As Integer
Dim o As Integer
For z = 1 To 8
Select Case z
Case 1
m = x - 1
o = y - 1
Case 2
m = x
o = y - 1
Case 3
m = x + 1
o = y - 1
Case 4
m = x + 1
o = y
Case 5
m = x + 1
o = y + 1
Case 6
m = x
o = y + 1
Case 7
m = x - 1
o = y + 1
Case 8
m = x - 1
o = y
End Select
'energie nehmerzelle
en1 = d(m, o) * c(m, o) * (t(m, o) + kel)
'flüsse von/zu nehmerzelle
qf1 = interval / la(m, o) * (tg - t(m, o))
'neue Temperatur nehemerzelle
tn1 = (en1 + qf1) / d(m, o) / c(m, o) - kel
'rückschreiben temperatur nehmerzellen
t(m, o) = tn1
'neue energie geberzelle
eg = eg - qf1
Next
'neue temperatur geberzelle
tg = eg / d(x, y) / c(x, y) - kel
'rückschreiben temperatur geberzelle
t(x, y) = tg
Next
Next
Next
Viele Grüße, Werner |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|