Hot News:

Unser Angebot:

  Foren auf CAD.de
  OpenFOAM
  MapFields bei parallelem Case (Aufteilung auf mehrere Prozessoren)

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  MapFields bei parallelem Case (Aufteilung auf mehrere Prozessoren) (706 / mal gelesen)

Ex-Mitglied

erstellt am: 23. Feb. 2023 23:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo zusammen,

ich habe ein caseunabhängiges Problem mit der Funktion "mapFields".

Ein Prozessor:
In diesem Fall verwende ich den Befehl "mapFields ../SourceCase -consistent -sourceTime latestTime". Im Allrun Skript befindet sich der Befehl nach dem Ausführen von snappyHexMesh und vor dem Ausführen des Solvers. In der Logdatei steht:

Create databases as time

Source time: 500
Target time: 0
Create meshes

Source mesh size: 24165 Target mesh size: 24180


Consistently creating and mapping fields for time 500

    interpolating p
    interpolating nut
    interpolating k
    interpolating omega
    interpolating U

End

Daraufhin werden beim Targetcase im Timefolder (hier 0) die files p, U etc. erzeugt. Im nächsten Schritt greift dann der Solver darauf zu und alles gelingt.

Bei mehreren Prozessoren (parallel):
Jetzt will ich noch vor dem snappyHexMesh auf mehrere Prozessoren aufteilen. Also benutze ich den Befehl "decomposePar -copyZero". Dadurch wird in jeden Prozessorordner der 0 Ordner kopiert. Nach snappyHexMesh führe ich dann parallel folgenden Befehl aus: "mapFields ../SourceCase -consistent -sourceTime latestTime -parallelTarget". ParallelTarget führt dazu, dass die Netzgrößen in etwa gleich sind. Ausgeführt wird der Befehl ohne Probleme, allerdings tauchen in der Logdatei keine Interpolationen von p, U etc. auf, wie man es in der oberen Logdatei sieht. Und dementsprechend sind in den processor*/0 Ordnern auch keine entsprechenden files vorhanden. Der Solver sucht diese dann vergeblich.

Ich bin für jeden Hinweis dankbar. Beiträge aus dem cfd-online Forum haben mir bisher nicht geholfen. Die anderen options, die es unter mapFields -help gibt habe ich fast alle schon probiert.

Viele Grüße
Patrick

Shor-ty
Moderator





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

erstellt am: 24. Feb. 2023 11:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Patrick,

hast Du einen kleinen Testfall? Ich hab keine Zeit das selber zu bauen. Übrigens gibt es CODE Tags.

Grüße Tobi

------------------
Glück Auf,
Tobi

OpenFOAM® Community - Knowledge Base

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 24. Feb. 2023 13:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Tobi,

danke für deine Bereitschaft zu helfen. Ich hab es zwischenzeitlich mit der Brechstange probiert. Wenn man jeden einzelnen Prozessor anspricht, klappt es. Sieht bei mir (mit 8 Prozessoren) dann so aus:

runApplication mapFields ../sourceCase/processor0 -case processor0 -sourceTime latestTime -consistent -mapMethod mapNearest
mv log.mapFields log.mapFields0
runApplication mapFields ../sourceCase/processor1 -case processor1 -sourceTime latestTime -consistent -mapMethod mapNearest
mv log.mapFields log.mapFields1
runApplication mapFields ../sourceCase/processor2 -case processor2 -sourceTime latestTime -consistent -mapMethod mapNearest
mv log.mapFields log.mapFields2
runApplication mapFields ../sourceCase/processor3 -case processor3 -sourceTime latestTime -consistent -mapMethod mapNearest
mv log.mapFields log.mapFields3
runApplication mapFields ../sourceCase/processor4 -case processor4 -sourceTime latestTime -consistent -mapMethod mapNearest
mv log.mapFields log.mapFields4
runApplication mapFields ../sourceCase/processor5 -case processor5 -sourceTime latestTime -consistent -mapMethod mapNearest
mv log.mapFields log.mapFields5
runApplication mapFields ../sourceCase/processor6 -case processor6 -sourceTime latestTime -consistent -mapMethod mapNearest
mv log.mapFields log.mapFields6
runApplication mapFields ../sourceCase/processor7 -case processor7 -sourceTime latestTime -consistent -mapMethod mapNearest
mv log.mapFields log.mapFields7

Wobei sourceCase der Ordner ist, woraus ich die Dateien haben möchte. Die Zwischenzeilen (mv...) benennen die Logdateien um, damit nicht gemeckert wird, dass es schon eine Datei mit dem Namen gibt.

Klappt alles nur, wenn davor der decomposePar -copyZero Befehl ausgeführt wird und so ein 0 Ordner in jedem Prozessorordner erstellt wird.

Ich habe das Gefühl all das sollte durch die option -parallelTarget bzw. -parallelSource von selbst geschehen, aber es scheint auch bei Anderen damit nicht so recht zu funktionieren.

Falls jemand eine elegantere Lösung hat, oder es mit den gerade genannten options schafft kann sich gerne melden.

@Tobi, CODE Tags sagen mir nichts.

VG
Patrick

Shor-ty
Moderator





Sehen Sie sich das Profil von Shor-ty an!   Senden Sie eine Private Message an Shor-ty  Schreiben Sie einen Gästebucheintrag für Shor-ty

Beiträge: 2466
Registriert: 27.08.2010

erstellt am: 06. Mrz. 2023 13:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hey Patrick,

also was Du da machst ist ja alles andere als schön. Wie gesagt, ich bau mir jetzt keinen Case zusammen, dafür hab ich keine Muse. Aber wir arbeiten hier mit über 8000 Cores und alles funktioniert.

code Tags:

[ c o d e ] << dient zur Formatierung:

Code:

Hier ist alles in einem Code-Tag

------------------
Glück Auf,
Tobi

OpenFOAM® Community - Knowledge Base

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz