Das Programm wurde aufgrund einiger Programmierfehler korrigiert
Da ich ein zweidimensionales FEM-Spannungsanalyseprogramm erstellt habe, habe ich auch ein zweidimensionales Programm zur Analyse des gesättigten und ungesättigten Permeationsflusses erstellt. Die Elemente sind isoparametrische Elemente mit 1 Element, 4 Knoten und 4 Gauß-Integrationspunkten, wie im Fall der 2D-Spannungsanalyse.
Eigentlich kann es verwendet werden, aber die Anzahl der Knoten beträgt 1317, die Anzahl der Elemente beträgt 1227, die Anzahl der Konvergenzberechnungen beträgt 10 und die Berechnungszeit beträgt 3,7 Sekunden. Wenn das Problem in dieser Größenordnung liegt, ist keine besondere Belastung zu spüren. Die Matrixoperationen und Routinen von Numpy zum Lösen simultaner linearer Gleichungen sind wahrscheinlich ausgezeichnet.
Folgende Punkte sind beim Programmieren zu beachten.
`x = numpy.linalg.solve (A, b)`
reicht aus, um simultane lineare Gleichungen zu lösen. Da die Matrix aufgrund der Randbedingungsverarbeitung asymmetrisch wird, kann die Choleskey-Zerlegung in keiner Weise verwendet werden.Die Analyse des gesättigten stetigen Permeationsflusses ist ein Problem, das die folgenden simultanen linearen Gleichungen löst.
Hier ist $ \ {q \} $ der Knotenflussvektor, $ \ {h \} $ der Gesamtkopfvektor und $ [k] $ die Wasserdurchlässigkeitsmatrix, die die folgenden Eigenschaften aufweist.
Daher kann die Lösung erhalten werden, indem die simultanen Gleichungen einmal nach Verarbeitung der Beziehung zwischen der bekannten Zahl und der unbekannten Zahl gelöst werden.
Durchflussrate ohne $ q_i $, $ q_j $ und bekannte $ h_i $, $ h_j $, alle Köpfe ohne $ h_i $, $ h_j $ und $ q_i $, $ q_j $ in der Wasserdurchlässigkeitsmatrix Der Prozess wird so ausgeführt, dass k_ {ii} $ und $ k_ {jj} $ auf $ 1 $ gesetzt werden und die anderen Elemente der Spalte $ i $ und $ j $ auf Null gesetzt werden. Außerdem werden die Auswirkungen der Spalten $ i $ und $ j $ in der Wasserdurchlässigkeitsmatrix auf die rechte Seite übertragen.
Gleichzeitige Gleichungen bei der Analyse des gesättigten und ungesättigten Permeationsflusses weisen die folgenden Eigenschaften auf.
Daher ist es notwendig, das Unbekannte durch Konvergenzberechnung zu bestimmen. Das Verfahren der Konvergenzberechnung war ein sequentielles Substitutionsverfahren, bei dem die Anfangswerte aller Köpfe allen Knoten gegeben wurden und die erhaltene Lösung als Eingabewert für die nächste Konvergenzberechnung verwendet wurde. Da dieses Verfahren die Köpfe aller Knoten annimmt, kann es aus den Köpfen unter der Annahme der Wasserpermeationsmatrix aller Elemente eingestellt werden, und der Berechnungsfluss kann vereinfacht werden. Es scheint effektiv zu sein, den minimalen Gesamtkopf des Sättigungsbereichs als Anfangswert des Gesamtkopfs anzugeben, mit Ausnahme der Grenze, an der der Gesamtkopf bekannt ist, unter Berücksichtigung der Genauigkeit und Konvergenz der Lösung.
Für das charakteristische Modell der ungesättigten Wasserpermeation des Bodens gibt es auch eine Methode zur Eingabe der Sättigungs-Saugdruck-Beziehung und des Verhältnisses von Sättigungs-ungesättigtem Wasserpermeationskoeffizienten in eine Tabelle. Das Modell van Genuchten wurde übernommen.
Wenn Sie das Programm darauf setzen, wird es lang sein, also setzen Sie einen Link zu Ihrer eigenen HP.
npoin nele nsec koh koq kou idan
Ak0 alpha em
..... (1~nsec) .....
node-1 node-2 node-3 node-4 isec
..... (1~nele) .....
x z hvec0
..... (1~npoin) .....
nokh Hinp
..... (1~koh) .....
nokq Qinp
..... (1~koq) .....
noku
..... (1~kou) .....
npoin, nele, nsec td> | Anzahl der Knoten, Anzahl der Elemente, Anzahl der Materialeigenschaften td> tr> |
koh, koq, kou td> | Anzahl der bezeichneten Wasserkopfknoten, Anzahl der angegebenen Durchflussknoten, Anzahl der Infiltrationsgrenzknoten td> tr> |
idan td> | Analyseabschnitt (0: vertikaler Abschnitt, 1: horizontaler Abschnitt) td> tr> |
Ak0 td> | Durchlässigkeitskoeffizient für gesättigtes Wasser des Elements td> tr> |
alpa, em td> | Ungesättigte Wasserdurchlässigkeit von Elementen td> tr> |
Knoten-1, Knoten-2, Knoten-3, Knoten-4, isec td> | Knotennummer des Elements, Materialeigenschaftsnummer des Elements td> tr> |
x-, z-, hvec0 td> | x- und z-Koordinaten des Knotens, anfänglicher Kopfwert für die Konvergenzberechnung td> tr> |
nokh, Hinp td> | Von Waterhead festgelegte Knotennummer und Waterhead-Wert td> tr> |
nokq, Qinp td> | Geben Sie die angegebene Knotennummer und den angegebenen Flusswert td> tr> an |
noku td> | Nummer des Invasionsgrenzknotens td> tr> |
npoin nele nsec koh koq kou idan
9 4 1 6 0 0 1
sec Ak0 alpha em
1 1.0000000e-05 0.0000000e+00 0.0000000e+00
node x z hvec qvec koh koq kou
1 0.0000000e+00 0.0000000e+00 1.0000000e+01 0.0000000e+00 1 0 0
2 1.0000000e+00 0.0000000e+00 1.0000000e+01 0.0000000e+00 1 0 0
3 2.0000000e+00 0.0000000e+00 1.0000000e+01 0.0000000e+00 1 0 0
4 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0
5 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0
6 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0
7 0.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0
8 1.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0
9 2.0000000e+00 2.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0
node Hinp
1 1.0000000e+01
2 1.0000000e+01
3 1.0000000e+01
7 0.0000000e+00
8 0.0000000e+00
9 0.0000000e+00
elem i j k l sec
1 1 2 5 4 1
2 2 3 6 5 1
3 4 5 8 7 1
4 5 6 9 8 1
node hvec pvec qvec koh koq kou
1 1.0000000e+01 1.0000000e+01 2.5000000e-05 1 0 0
2 1.0000000e+01 1.0000000e+01 5.0000000e-05 1 0 0
3 1.0000000e+01 1.0000000e+01 2.5000000e-05 1 0 0
4 5.0000000e+00 5.0000000e+00 -6.7762636e-21 0 0 0
5 5.0000000e+00 5.0000000e+00 2.7105054e-20 0 0 0
6 5.0000000e+00 5.0000000e+00 0.0000000e+00 0 0 0
7 0.0000000e+00 0.0000000e+00 -2.5000000e-05 1 0 0
8 0.0000000e+00 0.0000000e+00 -5.0000000e-05 1 0 0
9 0.0000000e+00 0.0000000e+00 -2.5000000e-05 1 0 0
elem vx vz vm kr
1 -5.5511151e-21 5.0000000e-05 5.0000000e-05 1.0000000e+00
2 5.5511151e-21 5.0000000e-05 5.0000000e-05 1.0000000e+00
3 -5.5511151e-21 5.0000000e-05 5.0000000e-05 1.0000000e+00
4 5.5511151e-21 5.0000000e-05 5.0000000e-05 1.0000000e+00
Total inflow = 1.0000000e-04
Total outflow= -1.0000000e-04
Max.velocity in all area = 5.0000000e-05 (ne=1)
Max.velocity in inflow area = 5.0000000e-05 (ne=1)
Max.velocity in outflow area = 5.0000000e-05 (ne=3)
iii=2 icount=9 kop=0
n=9 time=0.007 sec
Knoten, hvec, pvec, qvec td> | Knotennummer, Gesamthöhe, Druckhöhe, Durchflussrate td> tr> |
elem, vx, vz, vm td> | Geschwindigkeit der X / z-Richtung und synthetische Geschwindigkeit der Elemente td> tr> |
Kr td> | Durchlässigkeit für ungesättigtes Wasser (1: gesättigt, 1>: ungesättigt) td> tr> |
Gesamtzufluss, Gesamtabfluss td> | Gesamtzufluss und -abfluss zum Modellbereich td> tr> |
iii, icount td> | Anzahl der Konvergenzberechnungen, Anzahl der Freiheitsgrade, die die Bedingung für den Abschluss der Berechnung erfüllen td> tr> |
kop td> | Die Anzahl der Knoten, bei denen der Druckkopf 0 ist, unter den infiltrierten Oberflächengrenzknoten td> tr> |
n, Zeit td> | Gesamtfreiheit, Berechnungszeit td> tr> |
Ein Diagramm mit Konturen mit Druckköpfen von 0, 5, 10 und 15 m, die mit einem einfachen Programm zur Konturerstellung erstellt wurden. Die Wassertiefe beträgt 18 m stromaufwärts und 4 m stromabwärts. Das Konturdiagramm selbst befindet sich auf Amateurebene, aber die Berechnung scheint gut zu funktionieren. Die rot angezeigten Druckkopf- und Dammspezifikationen sind zusätzlich in der Mac-Vorschau angegeben.
Es ist besser, die Zeichnung dieses Ortes der Konturfunktion von GMT (Generic Mapping Tools) zu überlassen, und es wird für den Bericht besser aussehen.
Übrigens ist bekannt, dass bei einem tatsächlichen Damm die Druckhöhe nahe der Grenze zwischen Kern und Filter abfällt und der Druckabfall innerhalb des Kerns nicht wie in den Analyseergebnissen gezeigt auftritt. Bitte haben Sie Verständnis dafür, dass es sich um einen Analysefall handelt.
das ist alles
Recommended Posts