| | |
 | Lenovo auf der Hannover Messe: Wie KI die nächste industrielle Revolution antreibt, eine Pressemitteilung
|
|
Autor
|
Thema: Daten-output während der Rechnung mit UDF? (2258 mal gelesen)
|
fliegding Mitglied
 Beiträge: 3 Registriert: 15.05.2006
|
erstellt am: 15. Mai. 2006 12:55 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Mein Problem ist folgendes: Ich lasse eine instationäre Rechnung (Fagottrohr 2d) laufen und würde gern mittels einer UDF alle 5 Zeitschritte Daten (z.B. Druck, Dichte, ...) an ausgewählten Punkten ausgeben und in Dateien speichern lassen. Im Grunde sollte das doch kein Problem sein! Ich finde bloß kein Beispiel für sowas und komme selbst nicht auf einen funktionierenden C-Code. Ich habe nur eine Reihe von Ideen: Die Punkte an denen ich die Werte brauche habe ich schon in 2 thread-Gruppen eingeteilt, es wird sicher irgendwas mit "DEFINE_ON_DEMAND" zu tun haben und ich hätte gern pro Zeitschritt eine Datei. Hat jemand das schon mal gemacht? Vielen Dank Markus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pmax Mitglied
 
 Beiträge: 161 Registriert: 16.08.2004
|
erstellt am: 15. Mai. 2006 16:28 <-- editieren / zitieren --> Unities abgeben:          Nur für fliegding
hallo, Also du musst eine subroutine erzeugen: hier eine Beispiel ------------------------ static void write_data_file (real time, real loc, real velo, real force) { FILE *fp = fopen(UDF_DATA, "a+"); fprintf (fp, "%e %e %e %e \n", time, loc, velo, force); fclose (fp); } -------------------------------- und dann in deinem UDF wo du Daten schreiben willst, einfach: write_data_file (time,loc,velo,force); that's it! aber hier kriegst alle Daten für alle Timestep. wenn dein File zu gross ist, um Kurve zu kriegen (im Excel z.B.) dann musst ein bischen basteln... aber mit Excel kannst du bis etwa 400 000 Punkten bearbeiten... sonst Gnuplot! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fliegding Mitglied
 Beiträge: 3 Registriert: 15.05.2006
|
erstellt am: 18. Mai. 2006 02:56 <-- editieren / zitieren --> Unities abgeben:         
|
pmax Mitglied
 
 Beiträge: 161 Registriert: 16.08.2004
|
erstellt am: 18. Mai. 2006 06:09 <-- editieren / zitieren --> Unities abgeben:          Nur für fliegding
Hallo, es fonktionniert bei mir und perfekt. Diese subroutine (klein subroutine) musst du in dein UDF (global) schreiben. Dein UDF (global) ist einfach eine Liste von viel subroutine (klein UDF) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fliegding Mitglied
 Beiträge: 3 Registriert: 15.05.2006
|
erstellt am: 22. Mai. 2006 15:31 <-- editieren / zitieren --> Unities abgeben:         
Hi pmax Wenn ich "static void .... fclose (fp); }" in den globalen Teil meiner UDF schreibe, kommt beim compilieren ein Syntax-Error. Welche Headerfiles verwendest du? Ich verwende bis jetzt nur die udf.h. Grüße Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pmax Mitglied
 
 Beiträge: 161 Registriert: 16.08.2004
|
erstellt am: 22. Mai. 2006 15:39 <-- editieren / zitieren --> Unities abgeben:          Nur für fliegding
|
kippo Mitglied Vetriebsingenieur

 Beiträge: 25 Registriert: 02.06.2005
|
erstellt am: 25. Aug. 2006 12:00 <-- editieren / zitieren --> Unities abgeben:          Nur für fliegding
ACHTUNG: Daten rausschreiben funktioniert aber nur bei einem Prozessor :-)) ich schreibe zb. nach jedem zeitschritt daten heraus. habe es mal versucht bei einer berechnung mit 2 prozessoren, da kann man leider keine ascii-daten rausschreiben. nur zur ergänzung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pmax Mitglied
 
 Beiträge: 161 Registriert: 16.08.2004
|
erstellt am: 25. Aug. 2006 14:12 <-- editieren / zitieren --> Unities abgeben:          Nur für fliegding
|
lokm Mitglied

 Beiträge: 17 Registriert: 23.09.2008
|
erstellt am: 27. Sep. 2009 22:12 <-- editieren / zitieren --> Unities abgeben:          Nur für fliegding
Hallo, ich habe genau das Problem, dass ich be Mehrkernnutzung von Fluent 5/6 bzw. Ansys12-Workbench auch Ascii-Dateien heraus schreiben möchte und mir bisher gesagt wurde das dies nur bei 1-Kern-Prozessen möglich ist. Die Frage geht jetzt speziel an pmax: wie habe ich vorzugehen, um bei z.b. 4 Kernnutzung Ascii-Dateien zu erstellen? In meinem Fall ist es ne 3-D-Rechnchnung. [Diese Nachricht wurde von lokm am 27. Sep. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
iorga Mitglied Konstrukteur, Dipl.-Ing. Maschinenbau
 
 Beiträge: 105 Registriert: 21.02.2004
|
erstellt am: 15. Mrz. 2019 20:30 <-- editieren / zitieren --> Unities abgeben:          Nur für fliegding
Hallo, Ich gehe davon daß nicht die Nummer der Kerne ist schuldig, sondern das Betriebsystem des Computers. Bei Windows XP habe ich daten als Datei.txt von Fluent bekommen. Mit deselbe Fall bei Windows 7, 8.1,und 10 nix bekommen, ohne Fehlermeldung. Ich denke das die Virtualisierung oder Verschachtelung in letzte Betriebsysteme macht daß Fluent erkennt nicht die Austritt als ASCII von Daten in Datei. Kann jemanden von Ansys etwas zu sagen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| | Optical Packaging Engineer (f/m/d) | Optical Packaging Engineer (f/m/d) Shape the Future of Photonic Semiconductor Packaging Location: Dortmund, Germany Employment Type: Full-time (40 hours/week) | Permanent Join Innolume At Innolume, we develop innovative optoelectronic semiconductor technologies for next-generation communication, sensing and photonic applications.... | | Anzeige ansehen | Feste Anstellung |
|
iorga Mitglied Konstrukteur, Dipl.-Ing. Maschinenbau
 
 Beiträge: 105 Registriert: 21.02.2004
|
erstellt am: 30. Jul. 2026 16:08 <-- editieren / zitieren --> Unities abgeben:          Nur für fliegding
Was muss machen (in rumänische Sprache): Cele mai frecvente cauze pentru care programul tău scris în C (UDF - User-Defined Function)nu mai generează fișierele sunt: Restricțiile UAC (User Account Control): Windows blochează scrierea de fișiere în directoare protejate ale sistemului (cum ar fi C:\Program Files sau C:\Windows) dacă nu rulezi aplicația ca administrator. Structura Directoarelor (VirtualStore): Dacă salvezi fișierele de date direct în rădăcina C:\, sistemul Windows 7/10/11 poate redirecționa silențios fișierele într-un folder ascuns de tip VirtualStore (ex: C:Users\NumeUtilizator\AppData\Local\VirtualStore), în loc să le salveze în folderul unde rulează simularea. Soluții și pași de urmat pentru rezolvare: 1. Schimbă directorul de lucru: Asigură-te că proiectul Ansys Fluent (fișierele .cas,.dat și codul tău .c) se află într-un folder unde utilizatorul are drepturi depline, de exemplu: C:\Proiecte_CFD\Simulare_1. 2. Rulează Fluent ca Administrator: Pentru a acorda permisiuni totale UDF-ului, închide aplicația și deschide Ansys Fluent dând click-dreapta pe scurtătură și selectând Run as administrator. 3. Verifică destinația absolută în C: Pentru a evita ca fișierele să se piardă prin folderele virtuale, specifică o cale completă și explicită în codul C (de exemplu: fopen("C:\\Proiecte_CFD\\rezultate.txt", "w") . iorga Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |